OVS Neutron Agent support for ovs+dpdk netdev datapath

Bug #1469871 reported by sean mooney
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
sean mooney

Bug Description

The OVS Neuton Agent currently supports managing 2 datapaths.
the linux kernel data path and the newly added openvswitch windows datapath.

Based on feedback from the summit this whishlist bug has been created in place of a blueprint to capture the changes required to enable the ovs l2 agent to managed the userspace netdev datapath.

2 new config should be added to allow configuation of ovs and the ovs l2 agent.

cfg.StrOpt('ovs_datapath', default='system', choices=['system','netdev'],
                  help=_("ovs datapath to use.")),

and

cfg.StrOpt('agent_type', default=q_const.AGENT_TYPE_OVS,
                  choices=[q_const.AGENT_TYPE_OVS, q_const.AGENT_TYPE_OVS_DPDK],
                  help=_("Selects the Agent Type reported"))

the ovs_datapath config option will provided a mechanism at deploy time to select which datapath to enable.
the 'system'(kernel) datapath will be enabled by default as it is today. the netdev(userspace) datapath option will enabled the ovs agent to configure and manage the netdev data path. this config option will be added to the ovs section of the ml2_conf.ini

the agent_type config option will provided a mechanism to enable coexistence of dpdk enabled ovs nodes and vanilla ovs nodes.
by allowing a configurable agent_type both the standard openvswitch ml2 mechanism driver and the ovsdpdk mechanism driver can be used. by default the agent_type reported will be unchanged 'Open vSwitch agent'. during deployment an operator can chose to spcify an agent_type of 'DPDK OVS Agent' if they have deployed a dpdk enabled.

these are the only changes required to extent the ovs agent to suport the netdev datapath.

documentation and unit tests will be provided to cover these changes.
a new job can be added to the intel-networking-ci to continue to validate this configuration if additional 3rd party
testing is desired.

Changed in neutron:
assignee: nobody → sean mooney (sean-k-mooney)
Assaf Muller (amuller)
tags: added: rfe
Changed in neutron:
importance: Undecided → High
Changed in neutron:
status: New → In Progress
Revision history for this message
yalei wang (yalei-wang) wrote :

hi sean,

if we choose 'ovs_datapath' to netdev, we must set 'agent_type' to q_const.AGENT_TYPE_OVS_DPDK, right?

Revision history for this message
sean mooney (sean-k-mooney) wrote :

no that is not required.
the netdev datapath supports kernel vhost ports also so the standard ovs mechanism driver can be used.

the revers however is true, if you set the agent_type to AGENT_TYPE_OVS_DPDK then the netdev datapath is required.

this will be clearly stated in the documentation once if find where in the documentation to add the information.

Revision history for this message
sean mooney (sean-k-mooney) wrote :
Revision history for this message
sean mooney (sean-k-mooney) wrote :

code and units for this change are available for review here
https://review.openstack.org/197209
https://review.openstack.org/197210

Revision history for this message
yong sheng gong (gongysh) wrote :

Do we have a wiki to talk about running ovs dpdk with our netdev path ovs agent?

Revision history for this message
sean mooney (sean-k-mooney) wrote :

we have some documentation in git repo
https://github.com/stackforge/networking-ovs-dpdk/tree/master/doc/source
we will be adding a getting started guide (GSG) in the future to explain further.
the gsg will be maintained as an rst file in tree and updated to reflect new features or configuration steps
as required.

we also provide a sample local.conf which will ues our devstack plugin to deploy ovs with dpdk and the ovs-dpdk-agent and ml2 mechanism driver.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/qos)

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/213886

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/213887

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (feature/qos)

Change abandoned by sean mooney (<email address hidden>) on branch: feature/qos
Review: https://review.openstack.org/213886

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Change abandoned by sean mooney (<email address hidden>) on branch: feature/qos
Review: https://review.openstack.org/213887

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/197209
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=63b03362821deadc0e65cce54b11cb7d4c2262d2
Submitter: Jenkins
Branch: master

commit 63b03362821deadc0e65cce54b11cb7d4c2262d2
Author: Sean Mooney <email address hidden>
Date: Fri Jun 26 10:48:26 2015 +0100

    Add config option to specify ovs datapath.

    This change introduces a new datapath_type parameter
    to allow specification of the ovs datapath to be used.
    This change introduces new functional and unit tests.

    DocImpact
    Change-Id: I929d8d15fc6cfdb799c53ef0f3722f4ed5c1096d
    Partial-Bug: #1469871

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/pecan)

