[ovs-dev] [PATCH] bond: Send gratuitous ARPs when load balancing.

Ian Campbell Ian.Campbell at citrix.com
Mon Jul 4 09:59:12 UTC 2011


On Fri, 2011-07-01 at 09:15 -0700, Ben Pfaff wrote:
> On Thu, Jun 30, 2011 at 06:49:46PM -0700, Ethan Jackson wrote:
> > According to the following documentation, we should be sending
> > gratuitous ARPs when rebalancing causes us to shift traffic to a
> > different slave.
> > 
> > http://support.citrix.com/article/CTX124421
> 
> I guess it can't hurt, but I'm not sure of the value.  We only shift
> traffic if there's a significant amount of it, in which case the
> next-hop switch will find out that the MAC has moved at just the right
> time anyhow.  I guess it will make a difference if the traffic has
> actually stopped abruptly and we're just exponentially timing out the
> byte counter, so maybe it's worthwhile for that reason.
> 
> Did you look at Citrix's kernel implementation of SLB to see if it
> does that?

IIRC (which is admittedly quite a big If these days) the XenServer
bridge mode SLB implementation only sends grat. ARPs on link failure and
not on rebalance.

"Rebalance" in that implementation is actually quite a big hammer -- it
throws everything away and starts again, relying on the balancing of new
source MAC addresses to "rebalance". So you can't really send ARPs on
rebalance because you don't know which way the frames will be sent until
one actually shows up, at which point you may as well just send it.

The logic was similar to yours, in that a busy flow would soon send some
traffic to cause the switch to relearn (even if the flow is mostly
incoming there will often be _some_ return traffic) and that the
non-busy flows don't matter so much and will get rebalanced when they
eventually send something.

> If it doesn't, should we follow the implementation or the
> documentation?

The referenced doc only seems to say "GARP (gratuitous ARP) packets are
sent when assignment of traffic changes from one interface to another as
a result of fail-over." it makes no mention of what happens on
rebalance.

The OVS SLB mode has a lot more information about what's going on than
the bridged-SLB and does proper rebalancing so sending a GARP is a much
more feasible proposition. I wouldn't let the fact the bridged-SLB
doesn't/can't do it stop you if you think it makes sense.

Ian.




More information about the dev mailing list