vnet: add set_max_frame_size callbacks for several interfaces 62/35362/4
authorArtem Glazychev <artem.glazychev@xored.com>
Fri, 18 Feb 2022 05:23:20 +0000 (12:23 +0700)
committerDamjan Marion <dmarion@me.com>
Fri, 18 Feb 2022 14:10:50 +0000 (14:10 +0000)
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

src/plugins/memif/memif.c
src/vnet/devices/tap/tap.c
src/vnet/vxlan/vxlan.c

index f2575fd..2b25a82 100644 (file)
@@ -50,6 +50,14 @@ memif_eth_flag_change (vnet_main_t * vnm, vnet_hw_interface_t * hi, u32 flags)
   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 @@ memif_create_if (vlib_main_t * vm, memif_create_if_args_t * args)
       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)
index 370e738..0fa2e5d 100644 (file)
@@ -77,6 +77,14 @@ virtio_eth_flag_change (vnet_main_t * vnm, vnet_hw_interface_t * hi,
   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 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
       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
index f394b6b..efe629c 100644 (file)
@@ -52,6 +52,14 @@ vxlan_eth_flag_change (vnet_main_t *vnm, vnet_hw_interface_t *hi, u32 flags)
   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 @@ int vnet_vxlan_add_del_tunnel
          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);
        }