Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/ip_output.c
| Show All 32 Lines | |||||
| #include <sys/cdefs.h> | #include <sys/cdefs.h> | ||||
| __FBSDID("$FreeBSD$"); | __FBSDID("$FreeBSD$"); | ||||
| #include "opt_inet.h" | #include "opt_inet.h" | ||||
| #include "opt_ipsec.h" | #include "opt_ipsec.h" | ||||
| #include "opt_kern_tls.h" | #include "opt_kern_tls.h" | ||||
| #include "opt_mbuf_stress_test.h" | #include "opt_mbuf_stress_test.h" | ||||
| #include "opt_mpath.h" | |||||
| #include "opt_ratelimit.h" | #include "opt_ratelimit.h" | ||||
| #include "opt_route.h" | #include "opt_route.h" | ||||
| #include "opt_rss.h" | #include "opt_rss.h" | ||||
| #include "opt_sctp.h" | #include "opt_sctp.h" | ||||
| #include <sys/param.h> | #include <sys/param.h> | ||||
| #include <sys/systm.h> | #include <sys/systm.h> | ||||
| #include <sys/kernel.h> | #include <sys/kernel.h> | ||||
| ▲ Show 20 Lines • Show All 415 Lines • ▼ Show 20 Lines | again: | ||||
| } else if (ro != NULL) { | } else if (ro != NULL) { | ||||
| if (ro->ro_nh == NULL) { | if (ro->ro_nh == NULL) { | ||||
| /* | /* | ||||
| * We want to do any cloning requested by the link | * We want to do any cloning requested by the link | ||||
| * layer, as this is probably required in all cases | * layer, as this is probably required in all cases | ||||
| * for correct operation (as it is for ARP). | * for correct operation (as it is for ARP). | ||||
| */ | */ | ||||
| uint32_t flowid; | uint32_t flowid; | ||||
| #ifdef RADIX_MPATH | |||||
| flowid = ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr); | |||||
| #else | |||||
| flowid = m->m_pkthdr.flowid; | flowid = m->m_pkthdr.flowid; | ||||
| #endif | |||||
| ro->ro_nh = fib4_lookup(fibnum, dst->sin_addr, 0, | ro->ro_nh = fib4_lookup(fibnum, dst->sin_addr, 0, | ||||
| NHR_REF, flowid); | NHR_REF, flowid); | ||||
| if (ro->ro_nh == NULL || (!NH_IS_VALID(ro->ro_nh))) { | if (ro->ro_nh == NULL || (!NH_IS_VALID(ro->ro_nh))) { | ||||
| #if defined(IPSEC) || defined(IPSEC_SUPPORT) | #if defined(IPSEC) || defined(IPSEC_SUPPORT) | ||||
| /* | /* | ||||
| * There is no route for this packet, but it is | * There is no route for this packet, but it is | ||||
| * possible that a matching SPD entry exists. | * possible that a matching SPD entry exists. | ||||
| ▲ Show 20 Lines • Show All 1,107 Lines • Show Last 20 Lines | |||||