Hi Julian,
> For TUN we set skb->ip_summed to CHECKSUM_NONE after the
> packet is changed and it indicates to the output functions that
> this paacket does not have checksum calculated. The same is missing
> for NAT in both directions.
Hmm, I see, but what do we gain by setting skb->ip_summed to
CHECKSUM_NONE? I did a short:
find . -name "*.[c]" -exec grep --context "CHECKSUM_" /dev/null {} \;
and I stepped over the netfilter stuff:
if (skb->ip_summed == CHECKSUM_HW) {
if (outdev == NULL) {
skb->ip_summed = CHECKSUM_NONE;
} else {
skb_checksum_help(skb);
Don't we need to call skb_checksum_help? Or what happens to the the
skb if we set CHECKSUM_NONE and dev->features is NETIF_F_HW_CSUM?
At least, I see now the connection between LVS and the problem people
describe with the eepro100.
> What I don't understand is why we have checksum error before
> that point. Jeremy still didn't responded and I don't know whether
> his chip has raw support for rx checksuming or whether the e100
Can we printk the device->features on that driver?
> driver performs checksuming in the CPU instead in the chip for
> his card. So, any feedback from users using checksuming on chip
> will be appreaciated. I need a possitive advice that LVS is working
> with other drivers (may be after the LVS NAT is fixed).
Yep.
> E100 may be works with the TCP/IP stack in 2.4.4+ because
> this driver does not register the devices for all capabilities, i.e.
> in dev->features (you can see in other drivers this). But for now
> I mostly suspect LVS.
I see now.
> Not sure. But consider this fact: this NIC and this driver
> work for non-LVS traffic.
I asked about that but since he hasn't replied yet, I did assume the
other way 'round. Thanks for that information.
> > > wrong checksum calcs not in the chip and report CHECKSUM_HW. We will
> >
> > You mean in speedo_rx(): before skb queuing?
>
> Grr, this is in e100, not in the kernel driver, I'm refering
> to e100_calculate_checksum in e100-1.6.13.tar.gz
I'm sorry, I confused the drivers. There's neither CHECKSUM_HW nor
any of the others mentioned in include/kernel/skbuff.h. Sometimes I
get the impression that Alexey really seems to be a very disturbed
guy while reading his comments on network related things :)
> This patch is for LVS and is at home. But I can try to build it
> again for you, if you have cards with hardware checksuming support :)
I have to check out stock :) A short grep in drivers/net didn't
reveil that many drivers supporting HW checksumming but I will go
for the starfire quad ethernet one. I'm not sure however since I
fail to see the NETIF_F_HW_CSUM feature set in starfire.c.
> OK, appended.
Wow, that simple?
> Or better CHECKSUM_NONE, used in the output functions
Yep, I see the comments in skbuff.h now. Am I right that the
checksumming is then done in tcp.c?
Regards,
Roberto Nibali, ratz
--
mailto: `echo NrOatSz@xxxxxxxxx | sed 's/[NOSPAM]//g'`
|