ofagent-l2pop
Change-Id: I215dd02c21afe499e238a66b168f15fd120454cb
This commit is contained in:
133
specs/juno/ofagent-l2pop.rst
Normal file
133
specs/juno/ofagent-l2pop.rst
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
==========================================
|
||||||
|
ofagent l2pop support
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/neutron/+spec/ofagent-l2pop
|
||||||
|
|
||||||
|
implement l2pop support for ofagent agent.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
* many packets sent to tunnels because of:
|
||||||
|
* tenant unawareness; no need to forward a packet to nodes
|
||||||
|
which doesn't run endpoints (typically VMs) belonging to the tenant.
|
||||||
|
* broadcasts, namely arp requests
|
||||||
|
|
||||||
|
see `L2population_blueprint`_ for more discussions.
|
||||||
|
|
||||||
|
.. _L2population_blueprint: https://wiki.openstack.org/wiki/L2population_blueprint
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
* implement l2pop-based tunnel management as it's done in ovs
|
||||||
|
|
||||||
|
* implement local arp responder by handling packet-ins
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
local arp responder part can be implemented differently.
|
||||||
|
for example, using nicira extensions as described in `Ovs-flow-logic`_.
|
||||||
|
however it isn't a choice for ofagent as there's no way to implement such
|
||||||
|
a flow-based arp responder without vendor extensions.
|
||||||
|
|
||||||
|
.. _Ovs-flow-logic: https://wiki.openstack.org/wiki/Ovs-flow-logic#OVS_flows_logic_with_local_ARP_responder
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
this would naturally improve performance.
|
||||||
|
|
||||||
|
see `L2population_blueprint`_ for more discussions.
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
yamamoto
|
||||||
|
|
||||||
|
Other contributors:
|
||||||
|
kakuma
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* implement l2pop-based tunnel management as it's done in ovs.
|
||||||
|
the following is working implementation of this.
|
||||||
|
|
||||||
|
https://review.openstack.org/#/c/87440/
|
||||||
|
|
||||||
|
* implement local arp respoder by handling packet-ins
|
||||||
|
the following is working implementation of this.
|
||||||
|
|
||||||
|
https://review.openstack.org/#/c/94183/
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
ryu/ofagent third party testing would find regressions.
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
* https://blueprints.launchpad.net/neutron/+spec/l2-population
|
||||||
|
* https://wiki.openstack.org/wiki/L2population_blueprint
|
||||||
|
* https://wiki.openstack.org/wiki/Neutron/OFAgent/Todo
|
||||||
|
* https://wiki.openstack.org/wiki/Neutron/OFAgent/FlowTable
|
||||||
|
* https://github.com/yamt/ryu/blob/arp-proxy/ryu/app/arp_proxy.py
|
||||||
Reference in New Issue
Block a user