freebsd-skq/sys/netinet
andre d63aabd58e Rearrange the TSO code to make it more readable and to clearly
separate the decision logic, of whether we can do TSO, and the
calculation of the burst length into two distinct parts.

Change the way the TSO burst length calculation is done. While
TSO could do bursts of 65535 bytes that can't be represented in
ip_len together with the IP and TCP header. Account for that and
use IP_MAXPACKET instead of TCP_MAXWIN as base constant (both
have the same value of 64K). When more data is available prevent
less than MSS sized segments from being sent during the current
TSO burst.

Add two more KASSERTs to ensure the integrity of the packets.

Tested by:	Ben Wilber <ben-at-desync com>
MFC after:	10 days
2010-09-17 22:05:27 +00:00
..
ipfw in_delayed_cksum() requires host byte order. 2010-09-06 13:17:01 +00:00
libalias Don't use struct timezone. 2010-08-08 02:51:32 +00:00
accf_data.c Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
accf_dns.c Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
accf_http.c Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
icmp6.h MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
icmp_var.h Many network stack subsystems use a single global data structure to hold 2009-08-02 19:43:32 +00:00
if_atm.c
if_atm.h
if_ether.c Unbreak LINT by moving all carp hooks to net/if.c / netinet/ip_carp.h, with 2010-08-11 20:18:19 +00:00
if_ether.h Add arp_update_event. This replaces route_arp_update_event, which 2009-09-08 21:17:17 +00:00
igmp_var.h Update stats in struct igmpstat using two new macros: 2009-04-12 13:41:13 +00:00
igmp.c Fix a regression where DVMRP diagnostic traffic, such as that used 2010-04-27 14:14:21 +00:00
igmp.h These are no longer referenced in the tree, so can be safely removed. 2009-06-10 18:12:15 +00:00
in_cksum.c
in_gif.c MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
in_gif.h
in_mcast.c Fix a few issues related to the legacy 4.4 BSD multicast APIs. 2010-04-10 12:05:31 +00:00
in_pcb.c This patch fixes the problem where proxy ARP entries cannot be added 2010-05-25 20:42:35 +00:00
in_pcb.h Abstract out initialization of most aspects of struct inpcbinfo from 2010-03-14 18:59:11 +00:00
in_proto.c Allow carp(4) to be loaded as a kernel module. Follow precedent set by 2010-08-11 00:51:50 +00:00
in_rmx.c MFp4 @181628: 2010-07-31 15:31:23 +00:00
in_systm.h
in_var.h Remove unused VNET_SET() and related macros; only VNET_GET() is 2009-07-16 21:13:04 +00:00
in.c In case of RADIX_MPATH do not leak the IN_IFADDR read lock on 2010-09-04 16:06:01 +00:00
in.h MFp4: anchie_soc2009 branch: 2010-08-19 11:31:03 +00:00
ip6.h
ip_carp.c Fix CARP in backup mode by properly registering its hooks for INET and INET6 2010-09-06 21:06:06 +00:00
ip_carp.h Unbreak LINT by moving all carp hooks to net/if.c / netinet/ip_carp.h, with 2010-08-11 20:18:19 +00:00
ip_divert.c Ensure a minimum "slop" of 10 extra pcb structures when providing a 2010-08-17 16:41:16 +00:00
ip_divert.h Various cleanup done in ipfw3-head branch including: 2010-01-04 19:01:22 +00:00
ip_dummynet.h whitespace fixes (trailing whitespace, bad indentation 2010-04-19 16:17:30 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c (S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument. 2009-12-28 22:56:30 +00:00
ip_encap.h
ip_fastfwd.c Virtualize the pfil hooks so that different jails may chose different 2009-10-11 05:59:43 +00:00
ip_fw.h + implement (two lines) the kernel side of 'lookup dscp N' to use the 2010-03-15 17:14:27 +00:00
ip_gre.c The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-01 17:05:46 +00:00
ip_gre.h The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-01 17:05:46 +00:00
ip_icmp.c Change the messages of the ICMP bad port bandwidth limiter from 2010-08-14 21:04:27 +00:00
ip_icmp.h MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
ip_id.c
ip_input.c MFp4 CH=183052 183053 183258: 2010-09-02 17:43:44 +00:00
ip_ipsec.c The proper fix for the delayed SCTP checksum is to 2010-03-12 22:58:52 +00:00
ip_ipsec.h Remove ifdefed out part of code, which seems to have originated a decade ago 2009-11-09 19:53:34 +00:00
ip_mroute.c Virtualize the IPv4 multicast routing code. 2010-06-02 15:44:43 +00:00
ip_mroute.h Virtualize the IPv4 multicast routing code. 2010-06-02 15:44:43 +00:00
ip_options.c This patch fixes the problem where proxy ARP entries cannot be added 2010-05-25 20:42:35 +00:00
ip_options.h
ip_output.c This patch fixes the problem where proxy ARP entries cannot be added 2010-05-25 20:42:35 +00:00
ip_var.h MFp4 CH=183052 183053 183258: 2010-09-02 17:43:44 +00:00
ip.h use u_char instead of u_int for short bitfields. 2010-02-01 14:13:44 +00:00
pim_var.h Virtualize the IPv4 multicast routing code. 2010-06-02 15:44:43 +00:00
pim.h
raw_ip.c Adding an address on an interface also requires the loopback route to 2010-09-12 18:04:47 +00:00
sctp_asconf.c Delay the assignment of a path for DATA chunk until they hit 2010-09-15 23:10:45 +00:00
sctp_asconf.h Delay the assignment of a path for DATA chunk until they hit 2010-09-15 23:10:45 +00:00
sctp_auth.c Spacing issues 2010-06-05 21:33:16 +00:00
sctp_auth.h Use [] instead of [0] for flexible arrays. 2010-01-22 07:53:41 +00:00
sctp_bsd_addr.c Remove unused variable/assignment. 2010-09-15 21:19:54 +00:00
sctp_bsd_addr.h This adds back the Iterator to the sctp 2010-05-16 17:03:56 +00:00
sctp_cc_functions.c Make the initial congestion window configurable via sysctl. 2010-09-17 18:53:07 +00:00
sctp_cc_functions.h
sctp_constants.h * Implement initial version of send buffer splitting. 2010-09-17 16:20:29 +00:00
sctp_crc32.c Fix the the SCTP_WITH_NO_CSUM option when used in combination with 2010-08-29 18:50:30 +00:00
sctp_crc32.h Fix the the SCTP_WITH_NO_CSUM option when used in combination with 2010-08-29 18:50:30 +00:00
sctp_header.h Add missing SCTP_PACKED. Spotted by Irene Ruengeler. 2010-02-13 21:38:15 +00:00
sctp_indata.c Fix a bug where the wrong PR-SCTP policy was considered. 2010-09-17 19:20:39 +00:00
sctp_indata.h * Fix some race condition in SACK/NR-SACK processing. 2010-04-03 15:40:14 +00:00
sctp_input.c Delay the assignment of a path for DATA chunk until they hit 2010-09-15 23:10:45 +00:00
sctp_input.h
sctp_lock_bsd.h 1) Optimize the cleanup and don't always depend on 2010-06-06 20:34:17 +00:00
sctp_os_bsd.h Fix the the SCTP_WITH_NO_CSUM option when used in combination with 2010-08-29 18:50:30 +00:00
sctp_os.h
sctp_output.c Fix a bug where the wrong PR-SCTP policy was considered. 2010-09-17 19:20:39 +00:00
sctp_output.h Delay the assignment of a path for DATA chunk until they hit 2010-09-15 23:10:45 +00:00
sctp_pcb.c Remove old debug code. 2010-09-15 23:56:25 +00:00
sctp_pcb.h Fix the switching on/off of CMT using sysctl and socket option. 2010-08-28 17:59:51 +00:00
sctp_peeloff.c Fix the switching on/off of CMT using sysctl and socket option. 2010-08-28 17:59:51 +00:00
sctp_peeloff.h
sctp_structs.h PR SCTP Bugs. Basically a full sized frame of 2010-07-29 11:37:04 +00:00
sctp_sysctl.c Make the initial congestion window configurable via sysctl. 2010-09-17 18:53:07 +00:00
sctp_sysctl.h Make the initial congestion window configurable via sysctl. 2010-09-17 18:53:07 +00:00
sctp_timer.c Fix a bug where the wrong PR-SCTP policy was considered. 2010-09-17 19:20:39 +00:00
sctp_timer.h
sctp_uio.h Implement correct handling of address parameter and 2010-09-05 20:13:07 +00:00
sctp_usrreq.c Remove old debug code. 2010-09-15 23:56:25 +00:00
sctp_var.h * Fix some race condition in SACK/NR-SACK processing. 2010-04-03 15:40:14 +00:00
sctp.h Fix the switching on/off of CMT using sysctl and socket option. 2010-08-28 17:59:51 +00:00
sctputil.c Remove old debug code. 2010-09-15 23:56:25 +00:00
sctputil.h * Fix some race condition in SACK/NR-SACK processing. 2010-04-03 15:40:14 +00:00
siftr.c Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp_debug.c Remove the "The option TCPDEBUG requires option INET." requirement. 2009-06-10 10:39:41 +00:00
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
tcp_hostcache.h
tcp_input.c Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp_lro.c
tcp_lro.h
tcp_offload.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
tcp_offload.h Replace struct tcpopt with a proxy toeopt struct in the TOE driver interface to 2009-07-13 11:51:02 +00:00
tcp_output.c Rearrange the TSO code to make it more readable and to clearly 2010-09-17 22:05:27 +00:00
tcp_reass.c MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
tcp_sack.c MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
tcp_seq.h
tcp_subr.c Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp_syncache.c Initializing the new error variable to zero in syncache_socket() 2010-08-15 13:07:08 +00:00
tcp_syncache.h Replace struct tcpopt with a proxy toeopt struct in the TOE driver interface to 2009-07-13 11:51:02 +00:00
tcp_timer.c - spread tcp timer callout load evenly across cpus if net.inet.tcp.per_cpu_timers is set to 1 2010-03-20 19:47:30 +00:00
tcp_timer.h Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp_timewait.c MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
tcp_usrreq.c Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp_var.h Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp.h Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcpip.h
toedev.h
udp_usrreq.c Ensure a minimum "slop" of 10 extra pcb structures when providing a 2010-08-17 16:41:16 +00:00
udp_var.h MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
udp.h Added support for NAT-Traversal (RFC 3948) in IPsec stack. 2009-06-12 15:44:35 +00:00