fastpath.c (298743) | fastpath.c (298995) |
---|---|
1/*- 2 * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 2007-2008,2010 5 * Swinburne University of Technology, Melbourne, Australia. 6 * Copyright (c) 2009-2010 Lawrence Stewart <lstewart@freebsd.org> 7 * Copyright (c) 2010 The FreeBSD Foundation 8 * Copyright (c) 2010-2011 Juniper Networks, Inc. --- 38 unchanged lines hidden (view full) --- 47 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 48 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 49 * SUCH DAMAGE. 50 * 51 * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 52 */ 53 54#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 2007-2008,2010 5 * Swinburne University of Technology, Melbourne, Australia. 6 * Copyright (c) 2009-2010 Lawrence Stewart <lstewart@freebsd.org> 7 * Copyright (c) 2010 The FreeBSD Foundation 8 * Copyright (c) 2010-2011 Juniper Networks, Inc. --- 38 unchanged lines hidden (view full) --- 47 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 48 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 49 * SUCH DAMAGE. 50 * 51 * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 52 */ 53 54#include <sys/cdefs.h> |
55__FBSDID("$FreeBSD: head/sys/netinet/tcp_stacks/fastpath.c 298743 2016-04-28 13:27:12Z rrs $"); | 55__FBSDID("$FreeBSD: head/sys/netinet/tcp_stacks/fastpath.c 298995 2016-05-03 18:05:43Z pfg $"); |
56 57#include "opt_ipfw.h" /* for ipfw_fwd */ 58#include "opt_inet.h" 59#include "opt_inet6.h" 60#include "opt_ipsec.h" 61#include "opt_kdtrace.h" 62#include "opt_tcpdebug.h" 63 --- 116 unchanged lines hidden (view full) --- 180 * The size of tcp_saveipgen must be the size of the max ip header, 181 * now IPv6. 182 */ 183 u_char tcp_saveipgen[IP6_HDR_LEN]; 184 struct tcphdr tcp_savetcp; 185 short ostate = 0; 186#endif 187 /* | 56 57#include "opt_ipfw.h" /* for ipfw_fwd */ 58#include "opt_inet.h" 59#include "opt_inet6.h" 60#include "opt_ipsec.h" 61#include "opt_kdtrace.h" 62#include "opt_tcpdebug.h" 63 --- 116 unchanged lines hidden (view full) --- 180 * The size of tcp_saveipgen must be the size of the max ip header, 181 * now IPv6. 182 */ 183 u_char tcp_saveipgen[IP6_HDR_LEN]; 184 struct tcphdr tcp_savetcp; 185 short ostate = 0; 186#endif 187 /* |
188 * The following if statment will be true if | 188 * The following if statement will be true if |
189 * we are doing the win_up_in_fp <and> 190 * - We have more new data (SEQ_LT(tp->snd_wl1, th->th_seq)) <or> 191 * - No more new data, but we have an ack for new data 192 * (tp->snd_wl1 == th->th_seq && SEQ_LT(tp->snd_wl2, th->th_ack)) 193 * - No more new data, the same ack point but the window grew 194 * (tp->snd_wl1 == th->th_seq && tp->snd_wl2 == th->th_ack && twin > tp->snd_wnd) 195 */ 196 if ((SEQ_LT(tp->snd_wl1, th->th_seq) || --- 859 unchanged lines hidden (view full) --- 1056 TCPSTAT_INC(tcps_rcvdupack); 1057 /* 1058 * If we have outstanding data (other than 1059 * a window probe), this is a completely 1060 * duplicate ack (ie, window info didn't 1061 * change and FIN isn't set), 1062 * the ack is the biggest we've 1063 * seen and we've seen exactly our rexmt | 189 * we are doing the win_up_in_fp <and> 190 * - We have more new data (SEQ_LT(tp->snd_wl1, th->th_seq)) <or> 191 * - No more new data, but we have an ack for new data 192 * (tp->snd_wl1 == th->th_seq && SEQ_LT(tp->snd_wl2, th->th_ack)) 193 * - No more new data, the same ack point but the window grew 194 * (tp->snd_wl1 == th->th_seq && tp->snd_wl2 == th->th_ack && twin > tp->snd_wnd) 195 */ 196 if ((SEQ_LT(tp->snd_wl1, th->th_seq) || --- 859 unchanged lines hidden (view full) --- 1056 TCPSTAT_INC(tcps_rcvdupack); 1057 /* 1058 * If we have outstanding data (other than 1059 * a window probe), this is a completely 1060 * duplicate ack (ie, window info didn't 1061 * change and FIN isn't set), 1062 * the ack is the biggest we've 1063 * seen and we've seen exactly our rexmt |
1064 * threshhold of them, assume a packet | 1064 * threshold of them, assume a packet |
1065 * has been dropped and retransmit it. 1066 * Kludge snd_nxt & the congestion 1067 * window so we send only this one 1068 * packet. 1069 * 1070 * We know we're losing at the current 1071 * window size so do congestion avoidance 1072 * (set ssthresh to half the current window --- 1383 unchanged lines hidden --- | 1065 * has been dropped and retransmit it. 1066 * Kludge snd_nxt & the congestion 1067 * window so we send only this one 1068 * packet. 1069 * 1070 * We know we're losing at the current 1071 * window size so do congestion avoidance 1072 * (set ssthresh to half the current window --- 1383 unchanged lines hidden --- |