summaryrefslogtreecommitdiffstats
path: root/src/vnet/devices/tap
diff options
context:
space:
mode:
authorAndrew Yourtchenko <ayourtch@gmail.com>2019-01-07 20:56:46 +0100
committerFlorin Coras <florin.coras@gmail.com>2019-01-07 21:59:10 +0000
commit754f24b35946021bb5e648c2bbf772791afe6e20 (patch)
tree5279f1c70ba93a42d1198d5aa49c764559de0e9a /src/vnet/devices/tap
parentd2bfb78f4f8fbfae204424467a4106530b89e608 (diff)
tapv2: add "tap_flags" field to the TAPv2 interface API
Change-Id: I26f99d95f52c9fe107d17dcbbf5c6185523beade Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Diffstat (limited to 'src/vnet/devices/tap')
-rw-r--r--src/vnet/devices/tap/tap.h2
-rw-r--r--src/vnet/devices/tap/tapv2.api3
-rw-r--r--src/vnet/devices/tap/tapv2_api.c3
3 files changed, 8 insertions, 0 deletions
diff --git a/src/vnet/devices/tap/tap.h b/src/vnet/devices/tap/tap.h
index 7aebade59c7..19dc88dd7c6 100644
--- a/src/vnet/devices/tap/tap.h
+++ b/src/vnet/devices/tap/tap.h
@@ -29,6 +29,7 @@ typedef struct
u8 mac_addr[6];
u16 rx_ring_sz;
u16 tx_ring_sz;
+ u32 tap_flags;
u8 *host_namespace;
u8 *host_if_name;
u8 host_mac_addr[6];
@@ -52,6 +53,7 @@ typedef struct
{
u32 id;
u32 sw_if_index;
+ u32 tap_flags;
u8 dev_name[64];
u16 tx_ring_sz;
u16 rx_ring_sz;
diff --git a/src/vnet/devices/tap/tapv2.api b/src/vnet/devices/tap/tapv2.api
index e65102ce777..fb90483efbe 100644
--- a/src/vnet/devices/tap/tapv2.api
+++ b/src/vnet/devices/tap/tapv2.api
@@ -47,6 +47,7 @@ option version = "2.0.0";
@param host_ip4_gw - host IPv4 default gateway
@param host_ip6_gw_set - host IPv6 default gateway should be set
@param host_ip6_gw - host IPv6 default gateway
+ @param tap_flags - flags for the TAP interface creation
*/
define tap_create_v2
{
@@ -76,6 +77,7 @@ define tap_create_v2
u8 host_ip6_gw_set;
u8 host_ip6_gw[16];
u8 tag[64];
+ u32 tap_flags;
};
/** \brief Reply for tap create reply
@@ -140,6 +142,7 @@ define sw_interface_tap_v2_details
u8 host_ip4_prefix_len;
u8 host_ip6_addr[16];
u8 host_ip6_prefix_len;
+ u32 tap_flags;
};
/*
diff --git a/src/vnet/devices/tap/tapv2_api.c b/src/vnet/devices/tap/tapv2_api.c
index e70d63f914f..1260afdd24f 100644
--- a/src/vnet/devices/tap/tapv2_api.c
+++ b/src/vnet/devices/tap/tapv2_api.c
@@ -109,6 +109,8 @@ vl_api_tap_create_v2_t_handler (vl_api_tap_create_v2_t * mp)
ap->host_ip6_gw_set = 1;
}
+ ap->tap_flags = ntohl (mp->tap_flags);
+
tap_create_if (vm, ap);
reg = vl_api_client_index_to_registration (mp->client_index);
@@ -194,6 +196,7 @@ tap_send_sw_interface_details (vpe_api_main_t * am,
mp->_vl_msg_id = htons (VL_API_SW_INTERFACE_TAP_V2_DETAILS);
mp->id = htonl (tap_if->id);
mp->sw_if_index = htonl (tap_if->sw_if_index);
+ mp->tap_flags = htonl (tap_if->tap_flags);
clib_memcpy (mp->dev_name, tap_if->dev_name,
MIN (ARRAY_LEN (mp->dev_name) - 1,
strlen ((const char *) tap_if->dev_name)));