Merge branch 'mlxsw-SPAN-Support-routes-pointing-at-bridges'
authorDavid S. Miller <davem@davemloft.net>
Mon, 30 Apr 2018 16:42:41 +0000 (12:42 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 30 Apr 2018 16:42:41 +0000 (12:42 -0400)
commit8231bee646b7ca3a474f067d1b1276175af2caf6
tree7c5dfec560ba135a3ef5f6a9efaa8fb369c82df9
parent6df93462c2e3ed9656829078aa68214c64619042
parent946a11e7408e52a6d9e5f3187c32b6c2a5f88835
Merge branch 'mlxsw-SPAN-Support-routes-pointing-at-bridges'

Ido Schimmel says:

====================
mlxsw: SPAN: Support routes pointing at bridges

Petr says:

When mirroring to a gretap or ip6gretap netdevice, the route that
directs the encapsulated packets can reference a bridge. In that case,
in the software model, the packet is switched.

Thus when offloading mirroring like that, take into consideration FDB,
STP, PVID configured at the bridge, and whether that VLAN ID should be
tagged on egress.

Patch #1 introduces functions to get bridge PVID, VLAN flags and to look
up an FDB entry.

Patches #2 and #3 refactor some existing code and introduce a new
accessor function.

With patches #4 and #5 mlxsw calls mlxsw_sp_span_respin() on switchdev
events as well. There is no impact yet, because bridge as an underlay
device is still not allowed.

That is implemented in patch #6, which uses the new interfaces to figure
out on which one port the mirroring should be configured, and whether
the mirrored packets should be VLAN-tagged and how.

Changes from v2 to v3:

- Rename the suite of bridge accessor function to br_vlan_get_pvid(),
  br_vlan_get_info() and br_fdb_find_port(). The _get bit is to avoid
  clashing with an existing static function.

Changes from v1 to v2:

- Change the suite of bridge accessor functions to br_vlan_pvid_rtnl(),
  br_vlan_info_rtnl(), br_fdb_find_port_rtnl().
====================

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