Yeah. This is a common error when people are new to OpenFlow. You need to set a dl_type which uses IP addresses. You probably want ipv4 (0x800). See the second and third questions of the POX FAQ, which discuss this very issue.
Also, don't forget that you probably need rules for ARP too. (Also a common problem and also in the FAQ.) -- Murphy On Dec 7, 2014, at 8:51 PM, Aaron Lam <aaronch....@mail.utoronto.ca> wrote: > Hi Murphy > > Yes I found this in the pox log > > WARNING:libopenflow_01:Fields ignored due to unspecified prerequisites: > nw_dst nw_src > DEBUG:libopenflow_01:Problematic match: ofp_match > wildcards: > nw_tos|tp_dst|dl_dst|dl_src|in_port|dl_vlan_pcp|nw_proto|dl_vlan|tp_src|dl_type > (1100000000000011111111 = 3000ff) > nw_src: 10.0.0.1 > nw_dst: 10.0.0.2 > DEBUG:web.webcore.server:/OF/:"POST /OF/ HTTP/1.1" 200 - > > So I am guessing I’m setting the match fields incorrectly? > > Aaron Lam > >> On Dec 7, 2014, at 11:48 PM, Murphy McCauley <murphy.mccau...@gmail.com> >> wrote: >> >> Are you getting the "Fields ignored due to unspecified prerequisites" >> warning in the POX log? >> >> -- Murphy >> >> On Dec 7, 2014, at 8:45 PM, Aaron Lam <aaronch....@mail.utoronto.ca> wrote: >> >>> Hello, >>> >>> I am trying to use the openflow_webservice component to install flows >>> matching nw_src and nw_dst. I run a POST command with match set for nw_src >>> and nw_dst. When I inspect the flow table for the switch and I try to ping >>> between the the src and dst, it doesn’t work however. I am wondering if I >>> am using the set_table properly? >>> >>> I am doing basically the same thing as this person >>> https://www.mail-archive.com/pox-dev%40lists.noxrepo.org/msg01221.html. >>> Initially i had that issue too but then I switched to the eel branch and I >>> passed that issue. But now I have run into an issue where it doesn’t seem >>> like the entries are being installed properly. I am on the eel branch. >>> >>> I am running pox with the following: >>> >>> ./pox.py log.level --DEBUG web.webcore openflow.webservice >>> >>> Then I run the following: >>> >>> curl -i -X POST -d '{"method": "set_table”, >>> "params": { "dpid": "00-00-00-00-00-01”, >>> "flows": [{"actions": [{"type": >>> "OFPAT_OUTPUT", "port": 1}], >>> "match": {"nw_src": >>> "10.0.0.1", "nw_dst": "10.0.0.2"}}]}, >>> "id": 1}’ http://192.168.56.103:8000/OF/ >>> >>> This runs successfully as I get the following response. >>> >>> HTTP/1.1 200 OK >>> Server: BaseHTTP/0.3 Python/2.7.4 >>> Date: Sun, 07 Dec 2014 23:01:50 GMT >>> Content-Type: application/json >>> Content-Length: 68 >>> >>> {"result": {"flowmod": true, "dpid": "00-00-00-00-00-01"}, "id": 1} >>> >>> Then I run the following command to see the flow table of the switch >>> 00-00-00-00-00-0: >>> >>> url -i -X POST -d '{"method": "get_flow_stats", "params": {"dpid": >>> "00-00-00-00-00-01"}, "id": 1}' http://192.168.56.103:8000/OF/ >>> HTTP/1.1 200 OK >>> Server: BaseHTTP/0.3 Python/2.7.4 >>> Date: Sun, 07 Dec 2014 23:01:55 GMT >>> Content-Type: application/json >>> Content-Length: 313 >>> >>> {"result": {"flowstats": [{"packet_count": 0, "hard_timeout": 0, >>> "byte_count": 0, "duration_sec": 4, "actions": [{"max_len": 0, "type": >>> "OFPAT_OUTPUT", "port": 1}], "duration_nsec": 652000000, "priority": 32768, >>> "idle_timeout": 0, "cookie": 0, "table_id": 0, "match": {}}], "dpid": >>> "00-00-00-00-00-01"}, "id": 1} >>> >>> As one can see above, in when I sent a POST request, i set “nw_dst”: >>> “10.0.0.2” and “nw_dst”: “10.0.0.2” but the flow table entry shows that the >>> match is empty. I tried pinging between h1 and h2 but the destination is >>> unreachable. >>> >>> Am I using the nw_src and nw_dst parameters correctly? What is the correct >>> manner to set them? >>> >>> Aaron Lam >> >