Re: [Bonding-devel][PATCH]Zero Copy Transmit Support (Update)

David S. Miller
2004-11-12T22:04:58Z

On Fri, 12 Nov 2004 13:56:26 -0800
Jay Vosburgh <fubar@us.ibm.com> wrote:

>
> David S. Miller <davem@davemloft.net> wrote:
> >> I had similar thoughts but then, the bond device does not have any
> >> slaves attached to it at load time. By publishing them upfront the bond
> >> device is able to take advantage of hardware acceleration if it is later
> >> available...
>
> "Shlomi Yaakobovich" <Shlomi@exanet.com> posted a patch to
> update the features as slaves are added and removed, based on the
> features advertised by the slaves. His original patch wasn't properly
> based; this is the same change set redone to patch against 2.6.9.

That's definitely a good start.

It does need to be fixed to enforce the usual rules about
illegal combinations. And his code is going to include
all sorts of weird things like VLAN offload which I wonder
if works correctly with the current bonding driver? :)

The two rules are codified in register_netdevice() as follows:

/* Fix illegal SG+CSUM combinations. */
if ((dev->features & NETIF_F_SG) &&
!(dev->features & (NETIF_F_IP_CSUM |
NETIF_F_NO_CSUM |
NETIF_F_HW_CSUM))) {
printk("%s: Dropping NETIF_F_SG since no checksum feature.\n",
dev->name);
dev->features &= ~NETIF_F_SG;
}

/* TSO requires that SG is present as well. */
if ((dev->features & NETIF_F_TSO) &&
!(dev->features & NETIF_F_SG)) {
printk("%s: Dropping NETIF_F_TSO since no SG feature.\n",
dev->name);
dev->features &= ~NETIF_F_TSO;
}