[RFE] ml2 supported extensions list is inaccurate

Bug #1583096 reported by YAMAMOTO Takashi
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Triaged
Wishlist
Unassigned

Bug Description

depending on which mech drivers and service plugins are configured,
ml2 supported extensions list can be inaccurate.

for example, it has dhcp_agent_scheduler hardcoded.
but it isn't appropriate for (some of?) non agent based mech drivers.
(note: there are tempest test cases which expect at least one agent is actually registered
if the extension is enabled)

another example is address-scope. it actually involves l3 implementation. (routing decision)

similar bug for l3: https://bugs.launchpad.net/neutron/+bug/1450067

Revision history for this message
Assaf Muller (amuller) wrote :

Perhaps we need to change ML2 so that each mech driver exposes extensions, and ML2 exposes the sum of said extensions, instead of exposing a hard coded list that is oblivious to the mech drivers currently loaded.

Changed in neutron:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Robert Kukura (rkukura) wrote :

Since ML2 supports heterogeneous deployments, my view is that the supported extension list should reflect the extensions supported by the API, and that ML2s port binding process needs to take into account the semantics expressed through those extension APIs in deciding what combinations of mechanism drivers are allowed to bind a particular port. If the semantics requested through the API extensions cannot be provided for a port, it should fail to bind, hopefully with enough useful error information so that the user can understand how to resolve/avoid the issue.

An example would be the security groups extension, in a deployment that included a mix of KVM compute nodes with the regular OVS L2 agent, KVM compute nodes with SR-IOV capabilities, and bare metal compute nodes. All expressible SG semantics can be enforced by the OVS L2 agent, but in the other cases, SGs either cannot be enforced at all, or the ToR switch mechanism driver may be capable of enforcing a subset of the SG semantics via switch ACLs. In this scenario, port binding should fail if the port is being bound for SR-IOV or for bare metal, and the ToR mechanism driver cannot enforce the current SG rule sets applied to the port. Furthermore, changing the SGs associated with an already bound port should fail if the port is successfully bound for SR-IOV or bare metal and the new SG rule sets could not be enforced by the ToR mechanism driver. Other extensions such as QoS would have similar port binding requirements to ensure their semantics are enforced.

Accomplishing this will require interaction between the ML2 extension drivers and the set of mechanism drivers in a potential binding to decide if the required extension semantics can or cannot be enforced/provided by that binding. It will also require ML2 mechanism drivers involved in a binding to be able to reject changes made via the extension APIs.

But no single MD should determine whether or not any particular extension should be included in the ML2 plugin's supported extensions list.

Revision history for this message
Robert Kukura (rkukura) wrote :

Orthogonally to the enforcement of extension value semantics described in my comment above, there is something we can do to give the admin more control over what extensions ML2 advertises as supported. The idea would be to package more of the extensions that are currently mixed-into the ML2 plugin class as extension drivers instead. That way, a deployment could leave out extensions that are not applicable, and they would not appear in the extension list.

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

This bug is > 180 days without activity. We are unsetting assignee and milestone and setting status to Incomplete in order to allow its expiry in 60 days.

If the bug is still valid, then update the bug status.

Changed in neutron:
status: Confirmed → Incomplete
Revision history for this message
YAMAMOTO Takashi (yamamoto) wrote :

it's still valid.

Changed in neutron:
status: Incomplete → Confirmed
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

It is indeed, thanks for putting it back to the confirmed list. Are we ever gonna fix it? :)

Changed in neutron:
importance: Medium → Wishlist
tags: added: rfe
summary: - ml2 supported extensions list is inaccurate
+ [RFE] ml2 supported extensions list is inaccurate
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

bumping to RFE to see if a discussion amongst drivers is gonna make a difference.

Revision history for this message
Poonam Ghosh (poonam-ghosh) wrote :

We are planning to pick this Wishlist Bug for our analysis and contribution.
This is to intimate our participation on this Bugs analysis and Contributions.

Let me know if there are any duplication of work items for this particular wishlist bug.

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

Bug 1583096 is somewhat related.

Changed in neutron:
status: Confirmed → Won't Fix
status: Won't Fix → Triaged
Revision history for this message
Kevin Benton (kevinbenton) wrote :
tags: removed: rfe
Revision history for this message
Kevin Benton (kevinbenton) wrote :

Would like to see 1673142 solve the issues here. Address scopes might need to be moved to the l3 plugin entirely.

Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

https://review.openstack.org/#/c/253853 may be of relevance here.

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.