Re: TCP FIN-fragment failure in 2.2.x

Andrea Arcangeli (andrea@e-mind.com)
Wed, 10 Mar 1999 15:07:16 +0100 (CET)


On Tue, 9 Mar 1999, Greg Beeley wrote:

>One solution is to modify tcp_output.c's function tcp_fragment in a way
>somewhat like this:
>
> TCP_SKB_CB(skb)->end_seq -= nsize;
> skb_trim(skb, skb->len - nsize);
>
> /* Fragmenting a packet with a FIN? Don't include the FIN's
> * segment in the first packet!
> */
> if (flags & TCPCB_FLAG_FIN) {
> TCP_SKB_CB(skb)->end_seq--;
> }

I think tcp_fragment is just doing the right thing and this patch looks
bogus to me. But I could be wrong (as 10 minutes ago ;).

And looking at your previous report it looks like flag & TCPCB_FLAG_FIN
would never been true because from your previous report it seems that the
loop starts before the first FIN has a way to be on the wire.

>That corrects this particular problem, but I'm not sure if there are
>any other implications.

So you mean that your change fixed the stall for you? Did you tried it?

Andrea Arcangeli

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/