On Tue, Mar 29, 2011 at 02:56:13PM -0700, Ethan Jackson wrote:
> I don't have my mind completely wrapped around this.  But it seems
> like it might be a good idea to ofproto_revalidate old_active_iface if
> it exists.  Similarly we may want to revalidate the new active_iface.
> This may be automatically done since active_iface will only be changed
> during slave enabling and disabling.  It might be a defensive strategy
> though.

Really it's a lot simpler than before.  Before there were multiple
paths, recursion, etc.  Now it's simple: bond_run() updates each
slave, enabling and disabling as necessary, and then after that if
there's no active_iface or if the active_iface is disabled we try to
choose a new one.

There are only two cases where the active_iface changes:

        * There was no active_iface, so all the flows were assigned
          the no_ifaces_tag.  In this case bond_choose_active_iface()
          will revalidate that tag.

        * There was an active_iface but it got disabled.
          bond_enable_slave() will have already revalidated that tag,
          so there's no need to do it again here.  (It wouldn't hurt
          though.)

I guess there's really a third case:

        * The active_iface was destroyed (with iface_destroy()).  In
          that case bridge_flush() will ensure that every flow gets
          revalidated.

I think that we have it covered, but feel free to look again if you're
not sure.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to