Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Jul 2014 05:45:54 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r268561 - head/sys/netinet6
Message-ID:  <201407120545.s6C5jsKd049600@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Sat Jul 12 05:45:53 2014
New Revision: 268561
URL: http://svnweb.freebsd.org/changeset/base/268561

Log:
  Add INP_RSS_BUCKET_SET awareness for IPv6 pcbgroup entries.
  
  This ensures that a listen socket with INP_RSS_BUCKET_SET set will use
  the pre-determined PCBGROUP rather than what the hashing path chooses.

Modified:
  head/sys/netinet6/in6_pcbgroup.c

Modified: head/sys/netinet6/in6_pcbgroup.c
==============================================================================
--- head/sys/netinet6/in6_pcbgroup.c	Sat Jul 12 05:44:16 2014	(r268560)
+++ head/sys/netinet6/in6_pcbgroup.c	Sat Jul 12 05:45:53 2014	(r268561)
@@ -128,6 +128,19 @@ struct inpcbgroup *
 in6_pcbgroup_byinpcb(struct inpcb *inp)
 {
 
+#ifdef	RSS
+	/*
+	 * Listen sockets with INP_RSS_BUCKET_SET set have a pre-determined
+	 * RSS bucket and thus we should use this pcbgroup, rather than
+	 * using a tuple or hash.
+	 *
+	 * XXX should verify that there's actually pcbgroups and inp_rss_listen_bucket
+	 * fits in that!
+	 */
+	if (inp->inp_flags2 & INP_RSS_BUCKET_SET)
+		return (&inp->inp_pcbinfo->ipi_pcbgroups[inp->inp_rss_listen_bucket]);
+#endif
+
 	return (in6_pcbgroup_bytuple(inp->inp_pcbinfo, &inp->in6p_laddr,
 	    inp->inp_lport, &inp->in6p_faddr, inp->inp_fport));
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407120545.s6C5jsKd049600>