aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet6/ip6_output.c
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2019-04-25 15:37:28 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2019-04-25 15:37:28 +0000
commit50575ce11cbe09fd4d7cfe1e11d8dcca209515b9 (patch)
treea35afc3b087df08fdfc94eac8bdcbf240251a0b7 /sys/netinet6/ip6_output.c
parente77f4eb2a08599ca340871961b365b37f4213961 (diff)
downloadsrc-50575ce11cbe09fd4d7cfe1e11d8dcca209515b9.tar.gz
src-50575ce11cbe09fd4d7cfe1e11d8dcca209515b9.zip
Track TCP connection's NUMA domain in the inpcb
Drivers can now pass up numa domain information via the mbuf numa domain field. This information is then used by TCP syncache_socket() to associate that information with the inpcb. The domain information is then fed back into transmitted mbufs in ip{6}_output(). This mechanism is nearly identical to what is done to track RSS hash values in the inp_flowid. Follow on changes will use this information for lacp egress port selection, binding TCP pacers to the appropriate NUMA domain, etc. Reviewed by: markj, kib, slavash, bz, scottl, jtl, tuexen Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D20028
Notes
Notes: svn path=/head/; revision=346677
Diffstat (limited to 'sys/netinet6/ip6_output.c')
-rw-r--r--sys/netinet6/ip6_output.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c
index 2161a51e50f1..4ce7f896cbe3 100644
--- a/sys/netinet6/ip6_output.c
+++ b/sys/netinet6/ip6_output.c
@@ -322,6 +322,9 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt,
m->m_pkthdr.flowid = inp->inp_flowid;
M_HASHTYPE_SET(m, inp->inp_flowtype);
}
+#ifdef NUMA
+ m->m_pkthdr.numa_domain = inp->inp_numa_domain;
+#endif
}
#if defined(IPSEC) || defined(IPSEC_SUPPORT)