@RMerlin
Are you using newer Broadcom drivers then ddwrt at the moment?
@ AnyoneElseWhoCares
Well I have been reading online there's a bug in the Linux Kernel 3.10.x that allows ARP monitoring in 802.3ad mode, which should
not be the case. The current builds of dd-wrt are based on 3.10.25, and I'm pretty sure its missing the necessary (patch) to correct the problem.
The good news we can disable arp monitoring with the linux driver by setting arp_interval = 0, but I don't know because of the bug if it will take the setting?
arp_interval
Specifies the ARP link monitoring frequency in milliseconds. If ARP monitoring is used in an etherchannel compatible mode (modes 0 and 2), the switch should be configured in a mode that evenly distributes packets across all links. If the switch is configured to distribute the packets in an XOR fashion, all replies from the ARP targets will be received on the same link which could cause the other team members to fail. ARP monitoring should not be used in conjunction with miimon. A value of 0 disables ARP monitoring.The default value is 0.
The snippet that will hopefully fix my Aggregate ID, and Link Speed issues?
Code:
echo 0 > /sys/class/net/bond0/bonding/arp_interval
echo 0 > /sys/class/net/bond0/bonding/use_carrier
echo layer2+3 > /sys/class/net/bond0/bonding/xmit_hash_policy
I'm at work and can't test this setting yet, but will do so the second I get home.
If anyone is interested in the bug itself please read below, search the page for "802.3ad" otherwise your in for a long read.
https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.23
Keep your fingers crossed, so that I can get out of your hair soon.
-Robert (mrengles)
Afterthought:
Looking through the ddwrt source code. I found these lines of code; which represent the fix, Hope its not in the build i'm using for some reason, because then I still have a chance of an easy fix, with a know solution.
Code:
}
if (bond->params.mode == BOND_MODE_ALB ||
bond->params.mode == BOND_MODE_TLB ||
bond->params.mode == BOND_MODE_8023AD) {
pr_info("%s: ARP monitoring cannot be used with ALB/TLB/802.3ad. Only MII monitoring is supported on %s.\n",
bond->dev->name, bond->dev->name);
ret = -EINVAL;
goto out;