diff options
author | Nathan Skrzypczak <nathan.skrzypczak@gmail.com> | 2022-03-28 18:39:58 +0200 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2023-01-26 15:21:02 +0000 |
commit | 4fe09e9f297985e3f452f7722c138d393e8533af (patch) | |
tree | 4bda78838c89373b826a13ac9b9674d627b9c060 /src/plugins/dpdk | |
parent | 53badfc6839da351c1d1dd7f1422418b0696c580 (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')
-rw-r--r-- | src/plugins/dpdk/device/dpdk.h | 1 | ||||
-rw-r--r-- | src/plugins/dpdk/device/init.c | 5 |
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)) ; |