Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet6/ip6_input.c
Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | |||||
#include <sys/syslog.h> | #include <sys/syslog.h> | ||||
#include <net/if.h> | #include <net/if.h> | ||||
#include <net/if_var.h> | #include <net/if_var.h> | ||||
#include <net/if_types.h> | #include <net/if_types.h> | ||||
#include <net/if_dl.h> | #include <net/if_dl.h> | ||||
#include <net/route.h> | #include <net/route.h> | ||||
#include <net/netisr.h> | #include <net/netisr.h> | ||||
#include <net/rss_config.h> | |||||
#include <net/pfil.h> | #include <net/pfil.h> | ||||
#include <net/vnet.h> | #include <net/vnet.h> | ||||
#include <netinet/in.h> | #include <netinet/in.h> | ||||
#include <netinet/in_kdtrace.h> | #include <netinet/in_kdtrace.h> | ||||
#include <netinet/ip_var.h> | #include <netinet/ip_var.h> | ||||
#include <netinet/in_systm.h> | #include <netinet/in_systm.h> | ||||
#include <net/if_llatbl.h> | #include <net/if_llatbl.h> | ||||
▲ Show 20 Lines • Show All 1,240 Lines • ▼ Show 20 Lines | |||||
#ifdef PULLDOWN_TEST | #ifdef PULLDOWN_TEST | ||||
m_freem(ext); | m_freem(ext); | ||||
ext = NULL; | ext = NULL; | ||||
#endif | #endif | ||||
} | } | ||||
loopend: | loopend: | ||||
; | ; | ||||
} | } | ||||
if (in6p->inp_flags2 & INP_RECVFLOWID) { | |||||
uint32_t flowid, flow_type; | |||||
flowid = m->m_pkthdr.flowid; | |||||
flow_type = M_HASHTYPE_GET(m); | |||||
/* | |||||
* XXX should handle the failure of one or the | |||||
* other - don't populate both? | |||||
*/ | |||||
*mp = sbcreatecontrol((caddr_t) &flowid, | |||||
sizeof(uint32_t), IPV6_FLOWID, IPPROTO_IPV6); | |||||
if (*mp) | |||||
mp = &(*mp)->m_next; | |||||
*mp = sbcreatecontrol((caddr_t) &flow_type, | |||||
sizeof(uint32_t), IPV6_FLOWTYPE, IPPROTO_IPV6); | |||||
if (*mp) | |||||
mp = &(*mp)->m_next; | |||||
} | |||||
#ifdef RSS | |||||
if (in6p->inp_flags2 & INP_RECVRSSBUCKETID) { | |||||
uint32_t flowid, flow_type; | |||||
uint32_t rss_bucketid; | |||||
flowid = m->m_pkthdr.flowid; | |||||
flow_type = M_HASHTYPE_GET(m); | |||||
if (rss_hash2bucket(flowid, flow_type, &rss_bucketid) == 0) { | |||||
*mp = sbcreatecontrol((caddr_t) &rss_bucketid, | |||||
sizeof(uint32_t), IPV6_RSSBUCKETID, IPPROTO_IPV6); | |||||
if (*mp) | |||||
mp = &(*mp)->m_next; | |||||
} | |||||
} | |||||
#endif | |||||
} | } | ||||
#undef IS2292 | #undef IS2292 | ||||
void | void | ||||
ip6_notify_pmtu(struct inpcb *inp, struct sockaddr_in6 *dst, u_int32_t mtu) | ip6_notify_pmtu(struct inpcb *inp, struct sockaddr_in6 *dst, u_int32_t mtu) | ||||
{ | { | ||||
struct socket *so; | struct socket *so; | ||||
struct mbuf *m_mtu; | struct mbuf *m_mtu; | ||||
▲ Show 20 Lines • Show All 240 Lines • Show Last 20 Lines |