> 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.

Ethan
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to