return VNET_DPDK_PORT_TYPE_UNKNOWN;
}
+static dpdk_port_type_t
+port_type_from_link_speed (u32 link_speed)
+{
+ switch (link_speed)
+ {
+ case ETH_SPEED_NUM_1G:
+ return VNET_DPDK_PORT_TYPE_ETH_1G;
+ case ETH_SPEED_NUM_2_5G:
+ return VNET_DPDK_PORT_TYPE_ETH_2_5G;
+ case ETH_SPEED_NUM_5G:
+ return VNET_DPDK_PORT_TYPE_ETH_5G;
+ case ETH_SPEED_NUM_10G:
+ return VNET_DPDK_PORT_TYPE_ETH_10G;
+ case ETH_SPEED_NUM_20G:
+ return VNET_DPDK_PORT_TYPE_ETH_20G;
+ case ETH_SPEED_NUM_25G:
+ return VNET_DPDK_PORT_TYPE_ETH_25G;
+ case ETH_SPEED_NUM_40G:
+ return VNET_DPDK_PORT_TYPE_ETH_40G;
+ case ETH_SPEED_NUM_50G:
+ return VNET_DPDK_PORT_TYPE_ETH_50G;
+ case ETH_SPEED_NUM_56G:
+ return VNET_DPDK_PORT_TYPE_ETH_56G;
+ case ETH_SPEED_NUM_100G:
+ return VNET_DPDK_PORT_TYPE_ETH_100G;
+ default:
+ return VNET_DPDK_PORT_TYPE_UNKNOWN;
+ }
+}
static u32
dpdk_flag_change (vnet_main_t * vnm, vnet_hw_interface_t * hi, u32 flags)
dev_info.driver_name);
continue;
}
- pci_dev = RTE_DEV_TO_PCI (dev_info.device);
+
+ pci_dev = dpdk_get_pci_device (&dev_info);
if (pci_dev) /* bonded interface has no pci info */
{
xd->port_conf.intr_conf.lsc = 1;
break;
+ case VNET_DPDK_PMD_NETVSC:
+ xd->port_type = port_type_from_link_speed (l.link_speed);
+ break;
+
default:
xd->port_type = VNET_DPDK_PORT_TYPE_UNKNOWN;
}
* For cisco VIC vNIC, set default to VLAN strip enabled, unless
* specified otherwise in the startup config.
* For other NICs default to VLAN strip disabled, unless specified
- * otherwis in the startup config.
+ * otherwise in the startup config.
*/
if (xd->pmd == VNET_DPDK_PMD_ENIC)
{
devconf->num_rx_queues)
error =
clib_error_return (0,
- "%U: number of worker threadds must be "
+ "%U: number of worker threads must be "
"equal to number of rx queues", format_vlib_pci_addr,
&pci_addr);
vec_validate(mem_by_socket, c);
- e = clib_sysfs_prealloc_hugepages(c, 2 << 10, mem_by_socket[c] / 2);
+ e = clib_sysfs_prealloc_hugepages(c, 0, mem_by_socket[c] / 2);
if (e)
clib_error_report (e);
}));