r368150 melifaro Nov. 29, 2020, 1:54 p.m.
This solves the case when rib is not yet attached/detached to/from the
 system rib array.

Differential Revision:	https://reviews.freebsd.org/D27406
r368149 melifaro Nov. 29, 2020, 1:52 p.m.
It allows code within routing subsystem to transparently reference nexthops
 and nexthop groups, similar to nhop_free_any(), abstracting ROUTE_MPATH

Differential Revision:	https://reviews.freebsd.org/D27410
r368148 eugen Nov. 29, 2020, 1:45 p.m.
and aborts otherwise, so call closefrom() early.

PR:		227461
MFC after:	2 weeks
r368147 melifaro Nov. 29, 2020, 1:41 p.m.
No functional changes.

* Make lookup path of fib<4|6>_lookup_debugnet() separate functions
 (fib<46>_lookup_rt()). These will be used in the control plane code
 requiring unlocked radix operations and actual prefix pointer.
* Make lookup part of fib<4|6>_check_urpf() separate functions.
 This change simplifies the switch to alternative lookup implementations,
 which helps algorithmic lookups introduction.
* While here, use static initializers for IPv4/IPv6 keys

Differential Revision:	https://reviews.freebsd.org/D27405
r368146 melifaro Nov. 29, 2020, 1:27 p.m.
The resulting KPI can be used by routing table consumers to estimate the required
 scale for route table export.

* Add tracking for rib routes
* Add accessors for number of nexthops/nexthop objects
* Simplify rib_unsubscribe: store rnh we're attached to instead of requiring it up
 again on destruction. This helps in the cases when rnh is not linked yet/already unlinked.

Differential Revision:	https://reviews.freebsd.org/D27404
r368143 kib Nov. 29, 2020, 10:32 a.m.
We use 4-level EPT pages, correct the upper bound.

Reviewed by:	grehan
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D27402
r368142 kib Nov. 29, 2020, 10:30 a.m.
Apparently some architectures, like ppc in its hashed page tables
variants, account mappings by pmap_qenter() in the response from

While there, eliminate useless userp variable.

Noted and reviewed by:	alc (previous version)
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D27409
r368141 mmel Nov. 29, 2020, 8:40 a.m.
ARM has required ARMV6+ and INTRNg for some time now, so remove
always false #ifdefs and unconditionally do always true #ifdefs.
r368140 yuripv Nov. 29, 2020, 1:43 a.m.
Actually check the wrmsr_safe() return value when setting autonomous
HWP for package.

PR:		245582
Differential Revision:	https://reviews.freebsd.org/D24744
r368138 mav Nov. 29, 2020, 1:30 a.m.
After r368124 pbuf_zone has extra page to handle this particular case.
r368136 mav Nov. 29, 2020, 12:57 a.m.
After r368124 vmapbuf() should happily map misaligned maxphys-sized buffers
thanks to extra page added to pbuf_zone.
r368134 mav Nov. 29, 2020, 12:49 a.m.
After r368124 vmapbuf() should happily map misaligned maxphys-sized buffers
thanks to extra page added to pbuf_zone.
r368133 mav Nov. 29, 2020, 12:35 a.m.
r368132 mav Nov. 29, 2020, 12:20 a.m.
With 4KB page size the 2MB is the maximum we can address with one page PRP.
Going further would require chaining, that would add some more complexity.

On the other side, to reduce memory consumption, allocate the PRP memory
respecting maximum transfer size reported in the controller identify data.
Many of NVMe devices support much smaller values, starting from 128KB.
To do that we have to change the initialization sequence to pull the data
earlier, before setting up the I/O queue pairs.  The admin queue pair is
still allocated for full MIN(maxphys, 2MB) size, but it is not a big deal,
since there is only one such queue with only 16 trackers.

Reviewed by:	imp
MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
r368131 asomers Nov. 28, 2020, 11:24 p.m.
Building without INET6 support was already possible. Now it's possible to
build ping with only INET6, or even with neither INET nor INET6.

Reported by:	bz
Reviewed by:	bz
MFC-With:	368045
Differential Revision:	https://reviews.freebsd.org/D27394