Hello,
On Tue, 16 Oct 2001, Roberto Nibali wrote:
> Good evening Julian,
>
> > > and the driver says :
> > > "catter-gather and hardware TCP cksumming disabled."
> >
> > Hm, very strange. I'll think on it. Thanks!
>
> This means no zerocopy and no firmware has been loaded. If there is no
> firmware, rx/tx hardware checksumming doesn't work and we should get
> skb->ip_summed=CHECKSUM_UNNECESSARY.
>
> Julian, in the starfire we have the rx_copybreak feature that passes all
> incoming frames which are smaller then RX_COPYBREAK directly to the
> stack
> and if not, a new skbuff is allocated. Do you think it would be possible
> that small frames being copied up the stack don't get CHECKSUM_NONE
> because
> of the prior state of the skbuff?
Hm, I see that skb->ip_summed is initialized to 0 (NONE) when
the skb is created in skb_headerinit(), so it should be correct if
not touched. Yes, these small frames are TCP SYNs with options.
> Puzzled right now, still reading the source ...
I too :) BTW, one missing skb_cow was added in 0.9.4, so
I'm not sure if this can trigger such problems in the following
datagrams?!?
@@ -672,13 +672,15 @@
EnterFunction(10);
h.raw = (char*) iph + iph->ihl * 4;
+ if ((skb = vs_skb_cow(&skb, &iph, &h.raw)) == NULL)
+ return NF_DROP;
size = ntohs(iph->tot_len) - (iph->ihl * 4);
doff = ip_vs_proto_doff(iph->protocol, h.raw, size);
> Roberto Nibali, ratz
Regards
--
Julian Anastasov <ja@xxxxxx>
|