vnet: add set_max_frame_size callbacks for several interfaces
This is required after distinguishing between max_frame_size and MTU
Type: fix
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: Ie642bee4e30ca76903bb8be5eeb6914c2c09bf35
diff --git a/src/plugins/memif/memif.c b/src/plugins/memif/memif.c
index f2575fd..2b25a82 100644
--- a/src/plugins/memif/memif.c
+++ b/src/plugins/memif/memif.c
@@ -50,6 +50,14 @@
return 0;
}
+static clib_error_t *
+memif_eth_set_max_frame_size (vnet_main_t *vnm, vnet_hw_interface_t *hi,
+ u32 flags)
+{
+ /* nothing for now */
+ return 0;
+}
+
static void
memif_queue_intfd_close (memif_queue_t * mq)
{
@@ -1018,6 +1026,7 @@
eir.dev_instance = mif->dev_instance;
eir.address = args->hw_addr;
eir.cb.flag_change = memif_eth_flag_change;
+ eir.cb.set_max_frame_size = memif_eth_set_max_frame_size;
mif->hw_if_index = vnet_eth_register_interface (vnm, &eir);
}
else if (mif->mode == MEMIF_INTERFACE_MODE_IP)
diff --git a/src/vnet/devices/tap/tap.c b/src/vnet/devices/tap/tap.c
index 370e738..0fa2e5d 100644
--- a/src/vnet/devices/tap/tap.c
+++ b/src/vnet/devices/tap/tap.c
@@ -77,6 +77,14 @@
return 0;
}
+static clib_error_t *
+virtio_eth_set_max_frame_size (vnet_main_t *vnm, vnet_hw_interface_t *hi,
+ u32 frame_size)
+{
+ /* nothing for now */
+ return 0;
+}
+
#define TAP_MAX_INSTANCE 1024
static void
@@ -650,6 +658,7 @@
eir.dev_instance = vif->dev_instance;
eir.address = vif->mac_addr;
eir.cb.flag_change = virtio_eth_flag_change;
+ eir.cb.set_max_frame_size = virtio_eth_set_max_frame_size;
vif->hw_if_index = vnet_eth_register_interface (vnm, &eir);
}
else
diff --git a/src/vnet/vxlan/vxlan.c b/src/vnet/vxlan/vxlan.c
index f394b6b..efe629c 100644
--- a/src/vnet/vxlan/vxlan.c
+++ b/src/vnet/vxlan/vxlan.c
@@ -52,6 +52,14 @@
return 0;
}
+static clib_error_t *
+vxlan_eth_set_max_frame_size (vnet_main_t *vnm, vnet_hw_interface_t *hw,
+ u32 frame_size)
+{
+ /* nothing for now */
+ return 0;
+}
+
static u8 *
format_decap_next (u8 * s, va_list * args)
{
@@ -470,6 +478,7 @@
eir.dev_instance = dev_instance;
eir.address = hw_addr;
eir.cb.flag_change = vxlan_eth_flag_change;
+ eir.cb.set_max_frame_size = vxlan_eth_set_max_frame_size;
t->hw_if_index = vnet_eth_register_interface (vnm, &eir);
}