svn commit: r271300 - in head/sys: net netinet

Andrey V. Elsukov ae at FreeBSD.org
Wed Jul 13 16:19:46 UTC 2016


On 09.09.14 08:18, Adrian Chadd wrote:
> Author: adrian
> Date: Tue Sep  9 04:18:20 2014
> New Revision: 271300
> URL: http://svnweb.freebsd.org/changeset/base/271300
> 
> Log:
>   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
> 
> Modified:
>   head/sys/net/netisr.h
>   head/sys/netinet/in_var.h
>   head/sys/netinet/ip_input.c
> 
> Modified: head/sys/netinet/ip_input.c

Hi, I am sorry for addressing this old message, but it looks like you
can not use the same IPCTL_XXX constant for several different oids.

...
> @@ -266,6 +292,46 @@ SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDRO
                                                 ^^^^ - there
>      CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_queue_drops, "I",
>      "Number of packets dropped from the IP input queue");
>  
> +SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQMAXLEN, intr_direct_queue_maxlen,
                             ^^^ - and there.
> +    CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_netinet_intr_direct_queue_maxlen, "I",
> +    "Maximum size of the IP direct input queue");

User applications use these constants to address specific oids and I
don't think and don't see that the kernel calls several handlers for one
oid.

-- 
WBR, Andrey V. Elsukov

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 538 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20160713/32cbe4d7/attachment.sig>


More information about the svn-src-head mailing list