3n-alt-xl710

40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr

RFC2544: Pkt throughput L2BD test cases with vhost

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular opology with single links between nodes.

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4.

  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with L2 bridge-domain and MAC learning enabled. Qemu VNFs are connected to VPP via vhost-user interfaces. Guest is running testpmd interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is ested with Intel-XL710.

  • [Ver] TG vefication: In MaxReceivedRate tests TG sends traffic at line rate and reports total received packets over trial period. Test packets are generated by TG on links to DUTs. TG traffic profile contains two L3 flow-groups (flow-group per direction, 253 flows per flow-group) with all packets containing Ethernet header, IPv4 header with IP protocol=61 and static payload. MAC addresses are matching MAC addresses of the TG node interfaces.

  • [Ref] Applicable standard specifications: RFC2544.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 64b-1t1c-eth-l2bdbasemaclrn- 
eth-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=2,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=1,bd_id=2,shg=0,port_type=0,enable=True)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=3,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=4,bd_id=2,shg=0,port_type=0,enable=True)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)

 64b-2t2c-eth-l2bdbasemaclrn- 
eth-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=2,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=1,bd_id=2,shg=0,port_type=0,enable=True)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=3,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=4,bd_id=2,shg=0,port_type=0,enable=True)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)

 64b-4t4c-eth-l2bdbasemaclrn- 
eth-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=2,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=1,bd_id=2,shg=0,port_type=0,enable=True)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=3,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=4,bd_id=2,shg=0,port_type=0,enable=True)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=3,worker_id=3,is_main=False)

40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr

RFC2544: Pkt throughput L2BD test cases with vhost

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular opology with single links between nodes.

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4.

  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with L2 bridge-domain and MAC learning enabled. Qemu VNFs are connected to VPP via vhost-user interfaces. Guest is running VPP l2xc interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is ested with Intel-XL710.

  • [Ver] TG vefication: In MaxReceivedRate tests TG sends traffic at line rate and reports total received packets over trial period. Test packets are generated by TG on links to DUTs. TG traffic profile contains two L3 flow-groups (flow-group per direction, 253 flows per flow-group) with all packets containing Ethernet header, IPv4 header with IP protocol=61 and static payload. MAC addresses are matching MAC addresses of the TG node interfaces.

  • [Ref] Applicable standard specifications: RFC2544.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 64b-1t1c-eth-l2bdbasemaclrn- 
eth-2vhostvr1024-1vm-vppl2xc-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=2,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=1,bd_id=2,shg=0,port_type=0,enable=True)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=3,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=4,bd_id=2,shg=0,port_type=0,enable=True)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)

 64b-2t2c-eth-l2bdbasemaclrn- 
eth-2vhostvr1024-1vm-vppl2xc-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=2,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=1,bd_id=2,shg=0,port_type=0,enable=True)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=3,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=4,bd_id=2,shg=0,port_type=0,enable=True)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)

 64b-4t4c-eth-l2bdbasemaclrn- 
eth-2vhostvr1024-1vm-vppl2xc-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=2,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=1,bd_id=2,shg=0,port_type=0,enable=True)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=3,bd_id=1,shg=0,port_type=0,enable=True)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=4,bd_id=2,shg=0,port_type=0,enable=True)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=3,worker_id=3,is_main=False)

40ge2p1xl710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr

RFC2544: Pkt throughput IPv4 test cases with vhost

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular opology with single links between nodes.

  • [Enc] Packet Encapsulations: Eth-IPv4 for IPv4 routing.

  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with IPv4.

outing and two static IPv4 /24 route entries. Qemu VNFs are connected to VPP via vhost-user interfaces. Guest is running testpmd interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is ested with Intel-XL710.

  • [Ver] TG vefication: In MaxReceivedRate tests TG sends traffic at line rate and reports total received packets over trial period. Test packets are generated by TG on links to DUTs. TG traffic profile contains two L3 flow-groups (flow-group per direction, 253 flows per flow-group) with all packets containing Ethernet header, IPv4 header with IP protocol=61 and static payload. MAC addresses are matching MAC addresses of the TG node interfaces.

  • [Ref] Applicable standard specifications: RFC2544.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 64b-1t1c-ethip4-ip4base- 
eth-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=2,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=1,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x96x00x00x02’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xc8x00x00x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:c3:e7:a0’, ‘ip_address’: ‘200.0.0.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘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’x96x00x00x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘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’xc8x00x00x02’}, ‘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]}]})
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=3,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=4,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=3,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x01x02’}}})
sw_interface_add_del_address(sw_if_index=4,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x02x02’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 3, ‘flags’: 0, ‘mac_address’: ‘02:fe:db:b4:75:0d’, ‘ip_address’: ‘1.1.2.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 4, ‘flags’: 0, ‘mac_address’: ‘02:fe:6c:84:35:81’, ‘ip_address’: ‘1.1.1.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 3, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x02x02’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 4, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x01x02’}, ‘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_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)

 64b-2t2c-ethip4-ip4base- 
eth-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=2,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=1,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x96x00x00x02’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xc8x00x00x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:c3:e7:a0’, ‘ip_address’: ‘200.0.0.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘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’x96x00x00x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘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’xc8x00x00x02’}, ‘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]}]})
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=3,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=4,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=3,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x01x02’}}})
sw_interface_add_del_address(sw_if_index=4,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x02x02’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 3, ‘flags’: 0, ‘mac_address’: ‘02:fe:5d:74:5f:a3’, ‘ip_address’: ‘1.1.2.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 4, ‘flags’: 0, ‘mac_address’: ‘02:fe:76:93:aa:c5’, ‘ip_address’: ‘1.1.1.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 3, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x02x02’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 4, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x01x02’}, ‘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_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)

 64b-4t4c-ethip4-ip4base- 
