ML2 driver should only support geneve and vlan tenant network types

Bug #1588966 reported by Richard Theis
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-ovn
Fix Released
Undecided
Richard Theis

Bug Description

OVN supports "geneve" and "vlan" network types for neutron tenant networks. However, the default DevStack deployment sets the tenant_network_types option under [ml2] in ml2_conf.ini to "vxlan". This isn't correct. By default, this should be set to "geneve". Also, the ML2 driver should fail if the tenant network type is not "geneve" or "vlan".

For geneve tenant networks, we'll need to determine the proper defaults for the vni_ranges and max_header_size options under [ml2_type_geneve] in ml2_conf.ini. Since OVN doesn't allow configuration of the vni, it should be ignored (possibly logged) when creating geneve tenant networks.

For vlan tenant networks, the VLAN ID should be used when creating the network. This is similar to vlan provider networks. We'll also need to determine the proper defaults for the network_vlan_ranges option under [ml2_type_vlan] in ml2_conf.ini.

The result for this bug fix should be documented as appropriate.

Richard Theis (rtheis)
Changed in networking-ovn:
assignee: nobody → Richard Theis (rtheis)
summary: - ML2 should only support geneve and vlan tenant network types
+ ML2 driver should only support geneve and vlan tenant network types
Richard Theis (rtheis)
description: updated
Revision history for this message
Matt Kassawara (ionosphere80) wrote :

How do we handle VXLAN provider networks for L3GW/VTEP?

Revision history for this message
John Kasperski (jckasper) wrote :
Download full text (5.2 KiB)

I tried to create "geneve" private network with OVN ML2 mechanism driver and the following exception is being returned:

2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource [req-cbbd723a-2efe-4c0d-99c5-a3891fbaf84a 5ada2ecbb08c47109f4c3f951ce1f326 7c34cfc28b6a4ecf922f1d7503df186e - - -] create failed
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource Traceback (most recent call last):
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/neutron/api/v2/resource.py", line 78, in resource
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource result = method(request=request, **args)
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/neutron/api/v2/base.py", line 420, in create
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource return self._create(request, body, **kwargs)
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/oslo_db/api.py", line 148, in wrapper
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/oslo_utils/excutils.py", line 221, in __exit__
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource self.force_reraise()
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/oslo_utils/excutils.py", line 197, in force_reraise
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/oslo_db/api.py", line 138, in wrapper
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/neutron/api/v2/base.py", line 531, in _create
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource obj = do_create(body)
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/neutron/api/v2/base.py", line 513, in do_create
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource request.context, reservation.reservation_id)
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/oslo_utils/excutils.py", line 221, in __exit__
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource self.force_reraise()
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource File "/opt/bbc/openstack-11.0-master/neutron/local/lib/python2.7/site-packages/oslo_utils/excutils.py", line 197, in force_reraise
2016-06-05 04:53:52.201 1679 ERROR neutron.api.v2.resource six.reraise(...

Read more...

Revision history for this message
John Kasperski (jckasper) wrote :

The above exception is due to not having set "vni_ranges" in [ml2_type_geneve] section of the ml2_conf.ini. Once a range was specified, this exception went away.

Revision history for this message
Richard Theis (rtheis) wrote :

Matt, I haven't investigated VXLAN provider networks for L3GW/VTEP. Do you recall how they were handled with the core plugin?

Revision history for this message
Matt Kassawara (ionosphere80) wrote :

John,

Interestingly, the monolithic plug-in did not require (nor provide a way to define) a range of VNIs for self-service networks.

Revision history for this message
Matt Kassawara (ionosphere80) wrote :

Richard,

A spec [1] aims to implement VXLAN provider networks.

[1] https://review.openstack.org/#/c/282180/

Revision history for this message
Russell Bryant (russellb) wrote :

VxLAN provider networks seem doable, but will require work in OVN first. Can you file a separate bug to track that?

Revision history for this message
Richard Theis (rtheis) wrote :

Hi Matt and Russell, I've opened a bug [1] for VXLAN provider networks. Please update with any additional information.

[1] https://bugs.launchpad.net/networking-ovn/+bug/1589941

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-ovn (master)

Fix proposed to branch: master
Review: https://review.openstack.org/327295

Changed in networking-ovn:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/329588

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to networking-ovn (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/329660

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

Reviewed: https://review.openstack.org/327295
Committed: https://git.openstack.org/cgit/openstack/networking-ovn/commit/?id=c6461e61ab5c3de96c2f2421b3794d1689c6194b
Submitter: Jenkins
Branch: master

commit c6461e61ab5c3de96c2f2421b3794d1689c6194b
Author: Richard Theis <email address hidden>
Date: Wed Jun 8 10:27:08 2016 -0500

    Support geneve tenant network type

    Update the OVN DevStack plugin to use the geneve tenant network
    type. This includes related install documentation updates for
    ml2_conf.ini.

    This patch set also validates network creation precommit. The
    validation will ensure a valid network type is used and that
    a multi-provider network isn't created (they will be supported
    with routed networks).

    A follow-on patch set will support vlan tenant network type.

    Depends-On: Id75651dfe57a07045a6932a0369668f33c7eef09
    Change-Id: I3e25999b24c23413596f1a95f22f794712814ce8
    Partial-Bug: #1588966

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

Reviewed: https://review.openstack.org/329588
Committed: https://git.openstack.org/cgit/openstack/networking-ovn/commit/?id=d502f35b0ebcdd67d3a2353214179efec153dd04
Submitter: Jenkins
Branch: master

commit d502f35b0ebcdd67d3a2353214179efec153dd04
Author: Richard Theis <email address hidden>
Date: Tue Jun 14 12:21:37 2016 -0500

    Support vlan tenant network type

    OVN already supports VLAN provider networks. This support works
    as-is for VLAN tenant networks under the ML2 framework. Therefore,
    no code changes are required. However, documentation changes are
    required.

    In addition, update the OVN DevStack plugin and related install
    documentation to only set supported type drivers.

    Change-Id: I874222be56347003df01fc3fb1107d5bbecf482d
    Co-Authored-By: Matt Kassawara <email address hidden>
    Closes-Bug: #1588966

Changed in networking-ovn:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to networking-ovn (master)

Reviewed: https://review.openstack.org/329660
Committed: https://git.openstack.org/cgit/openstack/networking-ovn/commit/?id=f1a41996bd644711dc0fed1b7bfb86ba6809711e
Submitter: Jenkins
Branch: master

commit f1a41996bd644711dc0fed1b7bfb86ba6809711e
Author: Richard Theis <email address hidden>
Date: Tue Jun 14 15:02:30 2016 -0500

    Remove unneeded /etc/neutron/dnsmasq.conf configuration

    The /etc/neutron/dnsmasq.conf configuration file isn't needed to
    set the MTU option. This is now done by the ML2 framework via
    various MTU configuration options (e.g. max_header_size option
    for geneve tenant networks).

    Change-Id: I26c86f803d51758e1cbb4a7f12ae70ed742ef040
    Related-Bug: #1588966

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.