diff options
author | dim <dim@FreeBSD.org> | 2015-09-06 22:05:55 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-09-06 22:05:55 +0000 |
commit | 0c1fa3e6ad5b7fd602181bc094d752a27ea34568 (patch) | |
tree | d34068aa6ef95b9bc5d6b21eecab74939200433a | |
parent | fe6d24a2c11b8f1f6a6abb515a55ff47926356a5 (diff) | |
download | FreeBSD-src-0c1fa3e6ad5b7fd602181bc094d752a27ea34568.zip FreeBSD-src-0c1fa3e6ad5b7fd602181bc094d752a27ea34568.tar.gz |
Merge ^/head r287502 through r287526.
-rw-r--r-- | share/mk/src.libnames.mk | 3 | ||||
-rw-r--r-- | sys/netinet/ip_input.c | 2 | ||||
-rw-r--r-- | sys/netinet6/in6.h | 2 | ||||
-rw-r--r-- | sys/netinet6/ip6_input.c | 39 | ||||
-rw-r--r-- | sys/netinet6/ip6_output.c | 24 | ||||
-rw-r--r-- | usr.bin/procstat/procstat_auxv.c | 4 | ||||
-rw-r--r-- | usr.sbin/ntp/Makefile | 10 | ||||
-rw-r--r-- | usr.sbin/pciconf/pathnames.h | 1 | ||||
-rw-r--r-- | usr.sbin/pciconf/pciconf.8 | 6 | ||||
-rw-r--r-- | usr.sbin/pciconf/pciconf.c | 7 |
10 files changed, 88 insertions, 10 deletions
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk index 4db46ab..e3d5bae 100644 --- a/share/mk/src.libnames.mk +++ b/share/mk/src.libnames.mk @@ -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 diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index dbfcdc2..a406080 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -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, }; diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h index 50ca387..81d8d31 100644 --- a/sys/netinet6/in6.h +++ b/sys/netinet6/in6.h @@ -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. diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index 328a296..fc38168 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -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 diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c index 49e6090..09d0925 100644 --- a/sys/netinet6/ip6_output.c +++ b/sys/netinet6/ip6_output.c @@ -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: diff --git a/usr.bin/procstat/procstat_auxv.c b/usr.bin/procstat/procstat_auxv.c index 3509e0d..f4a2265 100644 --- a/usr.bin/procstat/procstat_auxv.c +++ b/usr.bin/procstat/procstat_auxv.c @@ -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: diff --git a/usr.sbin/ntp/Makefile b/usr.sbin/ntp/Makefile index 962e60f..ad5b523 100644 --- a/usr.sbin/ntp/Makefile +++ b/usr.sbin/ntp/Makefile @@ -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> diff --git a/usr.sbin/pciconf/pathnames.h b/usr.sbin/pciconf/pathnames.h index 719615a..61c0993 100644 --- a/usr.sbin/pciconf/pathnames.h +++ b/usr.sbin/pciconf/pathnames.h @@ -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" diff --git a/usr.sbin/pciconf/pciconf.8 b/usr.sbin/pciconf/pciconf.8 index e0caf1f..8dbb2a6 100644 --- a/usr.sbin/pciconf/pciconf.8 +++ b/usr.sbin/pciconf/pciconf.8 @@ -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 . diff --git a/usr.sbin/pciconf/pciconf.c b/usr.sbin/pciconf/pciconf.c index 31b3880..721d120 100644 --- a/usr.sbin/pciconf/pciconf.c +++ b/usr.sbin/pciconf/pciconf.c @@ -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; |