Hello All,
I am trying to use POX web service to set a flow rule that matches based on the
nw_src and nw_dst fields of the match object.
I am using an OpenFlow Switch and a POX controller.
I use the following command to execute POX in Ubuntu.
./pox.py --verbose web.webcore --address='192.168.1.1' --port=5566
openflow.webservice
I use curl to set the flow rule
curl -i -X POST –d
'{"method":"set_table","params":{"dpid":"00-00-00-00-00-01","flows":[{"actions":[{"type":"OFPAT_OUTPUT",
"port":1}],"match":{"dl_type":"0x0800","nw_src":"192.168.1.2"}}]}}'
http://192.168.1.11:5566/OF/
Then I get the following error message:
ERROR:recoco:Exception calling <bound method OFSetTableRequest._do_init of
<pox.openflow.webservice.OFSetTableRequest object at 0xa207c4c>>
Traceback (most recent call last):
File "/home/routeflow/pox/pox/lib/recoco/recoco.py", line 774, in run
e[0](*e[1], **e[2])
File "/home/routeflow/pox/pox/openflow/webservice.py", line 73, in _do_init
self._init(*args, **kw)
File "/home/routeflow/pox/pox/openflow/webservice.py", line 164, in _init
self._con.send(fm)
File "/home/routeflow/pox/pox/openflow/of_01.py", line 692, in send
data = data.pack()
File "/home/routeflow/pox/pox/openflow/libopenflow_01.py", line 2316, in pack
packed += self.match.pack(flow_mod=True)
File "/home/routeflow/pox/pox/openflow/libopenflow_01.py", line 1205, in pack
packed += struct.pack("!LLHH", check_ip_or_arp(fix(self.nw_src)),
File "/home/routeflow/pox/pox/openflow/libopenflow_01.py", line 1203, in fix
return addr.toUnsigned()
AttributeError: 'tuple' object has no attribute 'toUnsigned'
ERROR:web.jsonrpc:While handling set_table...
Traceback (most recent call last):
File "/home/routeflow/pox/pox/web/jsonrpc.py", line 161, in _handle
r = method(*params,**kw)
File "/home/routeflow/pox/pox/openflow/webservice.py", line 191, in
_exec_set_table
return OFSetTableRequest(con, flows).get_response()
File "/home/routeflow/pox/pox/openflow/webservice.py", line 84, in
get_response
raise RuntimeError("Operation timed out")
RuntimeError: Operation timed out
DEBUG:web.webcore.server:/OF/:"POST /OF/ HTTP/1.1" 200 -
How should I set a flow rule using the nw_src or nw_dst field?
Thanks.
Timothy