func

ip4 tunnels

lisp

eth2p-ethip4lisp-ip4base-func

IP AFI independent functional tests.

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular topology with single links between nodes.
  • [Enc] Packet Encapsulations: Eth-IPv4-LISP-IPv4-ICMPv4 on DUT1-DUT2, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4 routing over LISPoIPv4 tunnel.
  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with IPv4 routing and static routes. LISPoIPv4 tunnel is configured between 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 IPv4 src-addr, dst-addr and MAC addresses.
  • [Ref] Applicable standard specifications: RFC6830.
Name VPP API Test Commands History - Commands Used Per Test Case
tc01: dut1 and dut2 route ipv4 over lispoipv4 tunnel after disable-enable
 DUT1:  
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=3,address=’x06x00x03x01’,is_ipv6=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=1,address=’x06x00x01x01’,is_ipv6=0)
ip_probe_neighbor(dst=’6.0.3.2’,sw_if_index=3)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.1.2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:89:ff:0e’})
lisp_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’ls1’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’ls1’)
lisp_add_del_local_eid(is_add=1,eid_type=0,vni=0,eid=’x06x00x01x00’,locator_set_name=’ls1’,prefix_len=24)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=0,vni=0,eid=’x06x00x02x00’,rlocs=[{‘addr’: ‘x06x00x03x02’, ‘is_ip4’: 1}],seid=’x06x00x01x00’,seid_len=24,is_src_dst=1,eid_len=24)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x02x00’,vni=0,reid_len=24,leid=’x06x00x01x00’)
lisp_enable_disable(is_en=0)
lisp_enable_disable(is_en=1)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x02x00’,vni=0,reid_len=24,leid=’x06x00x01x00’)
cli_inband(cmd=’show trace ‘)

DUT2:
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=3,address=’x06x00x03x02’,is_ipv6=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=1,address=’x06x00x02x01’,is_ipv6=0)
ip_probe_neighbor(dst=’6.0.3.1’,sw_if_index=3)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.2.2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:bd:01:d2’})
lisp_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’ls1’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’ls1’)
lisp_add_del_local_eid(is_add=1,eid_type=0,vni=0,eid=’x06x00x02x00’,locator_set_name=’ls1’,prefix_len=24)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=0,vni=0,eid=’x06x00x01x00’,rlocs=[{‘addr’: ‘x06x00x03x01’, ‘is_ip4’: 1}],seid=’x06x00x02x00’,seid_len=24,is_src_dst=1,eid_len=24)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x01x00’,vni=0,reid_len=24,leid=’x06x00x02x00’)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x01x00’,vni=0,reid_len=24,leid=’x06x00x02x00’)
cli_inband(cmd=’show trace ‘)

eth2p-ethip4lispgpe-ip4base-func

ip4-lispgpe-ip4 encapsulation test cases

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular topology with single links between nodes.
  • [Enc] Packet Encapsulations: Eth-IPv4-LISP-IPv4-ICMPv4 on DUT1-DUT2, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4 routing over LISPoIPv4 tunnel.
  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with IPv4 routing and static routes. LISPoIPv4 tunnel is configured between 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 IPv4 src-addr, dst-addr and MAC addresses.
  • [Ref] Applicable standard specifications: RFC6830.
Name VPP API Test Commands History - Commands Used Per Test Case
tc01: dut1 and dut2 route ipv4 bidirectionally over lisp gpe tunnel using physical interfaces
 DUT1:  
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=3,address=’x06x00x04x01’,is_ipv6=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=1,address=’x06x00x01x02’,is_ipv6=0)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.1.1’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:89:ff:0e’})
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.4.2’, ‘flags’: 0, ‘sw_if_index’: 3, ‘mac_address’: ‘fa:16:3e:c6:9f:8a’})
lisp_enable_disable(is_en=1)
gpe_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’tst_locator’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’tst_locator’)
lisp_add_del_local_eid(is_add=1,eid_type=0,vni=0,eid=’x06x00x01x00’,locator_set_name=’tst_locator’,prefix_len=24)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=0,vni=0,eid=’x06x00x05x00’,rlocs=[{‘addr’: ‘x06x00x04x02’, ‘is_ip4’: 1}],seid=’x06x00x01x00’,seid_len=24,is_src_dst=1,eid_len=24)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x05x00’,vni=0,reid_len=24,leid=’x06x00x01x00’)
cli_inband(cmd=’show trace ‘)

