aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2018-11-27 13:41:02 +0100
committerMarco Varlese <marco.varlese@suse.de>2018-11-28 14:12:22 +0000
commit940d1c8a18d672c37c6545ffdabd090d29f09850 (patch)
tree6e8c0f9dfa5cc1d2a14c2e28bab36d1a2a613815
parent8ebd7929bdfd3ce6e9648abb76b7289056ea5114 (diff)
dpdk: allow interface name to be specified from startup.conf
Example: dpdk { dev 0000:01:00.0 { name eth0 } dev 0000:02:00.0 { name eth1 } } Change-Id: I11e60e969a7e3548c99ac0c0c3531767819cb157 Signed-off-by: Damjan Marion <damarion@cisco.com>
-rw-r--r--src/plugins/dpdk/device/dpdk.h2
-rw-r--r--src/plugins/dpdk/device/format.c3
-rw-r--r--src/plugins/dpdk/device/init.c14
-rw-r--r--src/vpp/conf/startup.conf5
4 files changed, 20 insertions, 4 deletions
diff --git a/src/plugins/dpdk/device/dpdk.h b/src/plugins/dpdk/device/dpdk.h
index 0e5851dcbc6..4c45e875933 100644
--- a/src/plugins/dpdk/device/dpdk.h
+++ b/src/plugins/dpdk/device/dpdk.h
@@ -218,6 +218,7 @@ typedef struct
u16 nb_tx_desc;
CLIB_CACHE_LINE_ALIGN_MARK (cacheline1);
+ u8 *name;
u8 *interface_name_suffix;
/* number of sub-interfaces */
@@ -332,6 +333,7 @@ void dpdk_hqos_metadata_set (dpdk_device_hqos_per_worker_thread_t * hqos,
typedef struct
{
vlib_pci_addr_t pci_addr;
+ u8 *name;
u8 is_blacklisted;
u8 vlan_strip_offload;
#define DPDK_DEVICE_VLAN_STRIP_DEFAULT 0
diff --git a/src/plugins/dpdk/device/format.c b/src/plugins/dpdk/device/format.c
index fdc2850e7e0..bbc61e38fc9 100644
--- a/src/plugins/dpdk/device/format.c
+++ b/src/plugins/dpdk/device/format.c
@@ -157,6 +157,9 @@ format_dpdk_device_name (u8 * s, va_list * args)
struct rte_pci_device *pci_dev;
u8 *ret;
+ if (xd->name)
+ return format (s, "%s", xd->name);
+
if (dm->conf->interface_name_format_decimal)
devname_format = "%s%d/%d/%d";
else
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
index c2e4d220ae2..6cde04123cc 100644
--- a/src/plugins/dpdk/device/init.c
+++ b/src/plugins/dpdk/device/init.c
@@ -320,10 +320,6 @@ dpdk_lib_init (dpdk_main_t * dm)
pci_addr.as_u32);
}
- if (p)
- devconf = pool_elt_at_index (dm->conf->dev_confs, p[0]);
- else
- devconf = &dm->conf->default_devconf;
/* Create vnet interface */
vec_add2_aligned (dm->devices, xd, 1, CLIB_CACHE_LINE_BYTES);
@@ -331,6 +327,14 @@ dpdk_lib_init (dpdk_main_t * dm)
xd->nb_tx_desc = DPDK_NB_TX_DESC_DEFAULT;
xd->cpu_socket = (i8) rte_eth_dev_socket_id (i);
+ if (p)
+ {
+ devconf = pool_elt_at_index (dm->conf->dev_confs, p[0]);
+ xd->name = devconf->name;
+ }
+ else
+ devconf = &dm->conf->default_devconf;
+
/* Handle interface naming for devices with multiple ports sharing same PCI ID */
if (pci_dev)
{
@@ -1028,6 +1032,8 @@ dpdk_device_config (dpdk_config_main_t * conf, vlib_pci_addr_t pci_addr,
;
else if (unformat (input, "num-tx-desc %u", &devconf->num_tx_desc))
;
+ else if (unformat (input, "name %s", &devconf->name))
+ ;
else if (unformat (input, "workers %U", unformat_bitmap_list,
&devconf->workers))
;
diff --git a/src/vpp/conf/startup.conf b/src/vpp/conf/startup.conf
index 66b0c226303..7532f502631 100644
--- a/src/vpp/conf/startup.conf
+++ b/src/vpp/conf/startup.conf
@@ -94,6 +94,11 @@ cpu {
## Whitelist specific interface by specifying PCI address
# dev 0000:02:00.0
+ ## Set interface name
+ # dev 0000:02:00.1 {
+ # name eth0
+ # }
+
## Whitelist specific interface by specifying PCI address and in
## addition specify custom parameters for this interface
# dev 0000:02:00.1 {