[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <E1LCtP8-0004QO-Bp@gondolin.me.apana.org.au>
Date: Wed, 17 Dec 2008 21:13:22 +1100
From: Herbert Xu <herbert@...dor.apana.org.au>
To: ilpo.jarvinen@...sinki.fi (Ilpo J??rvinen)
Cc: herbert@...dor.apana.org.au, davem@...emloft.net,
netdev@...r.kernel.org, ptesarik@...e.cz
Subject: Re: [PATCH] tcp: make urg+gso work for real this time
Ilpo J??rvinen <ilpo.jarvinen@...sinki.fi> wrote:
>
> This is certainly nice and possible but as mention earlier, the harder
> problem is that the urg_ptr is only 16-bits so there will be still be
> problem if the urgent seq-64k mark is within a super-skb as tail segments
> need urg while the head ones won't. I think we would need out-of-band
> means to communicate the extra bit (17th) from tcp if we want to solve
> that one. It would be rather easy to change TCP to only do splitting for
> that particular skb though and keep everything else intact.
I think you've got it the wrong way around. The test for setting
urg_ptr is:
if (unlikely(tcp_urg_mode(tp) &&
between(tp->snd_up, tcb->seq + 1, tcb->seq + 0xFFFF))) {
So if this is true for the super-packet, then by definition it is
also true for the first packet. In fact, it will be true for the
first n packets where
tcb->seq + n * mss + 1 <= tp->snd_up
The only time when this will fall apart is if we had super-packets
bigger than 64K. Fortunately or unfortunately that is a long way
off.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists