summaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/device
diff options
context:
space:
mode:
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>2022-03-28 18:39:58 +0200
committerDamjan Marion <dmarion@0xa5.net>2023-01-26 15:21:02 +0000
commit4fe09e9f297985e3f452f7722c138d393e8533af (patch)
tree4bda78838c89373b826a13ac9b9674d627b9c060 /src/plugins/dpdk/device
parent53badfc6839da351c1d1dd7f1422418b0696c580 (diff)
dpdk: add intf tag to dev{} subinput
This patch allows to pass a tag when specifying the dpdk `dev { }` interface configuration. It allows a control plane generating a vpp.conf file to retreive the resulting mapping between dpdk interfaces & sw_if_indices in VPP without having to change the interface name exposed to the user. Type: feature Change-Id: I55907417de0083b82d4a127172816cec3459acf3 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/plugins/dpdk/device')
-rw-r--r--src/plugins/dpdk/device/dpdk.h1
-rw-r--r--src/plugins/dpdk/device/init.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/dpdk/device/dpdk.h b/src/plugins/dpdk/device/dpdk.h
index 7569fc60a90..7238ecf5515 100644
--- a/src/plugins/dpdk/device/dpdk.h
+++ b/src/plugins/dpdk/device/dpdk.h
@@ -243,6 +243,7 @@ typedef struct
};
dpdk_device_addr_type_t dev_addr_type;
u8 *name;
+ u8 *tag;
u8 is_blacklisted;
#define _(x) uword x;
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
index 83ce2dc9cbc..d6115009cc0 100644
--- a/src/plugins/dpdk/device/init.c
+++ b/src/plugins/dpdk/device/init.c
@@ -449,6 +449,9 @@ dpdk_lib_init (dpdk_main_t * dm)
xd->sw_if_index = sw->sw_if_index;
dpdk_log_debug ("[%u] interface %s created", port_id, hi->name);
+ if (devconf->tag)
+ vnet_set_sw_interface_tag (vnm, devconf->tag, sw->sw_if_index);
+
ethernet_set_flags (vnm, xd->hw_if_index,
ETHERNET_INTERFACE_FLAG_DEFAULT_L3);
@@ -877,6 +880,8 @@ dpdk_device_config (dpdk_config_main_t *conf, void *addr,
;
else if (unformat (input, "name %v", &devconf->name))
;
+ else if (unformat (input, "tag %s", &devconf->tag))
+ ;
else if (unformat (input, "workers %U", unformat_bitmap_list,
&devconf->workers))
;