Neutron QoS API Extension
Change-Id: I3e2bc9a37879874ca21eb7efd0832894dc860892
This commit is contained in:
parent
d76bec4015
commit
80a03f16d5
|
@ -0,0 +1,109 @@
|
|||
========================================
|
||||
Neutron Quality of Service API Extension
|
||||
========================================
|
||||
|
||||
A proposal to allow the users of Quantum network service the ability
|
||||
to request a particular level of network QoS for their job. The
|
||||
granularity of the request could be: Per network: All the VMs/hosts on
|
||||
a particular network belonging to a particular tenant get a particular
|
||||
level of QoS Per port: A VM/host connected to that port gets a
|
||||
particular level of QoS
|
||||
|
||||
The definition of network QoS can involve many parameters and it is
|
||||
difficult to standardize support for it across installations and Cloud
|
||||
Service Providers (CSPs). Instead, the CSP could provide the option of
|
||||
choosing a QoS category from a pre-configured list of categories which
|
||||
that particular CSP supports. A common way to express such
|
||||
categorization is through the use of “Platinum”, “Gold”, “Silver”,
|
||||
“Bronze”, and “Best-effort” levels. Note, these categories are just
|
||||
examples, the specific naming convention could be defined by the CSP,
|
||||
and could have a different set of categories in this list. This
|
||||
proposal does not aim to standardize on this convention itself (but
|
||||
could be an option if it promotes interoperability, with the caveat
|
||||
that their definition also has to be standardized in that case).
|
||||
|
||||
Even from a user’s perspective, it might be convenient and easier to
|
||||
select the desired QoS from a CSP supplied list, rather than have to
|
||||
articulate complex details of the QoS policy. The actual definition of
|
||||
the network QoS to which each of these levels maps to might vary
|
||||
between installations and CSPs, and could include bandwidth
|
||||
guarantees, rate shaping/limiting, etc., and is left up to the CSP to
|
||||
define (as stated before, this could be standardized, but could be
|
||||
left open to begin with).
|
||||
|
||||
|
||||
Extension API
|
||||
In effect, the Quantum extensions would expose
|
||||
An administrative API to,
|
||||
Create/read/update/delete QoS categories
|
||||
|
||||
Verb
|
||||
URI
|
||||
Description
|
||||
POST
|
||||
/qoses
|
||||
Create a new QoS category, the tenant-id here will be that of the administrator
|
||||
|
||||
Sample request/response,
|
||||
|
||||
Request:
|
||||
POST /qoses.json
|
||||
{
|
||||
“qos”:
|
||||
{
|
||||
“type”: “ratelimit”,
|
||||
“policy”: {“kbps”:“10240”} ,
|
||||
“tenant_id”: “123434-34454-2343”,
|
||||
“description”: “Gold level service”
|
||||
}
|
||||
}
|
||||
|
||||
Response:
|
||||
{
|
||||
“qos”:
|
||||
{
|
||||
“id”: “1234-5678-1234-5678”
|
||||
}
|
||||
}
|
||||
|
||||
Note that we use the “type” attribute inside the request to specify the type of constraints or quality of service mechanism that will be applied. The policy attribute will be used to specify type-specific actions that a Q
|
||||
S category will implement. In this case, the ratelimit type has a policy that limits the bandwidth that a VM can burst to, in kbytes. user API to,
|
||||
Obtain the supported QoS categories, with details about what each category includes
|
||||
|
||||
Verb
|
||||
URI
|
||||
Description
|
||||
Get
|
||||
/qoses
|
||||
List the QoS categories in the system, the tenant-id here will be that of the user
|
||||
|
||||
Sample request/response,
|
||||
|
||||
Request:
|
||||
GET /qoses.json
|
||||
|
||||
|
||||
|
||||
Response:
|
||||
{
|
||||
“qos”:
|
||||
[
|
||||
{“id”: “1234-5678-1234-5678”,
|
||||
“description”: “Gold level service”,
|
||||
“type”: “ratelimit”,
|
||||
“policy”: {“kbps”:“10240”}
|
||||
},
|
||||
{“id”: “1235-5678-1234-5678”,
|
||||
“description”: “Silver level service”,
|
||||
“type”: “dscp”,
|
||||
“policy”: “af32”
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Create/read/update/delete a QoS policy referencing one of the categories list
|
||||
Associate that QoS policy with a tenant
|
||||
And/or, associate that QoS policy with a network
|
||||
And/or, associate that QoS policy with a port
|
||||
Get the QoS policie(s) associated with a tenant, network, and/or port
|
||||
|
Loading…
Reference in New Issue