DUT2:
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=3,address=’x06x00x04x02’,is_ipv6=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=1,address=’x06x00x05x01’,is_ipv6=0)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.5.2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:bd:01:d2’})
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.4.1’, ‘flags’: 0, ‘sw_if_index’: 3, ‘mac_address’: ‘fa:16:3e:8b:3e:ab’})
lisp_enable_disable(is_en=1)
gpe_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’tst_locator’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’tst_locator’)
lisp_add_del_local_eid(is_add=1,eid_type=0,vni=0,eid=’x06x00x05x00’,locator_set_name=’tst_locator’,prefix_len=24)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=0,vni=0,eid=’x06x00x01x00’,rlocs=[{‘addr’: ‘x06x00x04x01’, ‘is_ip4’: 1}],seid=’x06x00x05x00’,seid_len=24,is_src_dst=1,eid_len=24)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x01x00’,vni=0,reid_len=24,leid=’x06x00x05x00’)
cli_inband(cmd=’show trace ‘)

eth2p-ethip4lispgpe-ip6base-func

LISP static adjacency test cases

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular topology with single links between nodes.
  • [Enc] Packet Encapsulations: Eth-IPv4-LISP-IPv6-ICMPv6 on DUT1-DUT2, Eth-IPv6-ICMPv6 on TG-DUTn for IPv6 routing over LISPoIPv4 tunnel.
  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with IPv6 routing and static routes. LISPoIPv4 tunnel is configured between DUT1 and DUT2.
  • [Ver] TG verification: Test ICMPv6 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: RFC6830.
Name VPP API Test Commands History - Commands Used Per Test Case
tc01: dut1 and dut2 route ipv6 bidirectionally over lispoipv4 tunnel
 DUT1:  
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=3,address=’x06x00x03x01’,is_ipv6=0)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=1,address=’x00x06x00x00x00x01x00x00x00x00x00x00x00x00x00x01’,is_ipv6=1)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6:0:1::2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:89:ff:0e’})
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.3.2’, ‘flags’: 0, ‘sw_if_index’: 3, ‘mac_address’: ‘fa:16:3e:c6:9f:8a’})
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
ip_address_dump(sw_if_index=1,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=1)
lisp_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’ls1’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’ls1’)
lisp_add_del_local_eid(is_add=1,eid_type=1,vni=0,eid=’x00x06x00x00x00x01x00x00x00x00x00x00x00x00x00x00’,locator_set_name=’ls1’,prefix_len=64)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=1,vni=0,eid=’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x00’,rlocs=[{‘addr’: ‘x06x00x03x02’, ‘is_ip4’: 1}],seid=’x00x06x00x00x00x01x00x00x00x00x00x00x00x00x00x00’,seid_len=64,is_src_dst=1,eid_len=64)
lisp_add_del_adjacency(is_add=1,eid_type=1,leid_len=64,reid=’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x00’,vni=0,reid_len=64,leid=’x00x06x00x00x00x01x00x00x00x00x00x00x00x00x00x00’)
cli_inband(cmd=’show trace ‘)

