ip4 tunnels

eth2p-ethip4vxlan-l2bdbasemaclrn-dev

L2BD with VXLANoIPv4 test cases

  • [Top] Network topologies: TG-DUT1-TG 2-node circular topology with single links between nodes.

  • [Enc] Packet encapsulations: Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 on TG-DUT.

  • [Cfg] DUT configuration: DUT1 is configured with L2 bridge-domain switching combined with MAC learning enable. VXLAN tunnels are configured on links betwen TG and DUT.

  • [Ver] TG verification: Test Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 packet is sent by TG on link to DUT1; on receive TG verifies packets for correctness and their IPv4 src-addr, dst-addr and MAC addresses.

  • [Ref] Applicable standard specifications: RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-ethip4vxlan- 
l2bdbasemaclrn-dev

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’trace add dpdk-input 50’)
cli_inband(cmd=’trace add vhost-user-input 50’)
cli_inband(cmd=’trace add memif-input 50’)
cli_inband(cmd=’trace add avf-input 50’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx1ax00x01’}}})
vxlan_add_del_tunnel(is_add=1,is_ipv6=0,instance=4294967295,src_address=b’xacx10x00x01’,dst_address=b’xacx11x00x02’,mcast_sw_if_index=4294967295,encap_vrf_id=0,decap_next_index=4294967295,vni=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
vxlan_add_del_tunnel(is_add=1,is_ipv6=0,instance=4294967295,src_address=b’xacx1ax00x01’,dst_address=b’xacx1bx00x02’,mcast_sw_if_index=4294967295,encap_vrf_id=0,decap_next_index=4294967295,vni=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:05’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘172.26.0.2’})
ip_route_add_del(is_add=True,is_multipath=False,route={‘table_id’: 0, ‘prefix’: {‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx11x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 2, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’xacx10x00x02’}, ‘via_label’: 1048576, ‘obj_id’: 4294967295}, ‘n_labels’: 0, ‘label_stack’: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}]})
ip_route_add_del(is_add=True,is_multipath=False,route={‘table_id’: 0, ‘prefix’: {‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx1bx00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 1, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’xacx1ax00x02’}, ‘via_label’: 1048576, ‘obj_id’: 4294967295}, ‘n_labels’: 0, ‘label_stack’: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}]})
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=1,enable=1)
sw_interface_set_l2_bridge(rx_sw_if_index=3,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_l2_bridge(rx_sw_if_index=4,bd_id=1,shg=0,port_type=0,enable=1)

eth2p-ethip4vxlan-l2xcbase-dev

L2XC with VXLANoIPv4 test cases

  • [Top] Network topologies: TG-DUT1-TG 2-node circular topology with single links between nodes.

  • [Enc] Packet encapsulations: Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 on TG-DUT.

  • [Cfg] DUT configuration: DUT1 is configured with L2 cross-connect. VXLAN tunnels are configured on links betwen TG and DUT.

  • [Ver] TG verification: Test Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 packet is sent by TG on link to DUT1; on receive TG verifies packets for correctness and their IPv4 src-addr, dst-addr and MAC addresses.

  • [Ref] Applicable standard specifications: RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-ethip4vxlan-l2xcbase-dev 

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’trace add dpdk-input 50’)
cli_inband(cmd=’trace add vhost-user-input 50’)
cli_inband(cmd=’trace add memif-input 50’)
cli_inband(cmd=’trace add avf-input 50’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx1ax00x01’}}})
vxlan_add_del_tunnel(is_add=1,is_ipv6=0,instance=4294967295,src_address=b’xacx10x00x01’,dst_address=b’xacx11x00x02’,mcast_sw_if_index=4294967295,encap_vrf_id=0,decap_next_index=4294967295,vni=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
vxlan_add_del_tunnel(is_add=1,is_ipv6=0,instance=4294967295,src_address=b’xacx1ax00x01’,dst_address=b’xacx1bx00x02’,mcast_sw_if_index=4294967295,encap_vrf_id=0,decap_next_index=4294967295,vni=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:05’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘172.26.0.2’})
ip_route_add_del(is_add=True,is_multipath=False,route={‘table_id’: 0, ‘prefix’: {‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx11x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 2, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’xacx10x00x02’}, ‘via_label’: 1048576, ‘obj_id’: 4294967295}, ‘n_labels’: 0, ‘label_stack’: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}]})
ip_route_add_del(is_add=True,is_multipath=False,route={‘table_id’: 0, ‘prefix’: {‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx1bx00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 1, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’xacx1ax00x02’}, ‘via_label’: 1048576, ‘obj_id’: 4294967295}, ‘n_labels’: 0, ‘label_stack’: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}]})
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=1,enable=1)
sw_interface_set_l2_xconnect(rx_sw_if_index=3,tx_sw_if_index=4,enable=1)
sw_interface_set_l2_xconnect(rx_sw_if_index=4,tx_sw_if_index=3,enable=1)

