From: Herbert Xu <[EMAIL PROTECTED]> Date: Mon, 22 Aug 2005 13:04:31 +1000
> You need to update various counters likes packets_out since you're > changing the skb_pcount of a packet that's on the retransmit queue. Good point. We would now have two spots which need to do the packets_out updates, so probably best to put this into tcp_fragment() itself and add a boolean argument which enables the recalulation. > I'm also unsure whether pkt_len is a good value to use for the MSS. > For instance, what if the sack acknowledged two consecutive packets? That's the whole idea, only carve up the TSO packets to the SACK boundaries. We could verify that the SACK boundaries straddle sequence numbers which are modulo MSS, if that is what your concern is. > Maybe I'm missing something subtle here :) But it seems to me that > your patch will end up only processing the second half of the result > of tcp_fragment and skip the first bit. Thinko on my part, for some reason I keep thinking that tcp_fragment() leaves the head data into 'skb'. It should rather do something like: skb = skb->prev; pcount = tcp_skb_pcount(skb); Right? - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html