DUT2:
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=3,address=’x06x00x03x02’,is_ipv6=0)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=1,address=’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x01’,is_ipv6=1)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6:0:2::2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:bd:01:d2’})
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.3.1’, ‘flags’: 0, ‘sw_if_index’: 3, ‘mac_address’: ‘fa:16:3e:8b:3e:ab’})
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
ip_address_dump(sw_if_index=1,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=1)
lisp_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’ls1’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’ls1’)
lisp_add_del_local_eid(is_add=1,eid_type=1,vni=0,eid=’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x00’,locator_set_name=’ls1’,prefix_len=64)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=1,vni=0,eid=’x00x06x00x00x00x01x00x00x00x00x00x00x00x00x00x00’,rlocs=[{‘addr’: ‘x06x00x03x01’, ‘is_ip4’: 1}],seid=’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x00’,seid_len=64,is_src_dst=1,eid_len=64)
lisp_add_del_adjacency(is_add=1,eid_type=1,leid_len=64,reid=’x00x06x00x00x00x01x00x00x00x00x00x00x00x00x00x00’,vni=0,reid_len=64,leid=’x00x06x00x00x00x02x00x00x00x00x00x00x00x00x00x00’)
cli_inband(cmd=’show trace ‘)

ip6 tunnels

lisp

eth2p-ethip6lispgpe-ip4base-func

LISP static adjacency test cases

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular topology with single links between nodes.
  • [Enc] Packet Encapsulations: Eth-IPv6-LISP-IPv4-ICMPv4 on DUT1-DUT2, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4 routing over LISPoIPv6 tunnel.
  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with IPv4 routing and static routes. LISPoIPv6 tunnel is configured between 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 IPv4 src-addr, dst-addr and MAC addresses.
  • [Ref] Applicable standard specifications: RFC6830.
Name VPP API Test Commands History - Commands Used Per Test Case
tc01: dut1 and dut2 route ipv4 bidirectionally over lispoipv6 tunnel
 DUT1:  
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=3,address=’x00x06x00x00x00x03x00x00x00x00x00x00x00x00x00x01’,is_ipv6=1)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=1,address=’x06x00x01x01’,is_ipv6=0)
ip_probe_neighbor(dst=’6:0:3::2’,sw_if_index=3)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.1.2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:d8:b3:ab’})
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=3)
ip_address_dump(sw_if_index=1,is_ipv6=1)
lisp_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’ls1’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’ls1’)
lisp_add_del_local_eid(is_add=1,eid_type=0,vni=0,eid=’x06x00x01x00’,locator_set_name=’ls1’,prefix_len=24)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=0,vni=0,eid=’x06x00x02x00’,rlocs=[{‘addr’: ‘x00x06x00x00x00x03x00x00x00x00x00x00x00x00x00x02’, ‘is_ip4’: 0}],seid=’x06x00x01x00’,seid_len=24,is_src_dst=1,eid_len=24)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x02x00’,vni=0,reid_len=24,leid=’x06x00x01x00’)
cli_inband(cmd=’show trace ‘)

DUT2:
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=3,address=’x00x06x00x00x00x03x00x00x00x00x00x00x00x00x00x02’,is_ipv6=1)
sw_interface_add_del_address(address_length=24,del_all=0,is_add=1,sw_if_index=1,address=’x06x00x02x01’,is_ipv6=0)
ip_probe_neighbor(dst=’6:0:3::1’,sw_if_index=3)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘6.0.2.2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:c4:66:ef’})
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=3)
ip_address_dump(sw_if_index=1,is_ipv6=1)
lisp_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’ls1’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’ls1’)
lisp_add_del_local_eid(is_add=1,eid_type=0,vni=0,eid=’x06x00x02x00’,locator_set_name=’ls1’,prefix_len=24)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=0,vni=0,eid=’x06x00x01x00’,rlocs=[{‘addr’: ‘x00x06x00x00x00x03x00x00x00x00x00x00x00x00x00x01’, ‘is_ip4’: 0}],seid=’x06x00x02x00’,seid_len=24,is_src_dst=1,eid_len=24)
lisp_add_del_adjacency(is_add=1,eid_type=0,leid_len=24,reid=’x06x00x01x00’,vni=0,reid_len=24,leid=’x06x00x02x00’)
cli_inband(cmd=’show trace ‘)

