aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet
AgeCommit message (Expand)AuthorFilesLines
2019-07-31ipsec: Typo in flag nameNeale Ranns1-1/+1
2019-07-30vppinfra: refactor use of CLIB_MEMORY_BARRIER ()jaszha032-4/+2
2019-07-30tap: fix segv when host-if-name is not givenMohsin Kazmi1-8/+10
2019-07-30vppinfra: conformed spinlocks to use CLIB_PAUSEjaszha032-2/+4
2019-07-29session: fix vpp to app msg generationFlorin Coras2-66/+28
2019-07-28fib: add invalid source type and fix debug logBenoît Ganne3-19/+22
2019-07-28pg: add GSO supportMohsin Kazmi6-11/+109
2019-07-28sr: ipv6 segment routing header (srh) updateAhmed Abdelsalam4-1581/+18
2019-07-28sr: fix srv6 end.t behaviorAhmed Abdelsalam1-1/+2
2019-07-27session: define connection id lengthFlorin Coras2-7/+15
2019-07-26session: separate ctrl, new and old eventsFlorin Coras3-89/+88
2019-07-26tcp: count resets sentFlorin Coras2-0/+7
2019-07-26session tcp: handle rxt and acks as custom eventsFlorin Coras11-182/+210
2019-07-26dhcp ip: DSCP settings for transmitted DHCP packetsNeale Ranns12-18/+117
2019-07-26dhcp: send unicast and broadcast packets via the IP adjacencyNeale Ranns3-39/+53
2019-07-25misc: remove unnecessary cast in classifyZhiyong Yang2-24/+14
2019-07-25session: add transport deleted stateFlorin Coras4-11/+14
2019-07-25build: add missing .api files for packagingBenoît Ganne1-1/+8
2019-07-25misc: leverage vlib_buffer_get_current in srpZhiyong Yang1-1/+1
2019-07-25bonding: incorrect RX counters for bond interfaceSteven Luong2-44/+36
2019-07-24qos: QoS dump APIsNeale Ranns8-119/+597
2019-07-24fib: Support the POP of a Psuedo Wire Control WordNeale Ranns11-3/+435
2019-07-24bonding: print the name on the cli when createdMohsin Kazmi1-0/+6
2019-07-24tap: print the interface name on cli when createdMohsin Kazmi2-0/+6
2019-07-24ipsec: GCM, Anti-replay and ESN fixessNeale Ranns5-44/+130
2019-07-24tls: handle engine listen failureFlorin Coras1-1/+12
2019-07-24fib: remove unused input parameterZhiyong Yang1-5/+2
2019-07-23api: binary api cleanupDave Barach13-25/+54
2019-07-23udp: fix typo in udp connectinon flagsDave Wallace1-1/+1
2019-07-23session: reorganize dispatch logicFlorin Coras3-153/+141
2019-07-23udp: fix connection flagsAloys Augustin1-3/+3
2019-07-23session: avoid postponing closeFlorin Coras1-14/+0
2019-07-23tcp: generate closed notifications whenever tcp closesFlorin Coras2-1/+6
2019-07-23devices: vhost handling VHOST_USER_SET_FEATURESSteven Luong1-0/+1
2019-07-22bonding: fix create bond CLIZhiyong Yang1-1/+1
2019-07-22udp: support close with dataFlorin Coras3-19/+41
2019-07-22gso: Fix the l3 packet gso segment sizeMohsin Kazmi1-1/+4
2019-07-19fib: FIB Entry trackingNeale Ranns20-135/+464
2019-07-19session: improve event loggingFlorin Coras4-60/+49
2019-07-19bonding: add support for numa-only in lacp modeZhiyong Yang5-3/+56
2019-07-19session: Use parent_handle instead of transport_optsNathan Skrzypczak4-6/+6
2019-07-19ipsec: register for port 4500 at INITNeale Ranns1-13/+5
2019-07-19ip: admin change affects intf IPv4 addr routesMatthew G Smith1-7/+53
2019-07-18tap: fix memory errors with create/delete APIBenoît Ganne1-7/+9
2019-07-18vlib: convert frame_index into real pointersAndreas Schultz3-4/+4
2019-07-17tcp: add node with no 6-tuple lookupVladimir Kropylev1-22/+96
2019-07-17session: move constants definitionFlorin Coras2-2/+3
2019-07-17session: use llist in session node evt handlingFlorin Coras3-66/+145
2019-07-17session: grab mq lock until ctrl event is enqueuedFlorin Coras1-2/+1
2019-07-16session: fix node enable sequenceVladimir Kropylev1-1/+1
())) ipv6 = ether[IPv6] # verify hop limit processing if ipv6.hlim != (hop_limit - hop_num): raise RuntimeError('Invalid hop limit {0} should be {1}'. format(ipv6.hlim,hop_limit - hop_num)) if not ipv6.haslayer(ICMPv6EchoRequest): raise RuntimeError('Unexpected packet with no IPv6 ICMP received {0}'. format(ipv6.__repr__())) icmpv6 = ipv6[ICMPv6EchoRequest] # check identifier and sequence number if icmpv6.id != echo_id or icmpv6.seq != echo_seq: raise RuntimeError('Invalid ICMPv6 echo reply received ID {0} ' 'seq {1} should be ID {2} seq {3}'. format(icmpv6.id, icmpv6.seq, echo_id, echo_seq)) # verify checksum cksum = icmpv6.cksum del icmpv6.cksum tmp = ICMPv6EchoRequest(str(icmpv6)) if not checksum_equal(tmp.cksum, cksum): raise RuntimeError('Invalid checksum {0} should be {1}'. format(cksum, tmp.cksum)) # send ICMPv6 echo reply from second TG interface pkt_send = (Ether(src=dst_mac, dst=dst_nh_mac) / IPv6(src=dst_ip, dst=src_ip) / ICMPv6EchoReply(id=echo_id, seq=echo_seq)) dst_sent_packets.append(pkt_send) dst_txq.send(pkt_send) # receive ICMPv6 echo reply on first TG interface while True: ether = src_rxq.recv(2, src_sent_packets) if ether is None: raise RuntimeError('ICMPv6 echo reply Rx timeout') if ether.haslayer(ICMPv6ND_NS): # read another packet in the queue if the current one is ICMPv6ND_NS continue else: # otherwise process the current packet break if not ether.haslayer(IPv6): raise RuntimeError('Unexpected packet with no IPv6 layer received {0}'. format(ether.__repr__())) ipv6 = ether[IPv6] # verify hop limit processing if ipv6.hlim != (hop_limit - hop_num): raise RuntimeError('Invalid hop limit {0} should be {1}'. format(ipv6.hlim, hop_limit - hop_num)) if not ipv6.haslayer(ICMPv6EchoReply): raise RuntimeError('Unexpected packet with no IPv6 ICMP received {0}'. format(ipv6.__repr__())) icmpv6 = ipv6[ICMPv6EchoReply] # check identifier and sequence number if icmpv6.id != echo_id or icmpv6.seq != echo_seq: raise RuntimeError('Invalid ICMPv6 echo reply received ID {0} ' 'seq {1} should be ID {2} seq {3}'. format(icmpv6.id, icmpv6.seq, echo_id, echo_seq)) # verify checksum cksum = icmpv6.cksum del icmpv6.cksum tmp = ICMPv6EchoReply(str(icmpv6)) if not checksum_equal(tmp.cksum, cksum): raise RuntimeError('Invalid checksum {0} should be {1}'. format(cksum, tmp.cksum)) sys.exit(0) if __name__ == "__main__": main()