Integration of OVN and VPP. The initial phase is to integrate VPP as a VTEP gateway to OVN. ovn-controller-vtep is a simple agent written in Python that uses the VTEP OVSDB database on one side and programs the VPP data-plane on the other.
The agent uses the https://github.com/openvswitch/ovs/tree/master/python/ovs OVS Python language binding to communicate with the hardware_vtep database over OVSDB.
ovs.db manages a cached copy of the OVSDB database. We can do something similar for VPP, where the VPP side of the agent maintains a local cached copy of VPP's interfaces, interface state, VLANs etc.
|Integration Bridge||VPP configured to participate in OVN integration bridge. VPP configured separately from agent?|
|Initialise connection to OVSDB||Register in the Physical_Switch table (ports, tunnels) in hardware_vtep database. Populate Physical_Port table.|
|VPP Python interface abstraction||Cache and monitor VPP's interface table, VLAN mapping, ACLs etc.|
|Logical_Switch and Logical_Binding table|
|Ucast_Macs_Local and Ucast_Mcast_Remote tables|
|ACL integration||Monitor VTEP ACL table and populate ACLs in VPP|
|BFD to tunnel endpoint||Monitor remote tunnel endpoints using BFD. BFD parameters and configuration from the VTEP Tunnel table.|
|Logical_Router Table||Bridge to VRF|
|Support for multicast MACs?|
|Arp_Sources_Local and Arp_Sources_Remote tables|
Integration tests will be achieved by extending the existing testing tool coming with ovs/ovn (make check TESTSUITEFLAGS='-k ovn'). Specific tests cases will be built for that purpose.
- Jerome Tollet: email@example.com
- Ole Troan: firstname.lastname@example.org