Update the comment to be more concise.
Implement rss_gethashconfig() - return the currently supported hash methods
by the stack.

Right now the stack isn't really setup for RSS with 4-tuple UDP hashing
for either IPv4 and IPv6.

The specifics:

* The UDP init path udp_init() and udplite_init() specify the hash as
  2-tuple, so the PCBGROUPS code only tries a 2-tuple check;
* The PCBGROUPS and RSS code doesn't know about the UDP hash types
  just yet, so they're never treated as valid hashes.
* For correctness, 4-tuple can't be enabled in the general case because
  UDP datagrams can be more fragmented than IP datagrams may be.

Strictly speaking, TCP datagrams may also be fragmented and this could
cause issues with PCBGROUPS/RSS until the IP defragment path grows some
code to re-calculate the RSS hash.

I'll follow this commit up with awareness of the UDP 4-tuple for those
who wish to configure it, but for now it'll stay disabled.

No drivers (yet) know to use this function when RSS is enabled.
Add hash awareness of the IPv4 and IPv6 UDP 4-tuple.

Note: it would be nice if the supported hash check would be used here!
Make the PCBGROUPS code aware of IPv4 UDP 4-tuple.
When it's time to do 4-tuple UDP IPv6 hashing, make sure this is a known
type.
Disable the ixgbe(4) UDP 4-tuple hashing for the time being.

A mix of fragmented and non-fragmented UDP in a single stream will end up
being hashed differently, resulting in out-of-order behaviour in the receive
path.

This was done in the linux e1000 driver in 2011.

Discussed with:	jfv
Teach ixgbe(4) about rss_gethashconfig().

If RSS is enabled, ixgbe(4) will query the RSS API for the types of hashes
which should be used.  It'll then only enable hashes that are exposed via
the RSS layer.

This way it won't try to do things like enable UDP hashing if RSS explicitly
states that it isn't supported in lookups.

Tested:

* 82599EB ixgbe(4) NIC
Add the UDP hash -> RSS mbuf hash type for the ixgbe(4) driver.
sh: Remove prefix() function. Use strncmp() instead.
Older versions of flex (like the one used in FreeBSD <= 9) expect the
output file name to follow the -o flag immediately, with no intervening
whitespace.

Reported by:	ian@
MFC after:	1 week
Fix build without INVARIANTS defined by getting rid of unused variable 'exc'.

Reported by:	adrian, stefanf
Fix the build when DTrace isn't enabled.

Reported by:	stefanf
X-MFC-With:	r268600
Update fflush(3) to return success on a read-only stream.

This has small changes to what Apple uses for compliance
with SUSv3. The changes cause no secondary effects in the
gnulib tests (we pass them).

Obtained from:	Apple Inc. (Libc 997.90.3 with changes)
Reviewed by:	bde
Phabric:	D440
In "procstat -v" (VM), spell out 'FL' to 'FLAG' since there are two extra
columns available anyway.  Also left align as we tend to do for flags
fields, although you can't see that currently as the string fully fills
that available columns.

MFC after:	3 days
Sponsored by:	DARPA, AFRL
Use a correct errno in freopen.

Use EBADF instead of EINVAL when working around incorrect O_ACCMODE.

Phabric:	D442
Obtained from:	Apple Inc. (Libc 997.90.3)
Reviewed by:	jilles
MFC after:	1 week
sh: Allow arbitrarily large numbers in break and continue.

The argument is capped to loopnest, so strtol()'s [ERANGE] can be ignored.
Const-ify a character string.

Obtained from:	Apple Inc. (Libc 997.90.3)
MFC after:	3 days
Add new device ID.

MFC after:	1 week
PR:		191959
Adjust errno on failed prepwrite.

Obtained from:	Apple Inc. (Libc 997.90.3)
Phabric:	D442
MFC after:	1 week
Correct spelling errors in ctld.8.  While here, correct similar errors
in ctl.conf.5 and fix a couple of contractions.

PR:		191984
Submitted by:	olgeni
MFC after:	1 week