Folks, We ran into a fun time debugging an issue w/ one of our switch vendors, and I wanted to share it, since some of the sample applications make use of the same functionality.
The controller application that we are developing (based off of rest_router) was seeing PacketIn storms related to long-running flows on our hardware switches. The issue was traced down to be a result of this wording regarding OFPFC_ADD in the OpenFlow specification, which has been there since version 1.0: " If a flow entry with identical header fields and priority already resides in any table, then that entry, including its counters, must be removed, and the new flow entry added. " In effect, if a FlowMod is sent that exactly matches the match and priority of a rule already programmed into the switch, the switch *must* remove the existing rule, and replace it with the one specified by the received FlowMod, *unless* the OFPFF_CHECK_OVERLAP flag is set. The problem with that wording - if you do an OFPFC_ADD to "re-add" a rule that's already passing traffic, the rule disappears from the flow table for a brief window of time. If there are (lower priority than the one that was removed) rules that catch and forward the packets from that flow to the controller, the high speed flow will pound the switch with packets that will have to packaged as PacketIn events - and the switch will subsequently pound the controller. We have worked around this behavior in our modification of rest_router by setting OFPFF_CHECK_OVERLAP on the OFPFC_ADD in set_routing_flow(), and have removed the only call to _set_route_packetin(). Things seem to be working - but we will be looking to see if removing _set_route_packetin() causes any unforeseen problems in practice. Nevertheless - this issue is one that will probably need to be addressed, so that users are not surprised by the sudden bursts of PacketIn events that can occur. The specific thing that caused sudden bursts of PacketIn events in our case was an ARP cache entry expiring on an end host that was transferring traffic at 10 Gbps. The end host sent an ARP "who-has" - which the application used for "mac learning," and resulted in the OFPFC_ADD. The OFPFC_ADD removed the pre-existing rule, and both the switch and controller got swamped with PacketIn events. Best, Victor -- Victor J. Orlikowski <> vjo@[cs.]duke.edu ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 _______________________________________________ Ryu-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ryu-devel
