Deleted Added
full compact
ip_output.c (204902) ip_output.c (205066)
1/*-
2 * Copyright (c) 1982, 1986, 1988, 1990, 1993
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

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)ip_output.c 8.3 (Berkeley) 1/21/94
30 */
31
32#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1982, 1986, 1988, 1990, 1993
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

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)ip_output.c 8.3 (Berkeley) 1/21/94
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/netinet/ip_output.c 204902 2010-03-09 01:11:45Z qingli $");
33__FBSDID("$FreeBSD: head/sys/netinet/ip_output.c 205066 2010-03-12 05:03:26Z kmacy $");
34
35#include "opt_ipfw.h"
36#include "opt_ipsec.h"
37#include "opt_route.h"
38#include "opt_mbuf_stress_test.h"
39#include "opt_mpath.h"
40#include "opt_sctp.h"
41

--- 101 unchanged lines hidden (view full) ---

143 }
144 }
145
146 if (ro == NULL) {
147 ro = &iproute;
148 bzero(ro, sizeof (*ro));
149
150#ifdef FLOWTABLE
34
35#include "opt_ipfw.h"
36#include "opt_ipsec.h"
37#include "opt_route.h"
38#include "opt_mbuf_stress_test.h"
39#include "opt_mpath.h"
40#include "opt_sctp.h"
41

--- 101 unchanged lines hidden (view full) ---

143 }
144 }
145
146 if (ro == NULL) {
147 ro = &iproute;
148 bzero(ro, sizeof (*ro));
149
150#ifdef FLOWTABLE
151 /*
152 * The flow table returns route entries valid for up to 30
153 * seconds; we rely on the remainder of ip_output() taking no
154 * longer than that long for the stability of ro_rt. The
155 * flow ID assignment must have happened before this point.
156 */
157 if (flowtable_lookup(V_ip_ft, m, ro, M_GETFIB(m)) == 0)
158 nortfree = 1;
151 {
152 struct flentry *fle;
153
154 /*
155 * The flow table returns route entries valid for up to 30
156 * seconds; we rely on the remainder of ip_output() taking no
157 * longer than that long for the stability of ro_rt. The
158 * flow ID assignment must have happened before this point.
159 */
160 if ((fle = flowtable_lookup_mbuf(V_ip_ft, m, AF_INET)) != NULL) {
161 flow_to_route(fle, ro);
162 nortfree = 1;
163 }
164 }
159#endif
160 }
161
162 if (opt) {
163 int len = 0;
164 m = ip_insertoptions(m, opt, &len);
165 if (len != 0)
166 hlen = len; /* ip->ip_hl is updated above */

--- 1100 unchanged lines hidden ---
165#endif
166 }
167
168 if (opt) {
169 int len = 0;
170 m = ip_insertoptions(m, opt, &len);
171 if (len != 0)
172 hlen = len; /* ip->ip_hl is updated above */

--- 1100 unchanged lines hidden ---