Difference between revisions of "Networking-vpp/L3 routing support"
John a joyce (talk | contribs) m |
John a joyce (talk | contribs) |
||
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/ | ||
− | |||
− | |||
− | |||
= 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 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) | |
− | + | * 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) | |
− | + | * Internal gateways hosted on VPP | |
− | + | * 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 | |
− | + | * 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 = | = 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 | |
− | 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. | |
− | |||
− | |||
− | |||
− | |||
= 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 | |
− | + | * 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 NAT | |
− | + | # Support for proxy ARP | |
− | + | # Support for routing | |
− | + | # 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 = | = Installation/Usage Instructions = |
Revision as of 14:46, 22 January 2017
Contents
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:
- http://docs.openstack.org/developer/neutron/devref/layer3.html
- https://developer.rackspace.com/blog/neutron-networking-l3-agent/
Functionality that will be added
- 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)
- 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)
- Centralized network or control node approach (provide figure)
- Internal gateways hosted on VPP
- 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
- 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:
- Support for NAT
- Support for proxy ARP
- Support for routing
- 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.