linux-cp: fix setting mtu on hardware interfaces 97/35897/2
authorMatthew Smith <mgsmith@netgate.com>
Tue, 5 Apr 2022 18:20:07 +0000 (18:20 +0000)
committerDamjan Marion <dmarion@me.com>
Fri, 8 Apr 2022 16:18:33 +0000 (16:18 +0000)
Type: fix
Fixes: 616447c39231

In lcp_router_link_mtu(), either vnet_hw_interface_set_mtu() or
vnet_sw_interface_set_mtu() is called, based on whether this appears to
be a physical interface. The test to determine whether this is true was
incorrect and probably never worked right so vnet_sw_interface_set_mtu()
was always being called. This causes some breakage with Recent changes
to code which manages interface MTUs. Fix the test so the right function
is called.

Change-Id: I1ecccbce37d5a1e53b2349ed40f3d0d27eb03569
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
src/plugins/linux-cp/lcp_router.c

index 05943e4..af01b54 100644 (file)
@@ -265,7 +265,7 @@ lcp_router_link_mtu (struct rtnl_link *rl, u32 sw_if_index)
   hw = vnet_get_sup_hw_interface (vnm, sw_if_index);
 
   /* If HW interface, try to change hw link */
-  if ((sw->type == sw->sup_sw_if_index) &&
+  if ((sw->sw_if_index == sw->sup_sw_if_index) &&
       (hw->hw_class_index == ethernet_hw_interface_class.index))
     vnet_hw_interface_set_mtu (vnm, hw->hw_if_index, mtu);
   else