LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [LVS - NAT] alternatives

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [LVS - NAT] alternatives
From: Roberto Nibali <ratz@xxxxxx>
Date: Thu, 13 Sep 2001 12:30:22 +0200
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'`


<Prev in Thread] Current Thread [Next in Thread>