简体   繁体   中英

Finding OPF packet with instruction to remove flow due to idle timeout expiration

I'm using the single topology with openvswitch-testcontroller, so the command to launch mininet is: sudo mn --topo=single --controller=remote,127.0.0.1:6653

I traced communication between switch and controller. After pinging h2 from h1, for the FLOW_MOD OPF messages I detected that the idle timeout was set to 60 sec .

The next series of pings was later (after 60 sec were passed), and there were PACKET_IN messages from switch due to no match - it means that the previous flow matching the pattern (pinging h2 from h1) was removed.

But I can't find the packet which instructs the switch to remove the flow due to timeout expiration ! Why?

Switch removes the flows after their expiration time, no need to get a packet for this.

From Openflow official documentation : (5.5 Flow Removal part)

The switch flow expiry mechanism that is run by the switch independantly of the controller and is based on the state and configuration of flow entries. Each flow entry has an idle_timeout and a hard_timeout associated with it. If either value is non-zero, the switch must note the flow entry's arrival time, as it may need to evict the entry later. A non-zero hard_timeout field causes the flow entry to be removed after the given number of seconds, regardless of how many packets it has matched. A non-zero idle_timeout field causes the flow entry to be removed when it has matched no packets in the given number of seconds. The switch must implement flow expiry and remove flow entries from the flow table when one of their timeout is exceeded.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM