[ovs-dev] [PATCH] bridge: Filter some gratuitous ARPs on bond slaves.

Ben Pfaff blp at nicira.com
Thu Jun 3 17:06:44 UTC 2010

On Wed, Jun 02, 2010 at 07:43:49PM -0700, Jesse Gross wrote:
> Normally we filter out packets received on a bond if we have
> learned the source MAC as belonging to another port to avoid packets
> sent on one slave and reflected back on another.  The exception to
> this is gratuitous ARPs because they indicate that the host
> has moved to another port.  However, this can result in an additional
> problem on the switch that the host moved to if the GARP is reflected
> back on a bond slave.  In this case, we incorrectly relearn the
> slave as the source of the MAC address.  To solve this, we lock the
> learning entry for 5 seconds after receiving a GARP against further
> updates caused by GARPs on bond slaves.

I don't like the name GARP.  It makes me think that this is related to
GARP, the Generic Attribute Registration Protocol, which someday OVS
might want to handle.

The mac_learning_lookup_tag() interface is starting to get unwieldy.
Maybe we should return the mac_entry and let the caller deal with it
directly.  Then we could drop the output arguments.  (But that's not
necessary in this commit.)

"parameter" is misspelled, as "paramater", twice.

Please initialize garp_lock to TIME_MIN instead of to 0.  I have
actually had to debug OVS problems on systems where the clock started
out with a negative value, probably due to a bad RTC battery.  (We
should really use clock_gettime(CLOCK_MONOTONIC) in the long run.)

Thank you for the fix!

More information about the dev mailing list