diff options
-rwxr-xr-x | ryu/cmd/of_config_cli.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ryu/cmd/of_config_cli.py b/ryu/cmd/of_config_cli.py index 69b6c02c..db5b73ef 100755 --- a/ryu/cmd/of_config_cli.py +++ b/ryu/cmd/of_config_cli.py @@ -369,6 +369,49 @@ max-rate 100 self._request(line, f) + def do_add_queue(self, line): + """add_queue <peer> <target> <logical-switch> <queue> + eg. add_queue sw1 running LogicalSwitch7 NameOfNewQueue + """ + + def f(p, args): + try: + target, lsw, queue = args + except: + print "argument error" + print args + return + + # get switch id + o = p.get() + capable_switch_id = o.id + + try: + capable_switch = ofc.OFCapableSwitchType( + id=capable_switch_id, + resources=ofc.OFCapableSwitchResourcesType( + queue=[ + ofc.OFQueueType(resource_id=queue) + ] + ), + logical_switches=ofc.OFCapableSwitchLogicalSwitchesType( + switch=[ofc.OFLogicalSwitchType( + id=lsw, + resources=ofc.OFLogicalSwitchResourcesType( + queue=[queue]) + )] + ) + ) + except TypeError: + print "argument error" + return + try: + p.edit_config(target, capable_switch) + except Exception, e: + print e + + self._request(line, f) + def do_list_logical_switch(self, line): """list_logical_switch <peer> """ |