Subject: Re: TCP_MAXSEG option with TSO enabled

From: Rick Jones <[email-masked]>
Date: Fri, 30 Mar 2012 10:38:00 -0700

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 [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html