ofagent-flow-based-tunneling

Change-Id: I183c2933ddd8581ca8cc28f12cbb3f0ec696669a
This commit is contained in:
YAMAMOTO Takashi 2014-10-15 14:24:58 +09:00
parent cd75a5ded6
commit 8dc327c15d
1 changed files with 163 additions and 0 deletions

View File

@ -0,0 +1,163 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=============================
OFAgent: Flow-based tunneling
=============================
https://blueprints.launchpad.net/neutron/+spec/ofagent-flow-based-tunneling
make ofagent use flow-based tunneling rather than
the current port-based tunneling.
Problem Description
===================
ofagent creates tunnel ports for each peer nodes.
It's unscalable and complex.
Proposed Change
===============
use flow-based tunneling, using tun_ipv4_src/tun_ipv4_dst NXMs.
(in addition to tun_id OXM, which is currently used by ofagent)
Note: while the use of NXMs contradicts to the one of goals of
ofagent, i.e. being portable to other switch implementations,
it isn't a problem right now because:
- the tunneling support is OVS-dependent anyway
- i've heard that the future versions of OpenFlow aims to the same direction.
there seems to be no publically available reference for this, though.
Alternatives
------------
none
Data Model Impact
-----------------
none
REST API Impact
---------------
none
Security Impact
---------------
none
Notifications Impact
--------------------
none
Other End User Impact
---------------------
none
Performance Impact
------------------
none
IPv6 Impact
-----------
none
Other Deployer Impact
---------------------
none
Developer Impact
----------------
code would get simpler and easier to maintain.
Community Impact
----------------
none
Implementation
==============
Assignee(s)
-----------
Primary assignee:
yamamoto
Other contributors:
kakuma
Work Items
----------
* tweak L2populationRpcCallBackTunnelMixin api so that it can handle
the "a single tunnel port for many networks" situation more naturally
* tweak how ofagent sets up tunnel ports
* tweak ofagent flows accordingly
Dependencies
============
none
Testing
=======
Tempest Tests
-------------
ideally multi-node testing is necessary.
however i don't plan to cover it by this blueprint.
Functional Tests
----------------
none
API Tests
---------
no api change thus no additional tests.
Documentation Impact
====================
User Documentation
------------------
should document new requirement (ryu>=3.15) for relevant NXMs support
Developer Documentation
-----------------------
none
References
==========
the current implementation of this blueprint:
- https://review.openstack.org/#/c/130676/
- https://review.openstack.org/#/c/130677/
as far as i know, NXMs are only documentated in Open vSwitch
source code:
- https://github.com/openvswitch/ovs/blob/e9bbe84b6b51eb9671451504b79c7b79b7250c3b/lib/meta-flow.h#L335
- https://github.com/openvswitch/ovs/blob/e9bbe84b6b51eb9671451504b79c7b79b7250c3b/lib/meta-flow.h#L353