Jump to: navigation, search

Difference between revisions of "Networking-vpp/L3 routing support"

m
Line 1: Line 1:
 
= Overview =
 
= Overview =
 
 
This page describes the L3 functionality that will be added to networking-vpp.  It will also describe what the team plans to deliver with respect to code, test, documentation and any other deliverables.
 
This page describes the L3 functionality that will be added to networking-vpp.  It will also describe what the team plans to deliver with respect to code, test, documentation and any other deliverables.
 
 
This project will add code to networking-vpp repository to enable L3 support when the networking-vpp driver is used in conjunction with an fd.io based vswitch in an openstack installation.   
 
This project will add code to networking-vpp repository to enable L3 support when the networking-vpp driver is used in conjunction with an fd.io based vswitch in an openstack installation.   
 
 
 
 
For this work centralized router (not-dvr) based approach will be provided.  There are numerous documents describing the openstack neutron routing model including:
 
For this work centralized router (not-dvr) based approach will be provided.  There are numerous documents describing the openstack neutron routing model including:
 +
* http://docs.openstack.org/developer/neutron/devref/layer3.html
 +
* https://developer.rackspace.com/blog/neutron-networking-l3-agent/
  
http://docs.openstack.org/developer/neutron/devref/layer3.html
 
 
https://developer.rackspace.com/blog/neutron-networking-l3-agent/
 
 
= Functionality that will be added =
 
= Functionality that will be added =
 
