ofagent-flow-based-tunneling
Change-Id: I183c2933ddd8581ca8cc28f12cbb3f0ec696669a
This commit is contained in:
parent
cd75a5ded6
commit
8dc327c15d
163
specs/kilo/ofagent-flow-based-tunneling.rst
Normal file
163
specs/kilo/ofagent-flow-based-tunneling.rst
Normal 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
|
Loading…
x
Reference in New Issue
Block a user