On Thu, May 28, 2015 at 2:37 PM, Vivien Didelot <vivien.dide...@savoirfairelinux.com> wrote: > This RFC is based on v4.1-rc3. > > It is meant to get a glance to the commits responsible to implement the > necessary NDOs between DSA and the Marvell 88E6352 switch driver. > > With this support, I am able to create VLANs with (un)tagged ports, setting > their default VID, from a bridge. > > To create a bridge containing all switch ports, with a VLAN ID 400, swp2 and > swp3 untagged (pvid), and swp4 tagged, the userspace commands look like this: > > ip link add name br0 type bridge > [...] > ip link set dev swp2 up master br0 > [...] > bridge vlan add vid 400 pvid untagged dev swp2 > bridge vlan add vid 400 pvid untagged dev swp3 > bridge vlan add vid 400 dev swp4 > [...] > ip link add link br0 name br0.400 type vlan id 400 > [...] > bridge vlan add dev br0 vid 400 self > > The code is currently being rebased to the latest net-next/master. > > Seems like the way to go now is through switchdev attr getter/setter...
Indeed, for dsa_slave you should be able to port this to switchdev and set your ndo_bridge_setlink/dellink handlers to switchdev_port_bridge_setlink/dellink. (And also implement the switchdev ops for vlans). If you use switchdev_port_bridge_setlink/dellink, you shouldn't need to implement ndo_vlan_rx_add_vid/ndo_vlan_rx_kill_vid at all. The setlink/dellink callbacks will give the same info (and more, e.g. pvid, untagged flags) and you'll automatically get support for stacked drivers, for example if you bonded swp2/3 and then included that bond in your vlan bridge. Your commands will be slightly modified: when adding the vid to the port, specify master and self: bridge vlan add vid 400 dev swp4 master self -scott -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html