mirror of
https://github.com/faucetsdn/ryu.git
synced 2026-01-25 02:21:45 +01:00
rest_qos: fix error of additional a qos rule with "priority"
Currently, rest_qos is impossible to set the "priority" of QoS rule on a switch.
Also, "priority" is should be described in the same depth as "match" and "actions".
This patch fixes these problems.
Now, rest_qos is possible to set the "priority" with the following curl command.
e.g.)
$ curl -X POST -d '{"priority":"5",
"match": {"nw_dst": "10.0.0.1", "nw_proto": "UDP", "tp_dst": "5002"},
"actions":{"queue": "1"}}' http://localhost:8080/qos/rules/0000000000000001
Reported-by: Jace Liang <b436412@gmail.com>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
d160f78d83
commit
76e3903e38
@ -106,14 +106,21 @@ from ryu.ofproto import inet
|
||||
# POST /qos/{switch-id}/{vlan-id}
|
||||
#
|
||||
# request body format:
|
||||
# {"match": {"<field1>": "<value1>", "<field2>": "<value2>",...},
|
||||
# {"priority": "<value>",
|
||||
# "match": {"<field1>": "<value1>", "<field2>": "<value2>",...},
|
||||
# "actions": {"<action1>": "<value1>", "<action2>": "<value2>",...}
|
||||
# }
|
||||
#
|
||||
# Description
|
||||
# * priority field
|
||||
# <value>
|
||||
# "0 to 65533"
|
||||
#
|
||||
# Note: When "priority" has not been set up,
|
||||
# "priority: 1" is set to "priority".
|
||||
#
|
||||
# * match field
|
||||
# <field> : <value>
|
||||
# "priority": "0 to 65533"
|
||||
# "in_port" : "<int>"
|
||||
# "dl_src" : "<xx:xx:xx:xx:xx:xx>"
|
||||
# "dl_dst" : "<xx:xx:xx:xx:xx:xx>"
|
||||
@ -127,7 +134,8 @@ from ryu.ofproto import inet
|
||||
# "tp_dst" : "<int>"
|
||||
# "ip_dscp" : "<int>"
|
||||
#
|
||||
# * action field
|
||||
# * actions field
|
||||
# <field> : <value>
|
||||
# "mark": <dscp-value>
|
||||
# sets the IPv4 ToS/DSCP field to tos.
|
||||
# "meter": <meter-id>
|
||||
@ -732,7 +740,7 @@ class QoS(object):
|
||||
if vlan_id:
|
||||
match_value[REST_DL_VLAN] = vlan_id
|
||||
|
||||
priority = int(match_value.get(REST_PRIORITY, QOS_PRIORITY_MIN))
|
||||
priority = int(rest.get(REST_PRIORITY, QOS_PRIORITY_MIN))
|
||||
if (QOS_PRIORITY_MAX < priority):
|
||||
raise ValueError('Invalid priority value. Set [%d-%d]'
|
||||
% (QOS_PRIORITY_MIN, QOS_PRIORITY_MAX))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user