mirror of
https://github.com/faucetsdn/ryu.git
synced 2026-05-05 12:26:11 +02:00
ofctl_v1_3: Fix to enable using meter flags multiply
ofctl_rest is now enabled to parse flags multiply as follows:
curl -X POST -d '{"dpid": 1,
"meter_id": 1,
"flags": ["KBPS", "BURST"],
"bands": [{"type": "DROP", "rate": 1000}]}' http://localhost:8080/stats/meterentry/add
And now enabled to show flags as follows:
curl http://localhost:8080/stats/meterconfig/1
{
"1": [
{"bands": [{"burst_size": 0, "rate": 1000, "type": "DROP"}],
"flags": ["KBPS", "BURST"], "meter_id": 1}
]
}
Reported-by: cheers <cnmjbm@gmail.com>
Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
d0cd13a660
commit
d6bbd83497
@ -699,7 +699,11 @@ def get_meter_config(dp, waiters):
|
||||
elif band.type == dp.ofproto.OFPMBT_EXPERIMENTER:
|
||||
b['experimenter'] = band.experimenter
|
||||
bands.append(b)
|
||||
c = {'flags': flags.get(config.flags, 0),
|
||||
c_flags = []
|
||||
for k, v in flags.items():
|
||||
if k & config.flags:
|
||||
c_flags.append(v)
|
||||
c = {'flags': c_flags,
|
||||
'meter_id': config.meter_id,
|
||||
'bands': bands}
|
||||
configs.append(c)
|
||||
@ -856,7 +860,12 @@ def mod_meter_entry(dp, flow, cmd):
|
||||
'BURST': dp.ofproto.OFPMF_BURST,
|
||||
'STATS': dp.ofproto.OFPMF_STATS}
|
||||
|
||||
flags = flags_convert.get(flow.get('flags'))
|
||||
flow_flags = flow.get('flags')
|
||||
if not isinstance(flow_flags, list):
|
||||
flow_flags = [flow_flags]
|
||||
flags = 0
|
||||
for flag in flow_flags:
|
||||
flags |= flags_convert.get(flag, 0)
|
||||
if not flags:
|
||||
LOG.debug('Unknown flags: %s', flow.get('flags'))
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user