switchdev; add VLAN support for port's bridge_getlink
authorScott Feldman <sfeldma@gmail.com>
Mon, 22 Jun 2015 07:27:17 +0000 (00:27 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Jun 2015 13:56:18 +0000 (06:56 -0700)
commit7d4f8d871ab15bd50a5771382ca2c9355b38d73c
treedc2b70efc634d14085fc8e2abe0050e7039dc7f7
parent3e3a78b49508e58f798cf519876bbb9ca0f931af
switchdev; add VLAN support for port's bridge_getlink

One more missing piece of the puzzle.  Add vlan dump support to switchdev
port's bridge_getlink.  iproute2 "bridge vlan show" cmd already knows how
to show the vlans installed on the bridge and the device , but (until now)
no one implemented the port vlan part of the netlink PF_BRIDGE:RTM_GETLINK
msg.  Before this patch, "bridge vlan show":

$ bridge -c vlan show
port    vlan ids
sw1p1    30-34 << bridge side vlans
 57

sw1p1 << device side vlans (missing)

sw1p2    57

sw1p2

sw1p3

sw1p4

br0     None

(When the port is bridged, the output repeats the vlan list for the vlans
on the bridge side of the port and the vlans on the device side of the
port.  The listing above show no vlans for the device side even though they
are installed).

After this patch:

$ bridge -c vlan show
port    vlan ids
sw1p1    30-34 << bridge side vlan
 57

sw1p1    30-34 << device side vlans
 57
 3840 PVID

sw1p2    57

sw1p2    57
 3840 PVID

sw1p3    3842 PVID

sw1p4    3843 PVID

br0     None

I re-used ndo_dflt_bridge_getlink to add vlan fill call-back func.
switchdev support adds an obj dump for VLAN objects, using the same
call-back scheme as FDB dump.  Support included for both compressed and
un-compressed vlan dumps.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_main.c
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/rocker/rocker.c
include/linux/rtnetlink.h
net/core/rtnetlink.c
net/switchdev/switchdev.c