Hi,
I'm using manual rules in my code, to match it packets from tcp
ports... I'm forwarding non tcp packets as conventional of.OFPP_NORMAL.
When a packet is tcp, I'm filtering and after that using the following
steps:
match = of.ofp_match()
match.tp_src = packet_tcp.srcport
match.tp_dst = packet_tcp.dstport
match.nw_src = packet_next.srcip
match.nw_dst = packet_next.dstip
... and set rule into a looping topology with two possible paths:
[1 2 5]
[1 3 5]
I'm using in Action, the switches dpid without specific port
numbering. These are the following rules:
msg = of.ofp_flow_mod()
msg.match = match
msg.actions.append(of.ofp_action_output(port = of.OFPP_LOCAL))
core.openflow.sendToDPID(1,msg)
msg = of.ofp_flow_mod()
msg.match = match
msg.actions.append(of.ofp_action_output(port = of.OFPP_LOCAL))
core.openflow.sendToDPID(3,msg)
msg = of.ofp_flow_mod()
msg.match = match
msg.actions.append(of.ofp_action_output(port = of.OFPP_LOCAL))
core.openflow.sendToDPID(5,msg)
Unfortunately, POX displays a message:* (libopenflow_01)*
match: 59850 5001 10.0.0.1 10.0.0.2
*[libopenflow_01] Fields ignored due to unspecified prerequisites: nw_dst
tp_src nw_src tp_dst*
What Am I doing wrong?