freebsd-skq/sys/netinet
Adrian Chadd 8bde802a2b The users of RSS shouldn't be directly concerned about hash -> CPU ID
mappings.  Instead, they should be first mapping to an RSS bucket and
then querying the RSS bucket -> CPU ID mapping to figure out the target
CPU.

When (if?) RSS rebalancing is implemented or some other (non round-robin)
distribution of work from buckets to CPU IDs, various bits of code - both
userland and kernel - will need to know how this mapping works.

So, to support this:

* Add a new function rss_m2bucket() - this maps an mbuf to a given bucket.
  Anything which is currently doing hash -> CPU work may instead wish to
  do hash -> bucket, and then query the bucket->cpuid map for which
  CPU it belongs on.  Or, map it to a bucket, then re-pin that bucket ->
  CPU during a rebalance operation.

* For userland applications which wish to exploit affinity to RSS buckets,
  the bucket -> CPU ID mapping is now available via a sysctl.
  net.inet.rss.bucket_mapping lists the bucket to CPU ID mapping via
  a list of bucket:cpu pairs.
2014-05-27 08:06:20 +00:00
..
cc
khelp
libalias
accf_data.c
accf_dns.c
accf_http.c
cc.h
icmp6.h
icmp_var.h
if_atm.c
if_atm.h
if_ether.c
if_ether.h
igmp_var.h
igmp.c
igmp.h
in_cksum.c
in_debug.c
in_gif.c
in_gif.h
in_kdtrace.c
in_kdtrace.h
in_mcast.c
in_pcb.c
in_pcb.h Add the flowtype to the inpcb. 2014-05-18 22:30:12 +00:00
in_pcbgroup.c
in_proto.c
in_rmx.c
in_rss.c The users of RSS shouldn't be directly concerned about hash -> CPU ID 2014-05-27 08:06:20 +00:00
in_rss.h The users of RSS shouldn't be directly concerned about hash -> CPU ID 2014-05-27 08:06:20 +00:00
in_systm.h
in_var.h
in.c
in.h Reserve IP_FLOWID, IP_FLOWTYPE, IP_RSSCPUID socket option IDs for 2014-05-17 00:09:12 +00:00
ip6.h
ip_carp.c
ip_carp.h
ip_divert.c
ip_divert.h
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c
ip_fw.h Fix wrong formatting of 0.0.0.0/X table records in ipfw(8). 2014-05-17 13:45:03 +00:00
ip_gre.c
ip_gre.h
ip_icmp.c
ip_icmp.h
ip_id.c
ip_input.c Fix checksum computation. Previously it didn't include carry. 2014-05-13 05:07:03 +00:00
ip_ipsec.c
ip_ipsec.h
ip_mroute.c
ip_mroute.h
ip_options.c
ip_options.h
ip_output.c * When copying the flowid from inp -> outbound mbuf, also assign the 2014-05-18 22:37:31 +00:00
ip_var.h
ip.h
pim_var.h
pim.h
raw_ip.c
sctp_asconf.c
sctp_asconf.h
sctp_auth.c
sctp_auth.h
sctp_bsd_addr.c
sctp_bsd_addr.h
sctp_cc_functions.c
sctp_constants.h
sctp_crc32.c
sctp_crc32.h
sctp_dtrace_declare.h
sctp_dtrace_define.h
sctp_header.h
sctp_indata.c
sctp_indata.h
sctp_input.c
sctp_input.h
sctp_lock_bsd.h
sctp_os_bsd.h
sctp_os.h
sctp_output.c
sctp_output.h
sctp_pcb.c
sctp_pcb.h
sctp_peeloff.c
sctp_peeloff.h
sctp_ss_functions.c
sctp_structs.h
sctp_sysctl.c
sctp_sysctl.h
sctp_timer.c
sctp_timer.h
sctp_uio.h
sctp_usrreq.c
sctp_var.h
sctp.h
sctputil.c
sctputil.h
siftr.c
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c
tcp_hostcache.h
tcp_input.c Remove the prototpye for the static inline function 2014-05-24 15:31:40 +00:00
tcp_lro.c
tcp_lro.h
tcp_offload.c
tcp_offload.h
tcp_output.c
tcp_reass.c
tcp_sack.c
tcp_seq.h
tcp_subr.c
tcp_syncache.c syncache_lookup() is a file local function. Make it static and 2014-05-24 15:03:36 +00:00
tcp_syncache.h
tcp_timer.c When RSS is enabled and per cpu TCP timers are enabled, do an RSS 2014-05-18 22:39:01 +00:00
tcp_timer.h
tcp_timewait.c Make tcp_twrespond() file local private; this removes it from the 2014-05-24 14:01:18 +00:00
tcp_usrreq.c
tcp_var.h Make tcp_twrespond() file local private; this removes it from the 2014-05-24 14:01:18 +00:00
tcp.h
tcpip.h
toecore.c
toecore.h
toeplitz.c
toeplitz.h
udp_usrreq.c Disable TX checksum offload for UDP-Lite completely. It wasn't used for 2014-05-12 09:46:48 +00:00
udp_var.h
udp.h
udplite.h