2007-12-04 17:27:49

by Chris Friesen

[permalink] [raw]
Subject: when using arp monitoring with bonding, why use broadcast arps?


We have a network with a number of nodes using bonding with arp
monitoring. The arp interval is set to 100ms.

Unfortunately, the bonding code sends the arp packets to the hardware
broadcast address, which means that the number of these arp packets seen
by each node goes up with the number of nodes on the network.

One of the nodes has a fairly low-powered cpu and handles most things in
microengine code, but arp packets get handled in software. All these
broadcast arps slow this node down noticeably.

Is there any particular reason why the bonding code couldn't use unicast
arp packets if the "arp_ip_target" has a valid entry in the sender's arp
table?

Thanks,

Chris


2007-12-04 18:21:24

by Jay Vosburgh

[permalink] [raw]
Subject: Re: when using arp monitoring with bonding, why use broadcast arps?

Chris Friesen <[email protected]> wrote:
[...]
>Is there any particular reason why the bonding code couldn't use unicast
>arp packets if the "arp_ip_target" has a valid entry in the sender's arp
>table?

It ought to be a pretty straightforward change to have the
bond_arp_send() function perform a neigh_lookup() prior to calling
arp_create(), and use the result of the lookup (if any) in the
arp_create() call.

So, no, with the caveat that I haven't tried it, I don't see a
reason that bonding couldn't do what you're looking for.

-J

---
-Jay Vosburgh, IBM Linux Technology Center, [email protected]