Hello,
I am using TCP_MAXSEG option on an interface which has TSO enabled.
strace output for connection looks as follows:
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 26
setsockopt(26, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(26, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(26, SOL_TCP, TCP_MAXSEG, [300], 4) = 0
connect(26, {sa_family=AF_INET, sin_port=htons(1935),
sin_addr=inet_addr("10.10.0.1")}, 16) = -1 EINPROGRESS (Operation now
in progress)
I can see that MSS (300) is advertised in SYN packet, anyhow capturing
the traffic
I notice that are some TCP segments with length greater than MSS.
Is this normal taking in consideration that TSO is enabled?
thanks,
Daniel.
On 03/30/2012 04:33 AM, Daniel Baluta wrote:
Hello,
I am using TCP_MAXSEG option on an interface which has TSO enabled.
strace output for connection looks as follows:
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 26
setsockopt(26, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(26, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(26, SOL_TCP, TCP_MAXSEG, [300], 4) = 0
connect(26, {sa_family=AF_INET, sin_port=htons(1935),
sin_addr=inet_addr("10.10.0.1")}, 16) = -1 EINPROGRESS (Operation now
in progress)
I can see that MSS (300) is advertised in SYN packet, anyhow capturing
the traffic
I notice that are some TCP segments with length greater than MSS.
Is this normal taking in consideration that TSO is enabled?
I would think so. What do the netstat stats suggest for segments and
bytes per segment when you are running your test? You could always look
for an on-the-wire packet trace.
Not sure that a trace on a receiver would give you that though - the
inbound promiscuous tap may be above GRO (and almost certainly will be
above LRO)
rick jones
thanks,
Daniel.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Mar 30, 2012 at 8:38 PM, Rick Jones [off-list ref] wrote:
On 03/30/2012 04:33 AM, Daniel Baluta wrote:
quoted
Hello,
I am using TCP_MAXSEG option on an interface which has TSO enabled.
strace output for connection looks as follows:
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 26
setsockopt(26, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(26, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(26, SOL_TCP, TCP_MAXSEG, [300], 4) = 0
connect(26, {sa_family=AF_INET, sin_port=htons(1935),
sin_addr=inet_addr("10.10.0.1")}, 16) = -1 EINPROGRESS (Operation now
in progress)
I can see that MSS (300) is advertised in SYN packet, anyhow capturing
the traffic
I notice that are some TCP segments with length greater than MSS.
Is this normal taking in consideration that TSO is enabled?
I would think so. What do the netstat stats suggest for segments and bytes
per segment when you are running your test? You could always look for an
on-the-wire packet trace.
Not sure that a trace on a receiver would give you that though - the inbound
promiscuous tap may be above GRO (and almost certainly will be above LRO)
Thanks Rick. Indeed on-the-wire capture looks fine. I have TSO enabled
at sender and LRO at receiver, everything makes sense now.
thanks,
Daniel.