tcp_reass.c (86764) | tcp_reass.c (87193) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 | 1/* 2 * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 |
34 * $FreeBSD: head/sys/netinet/tcp_reass.c 86764 2001-11-22 04:50:44Z jlemon $ | 34 * $FreeBSD: head/sys/netinet/tcp_reass.c 87193 2001-12-02 08:49:29Z dillon $ |
35 */ 36 37#include "opt_ipfw.h" /* for ipfw_fwd */ 38#include "opt_inet6.h" 39#include "opt_ipsec.h" 40#include "opt_tcpdebug.h" 41#include "opt_tcp_input.h" 42 --- 104 unchanged lines hidden (view full) --- 147 (tp)->t_inpcb->in6p_route.ro_rt) \ 148 nd6_nud_hint((tp)->t_inpcb->in6p_route.ro_rt, NULL, 0); \ 149} while (0) 150#else 151#define ND6_HINT(tp) 152#endif 153 154/* | 35 */ 36 37#include "opt_ipfw.h" /* for ipfw_fwd */ 38#include "opt_inet6.h" 39#include "opt_ipsec.h" 40#include "opt_tcpdebug.h" 41#include "opt_tcp_input.h" 42 --- 104 unchanged lines hidden (view full) --- 147 (tp)->t_inpcb->in6p_route.ro_rt) \ 148 nd6_nud_hint((tp)->t_inpcb->in6p_route.ro_rt, NULL, 0); \ 149} while (0) 150#else 151#define ND6_HINT(tp) 152#endif 153 154/* |
155 * Indicate whether this ack should be delayed. | 155 * Indicate whether this ack should be delayed. We can delay the ack if 156 * - delayed acks are enabled and 157 * - there is no delayed ack timer in progress and 158 * - our last ack wasn't a 0-sized window. We never want to delay 159 * the ack that opens up a 0-sized window. |
156 */ 157#define DELAY_ACK(tp) \ | 160 */ 161#define DELAY_ACK(tp) \ |
158 (tcp_delack_enabled && !callout_pending(tp->tt_delack)) | 162 (tcp_delack_enabled && !callout_pending(tp->tt_delack) && \ 163 (tp->t_flags & TF_RXWIN0SENT) == 0) |
159 160static int 161tcp_reass(tp, th, tlenp, m) 162 register struct tcpcb *tp; 163 register struct tcphdr *th; 164 int *tlenp; 165 struct mbuf *m; 166{ --- 2563 unchanged lines hidden --- | 164 165static int 166tcp_reass(tp, th, tlenp, m) 167 register struct tcpcb *tp; 168 register struct tcphdr *th; 169 int *tlenp; 170 struct mbuf *m; 171{ --- 2563 unchanged lines hidden --- |