2n-clx-xxv710

2n1l-25ge2p1xxv710-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr

RFC2544: Packet throughput L2BD test cases with VXLANoIPv4 and vhost

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

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.

  • [Cfg] DUT configuration: DUTs 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. DUTs are tested with Intel-XXV710.

  • [Ver] TG veriffication: 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, RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=1,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=1,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=2,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=1,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-4t2c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=2,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=2,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=2,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=3,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-8t4c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=4,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=4,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=2,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=4,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=5,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=2,worker_id=6,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=3,worker_id=7,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

2n1l-25ge2p1xxv710-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr

RFC2544: Packet throughput L2BD test cases with VXLANoIPv4 and vhost

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

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.

  • [Cfg] DUT configuration: DUTs 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. DUTs are tested with Intel-XXV710.

  • [Ver] TG veriffication: 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, RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=1,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=1,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=2,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=1,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-4t2c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=2,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=2,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=2,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=3,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-8t4c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=4,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=4,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=2,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=4,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=5,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=2,worker_id=6,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=3,worker_id=7,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

2n1l-25ge2p1xxv710-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr

RFC2544: Packet throughput L2BD test cases with VXLANoIPv4 and vhost

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

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.

  • [Cfg] DUT configuration: DUTs 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. DUTs are tested with Intel-XXV710.

  • [Ver] TG veriffication: 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, RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=1,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=1,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=1,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-4t2c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=2,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=2,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=3,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-8t4c-avf-ethip4vxlan-l2bdbasemaclrn- 
eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr

 DUT1:  
cli_inband(cmd=’show logging’)
show_version()
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=171638784,enable_elog=0,rxq_num=4,rxq_size=0,txq_size=0)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
cli_inband(cmd=’set logging class avf level debug’)
avf_create(pci_addr=37421056,enable_elog=0,rxq_num=4,rxq_size=0,txq_size=0)
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=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
sw_interface_add_del_address(sw_if_index=1,is_add=True,del_all=False,prefix={‘len’: 24, ‘address’: {‘af’: 0, ‘un’: {‘ip4’: b’xacx10x00x01’}}})
sw_interface_add_del_address(sw_if_index=2,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’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 2, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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’: 1, ‘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’: 2, ‘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=1,enable=1)
sw_interface_set_vxlan_bypass(is_ipv6=0,sw_if_index=2,enable=1)
sw_interface_set_flags(sw_if_index=1,flags=1)
sw_interface_set_flags(sw_if_index=2,flags=1)
hw_interface_set_mtu(sw_if_index=1,mtu=9200)
hw_interface_set_mtu(sw_if_index=2,mtu=9200)
sw_interface_dump(name_filter_valid=False,name_filter=’’)
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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=4,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=5,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=2,worker_id=6,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=3,worker_id=7,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

2n1l-25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr

RFC2544: Packet throughput L2BD test cases with VXLANoIPv4 and vhost

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

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.

  • [Cfg] DUT configuration: DUTs 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. DUTs are tested with Intel-XXV710.

  • [Ver] TG veriffication: 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, RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-2t1c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-aclpermit-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)
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_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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=1,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=1,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-4t2c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-aclpermit-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)
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_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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=1,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=3,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-8t4c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-aclpermit-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)
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’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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=1,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=4,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=5,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=2,worker_id=6,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=3,worker_id=7,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

2n1l-25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr

RFC2544: Packet throughput L2BD test cases with VXLANoIPv4 and vhost

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

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.

  • [Cfg] DUT configuration: DUTs 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. DUTs are tested with Intel-XXV710.

  • [Ver] TG veriffication: 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, RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-2t1c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-aclpermitreflect-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)
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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=1,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=1,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-4t2c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-aclpermitreflect-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)
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’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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=1,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=3,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-8t4c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-aclpermitreflect-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)
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’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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
acl_add_replace(tag=b’’,acl_index=4294967295,count=2,r=[{‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx11x00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}, {‘is_permit’: 1, ‘is_ipv6’: 0, ‘src_ip_addr’: b’xacx1bx00x02’, ‘src_ip_prefix_len’: 32, ‘srcport_or_icmptype_first’: 0, ‘srcport_or_icmptype_last’: 65535, ‘dstport_or_icmpcode_first’: 0, ‘dstport_or_icmpcode_last’: 65535, ‘proto’: 0}])
acl_interface_set_acl_list(sw_if_index=1,acls=[0],n_input=1,count=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=4,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=5,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=2,worker_id=6,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=3,worker_id=7,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

2n1l-25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr

RFC2544: Packet throughput L2BD test cases with VXLANoIPv4 and vhost

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

  • [Enc] Packet Encapsulations: Eth-IPv4 for L2 switching of IPv4. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.

  • [Cfg] DUT configuration: DUTs 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. DUTs are tested with Intel-XXV710.

  • [Ver] TG veriffication: 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, RFC7348.

 Test Name 

 VPP API Test Commands History - Commands Used Per Test Case 

 114b-2t1c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-noacl-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)
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’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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=1,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-4t2c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-noacl-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)
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’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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=3,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)

 114b-8t4c-ethip4vxlan-l2bdbasemaclrn-eth- 
iacldstbase-noacl-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)
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’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’: ‘3c:fd:fe:cf:69:ed’, ‘ip_address’: ‘172.16.0.2’})
ip_neighbor_add_del(is_add=True,neighbor={‘sw_if_index’: 1, ‘flags’: 0, ‘mac_address’: ‘3c:fd:fe:cf:69:ec’, ‘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_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_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=1)
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=1)
create_vhost_user_if(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(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=5,flags=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_flags(sw_if_index=5,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=5,bd_id=1,shg=0,port_type=0,enable=1)
sw_interface_set_flags(sw_if_index=6,flags=1)
sw_interface_set_l2_bridge(rx_sw_if_index=6,bd_id=2,shg=0,port_type=0,enable=1)
show_version()
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_rx_placement_dump(sw_if_index=5)
sw_interface_rx_placement_dump(sw_if_index=6)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=0,worker_id=0,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=1,worker_id=1,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=2,worker_id=2,is_main=False)
sw_interface_set_rx_placement(sw_if_index=5,queue_id=3,worker_id=3,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=0,worker_id=4,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=1,worker_id=5,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=2,worker_id=6,is_main=False)
sw_interface_set_rx_placement(sw_if_index=6,queue_id=3,worker_id=7,is_main=False)
cli_inband(cmd=’clear runtime’)
vpp-stats(path=’^/sys/node’)
cli_inband(cmd=’clear errors’)
cli_inband(cmd=’clear interfaces’)
cli_inband(cmd=’elog trace api cli barrier’)
cli_inband(cmd=’show event-logger’)
cli_inband(cmd=’show errors’)
cli_inband(cmd=’show hardware verbose’)