+
* Support for Router API operations (http://developer.openstack.org/api-ref/networking/v2/#routers-routers)
    Support for Router API operations (http://developer.openstack.org/api-ref/networking/v2/#routers-routers)
+
* Support for floating-IP API operations (http://developer.openstack.org/api-ref/networking/v2/#floating-ips-floatingips)
    Support for floating-IP API operations (http://developer.openstack.org/api-ref/networking/v2/#floating-ips-floatingips)
+
* Full support for East-West based routing between tenant networks (only via a centralized network node)
    Full support for East-West based routing between tenant networks (only via a centralized network node)
+
* Floating IP One-to-One NAT support for an instance (http://docs.openstack.org/newton/networking-guide/intro-nat.html)
    Floating IP One-to-One NAT support for an instance (http://docs.openstack.org/newton/networking-guide/intro-nat.html)
+
* Centralized network or control node approach (provide figure)
    Centralized network or control node approach (provide figure)
+
* Internal gateways hosted on VPP
    Internal gateways hosted on VPP
+
* External gateways - All traffic from the internal networks on the router are NATed to the router external IP
    External gateways - All traffic from the internal networks on the router are NATed to the router external IP
+
* Support for IPv4 and IPV6
  
 
= Functionality not supported =
 
= Functionality not supported =
 
+
* HA or any VRRP based solutions
    HA or any VRRP based solutions
+
* Distributed Virtual Router topologies (DVR)
    Distributed Virtual Router topologies (DVR)
+
* VXLAN-GPE
    VXLAN-GPE
+
* Setting the "enable_snat = FALSE" API network extension has no affect.  IOW in the case of IPv4 NAT will always be used when sending/receiving from an external network 
    No NAT scenario
+
* Any tie in with the dynamic routing or BGPVPN functionality available in Neutron
 
+
* No support for additional static routes (normally available to the user via an API call)
    Any tie in with the dynamic routing or BGPVPN functionality available in Neutron
 
    No support for additional static routes (normally available to the user via an API call)
 
  
 
= Limitations =
 
= Limitations =
 +
* Must be coupled with the L2 plugin and run on each compute or network node
 +
* All testing will be based on Newton release of Openstack.
  
Must be coupled with the L2 plugin and run on each compute or network node
+
= What will be delivered =
 
+
* Code merged in to the networking-vpp repository to add the functionality described above
All testing will be based on Newton release of Openstack.
+
* Unit tests merged in to the networking-vpp repository to test the code added in step 1
What will be delivered:
+
* Documentation to describe the functionality provided and the usage/installation requirements - via internal wiki
 
+
* A TOI and code walk-through to a responsible person that can continue the work after initial merge.
    Code merged in to the networking-vpp repository to add the functionality described above
 
    Unit tests merged in to the networking-vpp repository to test the code added in step 1
 
    Documentation to describe the functionality provided and the usage/installation requirements - via internal wiki
 
    A TOI and code walk-through to a responsible person that can continue the work after initial merge.
 
  
 
= Test methodology =
 
= Test methodology =
 
 
The tests included as part of this deliverable is limited to unit tests and a small number of "smoke tests" with a VPP instance installed.  Complete functional tests on physical servers in configuration representative of a real deployment is outside of the scope of this deliverable.   
 
The tests included as part of this deliverable is limited to unit tests and a small number of "smoke tests" with a VPP instance installed.  Complete functional tests on physical servers in configuration representative of a real deployment is outside of the scope of this deliverable.   
 
= Dependencies =
 
= Dependencies =
 
 
This work will have a few dependencies to properly deliver the functionality.  The following are the key items.
 
This work will have a few dependencies to properly deliver the functionality.  The following are the key items.
  
    17.01 based fd.io and fd.io python library RPMs available for installation
+
* 17.01 based fd.io and fd.io python library RPMs available for installation
    Timely code reviews and code merge from the networking-vpp community and core reviewers
+
* Timely code reviews and code merge from the networking-vpp community and core reviewers
    Support for the necessary L3 functionality from the fd.io vswitch/vrouter including:
+
* Support for the necessary L3 functionality from the fd.io vswitch/vrouter including:
        Support for NAT
+
# Support for NAT
        Support for proxy ARP
+
# Support for proxy ARP
        Support for routing
+
# Support for routing
        Support for an SVI/BVI type interface on an L2 bridge domain.
+
# Support for an SVI/BVI type interface on an L2 bridge domain.
    Timely response from the fd.io community for any bugs or issues uncovered while testing.
+
* Timely response from the fd.io community for any bugs or issues uncovered while testing.
    A responsible party that can continue the work after initial merge and guide this through functional testing.   
+
* A responsible party that can continue the work after initial merge and guide this through functional testing.   
    For customer release an comprehensive functionality test suite and execution would be required.  
+
* For customer release an comprehensive functionality test suite and execution would be required.  
  
 
= Installation/Usage Instructions =
 
= Installation/Usage Instructions =

Revision as of 14:46, 22 January 2017

Overview

This page describes the L3 functionality that will be added to networking-vpp. It will also describe what the team plans to deliver with respect to code, test, documentation and any other deliverables. This project will add code to networking-vpp repository to enable L3 support when the networking-vpp driver is used in conjunction with an fd.io based vswitch in an openstack installation. For this work centralized router (not-dvr) based approach will be provided. There are numerous documents describing the openstack neutron routing model including:

Functionality that will be added

Functionality not supported

  • HA or any VRRP based solutions
  • Distributed Virtual Router topologies (DVR)
  • VXLAN-GPE
  • Setting the "enable_snat = FALSE" API network extension has no affect. IOW in the case of IPv4 NAT will always be used when sending/receiving from an external network
  • Any tie in with the dynamic routing or BGPVPN functionality available in Neutron
  • No support for additional static routes (normally available to the user via an API call)

Limitations

  • Must be coupled with the L2 plugin and run on each compute or network node
  • All testing will be based on Newton release of Openstack.

What will be delivered

  • Code merged in to the networking-vpp repository to add the functionality described above
  • Unit tests merged in to the networking-vpp repository to test the code added in step 1
  • Documentation to describe the functionality provided and the usage/installation requirements - via internal wiki
  • A TOI and code walk-through to a responsible person that can continue the work after initial merge.

Test methodology

The tests included as part of this deliverable is limited to unit tests and a small number of "smoke tests" with a VPP instance installed. Complete functional tests on physical servers in configuration representative of a real deployment is outside of the scope of this deliverable.

Dependencies

This work will have a few dependencies to properly deliver the functionality. The following are the key items.

  • 17.01 based fd.io and fd.io python library RPMs available for installation
  • Timely code reviews and code merge from the networking-vpp community and core reviewers
  • Support for the necessary L3 functionality from the fd.io vswitch/vrouter including:
  1. Support for NAT
  2. Support for proxy ARP
  3. Support for routing
  4. Support for an SVI/BVI type interface on an L2 bridge domain.
  • Timely response from the fd.io community for any bugs or issues uncovered while testing.
  • A responsible party that can continue the work after initial merge and guide this through functional testing.
  • For customer release an comprehensive functionality test suite and execution would be required.

Installation/Usage Instructions