[RFE] Port status update
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Wishlist
|
Carlos Goncalves |
Bug Description
Neutron port status field represents the current status of a port in the cloud infrastructure. The field can take one of the following values: 'ACTIVE', 'DOWN', 'BUILD' and 'ERROR'.
At present, if a network event occurs in the data-plane (e.g. virtual or physical switch fails or one of its ports, cable gets pulled unintentionally, infrastructure topology changes, etc.), connectivity to logical ports may be affected and tenants' services interrupted. When tenants/cloud administrators are looking up their resources' status (e.g. Nova instances and services running in them, network ports, etc.), they will wrongly see everything looks fine. The problem is that Neutron will continue reporting port 'status' as 'ACTIVE'.
Many SDN Controllers managing network elements have the ability to detect and report network events to upper layers. This allows SDN Controllers' users to be notified of changes and react accordingly. Such information could be consumed by Neutron so that Neutron could update the 'status' field of those logical ports, and additionally generate a notification message to the message bus.
However, Neutron misses a way to be able to receive such information through e.g. ML2 driver or the REST API ('status' field is read-only). There are pros and cons on both of these approaches as well as other possible approaches. This RFE intends to trigger a discussion on how Neutron could be improved to receive fault/change events from SDN Controllers or even also from 3rd parties not in charge of controlling the network (e.g. monitoring systems, human admins).
Changed in neutron: | |
importance: | Undecided → Wishlist |
Changed in neutron: | |
status: | New → Confirmed |
Changed in neutron: | |
status: | Confirmed → Triaged |
tags: |
added: rfe-approved removed: rfe |
Changed in neutron: | |
status: | In Progress → Fix Committed |
Changed in neutron: | |
status: | Fix Committed → Fix Released |
Incidentally there's a public Python API being worked on to provide the ability to ML2 drivers to set the port status. That has the drawback of being such that only ML2 drivers can call it according to their own logic to detect faults etc.
In reality Neutron is considered the source of truth for Neutron ports and providing the ability to REST clients to force a status change on the ports is clearly in violation of that. An API client can always force an admin_status_up change, which 'disables' the port from the data plane.
[1] https:/ /review. openstack. org/#/c/ 336068/