-
Notifications
You must be signed in to change notification settings - Fork 265
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ic: Add support for spine-leaf topology for transit switches.
Previous commits added support for spine-leaf topology for local and distributed logical switches. Now adding support for the same to transit switches. Transit switches are a little different from normal distributed switches in a way that we must have ports of a transit switch claimed by some chassis in order to tunnel packets to correct availability zones. In a usual distributed switch we can rely on VIFs being claimed by chassis to find the destination, but OVN setup of one availability zone is not aware of ports of the other, except the ports of the transit switch itself. So, transit switch ports has to be claimed. OVN IC is also built on the assumption that all the transit switch ports are router ports. Let's allow 'switch' LSPs to be claimed by ovn-controller using the 'requested-chassis' column. And make ovn-ic daemon aware of 'switch' type ports as well, so it can build remote ports from them and know to which chassis the port traffic should be tunneled to. On top of previous benefits for distributed switches, Spine-Leaf topology with a transit spine switch allows: - Full locality of changes: With a current L2 topology spread across availability zones, a single transit switch has all the ports: all the VIFs, local to the current zone, and all the remote ports from all other zones. So, if the user wants to add a new port, they have to add it to every zone. To one as a VIF and to all the other as a remote port. ovn-ic daemon will do that, but it's still a lot of movements and a lot of updates in each zone for changes happening in only one. With the transit spine switch, every zone will only have their own VIFs on a node switch and one remote port per other AZ. Addition of a new port in such a setup doesn't require changing anything in non-local availability zones. This would be similar to node switches with localnet ports, but without need for a dedicated provider network. - Better handling of multicast traffic: Pipeline will be split across nodes, so every node will process multicast for its own ports and forward traffic to appropriate other chassis when necessary. This should be particularly useful for L2 topologies of ovn-kubernetes in the AZ per node configuration. In addition for the previous configuration of switch ports, transit switch ports will need the 'requested-chassis' set like this: ovn-nbctl lsp-set-options spine-to-ls1 requested-chassis=hv1 Reported-at: https://issues.redhat.com/browse/FDP-874 Signed-off-by: Ilya Maximets <i.maximets@ovn.org> Acked-by: Mark Michelson <mmichels@redhat.com> Signed-off-by: Numan Siddique <numans@ovn.org>
- Loading branch information
1 parent
a2db2b2
commit 67100f0
Showing
4 changed files
with
240 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters