linux/net/ipv4
Ilpo Järvinen 95c4922bf9 [TCP] FRTO: fixes fallback to conventional recovery
The FRTO detection did not care how ACK pattern affects to cwnd
calculation of the conventional recovery. This caused incorrect
setting of cwnd when the fallback becames necessary. The
knowledge tcp_process_frto() has about the incoming ACK is now
passed on to tcp_enter_frto_loss() in allowed_segments parameter
that gives the number of segments that must be added to
packets-in-flight while calculating the new cwnd.

Instead of snd_una we use FLAG_DATA_ACKED in duplicate ACK
detection because RFC4138 states (in Section 2.2):
  If the first acknowledgment after the RTO retransmission
  does not acknowledge all of the data that was retransmitted
  in step 1, the TCP sender reverts to the conventional RTO
  recovery.  Otherwise, a malicious receiver acknowledging
  partial segments could cause the sender to declare the
  timeout spurious in a case where data was lost.

If the next ACK after RTO is duplicate, we do not retransmit
anything, which is equal to what conservative conventional
recovery does in such case.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-04-25 22:23:07 -07:00
..
ipvs [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
netfilter [NETFILTER] arp_tables: Fix unaligned accesses. 2007-04-13 16:37:54 -07:00
af_inet.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ah4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
arp.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
cipso_ipv4.c [NetLabel]: parse the CIPSO ranged tag on incoming packets 2007-03-12 14:38:02 -07:00
datagram.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
devinet.c [IPV4]: Fix rtm_to_ifaddr() error handling. 2007-03-09 13:43:24 -08:00
esp4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
fib_frontend.c [NETLINK]: Infinite recursion in netlink. 2007-04-25 13:07:28 -07:00
fib_hash.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
fib_lookup.h [IPV4]: net/ipv4/fib annotations 2006-09-28 18:02:23 -07:00
fib_rules.c [NET]: Fix fib_rules compatibility breakage 2007-03-25 18:48:00 -07:00
fib_semantics.c [IPv4] fib: Fix out of bound access of fib_props[] 2007-03-25 18:48:03 -07:00
fib_trie.c [IPV4] fib_trie: Document locking. 2007-03-26 14:22:22 -07:00
icmp.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
igmp.c [IPV4]: Fix warning in ip_mc_rejoin_group. 2007-03-12 17:02:37 -07:00
inet_connection_sock.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
inet_diag.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
inet_hashtables.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
inet_timewait_sock.c [NET]: change layout of ehash table 2007-02-08 14:16:46 -08:00
inetpeer.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_forward.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_fragment.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_gre.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_input.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_options.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ip_output.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_sockglue.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ipcomp.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
ipconfig.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
ipip.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ipmr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
Kconfig [IPV4]: Correct links in net/ipv4/Kconfig 2007-02-26 11:42:51 -08:00
Makefile [NET]: Supporting UDP-Lite (RFC 3828) in Linux 2006-12-02 21:22:46 -08:00
multipath_drr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
multipath_random.c [IPV4]: Use random32() in net/ipv4/multipath 2007-02-26 11:43:00 -08:00
multipath_rr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
multipath_wrandom.c [IPV4]: Use random32() in net/ipv4/multipath 2007-02-26 11:43:00 -08:00
multipath.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
netfilter.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
proc.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
protocol.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
raw.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
route.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
syncookies.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
sysctl_net_ipv4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_bic.c [TCP] tcp_bic: use BUILD_BUG_ON 2006-09-22 15:18:04 -07:00
tcp_cong.c [TCP]: Congestion control initialization. 2007-04-23 22:32:11 -07:00
tcp_cubic.c [TCP]: Use read mostly for CUBIC parameters. 2007-02-12 13:15:20 -08:00
tcp_diag.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tcp_highspeed.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_htcp.c [TCP]: cleanup of htcp (resend) 2007-02-12 13:34:03 -08:00
tcp_hybla.c [TCP] Congestion control (modulo lp, bic): use BUILD_BUG_ON 2006-09-22 15:18:13 -07:00
tcp_input.c [TCP] FRTO: fixes fallback to conventional recovery 2007-04-25 22:23:07 -07:00
tcp_ipv4.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_lp.c [TCP] tcp-lp: prevent chance for oops 2006-09-28 18:03:07 -07:00
tcp_minisocks.c [TCP]: Fix minisock tcp_create_openreq_child() typo. 2007-02-28 11:05:56 -08:00
tcp_output.c [TCP]: slow_start_after_idle should influence cwnd validation too 2007-04-09 13:31:15 -07:00
tcp_probe.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
tcp_scalable.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tcp_timer.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_vegas.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp_veno.c [TCP] Congestion control (modulo lp, bic): use BUILD_BUG_ON 2006-09-22 15:18:13 -07:00
tcp_westwood.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
tcp.c [TCP]: Fix tcp_mem[] initialization. 2007-03-16 15:04:03 -07:00
tunnel4.c [IPSEC]: Changing API of xfrm4_tunnel_register. 2007-02-13 12:54:47 -08:00
udp_impl.h [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
udp.c [UDP]: Reread uh pointer after pskb_trim 2007-03-07 16:08:04 -08:00
udplite.c [NET]: Possible cleanups. 2006-12-02 21:31:51 -08:00
xfrm4_input.c [IPSEC]: Changing API of xfrm4_tunnel_register. 2007-02-13 12:54:47 -08:00
xfrm4_mode_beet.c [XFRM]: beet: fix pseudo header length value 2007-04-23 22:39:02 -07:00
xfrm4_mode_transport.c [IPSEC]: output mode to take an xfrm state as input param 2006-09-22 15:18:48 -07:00
xfrm4_mode_tunnel.c [XFRM_TUNNEL]: Reload header pointer after pskb_may_pull/pskb_expand_head 2007-02-26 11:43:01 -08:00
xfrm4_output.c [NET] IPV4: Fix whitespace errors. 2007-02-10 23:19:39 -08:00
xfrm4_policy.c [XFRM]: Fix oops in xfrm4_dst_destroy() 2007-02-26 12:10:32 -08:00
xfrm4_state.c [IPSEC]: exporting xfrm_state_afinfo 2007-02-08 12:39:00 -08:00
xfrm4_tunnel.c [IPSEC]: Changing API of xfrm4_tunnel_register. 2007-02-13 12:54:47 -08:00