Add Create Phase

This is rather straight forward: for each object (in correct order),
if the object exists in VPP, we can skip it. We know that it will exist
only if it was valid (ie correct encapsulation, tc). If it does not
exist in VPP, issue the correct creation request to VPP.

Implement the creation of all types, in the following order:
- create_loopbacks() and create_bvis()
- create_bondethernets()
- create_vxlan_tunnels()
- create_sub_interfaces() first 1-tag, then 2-tag
- create_bridgedomains()
- create_lcps() bottomsup: first 0-tag, then 1-tag, then 2-tag names.

Add a placeholder TODO to fix a bug with prune_sub_interfaces() which
should allow for TAPs belonging to LCPs; will fix in followup commit.
This commit is contained in:
Pim van Pelt
2022-03-26 11:14:30 +00:00
parent d5a7c59f4e
commit 90a97a3d7b
2 changed files with 132 additions and 7 deletions

View File

@ -172,11 +172,10 @@ and finally all objects are synchronized with the configuration (IP addresses, M
### Creating
1. Loopbacks
1. BondEthernets
1. Dot1Q and Dot1AD sub-interfaces
1. Qin1Q and Qin1AD sub-interfaces
1. Tunnels
1. BVIs
1. BondEthernets
1. Tunnels
1. Sub Interfaces: First Dot1Q and Dot1AD (one tag), and then QinQ and QinAD (two tags)
1. Bridge Domains
1. LCP pairs for Tunnels (TUN type)
1. LCP pairs for PHYs, BondEthernets, Dot1Q/Dot1AD and finally QinQ/QinAD (TAP type)