Skip to content

Commit

Permalink
mlxsw: spectrum_router: Allocate FID according to PVID
Browse files Browse the repository at this point in the history
For bridge netdevices, instead of assuming that the router traffic is on
VLAN 1, look at the bridge PVID.

This patch assumes that the PVID doesn't change after the router
interface is created (i.e. after the IP address is assigned).

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Petr Machata authored and David S. Miller committed Jun 26, 2018
1 parent 5f15e25 commit e6f1960
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
Original file line number Diff line number Diff line change
Expand Up @@ -6870,7 +6870,20 @@ static struct mlxsw_sp_fid *
mlxsw_sp_rif_vlan_fid_get(struct mlxsw_sp_rif *rif,
struct netlink_ext_ack *extack)
{
u16 vid = is_vlan_dev(rif->dev) ? vlan_dev_vlan_id(rif->dev) : 1;
u16 vid;
int err;

if (is_vlan_dev(rif->dev)) {
vid = vlan_dev_vlan_id(rif->dev);
} else {
err = br_vlan_get_pvid(rif->dev, &vid);
if (!vid)
err = -EINVAL;
if (err) {
NL_SET_ERR_MSG_MOD(extack, "Couldn't determine bridge PVID");
return ERR_PTR(err);
}
}

return mlxsw_sp_fid_8021q_get(rif->mlxsw_sp, vid);
}
Expand Down

0 comments on commit e6f1960

Please sign in to comment.