mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-21 15:45:02 +00:00
Merge ^/head r287502 through r287526.
This commit is contained in:
commit
cfab224f31
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/clang370-import/; revision=287527
@ -298,9 +298,6 @@ DPADD_gssapi_krb5+= ${DPADD_pthread}
|
||||
LDADD_gssapi_krb5+= ${LDADD_pthread}
|
||||
|
||||
.for _l in ${LIBADD}
|
||||
.if ${_PRIVATELIBS:M${_l}}
|
||||
USEPRIVATELIB+= ${_l}
|
||||
.endif
|
||||
DPADD+= ${DPADD_${_l}:Umissing-dpadd_${_l}}
|
||||
LDADD+= ${LDADD_${_l}}
|
||||
.endfor
|
||||
|
@ -160,7 +160,7 @@ static struct netisr_handler ip_direct_nh = {
|
||||
.nh_name = "ip_direct",
|
||||
.nh_handler = ip_direct_input,
|
||||
.nh_proto = NETISR_IP_DIRECT,
|
||||
.nh_m2cpuid = rss_m2cpuid,
|
||||
.nh_m2cpuid = rss_soft_m2cpuid_v4,
|
||||
.nh_policy = NETISR_POLICY_CPU,
|
||||
.nh_dispatch = NETISR_DISPATCH_HYBRID,
|
||||
};
|
||||
|
@ -485,6 +485,8 @@ struct route_in6 {
|
||||
#define IPV6_FLOWID 67 /* int; flowid of given socket */
|
||||
#define IPV6_FLOWTYPE 68 /* int; flowtype of given socket */
|
||||
#define IPV6_RSSBUCKETID 69 /* int; RSS bucket ID of given socket */
|
||||
#define IPV6_RECVFLOWID 70 /* bool; receive IP6 flowid/flowtype w/ datagram */
|
||||
#define IPV6_RECVRSSBUCKETID 71 /* bool; receive IP6 RSS bucket id w/ datagram */
|
||||
|
||||
/*
|
||||
* The following option is private; do not use it from user applications.
|
||||
|
@ -93,6 +93,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <net/if_dl.h>
|
||||
#include <net/route.h>
|
||||
#include <net/netisr.h>
|
||||
#include <net/rss_config.h>
|
||||
#include <net/pfil.h>
|
||||
#include <net/vnet.h>
|
||||
|
||||
@ -1349,6 +1350,44 @@ ip6_savecontrol(struct inpcb *in6p, struct mbuf *m, struct mbuf **mp)
|
||||
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
|
||||
|
||||
|
@ -1400,6 +1400,10 @@ ip6_ctloutput(struct socket *so, struct sockopt *sopt)
|
||||
case IPV6_RECVRTHDR:
|
||||
case IPV6_RECVPATHMTU:
|
||||
case IPV6_RECVTCLASS:
|
||||
case IPV6_RECVFLOWID:
|
||||
#ifdef RSS
|
||||
case IPV6_RECVRSSBUCKETID:
|
||||
#endif
|
||||
case IPV6_V6ONLY:
|
||||
case IPV6_AUTOFLOWLABEL:
|
||||
case IPV6_BINDANY:
|
||||
@ -1548,6 +1552,16 @@ do { \
|
||||
OPTSET(IN6P_MTU);
|
||||
break;
|
||||
|
||||
case IPV6_RECVFLOWID:
|
||||
OPTSET2(INP_RECVFLOWID, optval);
|
||||
break;
|
||||
|
||||
#ifdef RSS
|
||||
case IPV6_RECVRSSBUCKETID:
|
||||
OPTSET2(INP_RECVRSSBUCKETID, optval);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case IPV6_V6ONLY:
|
||||
/*
|
||||
* make setsockopt(IPV6_V6ONLY)
|
||||
@ -1811,8 +1825,10 @@ do { \
|
||||
case IPV6_BINDANY:
|
||||
case IPV6_FLOWID:
|
||||
case IPV6_FLOWTYPE:
|
||||
case IPV6_RECVFLOWID:
|
||||
#ifdef RSS
|
||||
case IPV6_RSSBUCKETID:
|
||||
case IPV6_RECVRSSBUCKETID:
|
||||
#endif
|
||||
switch (optname) {
|
||||
|
||||
@ -1883,6 +1899,10 @@ do { \
|
||||
case IPV6_FLOWTYPE:
|
||||
optval = in6p->inp_flowtype;
|
||||
break;
|
||||
|
||||
case IPV6_RECVFLOWID:
|
||||
optval = OPTBIT2(INP_RECVFLOWID);
|
||||
break;
|
||||
#ifdef RSS
|
||||
case IPV6_RSSBUCKETID:
|
||||
retval =
|
||||
@ -1894,6 +1914,10 @@ do { \
|
||||
else
|
||||
error = EINVAL;
|
||||
break;
|
||||
|
||||
case IPV6_RECVRSSBUCKETID:
|
||||
optval = OPTBIT2(INP_RECVRSSBUCKETID);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case IPV6_BINDMULTI:
|
||||
|
@ -165,11 +165,11 @@ procstat_auxv(struct procstat *procstat, struct kinfo_proc *kipp)
|
||||
if ((auxv[i].a_un.a_val & VM_PROT_EXECUTE) != 0)
|
||||
xo_emit("{dw:/%s}{Lw:/%-16s/%s}"
|
||||
"{:AT_STACKPROT/%s}\n", prefix,
|
||||
"AT_STACKPROT", "NONEXECUTABLE");
|
||||
"AT_STACKPROT", "EXECUTABLE");
|
||||
else
|
||||
xo_emit("{dw:/%s}{Lw:/%-16s/%s}"
|
||||
"{:AT_STACKPROT/%s}\n", prefix,
|
||||
"AT_STACKPROT", "EXECUTABLE");
|
||||
"AT_STACKPROT", "NONEXECUTABLE");
|
||||
break;
|
||||
#ifdef AT_TIMEKEEP
|
||||
case AT_TIMEKEEP:
|
||||
|
@ -5,4 +5,14 @@ SUBDIR= libopts libntp libntpevent libparse ntpd ntpdc ntpq ntpdate \
|
||||
ntptime ntp-keygen sntp
|
||||
SUBDIR+= doc
|
||||
|
||||
SUBDIR_DEPEND_ntpd= libntp libopts libparse
|
||||
SUBDIR_DEPEND_ntpdate= libntp
|
||||
SUBDIR_DEPEND_ntpdc= libntp libopts
|
||||
SUBDIR_DEPEND_ntpq= libntp libopts
|
||||
SUBDIR_DEPEND_ntptime= libntp
|
||||
SUBDIR_DEPEND_ntp-keygen= libntp libopts
|
||||
SUBDIR_DEPEND_sntp= libntp libntpevent libopts
|
||||
|
||||
SUBDIR_PARALLEL=
|
||||
|
||||
.include <bsd.subdir.mk>
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* $FreeBSD$ */
|
||||
#define _PATH_DEVPCI "/dev/pci"
|
||||
#define _PATH_PCIVDB "/usr/share/misc/pci_vendors"
|
||||
#define _PATH_LPCIVDB "/usr/local/share/pciids/pci.ids"
|
||||
|
@ -25,7 +25,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd January 20, 2014
|
||||
.Dd September 06, 2015
|
||||
.Dt PCICONF 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -281,7 +281,9 @@ indicates a halfword (two-byte) operation.
|
||||
The default is to read or
|
||||
write a longword (four bytes).
|
||||
.Sh ENVIRONMENT
|
||||
The PCI vendor/device information database is normally read from
|
||||
PCI vendor and device information is read from
|
||||
.Pa /usr/local/share/pciids/pci.ids .
|
||||
If that file is not present, it is read from
|
||||
.Pa /usr/share/misc/pci_vendors .
|
||||
This path can be overridden by setting the environment variable
|
||||
.Ev PCICONF_VENDOR_DATABASE .
|
||||
|
@ -549,9 +549,12 @@ load_vendors(void)
|
||||
*/
|
||||
TAILQ_INIT(&pci_vendors);
|
||||
if ((dbf = getenv("PCICONF_VENDOR_DATABASE")) == NULL)
|
||||
dbf = _PATH_LPCIVDB;
|
||||
if ((db = fopen(dbf, "r")) == NULL) {
|
||||
dbf = _PATH_PCIVDB;
|
||||
if ((db = fopen(dbf, "r")) == NULL)
|
||||
return(1);
|
||||
if ((db = fopen(dbf, "r")) == NULL)
|
||||
return(1);
|
||||
}
|
||||
cv = NULL;
|
||||
cd = NULL;
|
||||
error = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user