eth2p-ethip6lispgpe-ip6base-func

ip6-lispgpe-ip6 encapsulation test cases

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular topology with single links between nodes.
  • [Enc] Packet Encapsulations: Eth-IPv6-LISP-IPv6-ICMPv6 on DUT1-DUT2, Eth-IPv6-ICMPv6 on TG-DUTn for IPv6 routing over LISPoIPv6 tunnel.
  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with IPv6 routing and static routes. LISPoIPv6 tunnel is configured between DUT1 and DUT2.
  • [Ver] TG verification: Test ICMPv6 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: RFC6830.
Name VPP API Test Commands History - Commands Used Per Test Case
tc01: dut1 and dut2 route ipv6 bidirectionally over lisp gpe tunnel using physical interfaces
 DUT1:  
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
ip_address_dump(sw_if_index=1,is_ipv6=1)
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=3,address=’ x01xcdxbax00x03x00x00x00x00x00x00x00x00x00x01’,is_ipv6=1)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=1,address=’ x01xcdxbax00x01x00x00x00x00x00x00x00x00x00x01’,is_ipv6=1)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘2001:cdba:1::2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:d8:b3:ab’})
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘2001:cdba:3::2’, ‘flags’: 0, ‘sw_if_index’: 3, ‘mac_address’: ‘fa:16:3e:32:89:17’})
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=3)
ip_address_dump(sw_if_index=1,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=1)
lisp_enable_disable(is_en=1)
gpe_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’tst_locator’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’tst_locator’)
lisp_add_del_local_eid(is_add=1,eid_type=1,vni=0,eid=’ x01xcdxbax00x01x00x00x00x00x00x00x00x00x00x00’,locator_set_name=’tst_locator’,prefix_len=64)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=1,vni=0,eid=’ x01xcdxbax00x02x00x00x00x00x00x00x00x00x00x00’,rlocs=[{‘addr’: ‘ x01xcdxbax00x03x00x00x00x00x00x00x00x00x00x02’, ‘is_ip4’: 0}],seid=’ x01xcdxbax00x01x00x00x00x00x00x00x00x00x00x00’,seid_len=64,is_src_dst=1,eid_len=64)
lisp_add_del_adjacency(is_add=1,eid_type=1,leid_len=64,reid=’ x01xcdxbax00x02x00x00x00x00x00x00x00x00x00x00’,vni=0,reid_len=64,leid=’ x01xcdxbax00x01x00x00x00x00x00x00x00x00x00x00’)
cli_inband(cmd=’show trace ‘)

DUT2:
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
ip_address_dump(sw_if_index=1,is_ipv6=1)
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=3,address=’ x01xcdxbax00x03x00x00x00x00x00x00x00x00x00x02’,is_ipv6=1)
sw_interface_add_del_address(address_length=64,del_all=0,is_add=1,sw_if_index=1,address=’ x01xcdxbax00x02x00x00x00x00x00x00x00x00x00x01’,is_ipv6=1)
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘2001:cdba:2::2’, ‘flags’: 0, ‘sw_if_index’: 1, ‘mac_address’: ‘fa:16:3e:c4:66:ef’})
ip_neighbor_add_del(is_add=1,neighbor={‘ip_address’: ‘2001:cdba:3::1’, ‘flags’: 0, ‘sw_if_index’: 3, ‘mac_address’: ‘fa:16:3e:fc:04:c4’})
ip_address_dump(sw_if_index=4,is_ipv6=1)
ip_address_dump(sw_if_index=2,is_ipv6=1)
ip_address_dump(sw_if_index=3,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=3)
ip_address_dump(sw_if_index=1,is_ipv6=1)
sw_interface_ip6nd_ra_config(suppress=1,sw_if_index=1)
lisp_enable_disable(is_en=1)
gpe_enable_disable(is_en=1)
lisp_add_del_locator_set(locators=[],is_add=1,locator_num=0,locator_set_name=’tst_locator’)
lisp_add_del_locator(priority=1,is_add=1,weight=1,sw_if_index=3,locator_set_name=’tst_locator’)
lisp_add_del_local_eid(is_add=1,eid_type=1,vni=0,eid=’ x01xcdxbax00x02x00x00x00x00x00x00x00x00x00x00’,locator_set_name=’tst_locator’,prefix_len=64)
lisp_add_del_remote_mapping(rloc_num=1,is_add=1,eid_type=1,vni=0,eid=’ x01xcdxbax00x01x00x00x00x00x00x00x00x00x00x00’,rlocs=[{‘addr’: ‘ x01xcdxbax00x03x00x00x00x00x00x00x00x00x00x01’, ‘is_ip4’: 0}],seid=’ x01xcdxbax00x02x00x00x00x00x00x00x00x00x00x00’,seid_len=64,is_src_dst=1,eid_len=64)
lisp_add_del_adjacency(is_add=1,eid_type=1,leid_len=64,reid=’ x01xcdxbax00x01x00x00x00x00x00x00x00x00x00x00’,vni=0,reid_len=64,leid=’ x01xcdxbax00x02x00x00x00x00x00x00x00x00x00x00’)
cli_inband(cmd=’show trace ‘)

