[pox-dev] A flow removal question

David Li dlipubkey at gmail.com
Thu May 28 10:21:04 PDT 2015


Hi Murphy,

Does this approach require my code keeps track of the flow table on
the switch? I found sample code in topology.py:

def _handle_FlowRemoved (self, event):
    """
    process a flow removed event -- remove the matching flow from the table.
    """
    flow_removed = event.ofp
    for entry in self.flow_table.entries:
      if (flow_removed.match == entry.match
          and flow_removed.priority == entry.priority):
        self.flow_table.remove_entry(entry)
        self.raiseEvent(FlowTableModification(removed=[entry]))
        return EventHalt
    return EventContinue


Is this what you are talking about?

Thanks!


On Tue, May 26, 2015 at 5:14 PM, Murphy McCauley
<murphy.mccauley at gmail.com> wrote:
> The information you want may not be available on the FlowRemoved event object itself, but as described in the "OpenFlow Events" section of the manual, the actual OpenFlow protocol message that caused the event is available on the event's .ofp attribute.  In this case, that means it's an ofp_flow_removed object.  If you look that up in the OpenFlow spec, you'll see there should be a .match attribute containing the match for the table entry as well as the .cookie (which, as I mention in my post on pox-dev a few minutes ago, is probably even more useful).
>
> -- Murphy
>
> On May 26, 2015, at 5:06 PM, David Li <dlipubkey at gmail.com> wrote:
>
>> Hi,
>>
>> I added a handler for flow removal. But I am wondering if it's
>> possible to see from the event which flow has been removed. In the
>> FlowRemoved class, I can't see how this info can be obtained easily.
>> Maybe I am wrong.
>



More information about the pox-dev mailing list