Sounds good. Thanks for the explanation. Ethan
On Wed, Mar 30, 2011 at 10:04 AM, Ben Pfaff <b...@nicira.com> wrote: > 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