eth-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=2,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=1,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x96x00x00x02’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xc8x00x00x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:c3:e7:a0’, ‘ip_address’: ‘200.0.0.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘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’x96x00x00x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘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’xc8x00x00x02’}, ‘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]}]})
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=3,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=4,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=3,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x01x02’}}})
sw_interface_add_del_address(sw_if_index=4,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x02x02’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 3, ‘flags’: 0, ‘mac_address’: ‘02:fe:cb:8b:ed:4f’, ‘ip_address’: ‘1.1.2.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 4, ‘flags’: 0, ‘mac_address’: ‘02:fe:1c:6b:50:0b’, ‘ip_address’: ‘1.1.1.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 3, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x02x02’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 4, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x01x02’}, ‘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_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=3,worker_id=3,is_main=False)

40ge2p1xl710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-mrr

RFC2544: Pkt throughput IPv4 test cases with vhost

  • [Top] Network Topologies: TG-DUT1-DUT2-TG 3-node circular opology with single links between nodes.

  • [Enc] Packet Encapsulations: Eth-IPv4 for IPv4 routing.

  • [Cfg] DUT configuration: DUT1 and DUT2 are configured with IPv4.

outing and two static IPv4 /24 route entries. Qemu VNFs are connected to VPP via vhost-user interfaces. Guest is running VPP ip4 interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is ested with Intel-XL710.

  • [Ver] TG vefication: In MaxReceivedRate tests TG sends traffic at line rate and reports total received packets over trial period. Test packets are generated by TG on links to DUTs. TG traffic profile contains two L3 flow-groups (flow-group per direction, 253 flows per flow-group) with all packets containing Ethernet header, IPv4 header with IP protocol=61 and static payload. MAC addresses are matching MAC addresses of the TG node interfaces.

  • [Ref] Applicable standard specifications: RFC2544.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 64b-1t1c-ethip4-ip4base- 
eth-2vhostvr1024-1vm-vppip4-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=2,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=1,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x96x00x00x02’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xc8x00x00x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:c3:e7:a0’, ‘ip_address’: ‘200.0.0.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘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’x96x00x00x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘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’xc8x00x00x02’}, ‘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]}]})
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=3,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=4,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=3,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x01x02’}}})
sw_interface_add_del_address(sw_if_index=4,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x02x02’}}})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 3, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x01x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 4, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x02x01’}, ‘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_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)

 64b-2t2c-ethip4-ip4base- 
eth-2vhostvr1024-1vm-vppip4-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=2,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=1,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x96x00x00x02’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xc8x00x00x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:c3:e7:a0’, ‘ip_address’: ‘200.0.0.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘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’x96x00x00x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘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’xc8x00x00x02’}, ‘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]}]})
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=3,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=4,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=3,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x01x02’}}})
sw_interface_add_del_address(sw_if_index=4,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x02x02’}}})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 3, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x01x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 4, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x02x01’}, ‘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_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)

 64b-4t4c-ethip4-ip4base- 
eth-2vhostvr1024-1vm-vppip4-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_set_flags(sw_if_index=1,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=2,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=1,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=2,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x96x00x00x02’}}})
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xc8x00x00x01’}}})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:c3:e7:a0’, ‘ip_address’: ‘200.0.0.2’})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘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’x96x00x00x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘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’xc8x00x00x02’}, ‘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]}]})
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-1’,enable_gso=False)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
create_vhost_user_if_v2(is_server=False,sock_filename=’/var/run/vpp/sock-1-2’,enable_gso=False)
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=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
sw_interface_set_flags(sw_if_index=3,flags=1)
sw_interface_set_flags(sw_if_index=4,flags=1)
ip_table_add_del(table={‘table_id’: 101, ‘is_ip6’: False},is_add=True)
ip_table_add_del(table={‘table_id’: 102, ‘is_ip6’: False},is_add=True)
sw_interface_set_table(sw_if_index=3,is_ipv6=False,vrf_id=101)
sw_interface_set_table(sw_if_index=4,is_ipv6=False,vrf_id=102)
sw_interface_add_del_address(sw_if_index=3,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x01x02’}}})
sw_interface_add_del_address(sw_if_index=4,is_add=True,del_all=False,prefix={‘len’: 30, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x01x01x02x02’}}})
ip_route_add_del(is_add=True,is_multipath=True,route={‘table_id’: 101, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’x14x00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 3, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x01x01’}, ‘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=True,route={‘table_id’: 102, ‘prefix’: {‘len’: 8, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’nx00x00x00’}}}, ‘n_paths’: 1, ‘paths’: [{‘sw_if_index’: 4, ‘table_id’: 0, ‘rpf_id’: 4294967295, ‘weight’: 1, ‘preference’: 1, ‘type’: 0, ‘flags’: 0, ‘proto’: 0, ‘nh’: {‘address’: {‘ip4’: b’x01x01x02x01’}, ‘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_dump(name_filter_valid=False,name_filter=’’)
show_threads()
sw_interface_rx_placement_dump(sw_if_index=1)
sw_interface_rx_placement_dump(sw_if_index=2)
sw_interface_rx_placement_dump(sw_if_index=3)
sw_interface_rx_placement_dump(sw_if_index=4)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=3,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=4,queue_id=3,worker_id=3,is_main=False)