faucetsdn / faucet

FAUCET is an OpenFlow controller for multi table OpenFlow 1.3 switches, that implements layer 2 switching, VLANs, ACLs, and layer 3 IPv4 and IPv6 routing.
http://faucet.nz
Apache License 2.0
560 stars 191 forks source link

Make learning work when a LACP bundle is connected to multiple switches in a faucet stack #3330

Closed gizmoguy closed 4 years ago

gizmoguy commented 4 years ago

Commonly referred to by the term MC-LAG or MLAG, the ability to split LACP bundles across multiple distinct switches in the same faucet stack would be a very useful feature.

gizmoguy commented 4 years ago

Further details available from @tweippert on faucet-users list:

https://lists.geant.org/sympa/arc/faucet-users/2019-09/msg00031.html https://lists.geant.org/sympa/arc/faucet-users/2019-09/msg00034.html

gizmoguy commented 4 years ago

Implementation detail: we will need to support sending a synthetic actor system ID when LACP links are spread across multiple faucet datapaths (at the moment we use dp_mac which is different per datapath).

gizmoguy commented 4 years ago

This works now, if you set the lacp id to the same on multiple switches it will act as a single lacp bundle.

Note: currently if you override dp_mac and set your own custom mac addresses per switch then this could break our current mclag implementation. If anyone actually wants to do this let me know and we'll open a new ticket to fix that behaviour.