summaryrefslogtreecommitdiffstats
path: root/src/vnet/ip/ip4.h
AgeCommit message (Expand)AuthorFilesLines
2021-08-13ip: punt redirect add nh in apiNathan Skrzypczak1-3/+1
2021-08-11fib: A 16-8-8 and a 8-8-8-8 versions of an ip4_fib_tNeale Ranns1-3/+0
2021-07-01ip: api cleanupFilip Tehlar1-0/+2
2021-01-21ip: use IPv6 flowlabel in flow hash computationAhmed Abdelsalam1-3/+0
2020-12-08fib: Source Address SelectionNeale Ranns1-20/+0
2020-10-28misc: Break the big IP header files to improve compile timeNeale Ranns1-115/+3
2020-09-23ip: use main heap for mtrie, part 2 (remove args)Damjan Marion1-6/+0
2020-09-21ip: use main heap for mtrieDamjan Marion1-3/+0
2020-06-12ip: allocate ip4 mtrie pages in htlb memoryDave Barach1-0/+3
2020-04-23ip: Replace Sematics for Interface IP addressesNeale Ranns1-0/+1
2020-04-07udp session: allow dgram ip fragmentationFlorin Coras1-17/+26
2020-03-20ip: provide extern declaration for ip punt nodesJawahar Santosh Gundapaneni1-0/+1
2020-03-03geneve gtpu vxlan vxlan-gpe: VRF-aware bypass nodeNick Zavaritsky1-0/+10
2020-02-11ip: fix ip-local errorsFlorin Coras1-0/+1
2019-12-17ip: Protocol Independent IP NeighborsNeale Ranns1-7/+1
2019-11-27ip: init l3_hdr_offset when pushing an ip4 headerFlorin Coras1-6/+4
2019-10-14ping: Move to pluginMohsin Kazmi1-3/+0
2019-09-10tcp: enable gso in tcp hoststackSimon Zhang1-0/+2
2019-06-06IP-Punt-redirect: allow the use of a FIB path to describe how toNeale Ranns1-0/+3
2019-06-04Punt: specify packets by IP protocol TypeNeale Ranns1-0/+1
2019-06-03ARP: add feature arcNeale Ranns1-0/+13
2018-11-26flow-hash: Add symmetric flag for flow hashingMohsin Kazmi1-1/+17
2018-08-30Refactor the ARP throttle into a common type so it can be reusedNeale Ranns1-3/+2
2018-08-09Thread-safe ARP / ND throttlingDave Barach1-0/+8
2018-07-20IP directed broadcastNeale Ranns1-0/+2
2018-06-14Use unicast DMAC for IP neighbor pool refresh probesJohn Lo1-1/+1
2018-01-18FIB Inherited SrouceNeale Ranns1-12/+0
2017-12-13Separate heap for IPv4 mtriesNeale Ranns1-0/+6
2017-10-10punt and drop features:Neale Ranns1-0/+6
2017-09-20Add ip6-local feature arcPierre Pfister1-0/+1
2017-09-11FIB table add/delete APINeale Ranns1-0/+13
2017-08-02Fix ip checksum offload, move badly-placed ASSERTDave Barach1-0/+2
2017-08-02Fix tcp tx buffer allocationFlorin Coras1-2/+0
2017-08-02Make ip csum configurable in vlib buffer functionsFlorin Coras1-2/+3
2017-07-19Fix IP checksum offload metadata setupDave Barach1-2/+12
2017-07-18TCP/UDP checksum offload APIDave Barach1-1/+3
2017-04-01MTRIE Optimisations 2Neale Ranns1-26/+3
2017-03-01VPP-598: tcp stack initial commitDave Barach1-2/+40
2017-01-27IP Multicast FIB (mfib)Neale Ranns1-0/+24
2017-01-11Acquire SNAT pool addresses from specific interfacesDave Barach1-1/+0
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion1-0/+322
class="p"> | ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 | ... | bridge-domain (L2BD) switching combined with MAC learning enabled | ... | and Split Horizon Groups (SHG); VXLAN tunnels are configured | ... | between L2BDs on DUT1 and DUT2. | ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent | ... | in both directions by TG on links to DUT1 and DUT2; on receive TG | ... | verifies packets for correctness and their IPv6 src-addr, dst-addr | ... | and MAC addresses. | ... | *[Ref] Applicable standard specifications:* RFC7348. *** Variables *** | ${vni_1}= | 23 | ${vni_2}= | 35 | ${bd_id1}= | 10 | ${bd_id2}= | 20 | ${bd_id3}= | 30 | ${shg1}= | 1 | ${shg2}= | 2 | ${ip6_addr1}= | 3ffe:64::1 | ${ip6_addr2}= | 3ffe:64::2 | ${ip6_prefix}= | 64 *** Test Cases *** | TC01: DUT1 and DUT2 with L2BD and VXLANoIPv6 tunnels in SHG switch ICMPv6 between TG links | | [Documentation] | | ... | [Top] TG=DUT1=DUT2=TG. [Enc] Eth-IPv6-VXLAN-Eth-IPv6-ICMPv6 on \ | | ... | DUT1-DUT2; Eth-IPv6-ICMPv6 on TG-DUTn. [Cfg] On DUT1 configure L2 | | ... | bridge-domain (MAC learning enabled) with two untagged interfaces | | ... | to TG and two VXLAN interfaces towards the DUT2 and put both VXLAN | | ... | interfaces into the same Split-Horizon-Group (SHG). On DUT2 configure | | ... | two L2 bridge-domain (MAC learning enabled), each with one untagged | | ... | interface to TG and one VXLAN interface towards the DUT1. [Ver] Make | | ... | TG send ICMPv6 Echo Reqs between all four of its interfaces to be | | ... | switched by DUT1 and DUT2; verify packets are not switched between | | ... | TG interfaces connected to DUT2 that are isolated by SHG on DUT1. | | ... | [Ref] RFC7348. | | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | | Given Configure path for 3-node BD-SHG test | ${nodes['TG']} | | ... | ${nodes['DUT1']} | | ... | ${nodes['DUT2']} | | And Set interfaces in 3-node BD-SHG test up | | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr1} | | ... | ${ip6_prefix} | | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr2} | | ... | ${ip6_prefix} | | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr2} | | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr1} | | And Vpp All RA Suppress Link Layer | ${nodes} | | ${dut1s_vxlan1}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} | | | ... | ${ip6_addr1} | ${ip6_addr2} | | ${dut1s_vxlan2}= | And Create VXLAN interface | ${dut1_node} | ${vni_2} | | | ... | ${ip6_addr1} | ${ip6_addr2} | | ${dut2s_vxlan1}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} | | | ... | ${ip6_addr2} | ${ip6_addr1} | | ${dut2s_vxlan2}= | And Create VXLAN interface | ${dut2_node} | ${vni_2} | | | ... | ${ip6_addr2} | ${ip6_addr1} | | And Set Interface State | ${dut1_node} | ${dut1s_vxlan1} | up | | And Set Interface State | ${dut1_node} | ${dut1s_vxlan2} | up | | And Set Interface State | ${dut2_node} | ${dut2s_vxlan1} | up | | And Set Interface State | ${dut2_node} | ${dut2s_vxlan2} | up | | And Vpp Node Interfaces Ready Wait | ${dut1_node} | | And Vpp Node Interfaces Ready Wait | ${dut2_node} | | And Create bridge domain | ${dut1_node} | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg_if1} | | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg_if2} | | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1s_vxlan1} | | ... | ${bd_id1} | ${shg1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1s_vxlan2} | | ... | ${bd_id1} | ${shg1} | | And Create bridge domain | ${dut2_node} | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg_if1} | | ... | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2s_vxlan1} | | ... | ${bd_id2} | | And Create bridge domain | ${dut2_node} | ${bd_id3} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg_if2} | | ... | ${bd_id3} | | And Add interface to bridge domain | ${dut2_node} | ${dut2s_vxlan2} | | ... | ${bd_id3} | | Then Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if1} | | ... | ${tg_to_dut2_if1} | | And Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if1} | | ... | ${tg_to_dut2_if2} | | And Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if2} | | ... | ${tg_to_dut2_if1} | | And Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if2} | | ... | ${tg_to_dut2_if2} | | And Run Keyword And Expect Error | ICMP echo Rx timeout | | ... | Send ICMPv6 bidirectionally and verify received packets | | | ... | ${tg_node} | ${tg_to_dut2_if1} | | | ... | ${tg_to_dut2_if2} | TC02: DUT1 and DUT2 with L2BD and VXLANoIPv6 tunnels in different SHGs switch ICMPv6 between TG links | | [Documentation] | | ... | [Top] TG=DUT1=DUT2=TG.[Enc] Eth-IPv6-VXLAN-Eth-IPv6-ICMPv6 on \ | | ... | DUT1-DUT2; Eth-IPv6-ICMPv6 on TG-DUTn. [Cfg] On DUT1 configure L2 | | ... | bridge-domain (MAC learning enabled) with two untagged interfaces | | ... | to TG and two VXLAN interfaces towards the DUT2 and put both VXLAN | | ... | interfaces into the different Split-Horizon-Group (SHGs). On DUT2 | | ... | configure two L2 bridge-domain (MAC learning enabled), each with one | | ... | untagged interface to TG and one VXLAN interface towards the DUT1. | | ... | [Ver] Make TG send ICMPv6 Echo Req between all four of its interfaces | | ... | to be switched by DUT1 and DUT2; verify packets are switched between | | ... | all TG interfaces. [Ref] RFC7348. | | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | | Given Configure path for 3-node BD-SHG test | ${nodes['TG']} | | ... | ${nodes['DUT1']} | | ... | ${nodes['DUT2']} | | And Set interfaces in 3-node BD-SHG test up | | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr1} | | ... | ${ip6_prefix} | | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr2} | | ... | ${ip6_prefix} | | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr2} | | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr1} | | And Vpp All RA Suppress Link Layer | ${nodes} | | ${dut1s_vxlan1}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} | | | ... | ${ip6_addr1} | ${ip6_addr2} | | ${dut1s_vxlan2}= | And Create VXLAN interface | ${dut1_node} | ${vni_2} | | | ... | ${ip6_addr1} | ${ip6_addr2} | | ${dut2s_vxlan1}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} | | | ... | ${ip6_addr2} | ${ip6_addr1} | | ${dut2s_vxlan2}= | And Create VXLAN interface | ${dut2_node} | ${vni_2} | | | ... | ${ip6_addr2} | ${ip6_addr1} | | And Set Interface State | ${dut1_node} | ${dut1s_vxlan1} | up | | And Set Interface State | ${dut1_node} | ${dut1s_vxlan2} | up | | And Set Interface State | ${dut2_node} | ${dut2s_vxlan1} | up | | And Set Interface State | ${dut2_node} | ${dut2s_vxlan2} | up | | And Vpp Node Interfaces Ready Wait | ${dut1_node} | | And Vpp Node Interfaces Ready Wait | ${dut2_node} | | And Create bridge domain | ${dut1_node} | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg_if1} | | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg_if2} | | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1s_vxlan1} | | ... | ${bd_id1} | ${shg1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1s_vxlan2} | | ... | ${bd_id1} | ${shg2} | | And Create bridge domain | ${dut2_node} | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg_if1} | | ... | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2s_vxlan1} | | ... | ${bd_id2} | | And Create bridge domain | ${dut2_node} | ${bd_id3} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg_if2} | | ... | ${bd_id3} | | And Add interface to bridge domain | ${dut2_node} | ${dut2s_vxlan2} | | ... | ${bd_id3} | | Then Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if1} | | ... | ${tg_to_dut2_if1} | | And Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if1} | | ... | ${tg_to_dut2_if2} | | And Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if2} | | ... | ${tg_to_dut2_if1} | | And Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut1_if2} | | ... | ${tg_to_dut2_if2} | | And Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | | ... | ${tg_to_dut2_if1} | | ... | ${tg_to_dut2_if2}