|
@@ -5773,6 +5773,17 @@ int mlxsw_sp_netdevice_router_port_event(struct net_device *dev)
|
|
|
if (err)
|
|
|
goto err_rif_fdb_op;
|
|
|
|
|
|
+ if (rif->mtu != dev->mtu) {
|
|
|
+ struct mlxsw_sp_vr *vr;
|
|
|
+
|
|
|
+ /* The RIF is relevant only to its mr_table instance, as unlike
|
|
|
+ * unicast routing, in multicast routing a RIF cannot be shared
|
|
|
+ * between several multicast routing tables.
|
|
|
+ */
|
|
|
+ vr = &mlxsw_sp->router->vrs[rif->vr_id];
|
|
|
+ mlxsw_sp_mr_rif_mtu_update(vr->mr4_table, rif, dev->mtu);
|
|
|
+ }
|
|
|
+
|
|
|
ether_addr_copy(rif->addr, dev->dev_addr);
|
|
|
rif->mtu = dev->mtu;
|
|
|
|