Difference between revisions of "VPP/OVN"

From fd.io
< VPP
Jump to: navigation, search
Line 4: Line 4:
  
 
Integration of OVN and VPP. The initial phase is to integrate VPP as a VTEP gateway to OVN.
 
Integration of OVN and VPP. The initial phase is to integrate VPP as a VTEP gateway to OVN.
There will be a simple agent written in Python that uses the VTEP OVSDB database on one side and programs the VPP data-plane on the other.
+
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.
  
If a packet against all odds does reach VPP (after having been ping-ponged between <n> tables in some openflow setup with a raft of ARP/ND layer violating proxies), VPP will forward the packet onto a VXLAN or Geneve tunnel. Or through a NAT? Or direct if this is IPv6? Of course none of these solutions support IPv6 yet.
+
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.
  
 
=== Work list ===
 
=== Work list ===
  
# Integration bridge. Create the integration bridge and add the physical interface(s) that is used for logical network connectivity. Done outside of the ovn-gateway-vpp?
+
{| class="wikitable"
# On agent init:  Register VPP as a Physical_Switch entry in the VTEP database, update rows with ports and tunnels
+
! 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.
 +
|-
 +
|VPP Python interface abstraction
 +
|
 +
|
 +
|
 +
| Cache and monitor VPP's interface table, VLAN mapping, ACLs etc.
 +
|-
 +
 
 +
|}
  
  

Revision as of 11:42, 4 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.

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.
VPP Python interface abstraction Cache and monitor VPP's interface table, VLAN mapping, ACLs etc.


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

Useful links