]> git.baikalelectronics.ru Git - kernel.git/commit
mlxsw: spectrum_router: Skip loopback RIFs during MAC validation
authorAmit Cohen <amitc@mellanox.com>
Sun, 29 Dec 2019 11:40:22 +0000 (13:40 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 29 Dec 2019 20:29:13 +0000 (12:29 -0800)
commit46e3ee40abdb111e0656a56c315536ce1c184f3d
treeb015f7574b61566577129718c492fc8a7fde0b30
parentc74c17fb7ea2c5750c3fa27d95041e47a10a1d63
mlxsw: spectrum_router: Skip loopback RIFs during MAC validation

When a router interface (RIF) is created the MAC address of the backing
netdev is verified to have the same MSBs as existing RIFs. This is
required in order to avoid changing existing RIF MAC addresses that all
share the same MSBs.

Loopback RIFs are special in this regard as they do not have a MAC
address, given they are only used to loop packets from the overlay to
the underlay.

Without this change, an error is returned when trying to create a RIF
after the creation of a GRE tunnel that is represented by a loopback
RIF. 'rif->dev->dev_addr' points to the GRE device's local IP, which
does not share the same MSBs as physical interfaces. Adding an IP
address to any physical interface results in:

Error: mlxsw_spectrum: All router interface MAC addresses must have the
same prefix.

Fix this by skipping loopback RIFs during MAC validation.

Fixes: a3b16353167a ("mlxsw: spectrum_router: Veto unsupported RIF MAC addresses")
Signed-off-by: Amit Cohen <amitc@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c