Difference between revisions of "VPP/OVN"
(→Introduction) |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Project HotDog == | == Project HotDog == | ||
− | + | === Introduction === | |
− | + | ||
− | + | 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. | ||
+ | |||
+ | [https://github.com/vpp-dev/ovn-controller-vpp ovn-controller-vpp git repository] | ||
+ | |||
+ | === Work list === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! style="text-align:left;"| Task | ||
+ | ! Owner | ||
+ | ! Planned Release | ||
+ | ! Status | ||
+ | ! Description | ||
+ | |- | ||
+ | |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 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | Geneve support | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |||
+ | |} | ||
+ | |||
+ | === Testing === | ||
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. | 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. | ||
− | + | === Contacts === | |
*Jerome Tollet: jtollet@cisco.com | *Jerome Tollet: jtollet@cisco.com | ||
*Ole Troan: otroan@cisco.com | *Ole Troan: otroan@cisco.com | ||
− | + | === Useful links === | |
− | *[http://openvswitch.org/support/dist-docs/vtep.5.html vtep] | + | * [http://openvswitch.org/support/dist-docs/vtep.5.html vtep.5] |
− | * [http://openvswitch.org/support/dist-docs/ovn-controller-vtep.8.html ovn-controller-vtep] | + | * [http://openvswitch.org/support/dist-docs/ovn-controller-vtep.8.html ovn-controller-vtep.8] |
+ | * [http://openvswitch.org/support/dist-docs/ovn-architecture.7.html ovn-architecture.7] |
Latest revision as of 08:14, 5 July 2017
Project HotDog
Introduction
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.
ovn-controller-vpp git repository
Work list
Task | Owner | Planned Release | Status | Description |
---|---|---|---|---|
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 | ||||
Geneve support |
Testing
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.
Contacts
- Jerome Tollet: jtollet@cisco.com
- Ole Troan: otroan@cisco.com