On Thu, Nov 05, 1998 at 08:58:24PM -0800, Steve Shah wrote:
>       I'm fiddling with TCP options -- I'd like to have the system
> add MSS announcements as part of each packet's stock list of options.
> I found that the options are generated in tcp.h in the 
> tcp_build_and_update_options for all packets after the handshake. 

Why do you want to do this?  It's not part of any TCP spec AFAIK.

> The addition of the MSS info appears to be on a nice 4 byte boundry 
> and with the possibility of being able to send any number of SACKs
> in the options, adding one more entry shouldn't mean I need to change
> anything else. Looking at the tcp_syn_build_options, I can't see
> what I'm doing wrong.

No, it's limited to 3 SACKs with a timestamp.  When all 3 SACKs are
sent, you're overrunning the options.  To quote RFC2018:

   A SACK option that specifies n blocks will have a length of 8*n+2
   bytes, so the 40 bytes available for TCP options can specify a
   maximum of 4 blocks.  It is expected that SACK will often be used in
   conjunction with the Timestamp option used for RTTM [Jacobson92],
   which takes an additional 10 bytes (plus two bytes of padding); thus
   a maximum of 3 SACK blocks will be allowed in this case.

Though SACKs shouldn't be being sent normally.  Unless the screwed up
timestamps make it look like the packet order is screwed ;-)

-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to