lisp

eth2p-ethip4lisp-ip4base-dev

ip4-lisp-ip4 encapsulation test cases

  • [Top] Network Topologies: TG-DUT1-TG 2-node circular topology with single links between nodes.

  • [Enc] Packet Encapsulations: Eth-IPv4-LISP-IPv4-ICMPv4 on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4 routing over LISPoIPv4 tunnel.

  • [Cfg] DUT configuration: DUT is configured with IPv4 routing and static routes. LISPoIPv4 tunnel is configured between DUT1 and TG2.

  • [Ver] TG verification: Test ICMPv4 Echo Request packets are sent by TG on if1 link to DUT1; on receive TG verifies packets for correctness and their IPv4 src-addr, dst-addr and MAC addresses.

  • [Ref] Applicable standard specifications: RFC6830.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 46b-ethip4lisp-ip4base-dev 

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’trace add dpdk-input 50’)
cli_inband(cmd=’trace add vhost-user-input 50’)
cli_inband(cmd=’trace add memif-input 50’)
cli_inband(cmd=’trace add avf-input 50’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x06x00x00x01’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x06x00x01x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:05’, ‘ip_address’: ‘6.0.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘6.0.2.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘6.0.1.2’})
lisp_enable_disable(is_en=1)
lisp_add_del_locator_set(is_add=1,locator_set_name=b’tst_locator’,locator_num=0,locators=[])
lisp_add_del_locator(is_add=1,locator_set_name=b’tst_locator’,sw_if_index=1,priority=1,weight=1)
lisp_add_del_local_eid(is_add=1,eid_type=0,eid=b’x06x00x00x00’,prefix_len=24,locator_set_name=b’tst_locator’,vni=0)
lisp_add_del_remote_mapping(is_add=1,is_src_dst=1,vni=0,eid_type=0,eid=b’x06x00x02x00’,eid_len=24,seid=b’x06x00x00x00’,seid_len=24,rloc_num=1,rlocs=[{‘is_ip4’: 1, ‘addr’: b’x06x00x01x02’}])
lisp_add_del_adjacency(is_add=1,vni=0,eid_type=0,reid=b’x06x00x02x00’,reid_len=24,leid=b’x06x00x00x00’,leid_len=24)

eth2p-ethip4lispgpe-ip4base-dev

