[RFE] Changing segmentation_id of existing network should be allowed

Bug #1806052 reported by Brian Haley
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Wishlist
Rodolfo Alonso

Bug Description

In the context of a live datacenter, sometimes the network teams re-organize their VLANs by changing VLAN IDs. This is pretty straightforward in the context of network configuration and physical servers, but when using ML2 VLAN provider networks, those IDs cannot be updated. The only possible solution here would be to delete those networks and recreate them with a different VLAN ID which might be a problem when you have 1000 VMs and 2000 ports.

For this reason it would be good if we could change the segmentation_id of an existing network.

Tags: rfe-approved
Revision history for this message
Bence Romsics (bence-romsics) wrote :

Brian, I'm absolutely sure you know this, but for other's to see: This will be discussed on the neutron-drivers meeting:

http://eavesdrop.openstack.org/#Neutron_drivers_Meeting

Revision history for this message
Miguel Lavalle (minsel) wrote :

This entails re-binding all the ports in the network, since we need to re-wire the network in the data plane, right?

tags: added: rfe-confirmed
removed: rfe
Revision history for this message
Akihiro Motoki (amotoki) wrote :

It is technically possible.

My question is what are the requirements when changing VLAN ID.
For example, do we need to ensure connectivity during changing VLAN ID?
I think we need to accept some downtime at least.

Revision history for this message
Miguel Lavalle (minsel) wrote :

Yes, it makes sense. Let's discuss it in the meeting

tags: added: rfe-triaged
removed: rfe-confirmed
Revision history for this message
Miguel Lavalle (minsel) wrote :

This RFE has been approved by the drivers team. Next step is write a spec

tags: added: rfe-approved
removed: rfe-triaged
Revision history for this message
Brian Haley (brian-haley) wrote :

Some notes from the drivers meeting:

First, answering the questions - yes, this would entail re-binding all the ports in the network, possibly causing downtime for instances. This is considered Ok for this use case since removing and re-adding the network would be even longer.

We need to consider how to do this in such a way that we don't overwhelm the server with massive re-bindings however, will write a spec describing the steps.

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

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

Changed in neutron:
assignee: nobody → Rodolfo Alonso (rodolfo-alonso-hernandez)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

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

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

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

Reviewed: https://review.openstack.org/633583
Committed: https://git.openstack.org/cgit/openstack/neutron-specs/commit/?id=3f9ca0e441491ff49426dfe62ab6b93c082eb180
Submitter: Zuul
Branch: master

commit 3f9ca0e441491ff49426dfe62ab6b93c082eb180
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Mon Jan 28 19:00:04 2019 +0000

    Changing segmentation ID of existing network should be allowed

    In the context of a live datacenter, sometimes the network teams re-organize
    their VLANs by changing VLAN IDs. This is pretty straightforward in the
    context of network configuration and physical servers, but when using ML2
    VLAN provider networks, those IDs cannot be updated. The only possible
    solution here would be to delete those networks and recreate them with a
    different segmentation ID which might be a problem when you have 1000 VMs
    and 2000 ports.

    For this reason it would be good if we could change the segmentation ID of
    an existing network.

    Change-Id: I71b5b4ff2ba7ace3a8523de2ae6e4dc6a1c110c2
    Related-Bug: #1806052

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

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

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

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron-lib (master)

Change abandoned by Rodolfo Alonso Hernandez (<email address hidden>) on branch: master
Review: https://review.openstack.org/648141
Reason: My bad: this exception exists in Neutron... and I didn't find it!

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

Reviewed: https://review.openstack.org/633165
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=6f26f4026b528e778fa653f51baff39f889181be
Submitter: Zuul
Branch: master

commit 6f26f4026b528e778fa653f51baff39f889181be
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Jan 25 09:04:29 2019 +0000

    Change provider network segmentation ID

    In the ML2 plugin, allow to update the segmentation ID of a single
    provider network.

    A new method in the "SimpleAgentMechanismDriverBase" is added:
    "provider_network_attribute_updates_supported". This method returns,
    if implemented in the specific agent, which network attributes can
    be updated on a live network with ports bound to this network back-end.
    By default, an empty list is returned.

    Partial-Bug: #1806052

    Change-Id: I2595335d6fbc51562b070f14eaeaadf49cf7c418

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

Reviewed: https://review.openstack.org/644385
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=58ce96a7c296961e22a2ea9d4e71ec629bddd4fa
Submitter: Zuul
Branch: master

commit 58ce96a7c296961e22a2ea9d4e71ec629bddd4fa
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Mon Mar 18 18:19:38 2019 +0000

    Decouple local VLAN internal management and OVS enforcement

    The internal local VLAN management is now an independent function,
    ready to be used in follow-up patches.

    Change-Id: I83f6983c444c0426b65f56130fa027285691567b
    Partial-Bug: #1806052

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

Reviewed: https://review.opendev.org/632984
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=2bcc178be15dce850162be76a870e443eee84c47
Submitter: Zuul
Branch: master

commit 2bcc178be15dce850162be76a870e443eee84c47
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Wed Jan 23 16:21:33 2019 +0000

    Change provider network segmentation ID in OVS agent

    Added the ability to change the segmentation ID of a network
    with ports bound to OVS agent. The rules, both in the integration
    bridge and the physical bridge, to convert the internal VLAN tag
    and the external segmentation ID (external VLAN tag) are deleted
    and created again with the new value. The traffic from the tenant
    networks will be tagged then with the new segmentation ID.

    Added get network details agent RPC call to retrieve the information
    of the updated network.

    Partial-Bug: #1806052

    Change-Id: I69f6f3ef717c3ed40218099b1f389afd3d39bd62

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

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron-lib/+/862808

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

Reviewed: https://review.opendev.org/c/openstack/neutron-lib/+/862808
Committed: https://opendev.org/openstack/neutron-lib/commit/30b74827f735bb16669b7ffdaabc2aec002bb77e
Submitter: "Zuul (22348)"
Branch: master

commit 30b74827f735bb16669b7ffdaabc2aec002bb77e
Author: elajkat <email address hidden>
Date: Thu Oct 27 14:10:27 2022 +0200

    Api-ref: Add note that only VLAN segmentation-id can be changed

    Since [1] it is allowed to change the provider:segmentation-id of VLAN
    type networks.

    [1]: https://review.opendev.org/q/topic:bug%252F1806052

    Closes-Bug: #1428062
    Related-Bug: #1806052
    Change-Id: Id675e897b23bce1b478ab6c1e438c1d253c53a07

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.