lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 5 Jun 2009 20:09:10 +0530 (IST)
From:	Radha Mohan <radhamohan_ch@...oo.com>
To:	netdev@...r.kernel.org
Cc:	radhamohan_ch@...oo.com
Subject: behavior of TSO in kernel


Hi all,

I have an ethernet driver with TSO, SG, IP_CSUM features enabled. I am using linux-2.6.15 kernel. The MTU is set to 9014. It seems the driver is getting skbs of only 9014 bytes length even though the application is able to write some 64KB at a time. 

Why is TCP layer doing the segmentation when we said TSO is enabled by giving NETIF_F_TSO?

I saw tcp_sendmsg() function, and found that never an skb->len can be more than 12K since there is a check that if it exceeds "mss_now" then either tcp_push_one() or tcp_push() is called. If I further see the tcp_push_one() function, there we calculate the "limit" and further trim the skb->len in tso_fragment().

In another function, tcp_write_xmit() also similar behaviour is present.

What I do not understand is why should TCP layer do all these in software when there is TSO in hardware? Why can't a driver get a bigger packet of say 64K or something larger than current MSS assuming there is enough window for sending it?

I have briefly checked 2.6.24 kernel but here also it is the same. 


-- Mohan


      Explore and discover exciting holidays and getaways with Yahoo! India Travel http://in.travel.yahoo.com/

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