[ovs-dev] [fin_timeout 3/3] Implement new "fin_timeout" action and "learn" feature.

Ben Pfaff blp at nicira.com
Wed Feb 15 10:38:31 PST 2012

On Tue, Feb 14, 2012 at 04:55:06PM -0800, Ethan Jackson wrote:
> > This is in facet_flush_stats(), which gets called from two contexts:
> > facet_remove() and facet_revalidate().  It shouldn't really matter in
> > facet_remove() since the facet is going away anyway, so the
> > facet_revalidate() case is the interesting one.  That case comes up
> > when the facet's actions change.  Now, I can see the point of view
> > that "we saw a FIN once, so we'll make that sticky" but the point of
> > view I've always taken is slightly different.  My point of view is
> > that the ideal that Open vSwitch is trying to reach is that every
> > packet that goes through a flow executes the actions.  That means
> > that, when a packet with a FIN goes through the flow, it only changes
> > the timeout that one time.  If the FIN goes through when the actions
> > are different, it has no effect, and there's no "stickiness".  In
> > reality, though, we only find out about TCP flags periodically, so we
> > can only approximate the ideal behavior.  By resetting tcp_flags when
> > the actions change, we "forget" that the FIN was seen, which seems
> > correct to me because in fact it hasn't been seen with the new
> > actions.
> Sounds fine to me.  We can always change it if for some reason real
> controllers prefer the alternative behavior.  My intuition is that the
> behavior you've written is fine.

Thanks.  I pushed this series.

More information about the dev mailing list