Adrian Chadd b8bc95cd49 Update the IPv4 input path to handle reassembled frames and incoming frames
with no RSS hash.

When doing RSS:

* Create a new IPv4 netisr which expects the frames to have been verified;
  it just directly dispatches to the IPv4 input path.
* Once IPv4 reassembly is done, re-calculate the RSS hash with the new
  IP and L3 header; then reinject it as appropriate.
* Update the IPv4 netisr to be a CPU affinity netisr with the RSS hash
  function (rss_soft_m2cpuid) - this will do a software hash if the
  hardware doesn't provide one.

NICs that don't implement hardware RSS hashing will now benefit from RSS
distribution - it'll inject into the correct destination netisr.

Note: the netisr distribution doesn't work out of the box - netisr doesn't
query RSS for how many CPUs and the affinity setup.  Yes, netisr likely
shouldn't really be doing CPU stuff anymore and should be "some kind of
'thing' that is a workqueue that may or may not have any CPU affinity";
that's for a later commit.

Differential Revision:	https://reviews.freebsd.org/D527
Reviewed by:	grehan
2014-09-09 04:18:20 +00:00
..
2014-03-05 02:35:15 +00:00
2014-02-17 12:07:17 +00:00
2014-03-14 02:58:48 +00:00
2014-03-14 06:29:43 +00:00
2013-11-15 12:12:50 +00:00
2014-03-14 02:58:48 +00:00
2014-08-11 03:04:16 +00:00
2014-03-14 06:29:43 +00:00
2014-03-14 06:29:43 +00:00
2014-03-14 02:58:48 +00:00
2014-09-03 08:30:18 +00:00