Merge branch 'mlxsw-Support-VLAN-devices-in-mirroring-offloads'
authorDavid S. Miller <davem@davemloft.net>
Thu, 10 May 2018 21:50:53 +0000 (17:50 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 May 2018 21:50:53 +0000 (17:50 -0400)
commitccb0263814149883e80a07ffad79dbd0690e3ba9
treed425ca50445cbd7ad6cf0e0ce288ec048dd98484
parent00483690552c5fb6aa30bf3acb75b0ee89b4c0fd
parent03c44132393e821fb4fbd75b9c9798f13c46eca6
Merge branch 'mlxsw-Support-VLAN-devices-in-mirroring-offloads'

Ido Schimmel says:

====================
mlxsw: Support VLAN devices in mirroring offloads

Petr says:

When offloading "tc action mirred mirror", there are several scenarios
where VLAN devices can show up, that mlxsw can offload on Spectrum
machines.

I) A direct mirror to a VLAN device on top of a front-panel port device
   (commonly referred to as "RSPAN")

II) VLAN device in egress path of a packet when resolving a mirror to
    gretap or ip6gretap netdevice.

Specifically in the latter case, the following are the cases that can be
offloaded:

IIa) VLAN device directly above a physical device.
IIb) A VLAN-unaware bridge where the egress device is as in IIa.
IIc) VLAN device on top of a VLAN-aware bridge where the egress device
     is a physical device.

This patch set implements all the above cases.

First, in patch #1, br_vlan_get_info() is extended to allow bridge
master argument.

Case I is then implemented in patches #2 and #3, case II in patch #4.

Note that handling of VLAN protocol is not included. In case I, mirrored
packets may end up being double-tagged, and it might be reasonable for
the outer tag to be an 802.1ad. However, the protocol type configuration
would have to be put on the same VLAN netdevice that represents normal
VLAN traffic, and mlxsw currently ignores this setting in that case. Thus
this support was left out and the encapsulation always uses 802.1q
protocol.
====================

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