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:
as far as i know, NXMs are only documentated in Open vSwitch source code: