+ "Intel-E810XXV": "25ge2p1e810xxv",
+ "Intel-E822CQ": "25ge2p1e822cq",
+ "Intel-E810CQ": "100ge2p1e810cq",
+ "Amazon-Nitro-50G": "50ge1p1ena",
+ "Amazon-Nitro-100G": "100ge1p1ena",
+ "Amazon-Nitro-200G": "200ge1p1ena",
+ "Mellanox-CX556A": "100ge2p1cx556a",
+ "Mellanox-CX6DX": "100ge2p1cx6dx",
+ "Mellanox-CX7VEAT": "200ge2p1cx7veat",
+ "Mellanox-CX7VEAT": "200ge6p3cx7veat",
+ "virtual": "1ge1p82540em",
+ }
+
+ # Shortened lowercase NIC model name, useful for presentation.
+ NIC_CODE_TO_SHORT_NAME = {
+ "10ge2p1x520": "x520",
+ "10ge2p1x710": "x710",
+ "40ge2p1xl710": "xl710",
+ "25ge2p1xxv710": "xxv710",
+ "25ge2p1e810xxv": "e810xxv",
+ "25ge2p1e822cq": "e822cq",
+ "100ge2p1e810cq": "e810cq",
+ "50ge1p1ena": "ena",
+ "100ge1p1ena": "ena100",
+ "200ge1p1ena": "ena200",
+ "100ge2p1cx556a": "cx556a",
+ "100ge2p1cx6dx": "cx6dx",
+ "200ge2p1cx7veat": "cx7veat",
+ "200ge6p3cx7veat": "cx7veat",
+ "1ge1p82540em": "8250em",
+
+ }
+
+ # Not each driver is supported by each NIC.
+ NIC_NAME_TO_DRIVER = {
+ u"Intel-X520-DA2": [u"vfio-pci", u"af_xdp"],
+ u"Intel-X710": [u"vfio-pci", u"avf", u"af_xdp"],
+ u"Intel-XL710": [u"vfio-pci", u"avf", u"af_xdp"],
+ u"Intel-XXV710": [u"vfio-pci", u"avf", u"af_xdp"],
+ u"Intel-E810XXV": [u"vfio-pci", u"avf", u"af_xdp"],
+ u"Intel-E822CQ": [u"vfio-pci", u"avf", u"af_xdp"],
+ u"Intel-E810CQ": [u"vfio-pci", u"avf", u"af_xdp"],
+ u"Amazon-Nitro-50G": [u"vfio-pci"],
+ u"Amazon-Nitro-100G": [u"vfio-pci"],
+ u"Amazon-Nitro-200G": [u"vfio-pci"],
+ u"Mellanox-CX556A": [u"rdma-core", u"mlx5_core", u"af_xdp"],
+ u"Mellanox-CX6DX": [u"rdma-core", u"mlx5_core", u"af_xdp"],
+ u"Mellanox-CX7VEAT": [u"rdma-core", u"mlx5_core", u"af_xdp"],
+ "virtual": ["vfio-pci"],
+ }
+
+ # Each driver needs different plugin to work.
+ NIC_DRIVER_TO_PLUGINS = {
+ u"vfio-pci": u"dpdk_plugin.so",
+ u"avf": u"avf_plugin.so",
+ u"rdma-core": u"rdma_plugin.so",
+ u"mlx5_core": u"dpdk_plugin.so",
+ u"af_xdp": u"af_xdp_plugin.so",
+ }
+
+ # Tags to differentiate tests for different NIC driver.
+ NIC_DRIVER_TO_TAG = {
+ u"vfio-pci": u"DRV_VFIO_PCI",
+ u"avf": u"DRV_AVF",
+ u"rdma-core": u"DRV_RDMA_CORE",
+ u"mlx5_core": u"DRV_MLX5_CORE",
+ u"af_xdp": u"DRV_AF_XDP",
+ }
+
+ # Suite names have to be different, add prefix.
+ NIC_DRIVER_TO_SUITE_PREFIX = {
+ u"vfio-pci": u"",
+ u"avf": u"avf-",
+ u"rdma-core": u"rdma-",
+ u"mlx5_core": u"mlx5-",
+ u"af_xdp": u"af-xdp-",
+ }
+
+ # Number of virtual functions of physical nic.
+ NIC_DRIVER_TO_VFS = {
+ u"vfio-pci": u"nic_vfs}= | 0",
+ u"avf": u"nic_vfs}= | 1",
+ u"rdma-core": u"nic_vfs}= | 0",
+ u"mlx5_core": u"nic_vfs}= | 0",
+ u"af_xdp": u"nic_vfs}= | 0",
+ }
+
+ # Number of physical interfaces of physical nic.
+ NIC_CODE_TO_PFS = {
+ "10ge2p1x520": "nic_pfs}= | 2",
+ "10ge2p1x710": "nic_pfs}= | 2",
+ "40ge2p1xl710": "nic_pfs}= | 2",
+ "25ge2p1xxv710": "nic_pfs}= | 2",
+ "25ge2p1e810xxv": "nic_pfs}= | 2",
+ "25ge2p1e822cq": "nic_pfs}= | 2",
+ "100ge2p1e810cq": "nic_pfs}= | 2",
+ "50ge1p1ena": "nic_pfs}= | 2",
+ "100ge1p1ena": "nic_pfs}= | 2",
+ "200ge1p1ena": "nic_pfs}= | 2",
+ "100ge2p1cx556a": "nic_pfs}= | 2",
+ "100ge2p1cx6dx": "nic_pfs}= | 2",
+ "200ge2p1cx7veat": "nic_pfs}= | 2",
+ "200ge6p3cx7veat": "nic_pfs}= | 6",
+ "1ge1p82540em": "nic_pfs}= | 2",
+ }
+
+ # Not each driver is supported by each NIC.
+ DPDK_NIC_NAME_TO_DRIVER = {
+ u"Intel-X520-DA2": [u"vfio-pci"],
+ u"Intel-X710": [u"vfio-pci"],
+ u"Intel-XL710": [u"vfio-pci"],
+ u"Intel-XXV710": [u"vfio-pci"],
+ u"Intel-E810XXV": [u"vfio-pci"],
+ u"Intel-E822CQ": [u"vfio-pci"],
+ u"Intel-E810CQ": [u"vfio-pci"],
+ u"Amazon-Nitro-50G": [u"vfio-pci"],
+ u"Amazon-Nitro-100G": [u"vfio-pci"],
+ u"Amazon-Nitro-200G": [u"vfio-pci"],
+ u"Mellanox-CX556A": [u"mlx5_core"],
+ u"Mellanox-CX6DX": [u"mlx5_core"],
+ u"Mellanox-CX7VEAT": [u"mlx5_core"],
+ "virtual": ["vfio-pci"],
+ }
+
+ # Tags to differentiate tests for different NIC driver.
+ DPDK_NIC_DRIVER_TO_TAG = {
+ u"vfio-pci": u"DRV_VFIO_PCI",
+ u"mlx5_core": u"DRV_MLX5_CORE",