linux-cp: Complete interface creation logic 81/33481/23
authorPim van Pelt <pim@ipng.nl>
Thu, 12 Aug 2021 19:35:06 +0000 (21:35 +0200)
committerMatthew Smith <mgsmith@netgate.com>
Thu, 9 Sep 2021 13:02:34 +0000 (13:02 +0000)
commitb89c1ddcb3b4f9138ca3ebefb2115f896ff3e1bd
tree2f828c4be47a5fe3a46d052875f8197f524ba5bd
parent7b46e4bc574e6dfa7f5a454a696476744625c55f
linux-cp: Complete interface creation logic

Linux Control Plane interface creation logic is currently only able to
create untagged interfaces, and dot1q VLAN sub-interfaces. This change
makes it possible to create dot1ad VLAN sub-ints, and Q-in-AD as well
as Q-in-Q sub-interfaces as well.

It makes the plugin a bit more robust by catching a few common errors,
such as creating an lcp on a sub-interface without its parent having
one, and creating an lcp on a sub-interface that is not exact-match.

This change has a bunch of smaller improvemnets as well. I documented
my work in this post:
  https://ipng.ch/s/articles/2021/08/12/vpp-1.html

It shows that after the change is merged, all VPP interface types now
create and operate cleanly as LCP interfaces as well.

Type: improvement
Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I322669f7316d44c227090b83d6a574fb9c00e76a
src/plugins/linux-cp/lcp.c
src/plugins/linux-cp/lcp.h
src/plugins/linux-cp/lcp.rst
src/plugins/linux-cp/lcp_adj.c
src/plugins/linux-cp/lcp_api.c
src/plugins/linux-cp/lcp_interface.c