Network bandwitdh resource provider
This BP covers the activities to add a new resource provider to define the available bandwidth in a network device.
This resource provider will model the total amount of bandwidth available in a hardware device or a user define value, which will overwrite the value read from the compute agent driver. This available bandwidth will change depending on every new port created/
The following diagram represents the resource provider tree (to be defined):
Host --> Socket --> NUMA node --> PCI device --> NIC --> Physical function --> Available BW.
Nova dependencies:
1) Custom resource classes:
- Spec: https:/
- Code: https:/
2) Nested resource providers:
- Spec: https:/
- Code: https:/
Neutron dependencies:
1) Strict minimum bandwidth:
- Spec: https:/
Blueprint information
- Status:
- Complete
- Approver:
- Matt Riedemann
- Priority:
- Medium
- Drafter:
- Rodolfo Alonso
- Direction:
- Approved
- Assignee:
- Balazs Gibizer
- Definition:
- Approved
- Series goal:
- Accepted for stein
- Implementation:
-
Implemented
- Milestone target:
-
stein-3
- Started by
- Matt Riedemann
- Completed by
- Matt Riedemann
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Network bandwitdh resource provider
Deferring to Rocky since the spec wasn't approved in time for Queens. -- mriedem 20171102
Approved for Rocky. -- mriedem 20180508
Addressed by: https:/
add resource_requests field to RequestSpec
Addressed by: https:/
transfer port.resource_
Addressed by: https:/
Make placement.
Addressed by: https:/
Send resource allocations in the port binding
Addressed by: https:/
Reject interface attach with QoS aware port
Addressed by: https:/
Reject networks with QoS policy
Addressed by: https:/
Remove network info stubbing in functional test
Addressed by: https:/
Add bandwidth related standard resource classes
Addressed by: https:/
Test boot with more ports with bandwidth request
We're past feature freeze for Rocky, so this must be deferred. Please re-propose the spec for Stein if you'd like to work on it next cycle. -- melwitt 20180727
Addressed by: https:/
Network bandwidth resource provider
Re-approved for Stein. -- mriedem 20180907
Addressed by: https:/
Calculate port_id rp_uuid mapping for binding
Addressed by: https:/
Pass allocations to neturonv2 api
Addressed by: https:/
Extend RequestGroup object for mapping
Addressed by: https:/
Fill the RequestGroup mapping during schedule
Addressed by: https:/
Recalculate request group - RP mapping during re-schedule
Addressed by: https:/
DNM: troubleshoot cells v1 tests on gate
Addressed by: https:/
Remove port allocation during detach
Addressed by: https:/
Ensure that allocated PF matches the used PF
Addressed by: https:/
Refactor PortResourceReq
Addressed by: https:/
Record requester in the InstancePCIRequest
Addressed by: https:/
Add pf_interface_name tag to passthrough_
Addressed by: https:/
Create RequestGroup from neutron port
Addressed by: https:/
Include requested_resources to allocation candidate query
Addressed by: https:/
Extend NeutronFixture to return port with resource request
Addressed by: https:/
Read port resource request from Neutron
Addressed by: https:/
Reject server create with port having resource request
Addressed by: https:/
Reject resize with port having resource request
Addressed by: https:/
Reject migrate with port having resource request
Addressed by: https:/
Reject evacuate with port having resource request
Addressed by: https:/
Reject unshelve with port having resource request
Addressed by: https:/
Fup for the bandwidth resource provider series
Addressed by: https:/
Follow up (#2) for the bw resource provider series
Addressed by: https:/
Support server create with ports having resource request
Addressed by: https:/
Refactor _heal_allocatio
Addressed by: https:/
Refactor _heal_allocatio
Addressed by: https:/
nova-manage: heal port allocations
Gerrit topic: https:/
Addressed by: https:/
cache neutron ports in heal allocation
Addressed by: https:/
FUP for Id7827fe8dc2711
Addressed by: https:/
Follow up for I0c764e441993e3
Addressed by: https:/
Use Selection object to fill request group mapping
Addressed by: https:/
Add trait cache for multicreate
Addressed by: https:/
Fup for the bandwidth series
Addressed by: https:/
Handle placement error during re-schedule
Addressed by: https:/
Add remove_
Addressed by: https:/
Warn if group_policy is missing from flavor
Addressed by: https:/
Test macvtap port with resource request
Addressed by: https:/
Refactor bandwidth related functional tests
Addressed by: https:/
Documentation for bandwidth support
The 2.72 microversion adds support for guaranteed minimum bandwidth scheduling for QoS ports in Stein but there is more work to do in Train for move operation support (cold/live migrate, evacuate and unshelve), so I will mark this partially complete for Stein. -- mriedem 20190310
Addressed by: https:/
Update Network Bandwidth resource provider spec
Addressed by: https:/
Fix links to neturoin QoS minimum bandwidth doc
Addressed by: https:/
Move Stein implemented specs
Gerrit topic: https:/
Addressed by: https:/
Test macvtap port with resource request
Addressed by: https:/
Refactor bandwidth related functional tests
Work Items
Dependency tree

* Blueprints in grey have been implemented.