bridge: netlink: add support for default_pvid
Add IFLA_BR_VLAN_DEFAULT_PVID to allow setting/getting bridge's default_pvid via netlink. Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
93870cc02a
commit
0f963b7592
@@ -727,7 +727,7 @@ static void br_vlan_disable_default_pvid(struct net_bridge *br)
|
||||
br->default_pvid = 0;
|
||||
}
|
||||
|
||||
static int __br_vlan_set_default_pvid(struct net_bridge *br, u16 pvid)
|
||||
int __br_vlan_set_default_pvid(struct net_bridge *br, u16 pvid)
|
||||
{
|
||||
const struct net_bridge_vlan *pvent;
|
||||
struct net_bridge_port *p;
|
||||
@@ -735,6 +735,11 @@ static int __br_vlan_set_default_pvid(struct net_bridge *br, u16 pvid)
|
||||
int err = 0;
|
||||
unsigned long *changed;
|
||||
|
||||
if (!pvid) {
|
||||
br_vlan_disable_default_pvid(br);
|
||||
return 0;
|
||||
}
|
||||
|
||||
changed = kcalloc(BITS_TO_LONGS(BR_MAX_PORTS), sizeof(unsigned long),
|
||||
GFP_KERNEL);
|
||||
if (!changed)
|
||||
@@ -825,12 +830,7 @@ int br_vlan_set_default_pvid(struct net_bridge *br, unsigned long val)
|
||||
err = -EPERM;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
if (!pvid)
|
||||
br_vlan_disable_default_pvid(br);
|
||||
else
|
||||
err = __br_vlan_set_default_pvid(br, pvid);
|
||||
|
||||
err = __br_vlan_set_default_pvid(br, pvid);
|
||||
unlock:
|
||||
rtnl_unlock();
|
||||
return err;
|
||||
|
Reference in New Issue
Block a user