hi, i want to modify the eth_dst but failed.
Firstly, I wrote one function to add the flow entry( all of the flowing
codes are used in OF v1.3):
def add_flow_entry(dpid,match,priority,actions):
url = "http://127.0.0.1:8080/stats/flowentry/add"
post_data = "{'dpid':%s,'match':%s,'priority':%s,'actions':%s}" %
(dpid,str(match),priority,str(actions))
req = urllib2.Request(url,post_data)
res = urllib2.urlopen(req)
return res.getcode()
and i use the flowing code to call it:
actions =
[{'type':'SET_FIELD','eth_dst':eth_src},{'type':'OUTPUT','port':in_port}]
match = {'eth_type':0x0800, 'ipv4_dst':src_ip}
priority = "2222"
#I have got the dpid but it's not written here
res = add_flow_entry(dpid,match,priority,actions)
Then i got the error informatioin:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/eventlet/wsgi.py", line 384,
in handle_one_response
result = self.application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line
197, in __call__
return super(wsgify_hack, self).__call__(environ, start_response)
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line
259, in __call__
return controller(req)
File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line
121, in __call__
return getattr(self, action)(req, **kwargs)
File "/home/ocean/KuaiPan/ryu-master/ryu/app/ofctl_rest.py", line
357, in mod_flow_entry
ofctl_v1_3.mod_flow_entry(dp, flow, cmd)
File "/usr/local/lib/python2.7/dist-packages/ryu/lib/ofctl_v1_3.py",
line 942, in mod_flow_entry
inst = to_actions(dp, flow.get('actions', []))
File "/usr/local/lib/python2.7/dist-packages/ryu/lib/ofctl_v1_3.py",
line 108, in to_actions
action = to_action(dp, a)
File "/usr/local/lib/python2.7/dist-packages/ryu/lib/ofctl_v1_3.py",
line 89, in to_action
result = parser.OFPActionSetField(**{field: value})
TypeError: __init__() keywords must be strings
127.0.0.1 - - [26/Jan/2015 19:41:17] "POST /stats/flowentry/add
HTTP/1.1" 500 1596 0.013896
EVENT ofp_event->switches EventOFPPacketIn
EVENT ofp_event->Imisa EventOFPPacketIn
hub: uncaught exception: Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line
52, in _launch
func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py",
line 274, in _event_loop
handler(ev)
File "/home/ocean/KuaiPan/imisa/imisa.py", line 106, in packet_in_handler
res = add_flow_entry(dpid,match,priority,actions)
File "/home/ocean/KuaiPan/imisa/restapi.py", line 41, in add_flow_entry
res = urllib2.urlopen(req)
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 410, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 448, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 500: Internal Server Error
i'm still working on it but have not find it out yet. Is there anyone met
this problem before? Thx
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel