OSDN Git Service

Merge branch 'mv88e6xxx-hw-vlan'
authorDavid S. Miller <davem@davemloft.net>
Fri, 14 Aug 2015 04:31:14 +0000 (21:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Aug 2015 04:31:14 +0000 (21:31 -0700)
commit968d7cb82aad3c6bfada79a8e26d65a1fb3f618a
treec8e018ab10a77647b839a5609c56e797f1a83a50
parent35103d11173b8fea874183f8aa508ae71234d299
parent8efdda4a1b609ac40c4729109215f9c77f938fdc
Merge branch 'mv88e6xxx-hw-vlan'

Vivien Didelot says:

====================
net: dsa: mv88e6xxx: add hardware VLAN support

This patchset brings support to access hardware VLAN entries in DSA and
mv88e6xxx, through switchdev VLAN objects.

In the following example, ports swp[0-2] belong to bridge br0, and ports
swp[3-4] belong to bridge br1. Here's an example of what can be achieved
after this patchset:

    # bridge vlan add dev swp1 vid 100 master
    # bridge vlan add dev swp2 vid 100 master
    # bridge vlan add dev swp3 vid 100 master
    # bridge vlan add dev swp4 vid 100 master
    # bridge vlan del dev swp1 vid 100 master

The above commands correctly programmed hardware VLAN 100 for port swp2,
while ports swp3 and swp4 use software VLAN 100, as shown with:

    # bridge vlan
    port vlan ids
    swp0 None
    swp0
    swp1 None
    swp1
    swp2  100

    swp2  100

    swp3  100

    swp3
    swp4  100

    swp4
    br0 None
    br1 None

Assuming that port 5 is the CPU port, the hardware VLAN table would
contain the following data:

    VID  FID  SID  0  1  2  3  4  5  6
    100    8    0  x  x  t  x  x  t  x

Where 'x' means excluded, and 't' means tagged.

Also, adding an FDB entry to VLAN 100 for port swp2 like this:

    # bridge fdb add 3c:97:0e:11:6e:30 dev swp2 vlan 100

Would result in the following example output:

    # bridge fdb
    # 01:00:5e:00:00:01 dev eth0 self permanent
    # 01:00:5e:00:00:01 dev eth1 self permanent
    # 00:50:d2:10:78:15 dev swp0 master br0 permanent
    # 00:50:d2:10:78:15 dev swp2 vlan 100 master br0 permanent
    # 3c:97:0e:11:6e:30 dev swp2 vlan 100 self static
    # 00:50:d2:10:78:15 dev swp3 master br1 permanent
    # 00:50:d2:10:78:15 dev swp3 vlan 100 master br1 permanent

And the Address Translation Unit would contain:

    DB   T/P  Vec State Addr
    008  Port 004   e   3c:97:0e:11:6e:30
====================

Signed-off-by: David S. Miller <davem@davemloft.net>