ip4-lispgpe-ip4 encapsulation test cases

  • [Top] Network Topologies: TG-DUT1-TG 2-node circular topology with single links between nodes.

  • [Enc] Packet Encapsulations: Eth-IPv4-LISPGPE-IPv4-ICMPv4 on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4 routing over LISPoIPv4 tunnel.

  • [Cfg] DUT configuration: DUT1 and TG(if2) are configured with IPv4 routing and static routes. LISPoIPv4 tunnel is configured between DUT1 and TG.

  • [Ver] TG verification: Test ICMPv4 Echo Request packets are sent in TG->DUT(if1); On receive TG(if2) verifies packets for correctness and their IPv4 src-addr, dst-addr and MAC addresses.

  • [Ref] Applicable standard specifications: RFC6830.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 46b-ethip4lispgpe-ip4base-dev 

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’trace add dpdk-input 50’)
cli_inband(cmd=’trace add vhost-user-input 50’)
cli_inband(cmd=’trace add memif-input 50’)
cli_inband(cmd=’trace add avf-input 50’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x06x00x00x01’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x06x00x01x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:05’, ‘ip_address’: ‘6.0.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘6.0.2.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘6.0.1.2’})
lisp_enable_disable(is_en=1)
gpe_enable_disable(is_en=1)
lisp_add_del_locator_set(is_add=1,locator_set_name=b’tst_locator’,locator_num=0,locators=[])
lisp_add_del_locator(is_add=1,locator_set_name=b’tst_locator’,sw_if_index=1,priority=1,weight=1)
lisp_add_del_local_eid(is_add=1,eid_type=0,eid=b’x06x00x00x00’,prefix_len=24,locator_set_name=b’tst_locator’,vni=0)
lisp_add_del_remote_mapping(is_add=1,is_src_dst=1,vni=0,eid_type=0,eid=b’x06x00x02x00’,eid_len=24,seid=b’x06x00x00x00’,seid_len=24,rloc_num=1,rlocs=[{‘is_ip4’: 1, ‘addr’: b’x06x00x01x02’}])
lisp_add_del_adjacency(is_add=1,vni=0,eid_type=0,reid=b’x06x00x02x00’,reid_len=24,leid=b’x06x00x00x00’,leid_len=24)

eth2p-ethip4lispgpe-ip6base-dev

ip4-lispgpe-ip6 encapsulation test cases

  • [Top] Network Topologies: TG(if1)-DUT1-TG(if2) 2-node circular topology with single links between nodes.

  • [Enc] Packet Encapsulations: Eth-IPv4-LISPGPE-IPv6-ICMPv6 on DUT1-TG(if2),Eth-IPv6-ICMPv6 on TG-DUTn for IPv6 routing over LISPoIPv4 tunnel.

  • [Cfg] DUT configuration: DUT1 and TG(if2) are configured with IPv6 routing and static routes. LISPoIPv4 tunnel is configured between DUT1 and TG(if2).

  • [Ver] TG verification: Test ICMPv6 Echo Request packets are sent in if1 by TG on links to DUT1; on receive TG verifies packets for correctness and their IPv6 src-addr, dst-addr and MAC addresses.

  • [Ref] Applicable standard specifications: RFC6830.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 62b-ethip4lispgpe-ip6base-dev 

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’trace add dpdk-input 50’)
cli_inband(cmd=’trace add vhost-user-input 50’)
cli_inband(cmd=’trace add memif-input 50’)
cli_inband(cmd=’trace add avf-input 50’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 64, ‘address’: {‘af’: 1, ‘un’: {‘ip6’: b’x00x06x00x00x00x00x00x00x00x00x00x00x00x00x00x01’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x06x00x01x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:05’, ‘ip_address’: ‘6::2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘6:0:2::2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘fa:ce:00:00:02:04’, ‘ip_address’: ‘6.0.1.2’})
ip_address_dump(sw_if_index=1,is_ipv6=True)
ip_address_dump(sw_if_index=2,is_ipv6=True)
sw_interface_ip6nd_ra_config(sw_if_index=2,suppress=1)
lisp_enable_disable(is_en=1)
gpe_enable_disable(is_en=1)
lisp_add_del_locator_set(is_add=1,locator_set_name=b’tst_locator’,locator_num=0,locators=[])
lisp_add_del_locator(is_add=1,locator_set_name=b’tst_locator’,sw_if_index=1,priority=1,weight=1)
lisp_add_del_local_eid(is_add=1,eid_type=1,eid=b’x00x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00’,prefix_len=64,locator_set_name=b’tst_locator’,vni=0)
lisp_add_del_remote_mapping(is_add=1,is_src_dst=1,vni=0,eid_type=1,eid=b’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x00’,eid_len=64,seid=b’x00x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00’,seid_len=64,rloc_num=1,rlocs=[{‘is_ip4’: 1, ‘addr’: b’x06x00x01x02’}])
lisp_add_del_adjacency(is_add=1,vni=0,eid_type=1,reid=b’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x00’,reid_len=64,leid=b’x00x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00’,leid_len=64)