Fix proposed to branch: feature/pecan
Review: https://review.openstack.org/218710

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/pecan)
Download full text (155.6 KiB)

Reviewed: https://review.openstack.org/218710
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=2c5f44e1b3bd4ed8a0b7232fd293b576cc8c1c87
Submitter: Jenkins
Branch: feature/pecan

commit f35d1c5c50dccbef1a2e079f967b82f0df0e22e9
Author: Adelina Tuvenie <email address hidden>
Date: Thu Aug 27 02:27:28 2015 -0700

    Fixes wrong neutron Hyper-V Agent name in constants

    Change Id03fb147e11541be309c1cd22ce27e70fadc28b5 moved the
    AGENT_TYPE_HYPERV constant from common.constants to
    plugins.ml2.drivers.hyperv.constants but change the value of the
    constant from 'HyperV agent' to 'hyperv'. This patch changes
    the name back to 'HyperV agent'

    Change-Id: If74b4b2a84811e266c8b12e70bf6bfe74ed4ea21
    Partial-Bug: #1487598

commit de604de334854e2eb6b4312ff57920564cbd4459
Author: OpenStack Proposal Bot <email address hidden>
Date: Sun Aug 30 01:39:06 2015 +0000

    Updated from global requirements

    Change-Id: Ie52aa3b59784722806726e4046bd07f4a4d97328

commit f0415ac20eaf5ab4abb9bd4839bf6d04ceee85d0
Author: armando-migliaccio <email address hidden>
Date: Fri Aug 28 13:53:04 2015 -0700

    Revert "Add support for unaddressed port"

    This implementation may expose a vulnerability where a malicious
    user can sieze the opportunity of a time window where a port
    may land unaddressed on a shared network, thus allowing him/her
    to suck up all the tenant traffic he/she wants....oh the shivers.

    This reverts commit d4c52b7f5a36a103a92bf9dcda7f371959112292.

    Change-Id: I7ebdaa8d3defa80eab90e460fde541a5bdd8864c

commit 013fdcd2a6d45dbe4de5d6e7077e5e9b60985ef9
Author: Assaf Muller <email address hidden>
Date: Fri Aug 28 16:41:07 2015 -0400

    Improve logging upon failure in iptables functional tests

    This will help us nail down a more accurate and efficient logstash
    query.

    Change-Id: Iee4238e358f7b056e373c7be8d6aa3202117a680
    Related-Bug: #1478847

commit 622dea818d851224a43d5276a81d5ce8a6eebb76
Author: Ivar Lazzaro <email address hidden>
Date: Mon Aug 17 17:17:42 2015 -0700

    handle gw_info outside of the db transaction on router creation

    Move the gateway interface creation outside the DB transaction
    to avoid lock timeout.

    Change-Id: I5a78d7f32e8ca912016978105221d5f34618af19
    Closes-bug: 1485809

commit 5b27d290a0a95f6247fc5a0fe6da1e7d905e6b2d
Author: Assaf Muller <email address hidden>
Date: Wed Aug 26 10:07:03 2015 -0400

    Remove ml2 resource extension success logging

    This is the cause of a tremendous amount of logs, for no
    perceivable gain. A normal dvr run in the gate shows this debug
    message around 120K times, which is way too much.

    Closes-Bug: #1489952

    Change-Id: I26fca8515d866a7cc1638d07fa33bc04479ae221

commit 8d3faf549cba2f58c872ef4121b2481e73464010
Author: huangpengtao <email address hidden>
Date: Fri Aug 28 23:20:46 2015 +0800

    Replace "prt" variable by "port"

    the local variable prt is meaningless,
    and port is used popular.

    Change-Id: I20849102cf5b4d84433c46791b4b1e2a22dc4739

commit ee374e7a5f4dea538fcd942f5...

tags: added: in-feature-pecan
Kyle Mestery (mestery)
Changed in neutron:
milestone: none → liberty-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/197210
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=58c0e498b45b20be936cdfbf9f8c748dba2c2c47
Submitter: Jenkins
Branch: master

commit 58c0e498b45b20be936cdfbf9f8c748dba2c2c47
Author: Sean Mooney <email address hidden>
Date: Fri Jun 26 12:37:22 2015 +0100

    Adds configurable agent type

    This change introduces a new agent_type config option which
    allows the ovs agent to be reused by out of tree
    mechanism drivers.

    DocImpact
    Change-Id: I48f4be4b1d51bcff62e86e5814c12bd9bfa3c902
    Closes-Bug: #1469871

Changed in neutron:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: liberty-rc1 → 7.0.0
tags: added: deprecation
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.