l2xc

eth2p-dot1ad-l2xcbase-func

L2 cross-connect with QinQ test cases

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular topology with single links between nodes.
  • [Enc] Packet encapsulations: Eth-dot1ad-IPv4-ICMPv4 on DUT1-DUT2, Eth-IPv4-ICMPv4 on TG-DUTn for L2 switching of IPv4.
  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with L2 cross-connect (L2XC) switching with 802.1ad QinQ VLAN tag push and pop.
  • [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 IPv4 src-addr, dst-addr and MAC addresses.
  • [Ref] Applicable standard specifications: IEEE 802.1ad.
Name VPP API Test Commands History - Commands Used Per Test Case
tc01: dut1 and dut2 with l2xc and two vlan push-pop switch icmpv4 between two tg links
 DUT1:  
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
create_subif(inner_vlan_id=200,default_sub=0,sub_id=10,one_tag=0,exact_match=0,two_tags=1,outer_vlan_id_any=0,inner_vlan_id_any=0,no_tags=0,sw_if_index=3,outer_vlan_id=100,dot1ad=0)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_set_flags(sw_if_index=5,admin_up_down=1)
l2_interface_vlan_tag_rewrite(vtr_op=4,tag2=0,push_dot1q=1,tag1=0,sw_if_index=5)
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=5,admin_up_down=1)
sw_interface_set_l2_xconnect(rx_sw_if_index=1,enable=1,tx_sw_if_index=5)
sw_interface_set_l2_xconnect(rx_sw_if_index=5,enable=1,tx_sw_if_index=1)
cli_inband(cmd=’show trace ‘)

DUT2:
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_set_flags(sw_if_index=3,admin_up_down=1)
create_subif(inner_vlan_id=200,default_sub=0,sub_id=10,one_tag=0,exact_match=0,two_tags=1,outer_vlan_id_any=0,inner_vlan_id_any=0,no_tags=0,sw_if_index=3,outer_vlan_id=100,dot1ad=0)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_dump(name_filter=’’,name_filter_valid=0)
sw_interface_set_flags(sw_if_index=5,admin_up_down=1)
l2_interface_vlan_tag_rewrite(vtr_op=4,tag2=0,push_dot1q=1,tag1=0,sw_if_index=5)
sw_interface_set_flags(sw_if_index=1,admin_up_down=1)
sw_interface_set_flags(sw_if_index=5,admin_up_down=1)
sw_interface_set_l2_xconnect(rx_sw_if_index=1,enable=1,tx_sw_if_index=5)
sw_interface_set_l2_xconnect(rx_sw_if_index=5,enable=1,tx_sw_if_index=1)
cli_inband(cmd=’show trace ‘)