Mihai Chelaru
2010-12-29 21:57:29 UTC
Hi,
I'd like to drop paddings for wscale, sack, tcpsig and timestamps in syn
options.
Currently our TCP code is padding every option to 32bit, although this
is not required by RFC793 or other standards except a special case
for timestamps as far as I know. For example on NetBSD 5.1(RC2) at a
simple telnet we end up sending SYNs with 4 consecutive nop options and
for 4 options we also send 5 nops:
<mss 1300,nop,wscale 3,sackOK,nop,nop,nop,nop,timestamp 1 0>
After this change, options will look like:
<mss 1300,wscale 3,sackOK,timestamp 1 0,eol>
Also, as an immediate result TCP_SIGNATURE started to work instead on
panicing kernel after overflowing the 40 bytes opt buffer.
Patch is attached, opinions ?
I'd like to drop paddings for wscale, sack, tcpsig and timestamps in syn
options.
Currently our TCP code is padding every option to 32bit, although this
is not required by RFC793 or other standards except a special case
for timestamps as far as I know. For example on NetBSD 5.1(RC2) at a
simple telnet we end up sending SYNs with 4 consecutive nop options and
for 4 options we also send 5 nops:
<mss 1300,nop,wscale 3,sackOK,nop,nop,nop,nop,timestamp 1 0>
After this change, options will look like:
<mss 1300,wscale 3,sackOK,timestamp 1 0,eol>
Also, as an immediate result TCP_SIGNATURE started to work instead on
panicing kernel after overflowing the 40 bytes opt buffer.
Patch is attached, opinions ?
--
Mihai
Mihai