[ovs-dev] [bondlib 14/19] bridge: Simplify and clean up bond slave enable/disable.
Ethan Jackson
ethan at nicira.com
Wed Mar 30 17:50:38 UTC 2011
Sounds good. Thanks for the explanation.
Ethan
On Wed, Mar 30, 2011 at 10:04 AM, Ben Pfaff <blp at 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.
>
More information about the dev
mailing list