First part of a BVI refactor

The handling of BVI is awkward, with the autoderived interface name
"bviXX" based on the bridgedomain bd_id. Lots of special casing happens
on account of this decision, and to make matters worse there is poor
interaction (leading to VPP crashes) when BVIs and Loopbacks are used
at the same time: https://lists.fd.io/g/vpp-dev/message/21116

This is step one of a refactor of the logic. In this commit, I'm
removing all of the BVI logic from the codebase, rendering bridgedomains
unable to have IP interfaces. In the next commit, I will introduce new
behavior in the schema, allowing for 'bvi' to be a loopback
interfacename which will be used as BVI for a bridgedomain, restoring
the ability to use bridgedomains with IP interfaces (using a loop).
This commit is contained in:
Pim van Pelt
2022-03-27 20:04:22 +00:00
parent 90c23cf987
commit 850b982f2a
15 changed files with 25 additions and 248 deletions

View File

@ -146,9 +146,6 @@ and finally all objects are synchronized with the configuration (IP addresses, M
* Remove all member interfaces (including BVIs) that are not in the config, return them to
L3 mode
* Remove tag-rewrite options on removed member interfaces if they have encapsulation
1. Retrieve all BVIs from VPP
* Remove all IP addresses that are not in the config
* Remove those that do not exist in the config
1. For L2 Cross Connects from VPP
* For interfaces that do not exist in the config (either as source or target):
* Return the interface to L3 mode
@ -172,7 +169,6 @@ and finally all objects are synchronized with the configuration (IP addresses, M
### Creating
1. Loopbacks
1. BVIs
1. BondEthernets
1. Tunnels
1. Sub Interfaces: First Dot1Q and Dot1AD (one tag), and then QinQ and QinAD (two tags)