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 --- |