aboutsummaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/examples/Makefile2
-rw-r--r--share/examples/etc/README.examples2
-rw-r--r--share/examples/ipfilter/ipf-howto.txt4
-rw-r--r--share/examples/netgraph/ngctl6
-rw-r--r--share/examples/sound/midi.c76
-rw-r--r--share/examples/sound/ossmidi.h63
-rw-r--r--share/i18n/esdb/BIG5/Makefile2
-rw-r--r--share/man/man3/CMSG_DATA.32
-rw-r--r--share/man/man3/Makefile1
-rw-r--r--share/man/man3/intro.39
-rw-r--r--share/man/man3/pthread_schedparam.34
-rw-r--r--share/man/man3/tree.337
-rw-r--r--share/man/man4/Makefile9
-rw-r--r--share/man/man4/acpi_ged.464
-rw-r--r--share/man/man4/acpi_thermal.45
-rw-r--r--share/man/man4/altq.414
-rw-r--r--share/man/man4/bridge.49
-rw-r--r--share/man/man4/cc_cubic.43
-rw-r--r--share/man/man4/cc_dctcp.47
-rw-r--r--share/man/man4/cc_newreno.43
-rw-r--r--share/man/man4/ctl.42
-rw-r--r--share/man/man4/cxgbe.44
-rw-r--r--share/man/man4/cxgbev.43
-rw-r--r--share/man/man4/da.442
-rw-r--r--share/man/man4/dcons.42
-rw-r--r--share/man/man4/ddb.4196
-rw-r--r--share/man/man4/divert.439
-rw-r--r--share/man/man4/dtrace_kinst.489
-rw-r--r--share/man/man4/gdb.416
-rw-r--r--share/man/man4/genetlink.4147
-rw-r--r--share/man/man4/iichid.42
-rw-r--r--share/man/man4/inet.46
-rw-r--r--share/man/man4/ip.415
-rw-r--r--share/man/man4/ip6.42
-rw-r--r--share/man/man4/iwlwifi.42
-rw-r--r--share/man/man4/mod_cc.414
-rw-r--r--share/man/man4/mpr.46
-rw-r--r--share/man/man4/netdump.46
-rw-r--r--share/man/man4/netgdb.413
-rw-r--r--share/man/man4/netlink.4349
-rw-r--r--share/man/man4/pci.44
-rw-r--r--share/man/man4/re.45
-rw-r--r--share/man/man4/rtnetlink.4519
-rw-r--r--share/man/man4/run.42
-rw-r--r--share/man/man4/snp.412
-rw-r--r--share/man/man4/tcp.454
-rw-r--r--share/man/man4/tcp_bbr.45
-rw-r--r--share/man/man4/tcp_rack.4159
-rw-r--r--share/man/man4/ti.42
-rw-r--r--share/man/man4/vmd.47
-rw-r--r--share/man/man4/wg.4218
-rw-r--r--share/man/man4/xhci.439
-rw-r--r--share/man/man5/Makefile1
-rw-r--r--share/man/man5/a.out.54
-rw-r--r--share/man/man5/core.52
-rw-r--r--share/man/man5/elf.52
-rw-r--r--share/man/man5/hosts.55
-rw-r--r--share/man/man5/lindebugfs.595
-rw-r--r--share/man/man5/make.conf.58
-rw-r--r--share/man/man5/pf.conf.513
-rw-r--r--share/man/man5/rc.conf.5216
-rw-r--r--share/man/man5/resolver.542
-rw-r--r--share/man/man5/src.conf.528
-rw-r--r--share/man/man7/arch.76
-rw-r--r--share/man/man7/ascii.740
-rw-r--r--share/man/man7/development.715
-rw-r--r--share/man/man7/environ.72
-rw-r--r--share/man/man7/hier.7149
-rw-r--r--share/man/man7/orders.710
-rw-r--r--share/man/man7/release.710
-rw-r--r--share/man/man7/security.712
-rw-r--r--share/man/man7/tuning.74
-rw-r--r--share/man/man8/Makefile1
-rw-r--r--share/man/man8/rc.sendmail.8298
-rw-r--r--share/man/man8/rc.subr.85
-rw-r--r--share/man/man9/EVENTHANDLER.9146
-rw-r--r--share/man/man9/Makefile57
-rw-r--r--share/man/man9/VOP_LOCK.94
-rw-r--r--share/man/man9/cpuset.96
-rw-r--r--share/man/man9/crypto_request.911
-rw-r--r--share/man/man9/device_get_property.95
-rw-r--r--share/man/man9/domain.9330
-rw-r--r--share/man/man9/ifnet.911
-rw-r--r--share/man/man9/intr_event.9475
-rw-r--r--share/man/man9/ithread.9350
-rw-r--r--share/man/man9/kqueue.924
-rw-r--r--share/man/man9/ktr.92
-rw-r--r--share/man/man9/malloc.917
-rw-r--r--share/man/man9/refcount.95
-rw-r--r--share/man/man9/sbuf.92
-rw-r--r--share/man/man9/socket.913
-rw-r--r--share/man/man9/swi.939
-rw-r--r--share/man/man9/vaccess.919
-rw-r--r--share/man/man9/zone.92
-rw-r--r--share/misc/bsd-family-tree8
-rw-r--r--share/misc/committers-ports.dot4
-rw-r--r--share/misc/committers-src.dot8
-rw-r--r--share/misc/organization.dot4
-rw-r--r--share/misc/pci_vendors460
-rw-r--r--share/mk/bsd.compat.mk8
-rw-r--r--share/mk/bsd.compiler.mk4
-rw-r--r--share/mk/bsd.cpu.mk38
-rw-r--r--share/mk/bsd.libnames.mk2
-rw-r--r--share/mk/bsd.sanitizer.mk2
-rw-r--r--share/mk/bsd.subdir.mk5
-rw-r--r--share/mk/bsd.sys.mk23
-rw-r--r--share/mk/meta.stage.mk2
-rw-r--r--share/mk/src.libnames.mk5
-rw-r--r--share/mk/src.opts.mk14
-rw-r--r--share/syscons/keymaps/INDEX.keymaps2
-rw-r--r--share/termcap/Makefile1
-rw-r--r--share/termcap/termcap.small315
-rw-r--r--share/vt/keymaps/INDEX.keymaps2
-rw-r--r--share/zoneinfo/Makefile10
114 files changed, 3764 insertions, 1942 deletions
diff --git a/share/examples/Makefile b/share/examples/Makefile
index 1d916f344b77..7179f1bff1a4 100644
--- a/share/examples/Makefile
+++ b/share/examples/Makefile
@@ -320,6 +320,8 @@ SE_DIRS+= sound
SE_SOUND= \
basic.c \
ossinit.h \
+ ossmidi.h \
+ midi.c \
README
SE_DIRS+= sunrpc
diff --git a/share/examples/etc/README.examples b/share/examples/etc/README.examples
index f7bf4ceb8cfb..3d284f31fdea 100644
--- a/share/examples/etc/README.examples
+++ b/share/examples/etc/README.examples
@@ -41,7 +41,6 @@ network.subr - routines for network configuration scripts
networks - see networks(5)
newsyslog.conf - configuration for system log file rotator newsyslog(8)
nsmb.conf - smbfs lookups configuration file
-opieaccess - OPIE database of trusted networks
pf.conf - pf(4) example configuration file
pf.os - SYN fingerprint database
phones - phone number database for tip(1)
@@ -54,7 +53,6 @@ rc.bsdextended - startup policy for the mac_bsdextended(4) security module.
rc.firewall - ipfw(8) setup script with basic rulesets
rc.initdiskless - configuration file to boot a diskless machine
rc.resume - sample run command file for APM Resume Event
-rc.sendmail - script for sendmail(8) startup
rc.shutdown - system shutdown script (see init(8))
rc.subr - script with functions used by various rc scripts
rc.suspend - sample run command file for APM Resume Event
diff --git a/share/examples/ipfilter/ipf-howto.txt b/share/examples/ipfilter/ipf-howto.txt
index 95b69dc57686..ca14538f1b67 100644
--- a/share/examples/ipfilter/ipf-howto.txt
+++ b/share/examples/ipfilter/ipf-howto.txt
@@ -367,7 +367,7 @@ in on the tun0 interface?
block in quick on tun0 all
pass in all
-In this case, the on keyword means that that data is coming
+In this case, the on keyword means that the data is coming
in on the named interface. If a packet comes in on tun0,
the first rule will block it. If a packet comes in on lo0
or in on xl0, the first rule will not match, the second rule
@@ -1260,7 +1260,7 @@ your firewall.
keep frags keyword. With it, IPF will notice and keep track
of packets that are fragmented, allowing the expected frag-
-ments to to go through. Let's rewrite the 3 rules to log
+ments to go through. Let's rewrite the 3 rules to log
forgeries and allow fragments:
pass in quick on tun0 proto tcp from any to 20.20.20.1/32 port = 23 flags S keep state keep frags
diff --git a/share/examples/netgraph/ngctl b/share/examples/netgraph/ngctl
index e7b7cd86b04f..8dc6b23815b7 100644
--- a/share/examples/netgraph/ngctl
+++ b/share/examples/netgraph/ngctl
@@ -31,10 +31,10 @@
quit Exit program
+
-# Now let's create a ng_ksocket(4) node, in the family PF_INET,
-# of type SOCK_RAW, and protocol IPPROTO_DIVERT:
+# Now let's create a ng_ksocket(4) node, in the family PF_DIVERT,
+# of type SOCK_RAW:
- + mkpeer ksocket foo inet/raw/divert
+ + mkpeer ksocket foo divert/raw/0
# Note that ``foo'' is the hook name on the socket node, which can be
# anything. The ``inet/raw/divert'' is the hook name on the ksocket
diff --git a/share/examples/sound/midi.c b/share/examples/sound/midi.c
new file mode 100644
index 000000000000..fbe4d9480530
--- /dev/null
+++ b/share/examples/sound/midi.c
@@ -0,0 +1,76 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 2022 Goran Mekić
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <unistd.h>
+
+#include "ossmidi.h"
+
+int
+main()
+{
+ midi_event_t event;
+ midi_config_t midi_config;
+ int l = -1;
+ unsigned char raw;
+
+ midi_config.device = "/dev/umidi1.0";
+ oss_midi_init(&midi_config);
+
+ while ((l = read(midi_config.fd, &raw, sizeof(raw))) != -1) {
+ if (!(raw & 0x80)) {
+ continue;
+ }
+ event.type = raw & CMD_MASK;
+ event.channel = raw & CHANNEL_MASK;
+ switch (event.type) {
+ case NOTE_ON:
+ case NOTE_OFF:
+ case CONTROLER_ON:
+ if ((l = read(midi_config.fd, &(event.note), sizeof(event.note))) == -1) {
+ perror("Error reading MIDI note");
+ exit(1);
+ }
+ if ((l = read(midi_config.fd, &(event.velocity), sizeof(event.velocity))) == -1) {
+ perror("Error reading MIDI velocity");
+ exit(1);
+ }
+ break;
+ }
+ switch (event.type) {
+ case NOTE_ON:
+ case NOTE_OFF:
+ printf("Channel %d, note %d, velocity %d\n", event.channel, event.note, event.velocity);
+ break;
+ case CONTROLER_ON:
+ printf("Channel %d, controller %d, value %d\n", event.channel, event.controller, event.value);
+ break;
+ default:
+ printf("Unknown event type %d\n", event.type);
+ }
+ }
+ return 0;
+}
diff --git a/share/examples/sound/ossmidi.h b/share/examples/sound/ossmidi.h
new file mode 100644
index 000000000000..507508061de4
--- /dev/null
+++ b/share/examples/sound/ossmidi.h
@@ -0,0 +1,63 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 2022 Goran Mekić
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+
+#define CMD_MASK 0xF0
+#define NOTE_ON 0x90
+#define NOTE_OFF 0x80
+#define CHANNEL_MASK 0xF
+#define CONTROLER_ON 0xB0
+
+typedef struct midi_event {
+ unsigned char type;
+ unsigned char channel;
+ union {
+ unsigned char note;
+ unsigned controller;
+ };
+ union {
+ unsigned char velocity;
+ unsigned char value;
+ };
+} midi_event_t;
+
+typedef struct midi_config {
+ char *device;
+ int fd;
+} midi_config_t;
+
+void
+oss_midi_init(midi_config_t *config)
+{
+ if ((config->fd = open(config->device, O_RDWR)) == -1) {
+ perror("Error opening MIDI device");
+ exit(1);
+ }
+}
diff --git a/share/i18n/esdb/BIG5/Makefile b/share/i18n/esdb/BIG5/Makefile
index f7b1512893f4..ac95f60e99e7 100644
--- a/share/i18n/esdb/BIG5/Makefile
+++ b/share/i18n/esdb/BIG5/Makefile
@@ -16,7 +16,7 @@ Big5_$i_variable!= sed \
# XXX: FIXME
Big5-${i:S/:/@/}.src: Big5.src Big5.variable
sed -e 's/encoding/Big5-$i/' \
- -e 's/variable/${Big5_$i_variable}/' \
+ -e 's/variable/${Big5_${i:S/@/:/}_variable}/' \
${.CURDIR}/Big5.src > $@
@echo ${.TARGET} >>.tmpfiles
.endfor
diff --git a/share/man/man3/CMSG_DATA.3 b/share/man/man3/CMSG_DATA.3
index 92c5b9736da3..efdff7abae60 100644
--- a/share/man/man3/CMSG_DATA.3
+++ b/share/man/man3/CMSG_DATA.3
@@ -165,7 +165,7 @@ main()
close(hellofd[1]);
if (read(hellofd[0], buf, HELLOLEN) == -1)
- err(EX_IOERR, "faild to receive 'hello'");
+ err(EX_IOERR, "failed to receive 'hello'");
printf("parent: received '%s'\\n", buf);
break;
}
diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile
index fa4f751ce553..872aec1e83ab 100644
--- a/share/man/man3/Makefile
+++ b/share/man/man3/Makefile
@@ -320,6 +320,7 @@ MLINKS+= timeradd.3 timerclear.3 \
timeradd.3 timespecisset.3 \
timeradd.3 timespeccmp.3
MLINKS+= tree.3 RB_AUGMENT.3 \
+ tree.3 RB_AUGMENT_CHECK.3 \
tree.3 RB_EMPTY.3 \
tree.3 RB_ENTRY.3 \
tree.3 RB_FIND.3 \
diff --git a/share/man/man3/intro.3 b/share/man/man3/intro.3
index d6dff3ab3782..aeb546ef4cad 100644
--- a/share/man/man3/intro.3
+++ b/share/man/man3/intro.3
@@ -28,7 +28,7 @@
.\" @(#)intro.3 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd December 18, 2021
+.Dd November 7, 2022
.Dt INTRO 3
.Os
.Sh NAME
@@ -231,6 +231,13 @@ See
The POSIX threads library.
See
.Xr pthread 3 .
+.It Em libstdthreads
+.Pq Fl l Ns Ar stdthreads
+The ISO C11 standard
+.In threads.h
+library.
+See
+.Xr thrd_create 3 .
.It Em libsysdecode
.Pq Fl l Ns Ar sysdecode
The system argument decoding library.
diff --git a/share/man/man3/pthread_schedparam.3 b/share/man/man3/pthread_schedparam.3
index 9d8b98a89d96..27ccb0de1ba9 100644
--- a/share/man/man3/pthread_schedparam.3
+++ b/share/man/man3/pthread_schedparam.3
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 17, 2018
+.Dd October 17, 2022
.Dt PTHREAD_SCHEDPARAM 3
.Os
.Sh NAME
@@ -75,6 +75,8 @@ Invalid value for
.Fa policy .
.It Bq Er ENOTSUP
Invalid value for scheduling parameters.
+.It Bq Er EPERM
+The calling thread does not have sufficient privilege to perform the operation.
.It Bq Er ESRCH
Non-existent thread
.Fa thread .
diff --git a/share/man/man3/tree.3 b/share/man/man3/tree.3
index 7e3727b2c365..0c329741848f 100644
--- a/share/man/man3/tree.3
+++ b/share/man/man3/tree.3
@@ -97,9 +97,12 @@
.Nm RB_FOREACH_REVERSE_SAFE ,
.Nm RB_INIT ,
.Nm RB_INSERT ,
+.Nm RB_INSERT_NEXT ,
+.Nm RB_INSERT_PREV ,
.Nm RB_REMOVE ,
.Nm RB_REINSERT ,
.Nm RB_AUGMENT
+.Nm RB_AUGMENT_CHECK,
.Nm RB_UPDATE_AUGMENT
.Nd "implementations of splay and rank-balanced (wavl) trees"
.Sh SYNOPSIS
@@ -192,11 +195,17 @@
.Ft "struct TYPE *"
.Fn RB_INSERT NAME "RB_HEAD *head" "struct TYPE *elm"
.Ft "struct TYPE *"
+.Fn RB_INSERT_NEXT NAME "RB_HEAD *head" "struct TYPE *elm" "struct TYPE *next"
+.Ft "struct TYPE *"
+.Fn RB_INSERT_PREV NAME "RB_HEAD *head" "struct TYPE *elm" "struct TYPE *prev"
+.Ft "struct TYPE *"
.Fn RB_REMOVE NAME "RB_HEAD *head" "struct TYPE *elm"
.Ft "struct TYPE *"
.Fn RB_REINSERT NAME "RB_HEAD *head" "struct TYPE *elm"
.Ft "void"
.Fn RB_AUGMENT NAME "struct TYPE *elm"
+.Ft "bool"
+.Fn RB_AUGMENT_CHECK NAME "struct TYPE *elm"
.Ft "void"
.Fn RB_UPDATE_AUGMENT NAME "struct TYPE *elm"
.Sh DESCRIPTION
@@ -512,6 +521,18 @@ macro inserts the new element
into the tree.
.Pp
The
+.Fn RB_INSERT_NEXT
+macro inserts the new element
+.Fa elm
+into the tree immediately after a given element.
+.Pp
+The
+.Fn RB_INSERT_PREV
+macro inserts the new element
+.Fa elm
+into the tree immediately before a given element.
+.Pp
+The
.Fn RB_REMOVE
macro removes the element
.Fa elm
@@ -620,6 +641,22 @@ It is typically used to maintain some associative accumulation of tree
elements, such as sums, minima, maxima, and the like.
.Pp
The
+.Fn RB_AUGMENT_CHECK
+macro updates augmentation data of the element
+.Fa elm
+in the tree.
+By default, it does nothing and returns false.
+If
+.Fn RB_AUGMENT_CHECK
+is defined, then when an element is inserted or removed from the tree,
+it is invoked for every element in the tree that is the root of an
+altered subtree, working from the bottom of the tree up toward the
+top, until it returns false to indicate that it did not change the
+element and so working further up the tree would change nothing.
+It is typically used to maintain some associative accumulation of tree
+elements, such as sums, minima, maxima, and the like.
+.Pp
+The
.Fn RB_UPDATE_AUGMENT
macro updates augmentation data of the element
.Fa elm
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index 192bab4155a2..1201aa809568 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -15,6 +15,7 @@ MAN= aac.4 \
${_acpi_panasonic.4} \
${_acpi_rapidstart.4} \
${_acpi_sony.4} \
+ acpi_ged.4 \
acpi_thermal.4 \
acpi_battery.4 \
${_acpi_toshiba.4} \
@@ -167,6 +168,7 @@ MAN= aac.4 \
gdb.4 \
gem.4 \
genet.4 \
+ genetlink.4 \
geom.4 \
geom_linux_lvm.4 \
geom_map.4 \
@@ -284,6 +286,7 @@ MAN= aac.4 \
mac.4 \
mac_biba.4 \
mac_bsdextended.4 \
+ mac_ddb.4 \
mac_ifoff.4 \
mac_lomac.4 \
mac_mls.4 \
@@ -333,6 +336,7 @@ MAN= aac.4 \
netgdb.4 \
netgraph.4 \
netintro.4 \
+ netlink.4 \
netmap.4 \
${_nfe.4} \
${_nfsmb.4} \
@@ -466,6 +470,7 @@ MAN= aac.4 \
rl.4 \
rndtest.4 \
route.4 \
+ rtnetlink.4 \
rtsx.4 \
rtw88.4 \
rtw88fw.4 \
@@ -544,6 +549,7 @@ MAN= aac.4 \
targ.4 \
tcp.4 \
tcp_bbr.4 \
+ tcp_rack.4 \
tdfx.4 \
termios.4 \
textdump.4 \
@@ -582,6 +588,7 @@ MAN= aac.4 \
vtnet.4 \
watchdog.4 \
${_wbwd.4} \
+ wg.4 \
witness.4 \
wlan.4 \
wlan_acl.4 \
@@ -759,6 +766,7 @@ MLINKS+=vr.4 if_vr.4
MLINKS+=vte.4 if_vte.4
MLINKS+=vtnet.4 if_vtnet.4
MLINKS+=watchdog.4 SW_WATCHDOG.4
+MLINKS+=wg.4 if_wg.4
MLINKS+=${_wpi.4} ${_if_wpi.4}
MLINKS+=xl.4 if_xl.4
@@ -917,6 +925,7 @@ _ccd.4= ccd.4
_dtrace_provs= dtrace_audit.4 \
dtrace_io.4 \
dtrace_ip.4 \
+ dtrace_kinst.4 \
dtrace_lockstat.4 \
dtrace_proc.4 \
dtrace_sched.4 \
diff --git a/share/man/man4/acpi_ged.4 b/share/man/man4/acpi_ged.4
new file mode 100644
index 000000000000..dd62e172ae8d
--- /dev/null
+++ b/share/man/man4/acpi_ged.4
@@ -0,0 +1,64 @@
+.\" Copyright (c) 2022 Takanori Watanabe
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd October 18, 2022
+.Dt ACPI_GED 4
+.Os
+.Sh NAME
+.Nm acpi_ged
+.Nd "ACPI Generic Event Device"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device acpi_ged"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+acpi_ged_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for generic events interface.
+This handles interrupts and evaluates the specific ACPI method.
+This may generate optionally ACPI notify for another device.
+.Sh SEE ALSO
+.Xr acpi 4
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 14.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Takanori Watanabe Aq Mt takawata@FreeBSD.org
diff --git a/share/man/man4/acpi_thermal.4 b/share/man/man4/acpi_thermal.4
index d1cf8ee60ef2..1b9395a24be3 100644
--- a/share/man/man4/acpi_thermal.4
+++ b/share/man/man4/acpi_thermal.4
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 17, 2007
+.Dd November 21, 2022
.Dt ACPI_THERMAL 4
.Os
.Sh NAME
@@ -84,6 +84,9 @@ Current temperature for this zone.
.It Va hw.acpi.thermal.tz%d._PSV
Temperature to start passive cooling by throttling down CPU, etc.
This value can be overridden by the user.
+.It Va hw.acpi.thermal.tz%d._CR3
+Temperature to start critical suspend to RAM (S3).
+This value can be overridden by the user.
.It Va hw.acpi.thermal.tz%d._HOT
Temperature to start critical suspend to disk (S4).
This value can be overridden by the user.
diff --git a/share/man/man4/altq.4 b/share/man/man4/altq.4
index 5e8989025cb3..a84152081ba4 100644
--- a/share/man/man4/altq.4
+++ b/share/man/man4/altq.4
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 26, 2021
+.Dd November 10, 2022
.Dt ALTQ 4
.Os
.Sh NAME
@@ -138,7 +138,6 @@ They have been applied to the following hardware drivers:
.Xr bge 4 ,
.Xr bxe 4 ,
.Xr cas 4 ,
-.Xr cxgbe 4 ,
.Xr dc 4 ,
.Xr em 4 ,
.Xr epair 4 ,
@@ -173,19 +172,14 @@ and
.Xr xl 4 .
.Pp
The
-.Xr tun 4
+.Xr tun 4 ,
+.Xr if_bridge 4 ,
+.Xr if_vlan 4 ,
and
.Xr ng_iface 4
pseudo drivers also do support
.Nm .
.Pp
-The
-.Xr vlan 4
-driver does not directly support
-.Nm ,
-but as packets (mbufs) are passed to the underlying interface, a queue
-can be defined for the underlying interface, and any packets directed
-to the queue will be processed at the interface level.
An example:
.Bd -literal -offset indent
altq on igb0 cbq queue { def aq }
diff --git a/share/man/man4/bridge.4 b/share/man/man4/bridge.4
index e193724928ca..e5313430b407 100644
--- a/share/man/man4/bridge.4
+++ b/share/man/man4/bridge.4
@@ -35,7 +35,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 17, 2021
+.Dd September 7, 2022
.Dt IF_BRIDGE 4
.Os
.Sh NAME
@@ -127,7 +127,9 @@ in
.Xr rc.conf 5 .
.Pp
The MTU of the first member interface to be added is used as the bridge MTU.
-All additional members are required to have exactly the same MTU value.
+All additional members will have their MTU changed to match.
+If the MTU of a bridge is changed after its creation, the MTU of all member
+interfaces is also changed to match.
.Pp
The TOE, TSO, TXCSUM and TXCSUM6 capabilities on all interfaces added to the
bridge are disabled if any of the interfaces do not support/enable them.
@@ -511,4 +513,5 @@ Rapid Spanning Tree Protocol (RSTP) support was added by
The
.Nm
driver currently supports only Ethernet and Ethernet-like (e.g., 802.11)
-network devices, with exactly the same interface MTU size as the bridge device.
+network devices, which can be configured with the same MTU size as the bridge
+device.
diff --git a/share/man/man4/cc_cubic.4 b/share/man/man4/cc_cubic.4
index 806d6aec2441..9ceaaa871777 100644
--- a/share/man/man4/cc_cubic.4
+++ b/share/man/man4/cc_cubic.4
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 13, 2021
+.Dd September 13, 2022
.Dt CC_CUBIC 4
.Os
.Sh NAME
@@ -39,6 +39,7 @@
.Sh DESCRIPTION
The CUBIC congestion control algorithm was designed to provide increased
throughput in fast and long-distance networks.
+The CUBIC congestion control algorithm is the default for TCP.
It attempts to maintain fairness when competing with legacy NewReno TCP in lower
speed scenarios where NewReno is able to operate adequately.
.Pp
diff --git a/share/man/man4/cc_dctcp.4 b/share/man/man4/cc_dctcp.4
index 8c23f2eaa134..c4c8eb7da623 100644
--- a/share/man/man4/cc_dctcp.4
+++ b/share/man/man4/cc_dctcp.4
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 13, 2021
+.Dd November 8, 2022
.Dt CC_DCTCP 4
.Os
.Sh NAME
@@ -91,6 +91,11 @@ gain of 1 / ( 2 ^
.It Va slowstart
A flag if the congestion window should be reduced by one half after slow start.
Valid settings 0 and 1, default 0.
+.It Va ect1
+Controls if a DCTCP session should use IP ECT(0) marking when sending out
+segments (default), or ECT(1) marking making use of L4S infrastructure.
+Changes to this setting will only affect new sessions, existing sessions will
+retain their previous marking value.
.El
.Sh SEE ALSO
.Xr cc_cdg 4 ,
diff --git a/share/man/man4/cc_newreno.4 b/share/man/man4/cc_newreno.4
index 76dd3b2559bb..0d0f0d000d38 100644
--- a/share/man/man4/cc_newreno.4
+++ b/share/man/man4/cc_newreno.4
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 13, 2021
+.Dd September 13, 2022
.Dt CC_NEWRENO 4
.Os
.Sh NAME
@@ -39,7 +39,6 @@
.Sh SYNOPSIS
.In netinet/cc/cc_newreno.h
.Sh DESCRIPTION
-The NewReno congestion control algorithm is the default for TCP.
Details about the algorithm can be found in RFC5681.
.Sh Socket Options
The
diff --git a/share/man/man4/ctl.4 b/share/man/man4/ctl.4
index e150d70665d2..18005ae3c7a0 100644
--- a/share/man/man4/ctl.4
+++ b/share/man/man4/ctl.4
@@ -201,7 +201,7 @@ Specifies the maximum number of LUNs we support, must be a power of 2.
The default value is 1024.
.It Va kern.cam.ctl.max_ports
Specifies the maximum number of ports we support, must be a power of 2.
-The default value is 256.
+The default value is 1024.
.El
.Sh SEE ALSO
.Xr cfiscsi 4 ,
diff --git a/share/man/man4/cxgbe.4 b/share/man/man4/cxgbe.4
index 5f959299d2ad..975ef5fb5f7d 100644
--- a/share/man/man4/cxgbe.4
+++ b/share/man/man4/cxgbe.4
@@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 10, 2021
+.Dd November 10, 2022
.Dt CXGBE 4
.Os
.Sh NAME
@@ -277,6 +277,7 @@ Controls the hardware response to congestion.
0 instructs the hardware to backpressure its pipeline on congestion.
This usually results in the port emitting PAUSE frames.
1 instructs the hardware to drop frames destined for congested queues.
+2 instructs the hardware to both backpressure the pipeline and drop frames.
.It Va hw.cxgbe.pause_settings
PAUSE frame settings.
Bit 0 is rx_pause, bit 1 is tx_pause, bit 2 is pause_autoneg.
@@ -397,7 +398,6 @@ If an issue is identified with this driver with a supported adapter,
email all the specific information related to the issue to
.Aq Mt support@chelsio.com .
.Sh SEE ALSO
-.Xr altq 4 ,
.Xr arp 4 ,
.Xr ccr 4 ,
.Xr cxgb 4 ,
diff --git a/share/man/man4/cxgbev.4 b/share/man/man4/cxgbev.4
index b2fcac6c632b..9f70bf9c46a6 100644
--- a/share/man/man4/cxgbev.4
+++ b/share/man/man4/cxgbev.4
@@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 9, 2017
+.Dd November 10, 2022
.Dt CXGBEV 4
.Os
.Sh NAME
@@ -290,7 +290,6 @@ If an issue is identified with this driver with a supported adapter,
email all the specific information related to the issue to
.Aq Mt support@chelsio.com .
.Sh SEE ALSO
-.Xr altq 4 ,
.Xr arp 4 ,
.Xr cxgbe 4 ,
.Xr netintro 4 ,
diff --git a/share/man/man4/da.4 b/share/man/man4/da.4
index ed820c637750..ce7f269b79c0 100644
--- a/share/man/man4/da.4
+++ b/share/man/man4/da.4
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd December 20, 2017
+.Dd September 10, 2022
.Dt DA 4
.Os
.Sh NAME
@@ -133,6 +133,29 @@ variables and
.Xr loader 8
tunables:
.Bl -tag -width 12
+.It Va kern.cam.da.default_timeout
+This variable determines how long the
+.Nm
+driver will wait before timing out an outstanding command.
+The units for this value are seconds, and the default is currently 60
+seconds.
+.It Va kern.cam.da.disable_wp_protection
+Disable detection of write-protected disks.
+Default is disabled.
+.Po
+detection of write-protected disks is enabled
+.Pc .
+.It Va kern.cam.da.enable_biospeedup
+Enable
+.Dv BIO_SPEEDUP
+processing.
+Default is enabled.
+.It Va kern.cam.da.enable_uma_ccbs
+Use UMA for CCBs.
+Default is enabled.
+.It Va kern.cam.da.poll_period
+Media polling period in seconds.
+Default is 3 seconds.
.It Va kern.cam.da.retry_count
This variable determines how many times the
.Nm
@@ -142,19 +165,20 @@ the
.Nm
driver dump routine.
This value currently defaults to 4.
-.It Va kern.cam.da.default_timeout
-This variable determines how long the
+.It Va kern.cam.da.send_ordered
+Send Ordered Tags.
+On shutdown, step through all the
.Nm
-driver will wait before timing out an outstanding command.
-The units for this value are seconds, and the default is currently 60
-seconds.
+peripheral drivers, and if the device is still open,
+sync the disk to physical media.
+Default is enabled.
.It Va kern.cam.sort_io_queue
-.It Va kern.cam.da. Ns Ar X Ns Va .sort_io_queue
+.It Va kern.cam.da . Ns Ar X Ns Va .sort_io_queue
These variables determine whether request queue should be sorted trying
to optimize head seeks.
Set to 1 to enable sorting, 0 to disable, -1 to leave it as-is.
The default is sorting enabled for HDDs and disabled for SSDs.
-.It Va kern.cam.da. Ns Ar X Ns Va .delete_method
+.It Va kern.cam.da . Ns Ar X Ns Va .delete_method
This variable specifies method to handle BIO_DELETE requests:
.Bl -tag -width "ATA_TRIM"
.It ATA_TRIM
@@ -170,7 +194,7 @@ WRITE SAME(10) command without UNMAP flag,
.It DISABLE
disable BIO_DELETE support.
.El
-.It Va kern.cam.da. Ns Ar X Ns Va .minimum_cmd_size
+.It Va kern.cam.da . Ns Ar X Ns Va .minimum_cmd_size
This variable determines what the minimum READ/WRITE CDB size is for a
given
.Nm
diff --git a/share/man/man4/dcons.4 b/share/man/man4/dcons.4
index d228ad5c16b9..2b8292695649 100644
--- a/share/man/man4/dcons.4
+++ b/share/man/man4/dcons.4
@@ -102,7 +102,7 @@ for more details.
If you want to use
.Nm
as a
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
port, add the following line into
.Xr loader.conf 5 :
.Bd -literal -offset indent
diff --git a/share/man/man4/ddb.4 b/share/man/man4/ddb.4
index d7b51b270877..7d5da91fc684 100644
--- a/share/man/man4/ddb.4
+++ b/share/man/man4/ddb.4
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 14, 2021
+.Dd November 10, 2022
.Dt DDB 4
.Os
.Sh NAME
@@ -58,7 +58,7 @@ representation, define:
.Ed
.Pp
To enable the
-.Xr gdb 1
+.Xr gdb 4
backend, so that remote debugging with
.Xr kgdb 1 Pq Pa ports/devel/gdb
is possible, include:
@@ -69,7 +69,7 @@ is possible, include:
The
.Nm
kernel debugger is an interactive debugger with a syntax inspired by
-.Xr gdb 1 .
+.Xr gdb 1 Pq Pa ports/devel/gdb .
If linked into the running kernel,
it can be invoked locally with the
.Ql debug
@@ -182,11 +182,8 @@ command line editing capabilities.
In addition to
the
.Nm emacs
-control keys, the usual
-.Tn ANSI
-arrow keys may be used to
-browse through the history buffer, and move the cursor within the
-current line.
+control keys, the usual ANSI arrow keys may be used to browse through the
+history buffer, and move the cursor within the current line.
.Sh COMMANDS
.Ss COMMON DEBUGGER COMMANDS
.Bl -tag -width indent -compact
@@ -246,8 +243,8 @@ The location is also displayed in hex at the beginning of each line.
.It Cm i
display as a disassembled instruction
.It Cm I
-display as an disassembled instruction with possible alternate formats depending on the
-machine.
+display as a disassembled instruction with possible alternate formats
+depending on the machine.
On i386, this selects the alternate format for the instruction decoding
(16 bits in a 32-bit code segment and vice versa).
.It Cm S
@@ -541,6 +538,14 @@ Switch the debugger to the thread with ID
if the argument is a decimal number, or address
.Ar addr ,
otherwise.
+.Pp
+.It Ic watchdog Op Ar exp
+Program the
+.Xr watchdog 4
+timer to fire in
+.Pf 2^ Ar exp
+seconds.
+If no argument is provided, the watchdog timer is disabled.
.El
.Ss SPECIALIZED HELPER COMMANDS
.Bl -tag -width indent -compact
@@ -548,11 +553,13 @@ otherwise.
.Ic findstack
.Ar addr
.Xc
-Prints the thread address for a thread kernel-mode stack of which contains the
-specified address.
-If the thread is not found, search the thread stack cache and prints the
-cached stack address.
-Otherwise, prints nothing.
+Prints the address of the thread whose kernel-mode stack contains
+.Ar addr ,
+if any.
+.Pp
+.It Ic show Cm active trace
+.It acttrace
+Show a stack trace for every thread running on a CPU.
.Pp
.It Ic show Cm all procs Ns Op Li / Ns Cm a
.It Ic ps Ns Op Li / Ns Cm a
@@ -607,6 +614,15 @@ addresses, and Resource IDs.
Dump data about APIC IDT vector mappings.
.\"
.Pp
+.It Ic show Cm badstacks
+Walk the
+.Xr witness 4
+graph and print any lock-order violations.
+This command is only available if
+.Xr witness 4
+is included in the kernel.
+.\"
+.Pp
.It Ic show Cm breaks
Show breakpoints set with the "break" command.
.\"
@@ -640,19 +656,18 @@ present at
.Ar addr .
.\"
.Pp
-.It Ic show Cm cbstat
-Show brief information about the TTY subsystem.
-.\"
-.Pp
-.It Ic show Cm cdev
-Without argument, show the list of all created cdev's, consisting of devfs
-node name and struct cdev address.
-When address of cdev is supplied, show some internal devfs state of the cdev.
+.It Ic show Cm cdev Op Ar addr
+Show the internal devfs state of the cdev structure located at
+.Ar addr .
+If no argument is provided, show the list of all created cdevs, consisting of
+the devfs node name and the
+.Vt struct cdev
+address.
.\"
.Pp
.It Ic show Cm conifhk
Lists hooks currently waiting for completion in
-run_interrupt_driven_config_hooks().
+.Fn run_interrupt_driven_config_hooks .
.\"
.Pp
.It Ic show Cm cpusets
@@ -729,6 +744,13 @@ present at
.Ar addr .
.\"
.Pp
+.It Ic show Cm iosched Ar addr
+Show information about the I/O scheduler
+.Vt struct cam_iosched_softc
+located at
+.Ar addr .
+.\"
+.Pp
.It Ic show Cm inodedeps Op Ar addr
Show brief information about each inodedep structure.
If
@@ -756,13 +778,20 @@ Dump the interrupt statistics.
Show interrupt lines and their respective kernel threads.
.\"
.Pp
-.It Ic show Cm jails
-Show the list of
-.Xr jail 8
-instances.
-In addition to what
-.Xr jls 8
-shows, also list kernel internal details.
+.It Ic show Cm ktr Ns Op Li / Ns Cm a Ns Cm v Ns Cm V
+Print the contents of the
+.Xr ktr 4
+trace buffer.
+The
+.Cm v
+modifier will request fully verbose output, causing the file, line number, and
+timestamp to be printed for each trace entry.
+The
+.Cm V
+modifier will request only the timestamps to be printed.
+The
+.Cm a
+modifier will request that the output be unpaginated.
.\"
.Pp
.It Ic show Cm lapic
@@ -773,24 +802,24 @@ Show information from the local APIC registers for this CPU.
Show lock structure.
The output format is as follows:
.Bl -tag -width "flags"
-.It Ic class:
+.It Ic class :
Class of the lock.
Possible types include
.Xr mutex 9 ,
.Xr rmlock 9 ,
.Xr rwlock 9 ,
.Xr sx 9 .
-.It Ic name:
+.It Ic name :
Name of the lock.
-.It Ic flags:
+.It Ic flags :
Flags passed to the lock initialization function.
.Em flags
values are lock class specific.
-.It Ic state:
+.It Ic state :
Current state of a lock.
.Em state
values are lock class specific.
-.It Ic owner:
+.It Ic owner :
Lock owner.
.El
.\"
@@ -870,11 +899,14 @@ It is useful if you got a kernel panic, attached a serial cable
to the machine and want to get the boot messages from before the
system hang.
.\"
-.It Ic show Cm mount
-Displays short info about all currently mounted file systems.
.Pp
-.It Ic show Cm mount Ar addr
-Displays details about the given mount point.
+.It Ic show Cm mount Op Ar addr
+Displays details about the mount point located at
+.Ar addr .
+If no
+.Ar addr
+is specified,
+displays short info about all currently mounted file systems.
.\"
.Pp
.It Ic show Cm object Ns Oo Li / Ns Cm f Oc Ar addr
@@ -932,16 +964,24 @@ Names of spin locks held.
Dump process groups present within the system.
.\"
.Pp
-.It Ic show Cm proc Op Ar addr
-If no
-.Op Ar addr
-is specified, print information about the current process.
-Otherwise, show information about the process at address
+.It Ic show Cm prison Op Ar addr
+Show the prison structure located at
.Ar addr .
+If no
+.Ar addr
+argument is specified, show information about all prisons in the system.
.\"
.Pp
-.It Ic show Cm procvm
-Show process virtual memory layout.
+.It Ic show Cm proc Op Ar addr
+Show information about the process structure located at address
+.Ar addr ,
+or the current process if no argument is specified.
+.\"
+.Pp
+.It Ic show Cm procvm Op Ar addr
+Show process virtual memory layout for the process located at
+.Ar addr ,
+or the current process if no argument is specified.
.\"
.Pp
.It Ic show Cm protosw Ar addr
@@ -994,36 +1034,26 @@ Now an alias for
.Ic show Cm lockchain .
.\"
.Pp
-.It Ic show Cm sleepq
-.It Ic show Cm sleepqueue
-Both commands provide the same functionality.
-They show sleepqueue
-.Vt struct sleepqueue
-structure.
-Sleepqueues are used within the
-.Fx
-kernel to implement sleepable
-synchronization primitives (thread holding a lock might sleep or
-be context switched), which at the time of writing are:
-.Xr condvar 9 ,
-.Xr sx 9
-and standard
-.Xr msleep 9
-interface.
+.It Ic show Cm sleepq Ar addr
+.It Ic show Cm sleepqueue Ar addr
+Show the
+.Xr sleepqueue 9
+structure located at
+.Ar addr .
.\"
.Pp
.It Ic show Cm sockbuf Ar addr
+Show the socket buffer
+.Va struct sockbuf
+located at
+.Ar addr .
+.\"
+.Pp
.It Ic show Cm socket Ar addr
-Those commands print
-.Vt struct sockbuf
-and
+Show the socket object
.Vt struct socket
-objects placed at
+located at
.Ar addr .
-Output consists of all values present in structures mentioned.
-For exact interpretation and more details, visit
-.Pa sys/socket.h
-header file.
.\"
.Pp
.It Ic show Cm sysregs
@@ -1141,11 +1171,8 @@ and none have zero ref counts.
.\"
.Pp
.It Ic show Cm vmopag
-This is supposed to show physical addresses consumed by a
-VM object.
-Currently, it is not possible to use this command when
-.Xr witness 4
-is compiled in the kernel.
+Walk the list of VM objects in the system, printing the indices and physical
+addresses of the VM pages belonging to each object.
.\"
.Pp
.It Ic show Cm vnet Ar addr
@@ -1155,11 +1182,11 @@ structure present at the address
.Ar addr .
.\"
.Pp
-.It Ic show Cm vnode Op Ar addr
+.It Ic show Cm vnode Ar addr
Prints vnode
.Vt struct vnode
structure lying at
-.Op Ar addr .
+.Ar addr .
For the exact interpretation of the output, look at the
.Pa sys/vnode.h
header file.
@@ -1187,10 +1214,14 @@ subsystem.
.El
.Ss OFFLINE DEBUGGING COMMANDS
.Bl -tag -width indent -compact
+.It Ic dump
+Initiate a kernel core dump to the device(s) configured by
+.Xr dumpon 8 .
+.Pp
.It Ic gdb
Switches to remote GDB mode.
In remote GDB mode, another machine is required that runs
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
using the remote debug feature, with a connection to the serial
console port on the target machine.
.Pp
@@ -1552,8 +1583,8 @@ CR TILDE CTRL-R causes an immediate reboot.
In all these sequences, CR represents Carriage Return and is usually
sent by pressing the Enter or Return key.
TILDE is the ASCII tilde character (~).
-CTRL-x is Control x, send by pressing the Control key, then x, then releasing both.
-and then releasing both.
+CTRL-x is Control x, sent by pressing the Control key, then x, then releasing
+both.
.Pp
The break-to-debugger behavior can be enabled by setting
.Xr sysctl 8
@@ -1598,10 +1629,11 @@ directory.
.Pa sys/vnode.h
.El
.Sh SEE ALSO
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
.Xr kgdb 1 Pq Pa ports/devel/gdb ,
.Xr acpi 4 ,
.Xr CAM 4 ,
+.Xr gdb 4 ,
.Xr mac_ddb 4 ,
.Xr mac_test 4 ,
.Xr netgraph 4 ,
diff --git a/share/man/man4/divert.4 b/share/man/man4/divert.4
index d8296995ca97..18da54ee9fc9 100644
--- a/share/man/man4/divert.4
+++ b/share/man/man4/divert.4
@@ -1,6 +1,6 @@
.\" $FreeBSD$
.\"
-.Dd December 17, 2004
+.Dd August 30, 2022
.Dt DIVERT 4
.Os
.Sh NAME
@@ -11,7 +11,7 @@
.In sys/socket.h
.In netinet/in.h
.Ft int
-.Fn socket PF_INET SOCK_RAW IPPROTO_DIVERT
+.Fn socket PF_DIVERT SOCK_RAW 0
.Pp
To enable support for divert sockets, place the following lines in the
kernel configuration file:
@@ -30,24 +30,30 @@ ipfw_load="YES"
ipdivert_load="YES"
.Ed
.Sh DESCRIPTION
-Divert sockets are similar to raw IP sockets, except that they
-can be bound to a specific
+Divert sockets allow to intercept and re-inject packets flowing through
+the
+.Xr ipfw 4
+firewall.
+A divert socket can be bound to a specific
.Nm
port via the
.Xr bind 2
system call.
-The IP address in the bind is ignored; only the port
-number is significant.
+The sockaddr argument shall be sockaddr_in with sin_port set to the
+desired value.
+Note that the
+.Nm
+port has nothing to do with TCP/UDP ports.
+It is just a cookie number, that allows to differentiate between different
+divert points in the
+.Xr ipfw 4
+ruleset.
A divert socket bound to a divert port will receive all packets diverted
-to that port by some (here unspecified) kernel mechanism(s).
-Packets may also be written to a divert port, in which case they
-re-enter kernel IP packet processing.
+to that port by
+.Xr ipfw 4 .
+Packets may also be written to a divert port, in which case they re-enter
+firewall processing at the next rule.
.Pp
-Divert sockets are normally used in conjunction with
-.Fx Ns 's
-packet filtering implementation and the
-.Xr ipfw 8
-program.
By reading from and writing to a divert socket, matching packets
can be passed through an arbitrary ``filter'' as they travel through
the host machine, special routing tricks can be done, etc.
@@ -153,8 +159,9 @@ with the correct value.
Packets written as incoming and having incorrect checksums will be dropped.
Otherwise, all header fields are unchanged (and therefore in network order).
.Pp
-Binding to port numbers less than 1024 requires super-user access, as does
-creating a socket of type SOCK_RAW.
+Creating a
+.Nm
+socket requires super-user access.
.Sh ERRORS
Writing to a divert socket can return these errors, along with
the usual errors possible when writing raw packets:
diff --git a/share/man/man4/dtrace_kinst.4 b/share/man/man4/dtrace_kinst.4
new file mode 100644
index 000000000000..48253add6855
--- /dev/null
+++ b/share/man/man4/dtrace_kinst.4
@@ -0,0 +1,89 @@
+.\" Copyright (c) 2022 Christos Margiolis <christos@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd October 01, 2022
+.Dt DTRACE_KINST 4
+.Os
+.Sh NAME
+.Nm dtrace_kinst
+.Nd a DTrace provider for tracing arbitrary instructions in a given kernel
+function.
+.Sh SYNOPSIS
+kinst::<function>:<instruction>
+.Sh DESCRIPTION
+.Pp
+The DTrace
+.Nm kinst
+provider allows the user to trace any instruction in a given kernel function.
+<function> corresponds to the function to be traced, and <instruction> is the
+offset to the specific instruction, and can be obtained from the function's
+disassembly using
+.Xr kgdb 1 .
+.Pp
+.Nm kinst
+creates probes on-demand, meaning it searches for and parses the function's
+instructions each time
+.Xr dtrace 1
+is run, and not at module load time. This is in contrast to FBT's load-time
+parsing, since
+.Nm kinst
+can potentially create thousands of probes for just a single function, instead
+of up to two (entry and return) in the case of FBT.
+.Sh EXAMPLES
+.Pp
+Find the offset to the third instruction in
+.Fn vm_fault
+and trace it:
+.Bd -literal -offset indent
+# kgdb
+(kgdb) disas /r vm_fault
+Dump of assembler code for function vm_fault:
+ 0xffffffff80876df0 <+0>: 55 push %rbp
+ 0xffffffff80876df1 <+1>: 48 89 e5 mov %rsp,%rbp
+ 0xffffffff80876df4 <+4>: 41 57 push %r15
+
+# dtrace -n 'kinst::vm_fault:4'
+.Ed
+.Pp
+Trace all instructions in
+.Fn amd64_syscall :
+.Bd -literal -offset indent
+# dtrace -n 'kinst::amd64_syscall:'
+.Ed
+.Sh IMPLEMENTATION NOTES
+The provider is currently implemented only for amd64.
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr kgdb 1
+.Sh HISTORY
+The
+.Nm kinst
+provider first appeared in
+.Fx
+14.0.
+.Sh AUTHORS
+This manual page was written by
+.An Christos Margiolis Aq Mt christos@FreeBSD.org .
diff --git a/share/man/man4/gdb.4 b/share/man/man4/gdb.4
index de2f4d108048..47a1c9896843 100644
--- a/share/man/man4/gdb.4
+++ b/share/man/man4/gdb.4
@@ -37,7 +37,7 @@
The
.Nm
kernel debugger is a variation of
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
which understands some aspects of the
.Fx
kernel environment.
@@ -90,7 +90,7 @@ on,
In this mode, you need the
.Fl k
flag to indicate to
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
that the
.Dq "dump file"
.Pa /dev/mem
@@ -336,9 +336,9 @@ The remote system continues to run.
The user interface to
.Nm
is via
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
so
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
commands also work.
This section discusses only the extensions for kernel debugging that get
installed in the kernel build directory.
@@ -387,7 +387,7 @@ are convenience commands which invoke
.Ss "The current process environment"
The following macros are convenience functions intended to make things easier
than the standard
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
commands.
.Bl -tag -width indent
.It Ic f0
@@ -467,7 +467,7 @@ Show some PCB contents of the process
.El
.Ss "Examining data structures"
You can use standard
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
commands to look at most data structures.
The macros in this section are
convenience functions which typically display the data in a more readable
@@ -568,7 +568,7 @@ It does nothing else except to print a warning
message to remind you to remove it again.
.El
.Sh SEE ALSO
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
.Xr ps 1 ,
.Xr ddb 4 ,
.Xr firewire 4 ,
@@ -581,7 +581,7 @@ This man page was written by
.An Greg Lehey Aq Mt grog@FreeBSD.org .
.Sh BUGS
The
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
debugger
was never designed to debug kernels, and it is not a very good match.
Many problems exist.
diff --git a/share/man/man4/genetlink.4 b/share/man/man4/genetlink.4
new file mode 100644
index 000000000000..2c5b9b99f994
--- /dev/null
+++ b/share/man/man4/genetlink.4
@@ -0,0 +1,147 @@
+.\"
+.\" Copyright (C) 2022 Alexander Chernikov <melifaro@FreeBSD.org>.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd November 1, 2022
+.Dt GENETLINK 4
+.Os
+.Sh NAME
+.Nm genetlink
+.Nd Generic Netlink
+.Sh SYNOPSIS
+.In netlink/netlink.h
+.In netlink/netlink_generic.h
+.Ft int
+.Fn socket AF_NETLINK SOCK_DGRAM NETLINK_GENERIC
+.Sh DESCRIPTION
+The
+.Dv NETLINK_GENERIC
+is a "container" family, used for dynamic registration of other families
+belonging to the various subsystems.
+These subsystems provide a string family name during registration and
+receive a dynamically-allocated family id.
+Allocated family identifiers are then used by applications to get access to
+functions provided by that subsystem via netlink.
+There are standard methods for resolving string family names to family
+identifiers.
+A similar mechanism works for the notification groups provided by those
+families.
+.Pp
+All generic netlink families share a common header:
+.Bd -literal
+struct genlmsghdr {
+ uint8_t cmd; /* command within the family */
+ uint8_t version; /* ABI version for the cmd */
+ uint16_t reserved; /* reserved: set to 0 */
+};
+.Ed
+The family id is encoded in the
+.Dv nlmsg_type
+of the base netlink header.
+The
+.Va cmd
+field is the command identifier within the family.
+The
+.Va version
+field is the command version.
+.Sh METHODS
+The generic Netlink framework provides the base family,
+.Dv GENL_ID_CTRL
+("nlctrl") with a fixed family id.
+This family is used to list the details of all registered families.
+.Pp
+The following messages are supported by the framework:
+.Ss CTRL_CMD_GETFAMILY
+Fetches a single family or all registered families, depending on the
+.Dv NLM_F_DUMP
+flag.
+Each family is reported as
+.Dv CTRL_CMD_NEWFAMILY
+message.
+The following filters are recognised by the kernel:
+.Pp
+.Bd -literal -offset indent -compact
+CTRL_ATTR_FAMILY_ID (uint16_t) current family id assigned by kernel
+CTRL_ATTR_FAMILY_NAME (string) family name
+.Ed
+.Ss TLVs
+.Bl -tag -width indent
+.It Dv CTRL_ATTR_FAMILY_ID
+(uint16_t) Dynamically-assigned family identifier.
+.It Dv CTRL_ATTR_FAMILY_NAME
+(string) Family name.
+.It Dv CTRL_ATTR_HDRSIZE
+(uint32_t) Family mandatory header size (typically 0).
+.It Dv CTRL_ATTR_MAXATTR
+(uint32_t) Maximum attribute number valid for the family.
+.It Dv CTRL_ATTR_OPS
+(nested) List of the operations supported by the family.
+The attribute consists of a list of nested TLVs, with attribute values
+monotonically incremented, starting from 0.
+The following attributes are present in each TLV:
+.Bl -tag -width indent
+.It Dv CTRL_ATTR_OP_ID
+Operation (message) number.
+.It Dv CTRL_ATTR_OP_FLAGS
+Operation flags.
+The following flags are supported:
+.Bd -literal -offset indent -compact
+GENL_ADMIN_PERM requires elevated permissions
+GENL_CMD_CAP_DO operation is a modification request
+GENL_CMD_CAP_DUMP operation is a get/dump request
+.Ed
+.El
+.It Dv CTRL_ATTR_MCAST_GROUPS
+(nested) List of the notification groups supported by the family.
+The attribute consists of a list of nested TLVs, with attribute values
+monotonically incremented, starting from 0.
+The following attributes are present in each TLV:
+.Bl -tag -width indent
+.It Dv CTRL_ATTR_MCAST_GRP_ID
+Group id that can be used in
+.Dv NETLINK_ADD_MEMBERSHIP
+.Xr setsockopt 2 .
+.It Dv CTRL_ATTR_MCAST_GRP_NAME
+(string) Human-readable name of the group.
+.El
+.El
+.Ss Groups
+The following groups are defined:
+.Bd -literal -offset indent -compact
+"notify" Notifies on family registrations/removal.
+.Ed
+.Sh SEE ALSO
+.Xr netlink 4
+.Sh HISTORY
+The
+.Dv NETLINK_GENERIC
+protocol family appeared in
+.Fx 14.0 .
+.Sh AUTHORS
+The netlink was implementated by
+.An -nosplit
+.An Alexander Chernikov Aq Mt melifaro@FreeBSD.org .
+It was derived from the Google Summer of Code 2021 project by
+.An Ng Peng Nam Sean .
diff --git a/share/man/man4/iichid.4 b/share/man/man4/iichid.4
index 526a6f444440..1bd75c2db883 100644
--- a/share/man/man4/iichid.4
+++ b/share/man/man4/iichid.4
@@ -76,7 +76,7 @@ In that case
.Nm
enables sampling mode with periodic polling of hardware by driver means.
See dev.iichid.*.sampling_*
-.Xr sysctl 4
+.Xr sysctl 8
variables for tuning of sampling parameters.
.Sh HISTORY
The
diff --git a/share/man/man4/inet.4 b/share/man/man4/inet.4
index 31c80feecfaa..45da9301f86f 100644
--- a/share/man/man4/inet.4
+++ b/share/man/man4/inet.4
@@ -28,7 +28,7 @@
.\" From: @(#)inet.4 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd August 1, 2022
+.Dd September 8, 2022
.Dt INET 4
.Os
.Sh NAME
@@ -186,6 +186,8 @@ Defaults to off.
.It Va fragpackets
Integer: Current number of IPv4 fragment reassembly queue entries
for the VNET (read-only).
+.It Va fragttl
+Integer: time to live for IPv4 packet fragments in the per-VNET reassemby queue.
.It Va loopback_prefixlen
Integer: prefix length of the address space reserved for loopback purposes.
The default is 8, meaning that 127.0.0.0/8 is reserved for loopback,
@@ -278,6 +280,8 @@ The number must be between 512 and 32768 inclusive.
This is a per-VNET value.
.It Va random_id_total
Integer: count of IP IDs created (read-only, per-VNET).
+.It Va reass_hashsize
+Number of hash slots in the IPv4 reassembly queue (loader tunable).
.It Va redirect
Boolean: enable/disable sending of ICMP redirects in response to
.Tn IP
diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4
index d1c3b34b51a6..282b076a2bef 100644
--- a/share/man/man4/ip.4
+++ b/share/man/man4/ip.4
@@ -453,21 +453,6 @@ In scenarios such as benchmarking, this behavior may be undesirable.
In these cases,
.Va net.inet.ip.portrange.randomized
can be used to toggle randomization off.
-If more than
-.Va net.inet.ip.portrange.randomcps
-ports have been allocated in the last second, then return to sequential
-port allocation.
-Return to random allocation only once the current port allocation rate
-drops below
-.Va net.inet.ip.portrange.randomcps
-for at least
-.Va net.inet.ip.portrange.randomtime
-seconds.
-The default values for
-.Va net.inet.ip.portrange.randomcps
-and
-.Va net.inet.ip.portrange.randomtime
-are 10 port allocations per second and 45 seconds correspondingly.
.Ss "Multicast Options"
.Tn IP
multicasting is supported only on
diff --git a/share/man/man4/ip6.4 b/share/man/man4/ip6.4
index 9dd9007866a2..3c6c5969ecb5 100644
--- a/share/man/man4/ip6.4
+++ b/share/man/man4/ip6.4
@@ -229,7 +229,7 @@ Get or set whether a datagram's original destination address and port are
returned as ancillary data along with the payload in subsequent
.Xr recvmsg 2
calls.
-The information is stored in the the ancillary data as a
+The information is stored in the ancillary data as a
.Tn sockaddr_in6
structure.
.It Dv IPV6_PORTRANGE Fa "int *"
diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4
index bfb3c00d9217..94614b3b15ff 100644
--- a/share/man/man4/iwlwifi.4
+++ b/share/man/man4/iwlwifi.4
@@ -186,7 +186,7 @@ Intel(R) Wi-Fi 6 AX204 160MHz
.Nm
will be a successor to
.Xr iwm 4
-and may superseed that driver in the future.
+and may supersede that driver in the future.
It still complements the
.Xr iwn 4
driver which supports older chipsets.
diff --git a/share/man/man4/mod_cc.4 b/share/man/man4/mod_cc.4
index a00f17ede5e4..a03ff0630c15 100644
--- a/share/man/man4/mod_cc.4
+++ b/share/man/man4/mod_cc.4
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 6, 2019
+.Dd September 13, 2022
.Dt MOD_CC 4
.Os
.Sh NAME
@@ -47,7 +47,7 @@ using the
.Xr kld 4
facility.
.Pp
-The default algorithm is NewReno, and all connections use the default unless
+The default algorithm is CUBIC, and all connections use the default unless
explicitly overridden using the
.Dv TCP_CONGESTION
socket option (see
@@ -127,7 +127,7 @@ For further explanation please see the internet-draft.
.Pp
Each congestion control module may also expose other MIB variables
to control their behaviour.
-Note that both newreno and cubic now support hystart++ based on the version 3 of the internet-draft.
+Note that both NewReno and CUBIC now support Hystart++ based on the version 3 of the internet-draft.
.Sh Kernel Configuration
All of the available congestion control modules may also be loaded
via kernel configutation options.
@@ -138,10 +138,10 @@ Compilation of the kernel will fail if these two conditions are not met.
The framework exposes the following kernel configuration options.
.Bl -tag -width ".Va CC_NEWRENO"
.It Va CC_NEWRENO
-This directive loads the newreno congestion control algorithm and is included
-in GENERIC by default.
+This directive loads the NewReno congestion control algorithm.
.It Va CC_CUBIC
-This directive loads the cubic congestion control algorithm.
+This directive loads the CUBIC congestion control algorithm and is included
+in GENERIC by default.
.It Va CC_VEGAS
This directive loads the vegas congestion control algorithm, note that
this algorithm also requires the TCP_HHOOK option as well.
@@ -160,7 +160,7 @@ this algorithm also requires the TCP_HHOOK option as well.
This directive loads the htcp congestion control algorithm.
.It Va CC_DEFAULT
This directive specifies the string that represents the name of the system default algorithm, the GENERIC kernel
-defaults this to newreno.
+defaults this to CUBIC.
.El
.Sh SEE ALSO
.Xr cc_cdg 4 ,
diff --git a/share/man/man4/mpr.4 b/share/man/man4/mpr.4
index 3cc516397e33..e6bd863dfe35 100644
--- a/share/man/man4/mpr.4
+++ b/share/man/man4/mpr.4
@@ -2,7 +2,7 @@
.\" Copyright (c) 2010 Spectra Logic Corporation
.\" Copyright (c) 2014 LSI Corp
.\" Copyright (c) 2015-2017 Avago Technologies
-.\" Copyright (c) 2015-2017 Broadcom Ltd.
+.\" Copyright (c) 2015-2022 Broadcom Ltd.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -99,6 +99,10 @@ Broadcom Ltd./Avago Tech (LSI) SAS 3616 (16 Port SAS/PCIe)
Broadcom Ltd./Avago Tech (LSI) SAS 3708 (8 Port SAS/PCIe)
.It
Broadcom Ltd./Avago Tech (LSI) SAS 3716 (16 Port SAS/PCIe)
+.It
+Broadcom Ltd./Avago Tech (LSI) SAS 3816 (16 Port SAS/PCIe)
+.It
+Broadcom Ltd./Avago Tech (LSI) SAS 3916 (16 Port SAS/PCIe)
.El
.Sh CONFIGURATION
In all tunable descriptions below, X represents the adapter number.
diff --git a/share/man/man4/netdump.4 b/share/man/man4/netdump.4
index a6150eb758e3..ba39452c7076 100644
--- a/share/man/man4/netdump.4
+++ b/share/man/man4/netdump.4
@@ -24,16 +24,18 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 25, 2020
+.Dd November 10, 2022
.Dt NETDUMP 4
.Os
.Sh NAME
.Nm netdump
.Nd protocol for transmitting kernel dumps to a remote server
.Sh SYNOPSIS
-To compile netdump client support into the kernel, place the following line in
+To compile netdump client support into the kernel, place the following lines in
your kernel configuration file:
.Bd -ragged -offset indent
+.Cd "options INET"
+.Cd "options DEBUGNET"
.Cd "options NETDUMP"
.Ed
.Sh DESCRIPTION
diff --git a/share/man/man4/netgdb.4 b/share/man/man4/netgdb.4
index aaa2a2801ca7..81bc2fe969a1 100644
--- a/share/man/man4/netgdb.4
+++ b/share/man/man4/netgdb.4
@@ -24,18 +24,21 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 17, 2019
+.Dd November 10, 2022
.Dt NETGDB 4
.Os
.Sh NAME
.Nm netgdb
.Nd protocol for debugging the kernel with GDB over the network
.Sh SYNOPSIS
-NetGDB support is compiled by default, if DDB, GDB, and INET are enabled.
-To build a kernel without it, add the following line to your kernel
-configuration file:
+To compile NetGDB support into the kernel, place the following lines in your
+kernel configuration file:
.Bd -ragged -offset indent
-.Cd "nooptions NETGDB"
+.Cd "options DDB"
+.Cd "options GDB"
+.Cd "options INET"
+.Cd "options DEBUGNET"
+.Cd "options NETGDB"
.Ed
.Sh DESCRIPTION
.Nm
diff --git a/share/man/man4/netlink.4 b/share/man/man4/netlink.4
new file mode 100644
index 000000000000..bbfa55049e2e
--- /dev/null
+++ b/share/man/man4/netlink.4
@@ -0,0 +1,349 @@
+.\"
+.\" Copyright (C) 2022 Alexander Chernikov <melifaro@FreeBSD.org>.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd November 30, 2022
+.Dt NETLINK 4
+.Os
+.Sh NAME
+.Nm Netlink
+.Nd Kernel network configuration protocol
+.Sh SYNOPSIS
+.In netlink/netlink.h
+.In netlink/netlink_route.h
+.Ft int
+.Fn socket AF_NETLINK SOCK_DGRAM int family
+.Sh DESCRIPTION
+Netlink is a user-kernel message-based communication protocol primarily used
+for network stack configuration.
+Netlink is easily extendable and supports large dumps and event
+notifications, all via a single socket.
+The protocol is fully asynchronous, allowing one to issue and track multiple
+requests at once.
+Netlink consists of multiple families, which commonly group the commands
+belonging to the particular kernel subsystem.
+Currently, the supported families are:
+.Pp
+.Bd -literal -offset indent -compact
+NETLINK_ROUTE network configuration,
+NETLINK_GENERIC "container" family
+.Ed
+.Pp
+The
+.Dv NETLINK_ROUTE
+family handles all interfaces, addresses, neighbors, routes, and VNETs
+configuration.
+More details can be found in
+.Xr rtnetlink 4 .
+The
+.Dv NETLINK_GENERIC
+family serves as a
+.Do container Dc ,
+allowing registering other families under the
+.Dv NETLINK_GENERIC
+umbrella.
+This approach allows using a single netlink socket to interact with
+multiple netlink families at once.
+More details can be found in
+.Xr genetlink 4 .
+.Pp
+Netlink has its own sockaddr structure:
+.Bd -literal
+struct sockaddr_nl {
+ uint8_t nl_len; /* sizeof(sockaddr_nl) */
+ sa_family_t nl_family; /* netlink family */
+ uint16_t nl_pad; /* reserved, set to 0 */
+ uint32_t nl_pid; /* automatically selected, set to 0 */
+ uint32_t nl_groups; /* multicast groups mask to bind to */
+};
+.Ed
+.Pp
+Typically, filling this structure is not required for socket operations.
+It is presented here for completeness.
+.Sh PROTOCOL DESCRIPTION
+The protocol is message-based.
+Each message starts with the mandatory
+.Va nlmsghdr
+header, followed by the family-specific header and the list of
+type-length-value pairs (TLVs).
+TLVs can be nested.
+All headers and TLVS are padded to 4-byte boundaries.
+Each
+.Xr send 2 or
+.Xr recv 2
+system call may contain multiple messages.
+.Ss BASE HEADER
+.Bd -literal
+struct nlmsghdr {
+ uint32_t nlmsg_len; /* Length of message including header */
+ uint16_t nlmsg_type; /* Message type identifier */
+ uint16_t nlmsg_flags; /* Flags (NLM_F_) */
+ uint32_t nlmsg_seq; /* Sequence number */
+ uint32_t nlmsg_pid; /* Sending process port ID */
+};
+.Ed
+.Pp
+The
+.Va nlmsg_len
+field stores the whole message length, in bytes, including the header.
+This length has to be rounded up to the nearest 4-byte boundary when
+iterating over messages.
+The
+.Va nlmsg_type
+field represents the command/request type.
+This value is family-specific.
+The list of supported commands can be found in the relevant family
+header file.
+.Va nlmsg_seq
+is a user-provided request identifier.
+An application can track the operation result using the
+.Dv NLMSG_ERROR
+messages and matching the
+.Va nlmsg_seq
+.
+The
+.Va nlmsg_pid
+field is the message sender id.
+This field is optional for userland.
+The kernel sender id is zero.
+The
+.Va nlmsg_flags
+field contains the message-specific flags.
+The following generic flags are defined:
+.Pp
+.Bd -literal -offset indent -compact
+NLM_F_REQUEST Indicates that the message is an actual request to the kernel
+NLM_F_ACK Request an explicit ACK message with an operation result
+.Ed
+.Pp
+The following generic flags are defined for the "GET" request types:
+.Pp
+.Bd -literal -offset indent -compact
+NLM_F_ROOT Return the whole dataset
+NLM_F_MATCH Return all entries matching the criteria
+.Ed
+These two flags are typically used together, aliased to
+.Dv NLM_F_DUMP
+.Pp
+The following generic flags are defined for the "NEW" request types:
+.Pp
+.Bd -literal -offset indent -compact
+NLM_F_CREATE Create an object if none exists
+NLM_F_EXCL Don't replace an object if it exists
+NLM_F_REPLACE Replace an existing matching object
+NLM_F_APPEND Append to an existing object
+.Ed
+.Pp
+The following generic flags are defined for the replies:
+.Pp
+.Bd -literal -offset indent -compact
+NLM_F_MULTI Indicates that the message is part of the message group
+NLM_F_DUMP_INTR Indicates that the state dump was not completed
+NLM_F_DUMP_FILTERED Indicates that the dump was filtered per request
+NLM_F_CAPPED Indicates the original message was capped to its header
+NLM_F_ACK_TLVS Indicates that extended ACK TLVs were included
+.Ed
+.Ss TLVs
+Most messages encode their attributes as type-length-value pairs (TLVs).
+The base TLV header:
+.Bd -literal
+struct nlattr {
+ uint16_t nla_len; /* Total attribute length */
+ uint16_t nla_type; /* Attribute type */
+};
+.Ed
+The TLV type
+.Pq Va nla_type
+scope is typically the message type or group within a family.
+For example, the
+.Dv RTN_MULTICAST
+type value is only valid for
+.Dv RTM_NEWROUTE
+,
+.Dv RTM_DELROUTE
+and
+.Dv RTM_GETROUTE
+messages.
+TLVs can be nested; in that case internal TLVs may have their own sub-types.
+All TLVs are packed with 4-byte padding.
+.Ss CONTROL MESSAGES
+A number of generic control messages are reserved in each family.
+.Pp
+.Dv NLMSG_ERROR
+reports the operation result if requested, optionally followed by
+the metadata TLVs.
+The value of
+.Va nlmsg_seq
+is set to its value in the original messages, while
+.Va nlmsg_pid
+is set to the socket pid of the original socket.
+The operation result is reported via
+.Vt "struct nlmsgerr":
+.Bd -literal
+struct nlmsgerr {
+ int error; /* Standard errno */
+ struct nlmsghdr msg; /* Original message header */
+};
+.Ed
+If the
+.Dv NETLINK_CAP_ACK
+socket option is not set, the remainder of the original message will follow.
+If the
+.Dv NETLINK_EXT_ACK
+socket option is set, the kernel may add a
+.Dv NLMSGERR_ATTR_MSG
+string TLV with the textual error description, optionally followed by the
+.Dv NLMSGERR_ATTR_OFFS
+TLV, indicating the offset from the message start that triggered an error.
+If the operation reply is a multipart message, then no
+.Dv NLMSG_ERROR
+reply is generated, only a
+.Dv NLMSG_DONE
+message, closing multipart sequence.
+.Pp
+.Dv NLMSG_DONE
+indicates the end of the message group: typically, the end of the dump.
+It contains a single
+.Vt int
+field, describing the dump result as a standard errno value.
+.Sh SOCKET OPTIONS
+Netlink supports a number of custom socket options, which can be set with
+.Xr setsockopt 2
+with the
+.Dv SOL_NETLINK
+.Fa level :
+.Bl -tag -width indent
+.It Dv NETLINK_ADD_MEMBERSHIP
+Subscribes to the notifications for the specific group (int).
+.It Dv NETLINK_DROP_MEMBERSHIP
+Unsubscribes from the notifications for the specific group (int).
+.It Dv NETLINK_LIST_MEMBERSHIPS
+Lists the memberships as a bitmask.
+.It Dv NETLINK_CAP_ACK
+Instructs the kernel to send the original message header in the reply
+without the message body.
+.It Dv NETLINK_EXT_ACK
+Acknowledges ability to receive additional TLVs in the ACK message.
+.El
+.Pp
+Additionally, netlink overrides the following socket options from the
+.Dv SOL_SOCKET
+.Fa level :
+.Bl -tag -width indent
+.It Dv SO_RCVBUF
+Sets the maximum size of the socket receive buffer.
+If the caller has
+.Dv PRIV_NET_ROUTE
+permission, the value can exceed the currently-set
+.Va kern.ipc.maxsockbuf
+value.
+.El
+.Sh SYSCTL VARIABLES
+A set of
+.Xr sysctl 8
+variables is available to tweak run-time parameters:
+.Bl -tag -width indent
+.It Va net.netlink.sendspace
+Default send buffer for the netlink socket.
+Note that the socket sendspace has to be at least as long as the longest
+message that can be transmitted via this socket.
+.El
+.Bl -tag -width indent
+.It Va net.netlink.recvspace
+Default receive buffer for the netlink socket.
+Note that the socket recvspace has to be least as long as the longest
+message that can be received from this socket.
+.El
+.Sh DEBUGGING
+Netlink implements per-functional-unit debugging, with different severities
+controllable via the
+.Va net.netlink.debug
+branch.
+These messages are logged in the kernel message buffer and can be seen in
+.Xr dmesg 8
+.
+The following severity levels are defined:
+.Bl -tag -width indent
+.It Dv LOG_DEBUG(7)
+Rare events or per-socket errors are reported here.
+This is the default level, not impacting production performance.
+.It Dv LOG_DEBUG2(8)
+Socket events such as groups memberships, privilege checks, commands and dumps
+are logged.
+This level does not incur significant performance overhead.
+.It Dv LOG_DEBUG9(9)
+All socket events, each dumped or modified entities are logged.
+Turning it on may result in significant performance overhead.
+.El
+.Sh ERRORS
+Netlink reports operation results, including errors and error metadata, by
+sending a
+.Dv NLMSG_ERROR
+message for each request message.
+The following errors can be returned:
+.Bl -tag -width Er
+.It Bq Er EPERM
+when the current privileges are insufficient to perform the required operation;
+.It Bo Er ENOBUFS Bc or Bo Er ENOMEM Bc
+when the system runs out of memory for
+an internal data structure;
+.It Bq Er ENOTSUP
+when the requested command is not supported by the family or
+the family is not supported;
+.It Bq Er EINVAL
+when some necessary TLVs are missing or invalid, detailed info
+may be provided in NLMSGERR_ATTR_MSG and NLMSGERR_ATTR_OFFS TLVs;
+.It Bq Er ENOENT
+when trying to delete a non-existent object.
+.Pp
+Additionally, a socket operation itself may fail with one of the errors
+specified in
+.Xr socket 2
+,
+.Xr recv 2
+or
+.Xr send 2
+.
+.El
+.Sh SEE ALSO
+.Xr genetrlink 4 ,
+.Xr rtnetlink 4
+.Rs
+.%A "J. Salim"
+.%A "H. Khosravi"
+.%A "A. Kleen"
+.%A "A. Kuznetsov"
+.%T "Linux Netlink as an IP Services Protocol"
+.%O "RFC 3549"
+.Re
+.Sh HISTORY
+The netlink protocol appeared in
+.Fx 14.0 .
+.Sh AUTHORS
+The netlink was implemented by
+.An -nosplit
+.An Alexander Chernikov Aq Mt melifaro@FreeBSD.org .
+It was derived from the Google Summer of Code 2021 project by
+.An Ng Peng Nam Sean .
diff --git a/share/man/man4/pci.4 b/share/man/man4/pci.4
index 3c2c08afe466..f7535aa86d12 100644
--- a/share/man/man4/pci.4
+++ b/share/man/man4/pci.4
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 13, 2021
+.Dd October 4, 2022
.Dt PCI 4
.Os
.Sh NAME
@@ -572,6 +572,8 @@ MSI interrupts can be disabled by setting this tunable to 0.
Enable support for extended Message Signalled Interrupts
.Pq MSI-X .
MSI-X interrupts can be disabled by setting this tunable to 0.
+.It Va hw.pci.enable_pcie_ei Pq Defaults to 0
+Enable support for PCI-express Electromechanical Interlock.
.It Va hw.pci.enable_pcie_hp Pq Defaults to 1
Enable support for native PCI-express HotPlug.
.It Va hw.pci.honor_msi_blacklist Pq Defaults to 1
diff --git a/share/man/man4/re.4 b/share/man/man4/re.4
index 9b54c0c1f20b..234698089fcb 100644
--- a/share/man/man4/re.4
+++ b/share/man/man4/re.4
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 21, 2016
+.Dd November 7, 2022
.Dt RE 4
.Os
.Sh NAME
@@ -285,3 +285,6 @@ avoid this problem.
.Pp
The RealTek 8169, 8169S and 8110S chips appear to only be capable of
transmitting jumbo frames up to 7.5K in size.
+.Pp
+If this driver is causing problems then an updated driver from
+the vendor can be found in ports under net/realtek-re-kmod.
diff --git a/share/man/man4/rtnetlink.4 b/share/man/man4/rtnetlink.4
new file mode 100644
index 000000000000..9f20671719f0
--- /dev/null
+++ b/share/man/man4/rtnetlink.4
@@ -0,0 +1,519 @@
+.\"
+.\" Copyright (C) 2022 Alexander Chernikov <melifaro@FreeBSD.org>.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd November 1, 2022
+.Dt RTNETLINK 4
+.Os
+.Sh NAME
+.Nm RTNetlink
+.Nd Network configuration-specific Netlink family
+.Sh SYNOPSIS
+.In netlink/netlink.h
+.In netlink/netlink_route.h
+.Ft int
+.Fn socket AF_NETLINK SOCK_DGRAM NETLINK_ROUTE
+.Sh DESCRIPTION
+The
+.Dv NETLINK_ROUTE
+family aims to be the primary configuration mechanism for all
+network-related tasks.
+Currently it supports configuring interfaces, interface addresses, routes,
+nexthops and arp/ndp neighbors.
+.Sh ROUTES
+All route configuration messages share the common header:
+.Bd -literal
+struct rtmsg {
+ unsigned char rtm_family; /* address family */
+ unsigned char rtm_dst_len; /* Prefix length */
+ unsigned char rtm_src_len; /* Deprecated, set to 0 */
+ unsigned char rtm_tos; /* Type of service (not used) */
+ unsigned char rtm_table; /* deprecated, set to 0 */
+ unsigned char rtm_protocol; /* Routing protocol id (RTPROT_) */
+ unsigned char rtm_scope; /* Route distance (RT_SCOPE_) */
+ unsigned char rtm_type; /* Route type (RTN_) */
+ unsigned rtm_flags; /* Route flags (not supported) */
+};
+.Ed
+.Pp
+The
+.Va rtm_family
+specifies the route family to be operated on.
+Currently,
+.Dv AF_INET6
+and
+.Dv AF_INET
+are the only supported families.
+The route prefix length is stored in
+.Va rtm_dst_len
+.
+The caller should set the originator identity (one of the
+.Dv RTPROT_
+values) in
+.Va rtm_protocol
+.
+It is useful for users and for the application itself, allowing for easy
+identification of self-originated routes.
+The route scope has to be set via
+.Va rtm_scope
+field.
+The supported values are:
+.Bd -literal -offset indent -compact
+RT_SCOPE_UNIVERSE Global scope
+RT_SCOPE_LINK Link scope
+.Ed
+.Pp
+Route type needs to be set.
+The defined values are:
+.Bd -literal -offset indent -compact
+RTN_UNICAST Unicast route
+RTN_MULTICAST Multicast route
+RTN_BLACKHOLE Drops traffic towards destination
+RTN_PROHIBIT Drops traffic and sends reject
+.Ed
+.Pp
+The following messages are supported:
+.Ss RTM_NEWROUTE
+Adds a new route.
+All NL flags are supported.
+Extending a multipath route requires NLM_F_APPEND flag.
+.Ss RTM_DELROUTE
+Tries to delete a route.
+The route is specified using a combination of
+.Dv RTA_DST
+TLV and
+.Va rtm_dst_len .
+.Ss RTM_GETROUTE
+Fetches a single route or all routes in the current VNET, depending on the
+.Dv NLM_F_DUMP
+flag.
+Each route is reported as
+.Dv RTM_NEWROUTE
+message.
+The following filters are recognised by the kernel:
+.Pp
+.Bd -literal -offset indent -compact
+rtm_family required family or AF_UNSPEC
+RTA_TABLE fib number or RT_TABLE_UNSPEC to return all fibs
+.Ed
+.Ss TLVs
+.Bl -tag -width indent
+.It Dv RTA_DST
+(binary) IPv4/IPv6 address, depending on the
+.Va rtm_family .
+.It Dv RTA_OIF
+(uint32_t) transmit interface index.
+.It Dv RTA_GATEWAY
+(binary) IPv4/IPv6 gateway address, depending on the
+.Va rtm_family .
+.It Dv RTA_METRICS
+(nested) Container attribute, listing route properties.
+The only supported sub-attribute is
+.Dv RTAX_MTU , which stores path MTU as uint32_t.
+.It Dv RTA_MULTIPATH
+This attribute contains multipath route nexthops with their weights.
+These nexthops are represented as a sequence of
+.Va rtnexthop
+structures, each followed by
+.Dv RTA_GATEWAY
+or
+.Dv RTA_VIA
+attributes.
+.Bd -literal
+struct rtnexthop {
+ unsigned short rtnh_len;
+ unsigned char rtnh_flags;
+ unsigned char rtnh_hops; /* nexthop weight */
+ int rtnh_ifindex;
+};
+.Ed
+.Pp
+The
+.Va rtnh_len
+field specifies the total nexthop info length, including both
+.Va struct rtnexthop
+and the following TLVs.
+The
+.Va rtnh_hops
+field stores relative nexthop weight, used for load balancing between group
+members.
+The
+.Va rtnh_ifindex
+field contains the index of the transmit interface.
+.Pp
+The following TLVs can follow the structure:
+.Bd -literal -offset indent -compact
+RTA_GATEWAY IPv4/IPv6 nexthop address of the gateway
+RTA_VIA IPv6 nexthop address for IPv4 route
+RTA_KNH_ID Kernel-specific index of the nexthop
+.Ed
+.It Dv RTA_KNH_ID
+(uint32_t) (FreeBSD-specific) Auto-allocated kernel index of the nexthop.
+.It Dv RTA_RTFLAGS
+(uint32_t) (FreeBSD-specific) rtsock route flags.
+.It Dv RTA_TABLE
+(uint32_t) Fib number of the route.
+Default route table is
+.Dv RT_TABLE_MAIN .
+To explicitely specify "all tables" one needs to set the value to
+.Dv RT_TABLE_UNSPEC .
+.It Dv RTA_EXPIRES
+(uint32_t) seconds till path expiration.
+.It Dv RTA_NH_ID
+(uint32_t) useland nexthop or nexthop group index.
+.El
+.Ss Groups
+The following groups are defined:
+.Bd -literal -offset indent -compact
+RTNLGRP_IPV4_ROUTE Notifies on IPv4 route arrival/removal/change
+RTNLGRP_IPV6_ROUTE Notifies on IPv6 route arrival/removal/change
+.Ed
+.Sh NEXTHOPS
+All nexthop/nexthop group configuration messages share the common header:
+.Bd -literal
+struct nhmsg {
+ unsigned char nh_family; /* transport family */
+ unsigned char nh_scope; /* ignored on RX, filled by kernel */
+ unsigned char nh_protocol; /* Routing protocol that installed nh */
+ unsigned char resvd;
+ unsigned int nh_flags; /* RTNH_F_* flags from route.h */
+};
+.Ed
+The
+.Va nh_family
+specificies the gateway address family.
+It can be different from route address family for IPv4 routes with IPv6
+nexthops.
+The
+.Va nh_protocol
+is similar to
+.Va rtm_protocol
+field, which designates originator application identity.
+.Pp
+The following messages are supported:
+.Ss RTM_NEWNEXTHOP
+Creates a new nexthop or nexthop group.
+.Ss RTM_DELNEXTHOP
+Deletes nexthop or nexthhop group.
+The required object is specified by the
+.Dv RTA_NH_ID
+attribute.
+.Ss RTM_GETNEXTHOP
+Fetches a single nexthop or all nexthops/nexthop groups, depending on the
+.Dv NLM_F_DUMP
+flag.
+The following filters are recognised by the kernel:
+.Pp
+.Bd -literal -offset indent -compact
+RTA_NH_ID nexthop or nexthtop group id
+NHA_GROUPS match only nexthtop groups
+.Ed
+.Ss TLVs
+.Bl -tag -width indent
+.It Dv RTA_NH_ID
+(uint32_t) Nexthhop index used to identify particular nexthop or nexthop group.
+Should be provided by userland at the nexthtop creation time.
+.It Dv NHA_GROUP
+This attribute designates the nexthtop group and contains all of its nexthtops
+and their relative weights.
+The attribute constists of a list of
+.Va nexthop_grp
+structures:
+.Bd -literal
+struct nexthop_grp {
+ uint32_t id; /* nexhop userland index */
+ uint8_t weight; /* weight of this nexthop */
+ uint8_t resvd1;
+ uint16_t resvd2;
+};
+.Ed
+.It Dv NHA_GROUP_TYPE
+(uint16_t) Nexthtop group type, set to one of the following types:
+.Bd -literal -offset indent -compact
+NEXTHOP_GRP_TYPE_MPATH default multipath group
+.Ed
+.It Dv NHA_BLACKHOLE
+(flag) Marks the nexthtop as blackhole.
+.It Dv NHA_OIF
+(uint32_t) Transmit interface index of the nexthtop.
+.It Dv NHA_GATEWAY
+(binary) IPv4/IPv6 gateway address
+.It Dv NHA_GROUPS
+(flag) Matches nexthtop groups during dump.
+.El
+.Ss Groups
+The following groups are defined:
+.Bd -literal -offset indent -compact
+RTNLGRP_NEXTHOP Notifies on nexthop/groups arrival/removal/change
+.Ed
+.Sh INTERFACES
+All interface configuration messages share the common header:
+.Bd -literal
+struct ifinfomsg {
+ unsigned char ifi_family; /* not used, set to 0 */
+ unsigned char __ifi_pad;
+ unsigned short ifi_type; /* ARPHRD_* */
+ int ifi_index; /* Inteface index */
+ unsigned ifi_flags; /* IFF_* flags */
+ unsigned ifi_change; /* IFF_* change mask */
+};
+.Ed
+.Ss RTM_NEWLINK
+Creates a new interface.
+The only mandatory TLV is
+.Dv IFLA_IFNAME .
+.Ss RTM_DELLINK
+Deletes the interface specified by
+.Dv IFLA_IFNAME .
+.Ss RTM_GETLINK
+Fetches a single interface or all interfaces in the current VNET, depending on the
+.Dv NLM_F_DUMP
+flag.
+Each interface is reported as a
+.Dv RTM_NEWLINK
+message.
+The following filters are recognised by the kernel:
+.Pp
+.Bd -literal -offset indent -compact
+ifi_index interface index
+IFLA_IFNAME interface name
+IFLA_ALT_IFNAME interface name
+.Ed
+.Ss TLVs
+.Bl -tag -width indent
+.It Dv IFLA_ADDRESS
+(binary) Llink-level interface address (MAC).
+.It Dv IFLA_BROADCAST
+(binary) (readonly) Link-level broadcast address.
+.It Dv IFLA_IFNAME
+(string) New interface name.
+.It Dv IFLA_LINK
+(uint32_t) (readonly) Interface index.
+.It Dv IFLA_MASTER
+(uint32_t) Parent interface index.
+.It Dv IFLA_LINKINFO
+(nested) Interface type-specific attributes:
+.Bd -literal -offset indent -compact
+IFLA_INFO_KIND (string) interface type ("vlan")
+IFLA_INFO_DATA (nested) custom attributes
+.Ed
+The following types and attributes are supported:
+.Bl -tag -width indent
+.It Dv vlan
+.Bd -literal -offset indent -compact
+IFLA_VLAN_ID (uint16_t) 802.1Q vlan id
+IFLA_VLAN_PROTOCOL (uint16_t) Protocol: ETHERTYPE_VLAN or ETHERTYPE_QINQ
+.Ed
+.El
+.It Dv IFLA_OPERSTATE
+(uint8_t) Interface operational state per RFC 2863.
+Can be one of the following:
+.Bd -literal -offset indent -compact
+IF_OPER_UNKNOWN status can not be determined
+IF_OPER_NOTPRESENT some (hardware) component not present
+IF_OPER_DOWN down
+IF_OPER_LOWERLAYERDOWN some lower-level interface is down
+IF_OPER_TESTING in some test mode
+IF_OPER_DORMANT "up" but waiting for some condition (802.1X)
+IF_OPER_UP ready to pass packets
+.Ed
+.It Dv IFLA_STATS64
+(readonly) Consists of the following 64-bit counters structure:
+.Bd -literal
+struct rtnl_link_stats64 {
+ uint64_t rx_packets; /* total RX packets (IFCOUNTER_IPACKETS) */
+ uint64_t tx_packets; /* total TX packets (IFCOUNTER_OPACKETS) */
+ uint64_t rx_bytes; /* total RX bytes (IFCOUNTER_IBYTES) */
+ uint64_t tx_bytes; /* total TX bytes (IFCOUNTER_OBYTES) */
+ uint64_t rx_errors; /* RX errors (IFCOUNTER_IERRORS) */
+ uint64_t tx_errors; /* RX errors (IFCOUNTER_OERRORS) */
+ uint64_t rx_dropped; /* RX drop (no space in ring/no bufs) (IFCOUNTER_IQDROPS) */
+ uint64_t tx_dropped; /* TX drop (IFCOUNTER_OQDROPS) */
+ uint64_t multicast; /* RX multicast packets (IFCOUNTER_IMCASTS) */
+ uint64_t collisions; /* not supported */
+ uint64_t rx_length_errors; /* not supported */
+ uint64_t rx_over_errors; /* not supported */
+ uint64_t rx_crc_errors; /* not supported */
+ uint64_t rx_frame_errors; /* not supported */
+ uint64_t rx_fifo_errors; /* not supported */
+ uint64_t rx_missed_errors; /* not supported */
+ uint64_t tx_aborted_errors; /* not supported */
+ uint64_t tx_carrier_errors; /* not supported */
+ uint64_t tx_fifo_errors; /* not supported */
+ uint64_t tx_heartbeat_errors; /* not supported */
+ uint64_t tx_window_errors; /* not supported */
+ uint64_t rx_compressed; /* not supported */
+ uint64_t tx_compressed; /* not supported */
+ uint64_t rx_nohandler; /* dropped due to no proto handler (IFCOUNTER_NOPROTO) */
+};
+.Ed
+.El
+.Ss Groups
+The following groups are defined:
+.Bd -literal -offset indent -compact
+RTNLGRP_LINK Notifies on interface arrival/removal/change
+.Ed
+.Sh INTERFACE ADDRESSES
+All interface address configuration messages share the common header:
+.Bd -literal
+struct ifaddrmsg {
+ uint8_t ifa_family; /* Address family */
+ uint8_t ifa_prefixlen; /* Prefix length */
+ uint8_t ifa_flags; /* Address-specific flags */
+ uint8_t ifa_scope; /* Address scope */
+ uint32_t ifa_index; /* Link ifindex */
+};
+.Ed
+.Pp
+The
+.Va ifa_family
+specifies the address family of the interface address.
+The
+.Va ifa_prefixlen
+specifies the prefix length if applicable for the address family.
+The
+.Va ifa_index
+specifies the interface index of the target interface.
+.Ss RTM_NEWADDR
+Not supported
+.Ss RTM_DELADDR
+Not supported
+.Ss RTM_GETADDR
+.Ss TLVs
+.Bl -tag -width indent
+.It Dv IFA_ADDRESS
+(binary) masked interface address or destination address for p2p interfaces.
+.It Dv IFA_LOCAL
+(binary) local interface address
+.It Dv IFA_BROADCAST
+(binary) broacast interface address
+.El
+.Ss Groups
+The following groups are defined:
+.Bd -literal -offset indent -compact
+RTNLGRP_IPV4_IFADDR Notifies on IPv4 ifaddr arrival/removal/change
+RTNLGRP_IPV6_IFADDR Notifies on IPv6 ifaddr arrival/removal/change
+.Ed
+.Sh NEIGHBORS
+All neighbor configuration messages share the common header:
+.Bd -literal
+struct ndmsg {
+ uint8_t ndm_family;
+ uint8_t ndm_pad1;
+ uint16_t ndm_pad2;
+ int32_t ndm_ifindex;
+ uint16_t ndm_state;
+ uint8_t ndm_flags;
+ uint8_t ndm_type;
+};
+.Ed
+.Pp
+The
+.Va ndm_family
+field specifies the address family (IPv4 or IPv6) of the neighbor.
+The
+.Va ndm_ifindex
+specifies the interface to operate on.
+The
+.Va ndm_state
+represents the entry state according to the neighbor model.
+The state can be one of the following:
+.Bd -literal -offset indent -compact
+NUD_INCOMPLETE No lladdr, address resolution in progress
+NUD_REACHABLE reachable & recently resolved
+NUD_STALE has lladdr but it's stale
+NUD_DELAY has lladdr, is stale, probes delayed
+NUD_PROBE has lladdr, is stale, probes sent
+NUD_FAILED unused
+.Ed
+.Pp
+The
+.Va ndm_flags
+field stores the options specific to this entry.
+Available flags:
+.Bd -literal -offset indent -compact
+NTF_SELF local station (LLE_IFADDR)
+NTF_PROXY proxy entry (LLE_PUB)
+NTF_STICKY permament entry (LLE_STATIC)
+NTF_ROUTER dst indicated itself as a router
+.Ed
+.Ss RTM_NEWNEIGH
+Creates new neighbor entry.
+The mandatory options are
+.Dv NDA_DST ,
+.Dv NDA_LLADDR
+and
+.Dv NDA_IFINDEX .
+.Ss RTM_DELNEIGH
+Deletes the neighbor entry.
+The entry is specified by the combination of
+.Dv NDA_DST
+and
+.Dv NDA_IFINDEX .
+.Ss RTM_GETNEIGH
+Fetches a single neighbor or all neighbors in the current VNET, depending on the
+.Dv NLM_F_DUMP
+flag.
+Each entry is reported as
+.Dv RTM_NEWNEIGH
+message.
+The following filters are recognised by the kernel:
+.Pp
+.Bd -literal -offset indent -compact
+ndm_family required family or AF_UNSPEC
+ndm_ifindex target ifindex
+NDA_IFINDEX target ifindex
+.Ed
+.Ss TLVs
+.Bl -tag -width indent
+.It Dv NDA_DST
+(binary) neighbor IPv4/IPv6 address.
+.It Dv NDA_LLADDR
+(binary) neighbor link-level address.
+.It Dv NDA_IFINDEX
+(uint32_t) interface index.
+.It Dv NDA_FLAGS_EXT
+(uint32_t) extended version of
+.Va ndm_flags .
+.El
+.Ss Groups
+The following groups are defined:
+.Bd -literal -offset indent -compact
+RTNLGRP_NEIGH Notifies on ARP/NDP neighbor arrival/removal/change
+.Ed
+.Sh SEE ALSO
+.Xr netlink 4 ,
+.Xr route 4
+.Sh HISTORY
+The
+.Dv NETLINK_ROUTE
+protocol family appeared in
+.Fx 14.0 .
+.Sh AUTHORS
+The netlink was implementated by
+.An -nosplit
+.An Alexander Chernikov Aq Mt melifaro@FreeBSD.org .
+It was derived from the Google Summer of Code 2021 project by
+.An Ng Peng Nam Sean .
diff --git a/share/man/man4/run.4 b/share/man/man4/run.4
index d27bca4b10b4..222f7c843e4b 100644
--- a/share/man/man4/run.4
+++ b/share/man/man4/run.4
@@ -211,7 +211,7 @@ ifconfig wlan create wlandev run0 wlanmode adhoc ssid my_net \e
.Ed
.Sh DIAGNOSTICS
.Bl -diag
-.It "run%d: faild load firmware of file runfw"
+.It "run%d: failed load firmware of file runfw"
For some reason, the driver was unable to read the microcode file from the
filesystem.
The file might be missing or corrupted.
diff --git a/share/man/man4/snp.4 b/share/man/man4/snp.4
index ce0ef66c5721..3422b9ca5d6f 100644
--- a/share/man/man4/snp.4
+++ b/share/man/man4/snp.4
@@ -1,7 +1,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 5, 2008
+.Dd September 24, 2022
.Dt SNP 4
.Os
.Sh NAME
@@ -58,8 +58,6 @@ ioctl returns a positive value equal to the number of characters
in a read buffer.
Special values defined are:
.Bl -tag -width ".Dv SNP_TTYCLOSE"
-.It Dv SNP_OFLOW
-device overflow occurred, device detached.
.It Dv SNP_TTYCLOSE
tty not attached.
.It Dv SNP_DETACH
@@ -89,11 +87,3 @@ Previous versions of
.Nm
were based on code written by
.An Ugen J.S. Antsilevich Aq Mt ugen@NetVision.net.il .
-.Sh BUGS
-This version of
-.Nm
-does not return proper error codes when calling
-.Dv FIONREAD .
-It also does not allow
-.Dv SNPSTTY
-to detach itself from the TTY.
diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4
index cdb58c7cbacc..dea7da9054d0 100644
--- a/share/man/man4/tcp.4
+++ b/share/man/man4/tcp.4
@@ -34,7 +34,7 @@
.\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd August 1, 2022
+.Dd November 7, 2022
.Dt TCP 4
.Os
.Sh NAME
@@ -282,6 +282,7 @@ this packetization may cause significant delays.
The boolean option
.Dv TCP_NODELAY
defeats this algorithm.
+
.It Dv TCP_MAXSEG
By default, a sender- and
.No receiver- Ns Tn TCP
@@ -291,6 +292,17 @@ The
.Dv TCP_MAXSEG
option allows the user to determine the result of this negotiation,
and to reduce it if desired.
+.It Dv TCP_MAXUNACKTIME
+This
+.Xr setsockopt 2
+option accepts an argument of
+.Vt "u_int"
+to set the per-socket interval, in seconds, in which the connection must
+make progress. Progress is defined by at least 1 byte being acknowledged within
+the set time period. If a connection fails to make progress, then the
+.Tn TCP
+stack will terminate the connection with a reset. Note that the default
+value for this is zero which indicates no progress checks should be made.
.It Dv TCP_NOOPT
.Tn TCP
usually sends a number of options in each packet, corresponding to
@@ -495,6 +507,13 @@ Outgoing connections will request ECN.
Allow incoming connections to request ECN.
Outgoing connections will not request ECN.
(default)
+.It 3
+Negotiate on incoming connection for Accurate ECN, ECN, or no ECN.
+Outgoing connections will request Accurate ECN and fall back to
+ECN depending on the capabilities of the server.
+.It 4
+Negotiate on incoming connection for Accurate ECN, ECN, or no ECN.
+Outgoing connections will not request ECN.
.El
.It Va ecn.maxretries
Number of retries (SYN or SYN/ACK retransmits) before disabling ECN on a
@@ -734,23 +753,6 @@ A value of 2 results in any
packets to closed ports being logged.
Any value not listed above disables the logging
(default is 0, i.e., the logging is disabled).
-.It Va maxtcptw
-When a TCP connection enters the
-.Dv TIME_WAIT
-state, its associated socket structure is freed, since it is of
-negligible size and use, and a new structure is allocated to contain a
-minimal amount of information necessary for sustaining a connection in
-this state, called the compressed TCP
-.Dv TIME_WAIT
-state.
-Since this structure is smaller than a socket structure, it can save
-a significant amount of system memory.
-The
-.Va net.inet.tcp.maxtcptw
-MIB variable controls the maximum number of these structures allocated.
-By default, it is initialized to
-.Va kern.ipc.maxsockets
-/ 5.
.It Va minmss
Minimum TCP Maximum Segment Size; used to prevent a denial of service attack
from an unreasonably low MSS.
@@ -767,7 +769,7 @@ application limited and the network bandwidth is not utilized completely.
That prevents self-inflicted packet losses once the application starts to
transmit data at a higher speed.
.It Va nolocaltimewait
-Suppress creation of compressed TCP
+Suppress creation of TCP
.Dv TIME_WAIT
states for connections in
which both endpoints are local.
@@ -873,7 +875,18 @@ minimum, which gives us an effective minimum of 200ms (similar to
The initial value is used before an RTT measurement has been performed.
.It Va rfc1323
Implement the window scaling and timestamp options of RFC 1323/RFC 7323
-(default is true).
+(default is 1).
+Settings:
+.Bl -tag -compact
+.It 0
+Disable window scaling and timestamp option.
+.It 1
+Enable window scaling and timestamp option.
+.It 2
+Enable only window scaling.
+.It 3
+Enable only timestamp option.
+.El
.It Va rfc3042
Enable the Limited Transmit algorithm as described in RFC 3042.
It helps avoid timeouts on lossy links and also when the congestion window
@@ -1041,6 +1054,7 @@ when trying to use a TCP function block that is not available;
.Xr siftr 4 ,
.Xr syncache 4 ,
.Xr tcp_bbr 4 ,
+.Xr tcp_rack 4 ,
.Xr setkey 8 ,
.Xr sysctl 8 ,
.Xr tcp_functions 9
diff --git a/share/man/man4/tcp_bbr.4 b/share/man/man4/tcp_bbr.4
index 604e205820fb..48281ad0164f 100644
--- a/share/man/man4/tcp_bbr.4
+++ b/share/man/man4/tcp_bbr.4
@@ -1,5 +1,5 @@
.\"
-.\" Copyright (c) 2020, Gordon Bergling
+.\" Copyright (c) 2020, Gordon Bergling <gbe@FreeBSD.org>
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 24, 2020
+.Dd November 7, 2022
.Dt TCP_BBR 4
.Os
.Sh NAME
@@ -129,6 +129,7 @@ Minimum RTO in ms.
.Xr h_ertt 4 ,
.Xr mod_cc 4 ,
.Xr tcp 4 ,
+.Xr tcp_rack 4 ,
.Xr mod_cc 9
.Rs
.%A "Neal Cardwell"
diff --git a/share/man/man4/tcp_rack.4 b/share/man/man4/tcp_rack.4
new file mode 100644
index 000000000000..ce424ae73045
--- /dev/null
+++ b/share/man/man4/tcp_rack.4
@@ -0,0 +1,159 @@
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2022, Gordon Bergling <gbe@FreeBSD.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd November 7, 2022
+.Dt TCP_RACK 4
+.Os
+.Sh NAME
+.Nm tcp_rack
+.Nd TCP RACK-TLP Loss Detection Algorithm for TCP
+.Sh SYNOPSIS
+To use this TCP stack, place the following line in the
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "options TCPHPTS"
+.Ed
+.Pp
+To load the TCP stack as a module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+tcp_rack_load="YES"
+.Ed
+.Pp
+To enable the TCP stack, place the following line in the
+.Xr sysctl.conf 5 :
+.Bd -literal -offset indent
+net.inet.tcp.functions_default=rack
+.Ed
+.Sh DESCRIPTION
+RACK-TLP uses per-segment transmit timestamps and selective
+acknowledgments (SACKs) and has two parts.
+Recent Acknowledgment (RACK) starts fast recovery quickly
+using time-based inferences derived from acknowledgment (ACK)
+feedback, and Tail Loss Probe (TLP) leverages RACK
+and sends a probe packet to trigger ACK feedback to avoid
+retransmission timeout (RTO) events.
+.Pp
+Compared to the widely used duplicate acknowledgment (DupAck)
+threshold approach, RACK-TLP detects losses more efficiently
+when there are application-limited flights of data, lost
+retransmissions, or data packet reordering events.
+.Pp
+It is intended to be an alternative to the
+DupAck threshold approach.
+.Sh MIB Variables
+The algorithm exposes the following scopes in the
+.Va net.inet.tcp.rack
+branch of the
+.Xr sysctl 3
+MIB:
+.Bl -tag -width indent
+.It Va net.inet.tcp.rack.misc
+Misc related controls
+.It Va net.inet.tcp.rack.features
+Feature controls
+.It Va net.inet.tcp.rack.measure
+Measure related controls
+.It Va net.inet.tcp.rack.timers
+Timer related controls
+.It Va net.inet.tcp.rack.tlp
+TLP and Rack related Controls
+.It Va net.inet.tcp.rack.timely
+Rack Timely RTT Controls
+.It Va net.inet.tcp.rack.hdwr_pacing
+Pacing related Controls
+.It Va net.inet.tcp.rack.pacing
+Pacing related Controls
+.It Va net.inet.tcp.rack.tp
+Rack tracepoint facility
+.It Va net.inet.tcp.rack.probertt
+ProbeRTT related Controls
+.It Va net.inet.tcp.rack.stats
+Rack Counters
+.It Va net.inet.tcp.rack.sack_attack
+Rack Sack Attack Counters and Controls
+.El
+.Pp
+Besides the variables within the above scopes the following
+variables are also exposed in the
+.Va net.inet.tcp.rack
+branch:
+.Bl -tag -width indent
+.It Va net.inet.tcp.rack.clear
+Clear counters
+.It Va net.inet.tcp.rack.opts
+RACK Option Stats
+.It Va net.inet.tcp.rack.outsize
+MSS send sizes
+.It Va net.inet.tcp.rack.req_measure_cnt
+If doing dynamic pacing, how many measurements
+must be in before we start pacing?
+.It Va net.inet.tcp.rack.use_pacing
+If set we use pacing, if clear we use only the original burst mitigation
+.It Va net.inet.tcp.rack.rate_sample_method
+What method should we use for rate sampling 0=high, 1=low
+.El
+.Sh SEE ALSO
+.Xr cc_chd 4 ,
+.Xr cc_cubic 4 ,
+.Xr cc_hd 4 ,
+.Xr cc_htcp 4 ,
+.Xr cc_newreno 4 ,
+.Xr cc_vegas 4 ,
+.Xr h_ertt 4 ,
+.Xr mod_cc 4 ,
+.Xr tcp 4 ,
+.Xr tcp_bbr 4 ,
+.Xr mod_cc 9
+.Rs
+.%A "Neal Cardwell"
+.%A "Yuchung Cheng"
+.%A "Nandita Dukkipat"
+.%A "Priyaranjan Jha"
+.%T "The RACK-TLP Loss Detection Algorithm for TCP"
+.%O "RFC 8985"
+.%D "February 2021"
+.Re
+.Rs
+.%A "Ahmed M. Abdelmoniem"
+.%A "Brahim Bensaou"
+.%T "T-RACKs: A Faster Recovery Mechanism for TCP in Data Center Networks"
+.%O "https://arxiv.org/pdf/2102.07477.pdf"
+.%D "February 2021"
+.Re
+.Sh HISTORY
+The
+.Nm
+congestion control module first appeared in
+.Fx 13.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+congestion control module was written by
+.An Randall Stewart Aq Mt rrs@FreeBSD.org
+and sponsored by Netflix, Inc.
+This manual page was written by
+.An Gordon Bergling Aq Mt gbe@FreeBSD.org .
diff --git a/share/man/man4/ti.4 b/share/man/man4/ti.4
index a589ec048ebf..3209d9a0359f 100644
--- a/share/man/man4/ti.4
+++ b/share/man/man4/ti.4
@@ -299,7 +299,7 @@ driver also includes a character device interface that can be used for
additional diagnostics, configuration and debugging.
With this character
device interface, and a specially patched version of
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
the user can
debug firmware running on the Tigon board.
.Pp
diff --git a/share/man/man4/vmd.4 b/share/man/man4/vmd.4
index 74419fd87ffe..6c49e2b83ec0 100644
--- a/share/man/man4/vmd.4
+++ b/share/man/man4/vmd.4
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 31, 2021
+.Dd October 6, 2022
.Dt VMD 4
.Os
.Sh NAME
@@ -57,6 +57,11 @@ The following tunables are settable via
or
.Xr sysctl 8 :
.Bl -tag -width indent
+.It Va hw.vmd.bypass_msi
+By default all VMD devices remap children MSI/MSI-X interrupts into their
+own. It creates additional isolation, but also complicates things due to
+sharing, etc. Fortunately some VMD devices can bypass the remapping.
+Defaults to 1.
.It Va hw.vmd.max_msi
Limits number of Message Signaled Interrupt (MSI) vectors allowed to each
child device.
diff --git a/share/man/man4/wg.4 b/share/man/man4/wg.4
new file mode 100644
index 000000000000..6d0d16d942df
--- /dev/null
+++ b/share/man/man4/wg.4
@@ -0,0 +1,218 @@
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2020 Gordon Bergling <gbe@FreeBSD.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd November 11, 2022
+.Dt WG 4
+.Os
+.Sh NAME
+.Nm wg
+.Nd "WireGuard protocol driver"
+.Sh SYNOPSIS
+To load the driver as a module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_wg_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides Virtual Private Network (VPN) interfaces for the secure
+exchange of layer 3 traffic with other WireGuard peers using the WireGuard
+protocol.
+.Pp
+A
+.Nm
+interface recognizes one or more peers, establishes a secure tunnel with
+each on demand, and tracks each peer's UDP endpoint for exchanging encrypted
+traffic with.
+.Pp
+The interfaces can be created at runtime using the
+.Ic ifconfig Cm wg Ns Ar N Cm create
+command.
+The interface itself can be configured with
+.Xr wg 8 .
+.Pp
+The following glossary provides a brief overview of WireGuard
+terminology:
+.Bl -tag -width indent -offset 3n
+.It Peer
+Peers exchange IPv4 or IPv6 traffic over secure tunnels.
+Each
+.Nm
+interface may be configured to recognise one or more peers.
+.It Key
+Each peer uses its private key and corresponding public key to
+identify itself to others.
+A peer configures a
+.Nm
+interface with its own private key and with the public keys of its peers.
+.It Pre-shared key
+In addition to the public keys, each peer pair may be configured with a
+unique pre-shared symmetric key.
+This is used in their handshake to guard against future compromise of the
+peers' encrypted tunnel if an attack on their
+Diffie-Hellman exchange becomes feasible.
+It is optional, but recommended.
+.It Allowed IP addresses
+A single
+.Nm
+interface may maintain concurrent tunnels connecting diverse networks.
+The interface therefore implements rudimentary routing and reverse-path
+filtering functions for its tunneled traffic.
+These functions reference a set of allowed IP address ranges configured
+against each peer.
+.Pp
+The interface will route outbound tunneled traffic to the peer configured
+with the most specific matching allowed IP address range, or drop it
+if no such match exists.
+.Pp
+The interface will accept tunneled traffic only from the peer
+configured with the most specific matching allowed IP address range
+for the incoming traffic, or drop it if no such match exists.
+That is, tunneled traffic routed to a given peer cannot return through
+another peer of the same
+.Nm
+interface.
+This ensures that peers cannot spoof one another's traffic.
+.It Handshake
+Two peers handshake to mutually authenticate each other and to
+establish a shared series of secret ephemeral encryption keys.
+Either peer may initiate a handshake.
+Handshakes occur only when there is traffic to send, and recur every
+two minutes during transfers.
+.It Connectionless
+Due to the handshake behavior, there is no connected or disconnected
+state.
+.El
+.Ss Keys
+Private keys for WireGuard can be generated from any sufficiently
+secure random source.
+The Curve25519 keys and the pre-shared keys are both 32 bytes
+long and are commonly encoded in base64 for ease of use.
+.Pp
+Keys can be generated with
+.Xr wg 8
+as follows:
+.Pp
+.Dl $ wg genkey
+.Pp
+Although a valid Curve25519 key must have 5 bits set to
+specific values, this is done by the interface and so it
+will accept any random 32-byte base64 string.
+.Sh EXAMPLES
+Create a
+.Nm
+interface and set random private key.
+.Bd -literal -offset indent
+# ifconfig wg0 create
+# wg genkey | wg set wg0 listen-port 54321 private-key /dev/stdin
+.Ed
+.Pp
+Retrieve the associated public key from a
+.Nm
+interface.
+.Bd -literal -offset indent
+$ wg show wg0 public-key
+.Ed
+.Pp
+Connect to a specific endpoint using its public-key and set the allowed IP address
+.Bd -literal -offset indent
+# wg set wg0 peer '7lWtsDdqaGB3EY9WNxRN3hVaHMtu1zXw71+bOjNOVUw=' endpoint 10.0.1.100:54321 allowed-ips 192.168.2.100/32
+.Ed
+.Pp
+Remove a peer
+.Bd -literal -offset indent
+# wg set wg0 peer '7lWtsDdqaGB3EY9WNxRN3hVaHMtu1zXw71+bOjNOVUw=' remove
+.Ed
+.Sh DIAGNOSTICS
+The
+.Nm
+interface supports runtime debugging, which can be enabled with:
+.Pp
+.D1 Ic ifconfig Cm wg Ns Ar N Cm debug
+.Pp
+Some common error messages include:
+.Bl -diag
+.It "Handshake for peer X did not complete after 5 seconds, retrying"
+Peer X did not reply to our initiation packet, for example because:
+.Bl -bullet
+.It
+The peer does not have the local interface configured as a peer.
+Peers must be able to mutually authenticate each other.
+.It
+The peer endpoint IP address is incorrectly configured.
+.It
+There are firewall rules preventing communication between hosts.
+.El
+.It "Invalid handshake initiation"
+The incoming handshake packet could not be processed.
+This is likely due to the local interface not containing
+the correct public key for the peer.
+.It "Invalid initiation MAC"
+The incoming handshake initiation packet had an invalid MAC.
+This is likely because the initiation sender has the wrong public key
+for the handshake receiver.
+.It "Packet has unallowed src IP from peer X"
+After decryption, an incoming data packet has a source IP address that
+is not assigned to the allowed IPs of Peer X.
+.El
+.Sh SEE ALSO
+.Xr inet 4 ,
+.Xr ip 4 ,
+.Xr ipsec 4 ,
+.Xr netintro 4 ,
+.Xr ovpn 4 ,
+.Xr ipf 5 ,
+.Xr pf.conf 5 ,
+.Xr ifconfig 8 ,
+.Xr ipfw 8 ,
+.Xr wg 8
+.Rs
+.%T WireGuard whitepaper
+.%U https://www.wireguard.com/papers/wireguard.pdf
+.Re
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 13.2 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+device driver was written by
+.An Jason A. Donenfeld Aq Mt Jason@zx2c4.com ,
+.An Matt Dunwoodie Aq Mt ncon@nconroy.net ,
+and
+.An Kyle Evans Aq Mt kevans@FreeBSD.org .
+.Pp
+This manual page was written by
+.An Gordon Bergling Aq Mt gbe@FreeBSD.org
+and is based on the
+.Ox
+manual page written by
+.An David Gwynne Aq Mt dlg@openbsd.org .
diff --git a/share/man/man4/xhci.4 b/share/man/man4/xhci.4
index d475c5e502fc..f30795e9cd02 100644
--- a/share/man/man4/xhci.4
+++ b/share/man/man4/xhci.4
@@ -1,5 +1,5 @@
.\"
-.\" Copyright (c) 2011 Hans Petter Selasky. All rights reserved.
+.\" Copyright (c) 2011-2022 Hans Petter Selasky. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -24,13 +24,14 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 24, 2018
+.Dd October 21, 2022
.Dt XHCI 4
.Os
.Sh NAME
.Nm xhci
.Nd USB eXtensible Host Controller driver
.Sh SYNOPSIS
+.Cd "options USB_DEBUG"
.Cd "device xhci"
.Sh DESCRIPTION
The
@@ -48,7 +49,8 @@ The
.Tn XHCI
controller supports
.Tn USB
-connection speeds up to 5.0Gbps when using a USB 3.0 compliant device.
+connection speeds from 5.0Gbps and above when using USB 3.x
+compliant devices.
.Sh HARDWARE
The
.Nm
@@ -64,14 +66,37 @@ variables and
tunables:
.Bl -tag -width indent
.It Va hw.usb.xhci.debug
-Debug output level, where 0 is debugging disabled and larger values increase
-debug message verbosity.
-Default is 0.
+Set debug output level, where 0 is debugging disabled and larger
+values increase debug message verbosity.
+The default value is 0.
+.It Va hw.usb.xhci.dcepquirk
+Set to enable quirk for deconfiguration of endpoints.
+The default value is 0.
+.It Va hw.usb.xhci.ctlquirk
+Set to submit full USB control request as one job, up to 64kBytes.
+Else the USB control request will be split into multiple smaller
+requests.
+The default value is 1.
+.It Va hw.usb.xhci.streams
+Set to enable USB streams support.
+The default value is 0.
+.It Va hw.usb.xhci.route
+Set bitmap for switching EHCI ports to the XHCI controller.
+The default value is 0.
+.It Va hw.usb.xhci.polling
+Set to use a timer to poll the interrupt handler.
+The default value is 0.
+.It Va hw.usb.xhci.dma32
+Set to only use 32-bit DMA for the XHCI controller.
+The default value is 0.
+.It Va hw.usb.xhci.ctlstep
+Set to enable control endpoint status state stepping.
+The default value is 0.
.El
.Sh SEE ALSO
.Xr ehci 4 ,
.Xr ohci 4 ,
-.Xr uhci 4 ,
+.Xr uhci 4 and
.Xr usb 4
.Sh HISTORY
The
diff --git a/share/man/man5/Makefile b/share/man/man5/Makefile
index 9be4c8dc46b0..2d49d981c2f9 100644
--- a/share/man/man5/Makefile
+++ b/share/man/man5/Makefile
@@ -32,6 +32,7 @@ MAN= acct.5 \
hosts.lpd.5 \
intro.5 \
libmap.conf.5 \
+ lindebugfs.5 \
link.5 \
linprocfs.5 \
linsysfs.5 \
diff --git a/share/man/man5/a.out.5 b/share/man/man5/a.out.5
index aa4c7da96929..606c96a4125a 100644
--- a/share/man/man5/a.out.5
+++ b/share/man/man5/a.out.5
@@ -386,7 +386,7 @@ The
.Dv N_STAB
mask selects bits of interest to symbolic debuggers
such as
-.Xr gdb 1 ;
+.Xr gdb 1 Pq Pa ports/devel/gdb ;
the values are described in
.Xr stab 5 .
.It Fa n_other
@@ -429,7 +429,7 @@ so its minimum value (or the offset of the first string)
is always 4 on 32-bit machines.
.Sh SEE ALSO
.Xr as 1 ,
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
.Xr ld 1 ,
.Xr brk 2 ,
.Xr execve 2 ,
diff --git a/share/man/man5/core.5 b/share/man/man5/core.5
index f109b7932308..09dfbc12e8f6 100644
--- a/share/man/man5/core.5
+++ b/share/man/man5/core.5
@@ -177,7 +177,7 @@ command can be used:
.Pp
.Dl sysctl kern.corefile=/var/coredumps/\&%U/\&%N.core
.Sh SEE ALSO
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
.Xr gzip 1 ,
.Xr kgdb 1 Pq Pa ports/devel/gdb ,
.Xr setrlimit 2 ,
diff --git a/share/man/man5/elf.5 b/share/man/man5/elf.5
index 95bc183a1f91..9a004bb3d08a 100644
--- a/share/man/man5/elf.5
+++ b/share/man/man5/elf.5
@@ -1387,7 +1387,7 @@ writeable and executable.
.El
.Sh SEE ALSO
.Xr as 1 ,
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
.Xr ld 1 ,
.Xr objdump 1 ,
.Xr readelf 1 ,
diff --git a/share/man/man5/hosts.5 b/share/man/man5/hosts.5
index ca7586f039b7..6bf643f6c5ce 100644
--- a/share/man/man5/hosts.5
+++ b/share/man/man5/hosts.5
@@ -28,7 +28,7 @@
.\" @(#)hosts.5 8.2 (Berkeley) 12/11/93
.\" $FreeBSD$
.\"
-.Dd May 25, 2021
+.Dd September 15, 2022
.Dt HOSTS 5
.Os
.Sh NAME
@@ -87,9 +87,6 @@ file resides in
.Xr inet 3 ,
.Xr nsswitch.conf 5 ,
.Xr ifconfig 8
-.Rs
-.%T "Name Server Operations Guide for BIND"
-.Re
.Sh HISTORY
The
.Nm
diff --git a/share/man/man5/lindebugfs.5 b/share/man/man5/lindebugfs.5
new file mode 100644
index 000000000000..0d93d6aec6b9
--- /dev/null
+++ b/share/man/man5/lindebugfs.5
@@ -0,0 +1,95 @@
+.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+.\"
+.\" Copyright (c) 2022, Jake Freeland <jfree@freebsd.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+
+.Dd August 10, 2022
+.Dt LINDEBUGFS 5
+.Os
+.Sh NAME
+.Nm lindebugfs
+.Nd Linux file system for debugging
+.Sh SYNOPSIS
+.Bd -literal
+lindebugfs /sys/kernel/debug lindebugfs rw 0 0
+.Ed
+.Sh DESCRIPTION
+The debug file system, or debugfs, makes process debugging easier by
+providing a simple API for data transfer between the kernel and user
+space.
+Debugfs is not a general-purpose file system and should not be used as
+a storage medium.
+Instead, developers can implement the debugfs interface in their code
+to generate debug information about their program at runtime.
+FreeBSD's
+.Nm
+uses the
+.Xr pseudofs 9
+file system construction kit to model itself after Linux's debugfs.
+The
+.Nm
+API is intended for use with programs that take advantage of FreeBSD's
+LinuxKPI compatibility layer.
+.Pp
+When mounted,
+.Nm
+will populate with pseudo files from any running process that calls
+.Nm debugfs_create_file() .
+Since
+.Nm
+is a pseudo file system, file contents will be generated dynamically
+based on program provided file operations.
+The current
+.Nm
+implementation formally supports seq_file and simple_attr_file virtual
+file formats.
+.Sh EXAMPLES
+Load the
+.Nm
+kernel module:
+.Pp
+.Dl "kldload lindebugfs"
+.Pp
+Mount the
+.Nm
+file system on
+.Pa /sys/kernel/debug :
+.Pp
+.Dl "mount -t lindebugfs lindebugfs /sys/kernel/debug"
+.Sh SEE ALSO
+.Xr linprocfs 5 ,
+.Xr linsysfs 5 ,
+.Xr pseudofs 9 ,
+.Xr linux 4 ,
+.Xr mount 1
+.Sh HISTORY
+The
+.Nm
+file system first appeared in
+.Fx 12.1 .
+.Sh AUTHORS
+.An -nosplit
+The initial implementation for
+.Nm
+was created by Matthew Macy.
+This manual page was written by Jake Freeland.
diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5
index b3623b29a950..2a29eeb5f5bf 100644
--- a/share/man/man5/make.conf.5
+++ b/share/man/man5/make.conf.5
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 14, 2021
+.Dd November 15, 2022
.Dt MAKE.CONF 5
.Os
.Sh NAME
@@ -573,11 +573,7 @@ The script used by
to start, stop, and restart
.Xr sendmail 8 .
The default value is
-.Pa /etc/rc.sendmail .
-This value should match the
-.Dq Li mta_start_script
-setting in
-.Xr rc.conf 5 .
+.Pa /etc/rc.d/sendmail .
.It Va SENDMAIL_SUBMIT_MC
.Pq Vt str
The default
diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5
index 267d84387fe9..c7446f53bb49 100644
--- a/share/man/man5/pf.conf.5
+++ b/share/man/man5/pf.conf.5
@@ -28,7 +28,7 @@
.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd March 9, 2022
+.Dd November 24, 2022
.Dt PF.CONF 5
.Os
.Sh NAME
@@ -710,6 +710,9 @@ see the
.Ic group
keyword in
.Xr ifconfig 8 .
+.It Ar bridge-to Aq interface
+Packets matching this rule will be sent out of the specified interface without
+futher processing.
.It Ar proto Aq Ar protocol
This rule applies only to packets of this protocol.
Note that Ethernet protocol numbers are different from those used in
@@ -829,6 +832,9 @@ packet, and only the completed packet is passed on to the filter.
The advantage is that filter rules have to deal only with complete
packets, and can ignore fragments.
The drawback of caching fragments is the additional memory cost.
+This is the default behaviour unless no fragment reassemble is specified.
+.It Ar no fragment reassemble
+Do not reassemble fragments.
.It Ar reassemble tcp
Statefully normalizes TCP connections.
.Ar scrub reassemble tcp
@@ -3076,8 +3082,9 @@ option = "set" ( [ "timeout" ( timeout | "{" timeout-list "}" ) ] |
[ "keepcounters" ] )
ether-rule = "ether" etheraction [ ( "in" | "out" ) ]
- [ "quick" ] [ "on" ifspec ] [ etherprotospec ]
- etherhosts [ "l3" hosts ] [ etherfilteropt-list ]
+ [ "quick" ] [ "on" ifspec ] [ "bridge-to" interface-name ]
+ [ etherprotospec ] etherhosts [ "l3" hosts ]
+ [ etherfilteropt-list ]
pf-rule = action [ ( "in" | "out" ) ]
[ "log" [ "(" logopts ")"] ] [ "quick" ]
diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5
index 473f5b16a30f..e67273cf0ea2 100644
--- a/share/man/man5/rc.conf.5
+++ b/share/man/man5/rc.conf.5
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 7, 2022
+.Dd November 14, 2022
.Dt RC.CONF 5
.Os
.Sh NAME
@@ -239,6 +239,11 @@ such as PostgreSQL will not inherit the OOM killer protection.
.Pp
This variable has no effect on services running within a
.Xr jail 8 .
+.It Ao Ar name Ac Ns Va _umask
+.Pq Vt int
+Run the service using this
+.Xr umask 1
+value.
.It Ao Ar name Ac Ns Va _user
.Pq Vt str
Run the service under this user account.
@@ -458,6 +463,34 @@ is mounted on normal systems.
Clean the
.Pa /var
directory.
+.It Va var_run_enable
+.Pq Vt bool
+Set to "YES" to enable saving of the
+.Pa /var/run
+directory strcucture into an mtree file at shutdown and the reload of the
+.Pa /var/run
+directory structure at boot.
+.It Va var_run_autosave
+.Pq Vt bool
+In some cases it may be undesirable to save
+.Pa /var/run
+at shutdown.
+When set to "NO"
+.Pa /var/run
+is loaded at reboot but not saved at shutdown. Typically in this scenario
+a
+.Pa service
+.Pa var_run
+.Pa save
+would be performed to save a copy of the
+.Pa /var/run
+directory structure once, to be reload during all subsequent reboots.
+.It Va var_run_mtree
+.Pq Vt str
+Where to save the
+.Pa /var/run
+mtree. The default location is
+.Pa /var/db/mtree/BSD.var-run.mtree .
.It Va local_startup
.Pq Vt str
List of directories to search for startup script files.
@@ -2076,6 +2109,13 @@ A space-separated list of ZFS pool names for which new pool GUIDs should be
assigned upon first boot.
This is useful when using a ZFS pool copied from a template, such as a virtual
machine image.
+.It Va zpool_upgrade
+.Pq Vt str
+A space-separated list of ZFS pool names for which version should be upgraded
+upon first boot.
+This is useful when using a ZFS pool generated by the
+.Xr makefs 8
+utility.
.It Va gptboot_enable
.Pq Vt bool
If set to
@@ -3511,19 +3551,6 @@ program.
The default is
.Dq Li -d ,
which causes missing directories to be created.
-.It Va mta_start_script
-.Pq Vt str
-This variable specifies the full path to the script to run to start
-a mail transfer agent.
-The default is
-.Pa /etc/rc.sendmail .
-The
-.Va sendmail_*
-variables which
-.Pa /etc/rc.sendmail
-uses are documented in the
-.Xr rc.sendmail 8
-manual page.
.It Va dumpdev
.Pq Vt str
Indicates the device (usually a swap partition) to which a crash dump
@@ -4674,6 +4701,162 @@ which means that the script will attempt to unlock all datasets.
Define the total number of seconds to wait for the zfskeys script
to unlock an encrypted dataset.
The default is 10.
+.It Va sendmail_enable
+.Pq Vt str
+If set to
+.Dq Li YES ,
+run the
+.Xr sendmail 8
+daemon at system boot time.
+If set to
+.Dq Li NO ,
+do not run a
+.Xr sendmail 8
+daemon to listen for incoming network mail.
+This does not preclude a
+.Xr sendmail 8
+daemon listening on the SMTP port of the loopback interface.
+The
+.Dq Li NONE
+option sets each
+.Va sendmail_enable ,
+.Va sendmail_submit_enable ,
+.Va sendmail_outbound_enable ,
+.Va sendmail_msp_queue_enable
+to
+.Dq Li NO .
+.It Va sendmail_cert_create
+.Pq Vt str
+If
+.Va sendmail_enable
+is set to
+.Dq Li YES ,
+create a signed certificate
+.Pa /etc/mail/certs/host.cert
+representing
+.Pa /etc/mail/certs/host.key
+by the CA certificate in
+.Pa /etc/mail/certs/cacert.pem .
+This will enable connecting hosts to negotiate STARTTLS allowing incoming
+email to be encrypted in transit.
+.Xr sendmail 8
+needs to be configured to use these generated files.
+The default configuration in
+.Pa /etc/mail/freebsd.mc
+has the required options in it.
+.It Va sendmail_cert_cn
+.Pq Vt str
+If
+.Va sendmail_enable
+is set to
+.Dq Li YES
+and
+.Va sendmail_cert_create
+is set to
+.Dq Li YES ,
+this is the Common Name (CN) of the certificate that will be created.
+If
+.Va sendmail_cert_cn
+is not set, the system's hostname will be used.
+If there is no hostname set,
+.Dq Li amnesiac
+will be used.
+.It Va sendmail_flags
+.Pq Vt str
+If
+.Va sendmail_enable
+is set to
+.Dq Li YES ,
+these are the flags to pass to the
+.Xr sendmail 8
+daemon.
+.It Va sendmail_submit_enable
+.Pq Vt bool
+If set to
+.Dq Li YES
+and
+.Va sendmail_enable
+is set to
+.Dq Li NO ,
+run
+.Xr sendmail 8
+using
+.Va sendmail_submit_flags
+instead of
+.Va sendmail_flags .
+This is intended to allow local mail submission via
+a localhost-only listening SMTP service required for running
+.Xr sendmail 8
+as a non-set-user-ID binary.
+Note that this does not work inside
+.Xr jail 2
+systems, as jails do not allow binding to just the localhost interface.
+.It Va sendmail_submit_flags
+.Pq Vt str
+If
+.Va sendmail_enable
+is set to
+.Dq Li NO
+and
+.Va sendmail_submit_enable
+is set to
+.Dq Li YES ,
+these are the flags to pass to the
+.Xr sendmail 8
+daemon.
+.It Va sendmail_outbound_enable
+.Pq Vt bool
+If set to
+.Dq Li YES
+and both
+.Va sendmail_enable
+and
+.Va sendmail_submit_enable
+are set to
+.Dq Li NO ,
+run
+.Xr sendmail 8
+using
+.Va sendmail_outbound_flags
+instead of
+.Va sendmail_flags .
+This is intended to allow local mail queue management
+for systems that do not offer a listening SMTP service.
+.It Va sendmail_outbound_flags
+.Pq Vt str
+If both
+.Va sendmail_enable
+and
+.Va sendmail_submit_enable
+are set to
+.Dq Li NO
+and
+.Va sendmail_outbound_enable
+is set to
+.Dq Li YES ,
+these are the flags to pass to the
+.Xr sendmail 8
+daemon.
+.It Va sendmail_msp_queue_enable
+.Pq Vt bool
+If set to
+.Dq Li YES ,
+start a client (MSP) queue runner
+.Xr sendmail 8
+daemon at system boot time.
+As of sendmail 8.12, a separate queue is used for command line
+submissions.
+The client queue runner ensures that nothing is
+left behind in the submission queue.
+.It Va sendmail_msp_queue_flags
+.Pq Vt str
+If
+.Va sendmail_msp_queue_enable
+is set to
+daemon.
+.Dq Li YES ,
+these are the flags to pass to the
+.Xr sendmail 8
.El
.Sh FILES
.Bl -tag -width "/etc/defaults/rc.conf" -compact
@@ -4685,12 +4868,13 @@ The default is 10.
.El
.Sh SEE ALSO
.Xr chmod 1 ,
-.Xr gdb 1 ,
+.Xr gdb 1 Pq Pa ports/devel/gdb ,
.Xr info 1 ,
.Xr kbdcontrol 1 ,
.Xr limits 1 ,
.Xr protect 1 ,
.Xr sh 1 ,
+.Xr umask 1 ,
.Xr vi 1 ,
.Xr vidcontrol 1 ,
.Xr bridge 4 ,
@@ -4759,7 +4943,6 @@ The default is 10.
.Xr quotacheck 8 ,
.Xr quotaon 8 ,
.Xr rc 8 ,
-.Xr rc.sendmail 8 ,
.Xr rc.subr 8 ,
.Xr rcorder 8 ,
.Xr rfcomm_pppd 8 ,
@@ -4773,6 +4956,7 @@ The default is 10.
.Xr rwhod 8 ,
.Xr savecore 8 ,
.Xr sdpd 8 ,
+.Xr sendmail 8 ,
.Xr service 8 ,
.Xr sshd 8 ,
.Xr swapon 8 ,
diff --git a/share/man/man5/resolver.5 b/share/man/man5/resolver.5
index 468c635839c6..a0c1aea24b88 100644
--- a/share/man/man5/resolver.5
+++ b/share/man/man5/resolver.5
@@ -28,7 +28,7 @@
.\" @(#)resolver.5 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd November 9, 2021
+.Dd November 23, 2022
.Dt RESOLVER 5
.Os
.Sh NAME
@@ -46,8 +46,10 @@ by the resolver routines the first time they are invoked by a process.
The file is designed to be human readable and contains a list of
keywords with values that provide various types of resolver information.
.Pp
-On a normally configured system this file should not be necessary.
-The only name server to be queried will be on the local machine,
+On a normally configured system, setting this file manually should not
+be necessary.
+The only name server(s) to be queried will be on the local machine
+or automatically configured using DHCP or a similar mechanism,
the domain name is determined from the host name,
and the domain search path is constructed from the domain name.
.Pp
@@ -132,7 +134,7 @@ in _res.options.
sets
.Dv RES_USEVC
to use TCP instead of UDP for queries.
-.It Sy ndots: Ns Ar n
+.It Sy ndots : Ns Ar n
sets a threshold for the number of dots which must appear in a name given to
.Fn res_query
(see
@@ -148,7 +150,7 @@ meaning that if there are any dots in a name, the name
will be tried first as an absolute name before any
.Em search list
elements are appended to it.
-.It Sy timeout: Ns Ar n
+.It Sy timeout : Ns Ar n
sets the initial amount of time the resolver will wait
for a response from a remote
name server before retrying the query via a different name server.
@@ -161,7 +163,7 @@ the allowed maximum is
.Dv RES_MAXRETRANS
(see
.In resolv.h ) .
-.It Sy attempts: Ns Ar n
+.It Sy attempts : Ns Ar n
sets the number of times the resolver will send a query to each of
its name servers
before giving up and returning an error to the calling application.
@@ -180,7 +182,7 @@ the resolver from obeying the standard
and
.Sy search
rules with the given name.
-.It Sy reload-period: Ns Ar n
+.It Sy reload-period : Ns Ar n
The resolver checks the modification time of
.Pa /etc/resolv.conf
every
@@ -220,14 +222,34 @@ The file
resides in
.Pa /etc .
.El
+.Sh EXAMPLES
+A basic resolv.conf file could be in the following form.
+.Bd -literal -offset indent
+# The domain directive is only necessary, if your local
+# router advertises something like localdomain and you have
+# set up your hostnames via an external domain.
+domain localdomain.tld
+
+# In case you a running a local dns server or caching name server
+# like local-unbound(8) for example.
+nameserver 127.0.0.1
+
+# IP address of the local or ISP name service
+nameserver 192.168.2.1
+
+# Fallback nameservers, in this case these from Google.
+nameserver 8.8.8.8
+nameserver 4.4.4.4
+
+# Attach an OPT pseudo-RR for the EDNS0 extension,
+# as specified in RFC 2671.
+options edns0
+.Ed
.Sh SEE ALSO
.Xr gethostbyname 3 ,
.Xr resolver 3 ,
.Xr hostname 7 ,
.Xr resolvconf 8
-.Rs
-.%T "Name Server Operations Guide for BIND"
-.Re
.Sh HISTORY
The
.Nm resolv.conf
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index 36fb474b6597..132a05065bd0 100644
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -1,6 +1,6 @@
.\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
.\" $FreeBSD$
-.Dd July 6, 2022
+.Dd November 21, 2022
.Dt SRC.CONF 5
.Os
.Sh NAME
@@ -386,12 +386,6 @@ Build clang-format.
.It Va WITHOUT_CLANG_FULL
Avoid building the ARCMigrate, Rewriter and StaticAnalyzer components of
the Clang C/C++ compiler.
-.It Va WITHOUT_CLANG_IS_CC
-Do not install links to the Clang C/C++ compiler as
-.Pa /usr/bin/cc ,
-.Pa /usr/bin/c++
-and
-.Pa /usr/bin/cpp .
.It Va WITHOUT_CLEAN
Do not clean before building world and/or kernel.
.It Va WITHOUT_CPP
@@ -495,6 +489,10 @@ When set, it enforces these options:
.It
.Va WITHOUT_GOOGLETEST
.It
+.Va WITHOUT_LLD
+.It
+.Va WITHOUT_LLDB
+.It
.Va WITHOUT_LLVM_COV
.It
.Va WITHOUT_OFED
@@ -736,12 +734,12 @@ Do not build HTML docs.
Do not build or install HyperV utilities.
.Pp
This is a default setting on
-arm/armv6, arm/armv7, arm64/aarch64, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
+arm/armv6, arm/armv7, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
.It Va WITH_HYPERV
Build or install HyperV utilities.
.Pp
This is a default setting on
-amd64/amd64 and i386/i386.
+amd64/amd64, arm64/aarch64 and i386/i386.
.It Va WITHOUT_ICONV
Do not build iconv as part of libc.
.It Va WITHOUT_INCLUDES
@@ -843,9 +841,8 @@ is set explicitly)
Build some programs without Kerberos support, like
.Xr ssh 1 ,
.Xr telnet 1 ,
-.Xr sshd 8 ,
and
-.Xr telnetd 8 .
+.Xr sshd 8 .
.It Va WITH_KERNEL_RETPOLINE
Enable the "retpoline" mitigation for CVE-2017-5715 in the kernel
build.
@@ -993,9 +990,6 @@ option should be used rather than this in most cases.
Enable building
.Xr loader 8
with support for verification based on certificates obtained from UEFI.
-.It Va WITH_LOADER_FIREWIRE
-Enable firewire support in /boot/loader on x86.
-This option is a nop on all other platforms.
.It Va WITHOUT_LOADER_GELI
Disable inclusion of GELI crypto support in the boot chain binaries.
.Pp
@@ -1094,6 +1088,8 @@ and related programs.
Build
.Xr ls 1
without support for colors to distinguish file types.
+.It Va WITHOUT_MACHDEP_OPTIMIZATIONS
+Prefer machine-independent non-assembler code in libc and libm.
.It Va WITHOUT_MAIL
Do not build any mail support (MUA or MTA).
When set, it enforces these options:
@@ -1246,8 +1242,8 @@ is set explicitly)
.It Va WITHOUT_NETGRAPH_SUPPORT
Build libraries, programs, and kernel modules without netgraph support.
.It Va WITHOUT_NIS
-Do not build NIS also known as
-.Xr yp 8
+Do not build
+.Xr NIS 8
support and related programs.
If set, you might need to adopt your
.Xr nsswitch.conf 5
diff --git a/share/man/man7/arch.7 b/share/man/man7/arch.7
index c7c2e224b33d..493f197673f0 100644
--- a/share/man/man7/arch.7
+++ b/share/man/man7/arch.7
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 25, 2021
+.Dd September 15, 2022
.Dt ARCH 7
.Os
.Sh NAME
@@ -169,7 +169,9 @@ or
.Dv armv7
binaries if the CPU implements
.Dv AArch32
-execution state, however
+execution state, however older
+.Dv armv4
+and
.Dv armv5
binaries aren't supported.
.Pp
diff --git a/share/man/man7/ascii.7 b/share/man/man7/ascii.7
index 713a4922e759..12974283da61 100644
--- a/share/man/man7/ascii.7
+++ b/share/man/man7/ascii.7
@@ -28,7 +28,7 @@
.\" @(#)ascii.7 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd September 21, 2019
+.Dd November 12, 2022
.Dt ASCII 7
.Os
.Sh NAME
@@ -142,6 +142,44 @@ ESC ; [ { 11011
RS > ^ - 11110
US ? _ DEL 11111
.Ed
+.Pp
+The full
+.Nm names
+of the control character set:
+.Bd -literal -offset left
+NUL NULl
+SOH Start Of Heading
+STX Start Of Text
+ETX End Of Text
+EOT End Of Transmission
+ENQ ENQuiry
+ACK ACKnowledge
+BEL BELl
+ BS BackSpace
+ HT Horizontal Tab
+ LF Line Feed (new line)
+ VT Vertical Tab
+ FF new page Form Feed
+ CR Carriage Return
+ SO Shift Out
+ SI Shift In
+DLE Data Link Escape
+DC1 Device Control 1
+DC2 Device Control 2
+DC3 Device Control 3
+DC4 Device Control 4
+NAK Negative AcKnowledge
+SYN SYNchronous idle
+ETB End of Transmission Block
+CAN CANcel
+ EM End of Medium
+SUB SUBstitute
+ESC ESCape
+ FS File Separator
+ GS Group Separator
+ RS Record Separator
+ US Unit Separator
+.Ed
.Sh FILES
.Bl -tag -width /usr/share/misc/ascii -compact
.It Pa /usr/share/misc/ascii
diff --git a/share/man/man7/development.7 b/share/man/man7/development.7
index 346772b4fbb0..85701ef77811 100644
--- a/share/man/man7/development.7
+++ b/share/man/man7/development.7
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 21, 2022
+.Dd November 1, 2022
.Dt DEVELOPMENT 7
.Os
.Sh NAME
@@ -39,14 +39,14 @@ Doc is the documentation, such as the
Handbook.
To read more, see:
.Pp
-.Lk https://www.FreeBSD.org/doc/en/books/fdp-primer/
+.Lk https://docs.FreeBSD.org/en/books/fdp-primer/
.Pp
Ports, described further in
.Xr ports 7 ,
are the way to build, package, and install third party software.
To read more, see:
.Pp
-.Lk https://www.FreeBSD.org/doc/en/books/porters-handbook/
+.Lk https://docs.FreeBSD.org/en/books/porters-handbook/
.Pp
The last one, src, revolves around the source code for the base system,
consisting of the kernel, and the libraries and utilities commonly called
@@ -55,7 +55,7 @@ the world.
The Committer's Guide, describing topics relevant to all committers,
can be found at:
.Pp
-.Lk https://www.FreeBSD.org/doc/en/articles/committers-guide/
+.Lk https://docs.freebsd.org/en/articles/committers-guide/
.Pp
.Fx
src development takes place in the project-hosted
@@ -69,7 +69,7 @@ The push URL is:
.Pp
There is also a list of public, read-only Git mirrors at:
.Pp
-.Lk https://docs.freebsd.org/en/books/handbook/mirrors/#external-mirrors
+.Lk https://docs.FreeBSD.org/en/books/handbook/mirrors/#external-mirrors
.Pp
The
.Ql main
@@ -82,8 +82,9 @@ with an incremented major version number.
Releases are then branched off STABLE and numbered with consecutive minor
numbers.
.Pp
-Layout of the source tree is described in
-.Xr hier 7 .
+The layout of the source tree is described in its
+.Pa README.md
+file.
Build instructions can be found in
.Xr build 7
and
diff --git a/share/man/man7/environ.7 b/share/man/man7/environ.7
index 9a77100ff6d3..7d188a795883 100644
--- a/share/man/man7/environ.7
+++ b/share/man/man7/environ.7
@@ -197,7 +197,7 @@ The full pathname of the user's login shell.
.It Ev TERM
The kind of terminal for which output is to be prepared.
This information is used by commands, such as
-.Xr nroff 1
+.Xr nroff 1 Pq Pa ports/textproc/groff
or
.Xr plot 1
which may exploit special terminal capabilities.
diff --git a/share/man/man7/hier.7 b/share/man/man7/hier.7
index f33cf5ac62cc..bb00923118c1 100644
--- a/share/man/man7/hier.7
+++ b/share/man/man7/hier.7
@@ -28,14 +28,15 @@
.\" @(#)hier.7 8.1 (Berkeley) 6/5/93
.\" $FreeBSD$
.\"
-.Dd August 4, 2022
+.Dd November 23, 2022
.Dt HIER 7
.Os
.Sh NAME
.Nm hier
.Nd layout of file systems
-.Sh DESCRIPTION
+.Sh SYNOPSIS
A sketch of the file system hierarchy.
+.Sh DESCRIPTION
.Bl -tag -width "/libexec/"
.It Pa /
root directory of the file system
@@ -73,8 +74,6 @@ and
.Xr zfs 8
zpool cache files
.El
-.It Pa /cdrom/
-default mount point for CD-ROM drives
.It Pa /compat/
normally a link to
.Pa /usr/compat .
@@ -296,7 +295,7 @@ machine-specific C include files
miscellaneous network C include files
.Bl -tag -width Fl -compact
.It Pa altq/
-C include files for alternate packet queueing; see
+C include files for alternate packet queuing; see
.Xr altq 4
.El
.It Pa net80211/
@@ -332,7 +331,7 @@ definition of RPC service structures; see
.Xr rpc 3
.It Pa security/
PAM; see
-.Xr pam 8
+.Xr pam 3
.It Pa sys/
system C include files (kernel data structures)
.\" .It Pa tcl/
@@ -380,14 +379,15 @@ miscellaneous utility data files
.Pp
.Bl -tag -width Fl -compact
.It Pa gcc/
-.Xr gcc 1
-configuration data
+GCC configuration data
.It Pa ldscripts/
linker scripts;
see
.Xr ld 1
.It Pa pkgconfig/
-pc files
+.Xr pc 5 Pq Pa ports/devel/pkgconf
+files: collections of compiler flags, linker flags, and other
+information relevant to library use
.El
.Pp
.It Pa libexec/
@@ -464,16 +464,14 @@ see
.Fx Ns -specific
terms, proper names, and jargon
.It Pa web2
-words from Webster's 2nd International
+words from Webster's Second International
.El
.It Pa doc/
miscellaneous documentation;
source for most of the printed
.Bx
manuals (available
-from the
-.Tn USENIX
-association)
+from the USENIX association)
.Bl -tag -width Fl -compact
.It Pa FAQ/
Frequently Asked Questions
@@ -641,127 +639,10 @@ see
.It Pa src/
.Fx
source code; see
-.Xr development 7
-.Pp
-.Bl -tag -width "kerberos5/" -compact
-.It Pa bin/
-source code for files in /bin
-.It Pa cddl/
-utilities covered by the Common Development and Distribution License
-.It Pa contrib/
-source code for contributed software
-.It Pa crypto/
-source code for contributed cryptography software
-.It Pa etc/
-source code for files in
-.Pa /etc
-.It Pa gnu/
-utilities covered by the GNU General Public License
-.It Pa include/
-source code for files in
-.Pa /usr/include
-.It Pa kerberos5/
-build infrastructure for Kerberos version 5
-.It Pa lib/
-source code for files in
-.Pa /lib
-and
-.Pa /usr/lib
-.It Pa libexec/
-source code for files in
-.Pa /usr/libexec
-.It Pa release/
-files required to produce a
-.Fx
-release
-.It Pa rescue/
-source code for files in
-.Pa /rescue
-.It Pa sbin/
-source code for files in
-.Pa /sbin
-.It Pa secure/
-build directory for files in
-.Pa /usr/src/crypto
-.It Pa share/
-source for files in
-.Pa /usr/share
-.It Pa stand/
-boot loader source code
-.It Pa sys/
-kernel source code
-.Bl -tag -width Fl -compact
-.It Pa amd64/
-AMD64 architecture support
-.It Pa arm/
-ARM architecture support
-.It Pa arm64/
-ARMv8 architecture support
-.It Pa cam/
-.Xr cam 4
-and
-.Xr ctl 4
-.It Pa cddl/
-CDDL-licensed optional sources, including ZFS
-and DTrace
-.It Pa ddb/
-.Xr ddb 4
-.It Pa fs/
-most filesystems
-.It Pa dev/
-device drivers
-.It Pa geom/
-.Xr geom 4
-.It Pa i386/
-i386 (32 bit) architecture support
-.It Pa kern/
-main part of the kernel
-.It Pa net80211/
-.Xr net80211 4
-.It Pa netgraph/
-.Xr netgraph 4
-.It Pa netinet/
-.Xr inet 4
-.It Pa netinet6/
-.Xr inet6 4
-.It Pa netipsec/
-.Xr ipsec 4
-.It Pa netpfil/
-.Xr ipfw 4
-and
-.Xr pf 4
-.It Pa opencrypto/
-.Xr crypto 7
-.It Pa powerpc/
-PowerPC/POWER architecture support
-.It Pa riscv/
-RISC-V architecture support
-.It Pa security/
-.Xr audit 4
-and
-.Xr mac 4
-.It Pa sys/
-kernel headers
-.It Pa ufs/
-Unix File System
-.It Pa x86/
-code shared by AMD64 and i386 architectures
-.El
-.It Pa targets/
-support for experimental DIRDEPS_BUILD
-.It Pa tests/
-source code for files in
-.Pa /usr/tests
-.It Pa tools/
-tools used for maintenance and testing of
-.Fx
-.It Pa usr.bin/
-source code for files in
-.Pa /usr/bin
-.It Pa usr.sbin/
-source code for files in
-.Pa /usr/sbin
-.El
+.Xr development 7 .
+The layout of the source tree is described by the top-level
+.Pa README.md
+file.
.Pp
.It Pa tests/
The
diff --git a/share/man/man7/orders.7 b/share/man/man7/orders.7
index e8aa4d79f9f2..dca012a0a2cf 100644
--- a/share/man/man7/orders.7
+++ b/share/man/man7/orders.7
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 6, 2011
+.Dd November 20, 2022
.Dt ORDERS 7
.Os
.Sh NAME
@@ -48,7 +48,9 @@ The following table lists common multiples of bytes.
.It Exabyte Ta EB Ta 2^60 Ta 10^18
.It Zettabyte Ta ZB Ta 2^70 Ta 10^21
.It Yottabyte Ta YB Ta 2^80 Ta 10^24
-.El
+.It Ronnabyte Ta RB Ta 2^90 Ta 10^27
+.It Quettabyte Ta QB Ta 2^100 Ta 10^30.
+El
.Pp
The following table lists common bit rates as a power of ten.
.Bl -column -offset 2n \
@@ -70,6 +72,8 @@ The following table lists common orders of magnitude as a power of ten.
.Bl -column -offset 2n \
"Septillionth" "Order" "Prefix" "Symbol" "Decimal"
.It Sy Name Ta Sy Order Ta Sy Prefix Ta Sy Symbol Ta Sy Decimal
+.It Nonillionth Ta 10^-30 Ta quecto Ta q Ta 0.000000000000000000000000000001
+.It Octillionth Ta 10^-27 Ta ronto Ta r Ta 0.000000000000000000000000001
.It Septillionth Ta 10^-24 Ta yocto Ta y Ta 0.000000000000000000000001
.It Sextillionth Ta 10^-21 Ta zepto Ta z Ta 0.000000000000000000001
.It Quintillionth Ta 10^-18 Ta atto Ta a Ta 0.000000000000000001
@@ -91,6 +95,8 @@ The following table lists common orders of magnitude as a power of ten.
.It Quintillion Ta 10^18 Ta exa Ta E Ta 1000000000000000000
.It Sextillion Ta 10^21 Ta zetta Ta Z Ta 1000000000000000000000
.It Septillion Ta 10^24 Ta yotta Ta Y Ta 1000000000000000000000000
+.It Octillion Ta 10^27 Ta ronna Ta R Ta 1000000000000000000000000000
+.It Nonillion Ta 10^30 Ta quetta Ta Q Ta 1000000000000000000000000000000
.El
.Sh SEE ALSO
.Xr units 1 ,
diff --git a/share/man/man7/release.7 b/share/man/man7/release.7
index be475979dd0f..855cf91697a1 100644
--- a/share/man/man7/release.7
+++ b/share/man/man7/release.7
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 21, 2022
+.Dd October 28, 2022
.Dt RELEASE 7
.Os
.Sh NAME
@@ -365,6 +365,14 @@ is used, the resulting files compressed with
.Xr xz 1
compress to roughly the same size, regardless of the specified disk image
size.
+.It Va VMFS
+Set to specify the file system type to use.
+Valid values are
+.Va ufs
+and
+.Va zfs .
+The default value is
+.Va ufs .
.It Va VMFORMATS
Set to the target virtual disk image format(s) to create.
By default, the
diff --git a/share/man/man7/security.7 b/share/man/man7/security.7
index 49701bbe80f1..f87833ece112 100644
--- a/share/man/man7/security.7
+++ b/share/man/man7/security.7
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 14, 2022
+.Dd September 29, 2022
.Dt SECURITY 7
.Os
.Sh NAME
@@ -97,9 +97,9 @@ It may not be able to take your machine down, but it can fill up your Internet
pipe.
.Pp
A user account compromise is even more common than a DoS attack.
-Many
-sysadmins still run standard
-.Xr telnetd 8
+Some
+sysadmins still run
+.Nm telnetd
and
.Xr ftpd 8
servers on their machines.
@@ -338,8 +338,8 @@ virtually every server ever run as root, including basic system servers.
If you are running a machine through which people only log in via
.Xr sshd 8
and never log in via
-.Xr telnetd 8
-then turn off those services!
+.Nm telnetd
+then turn off this service!
.Pp
.Fx
now defaults to running
diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7
index 63e09ecce098..6cfb0dd15bc4 100644
--- a/share/man/man7/tuning.7
+++ b/share/man/man7/tuning.7
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 16, 2020
+.Dd October 11, 2022
.Dt TUNING 7
.Os
.Sh NAME
@@ -482,7 +482,7 @@ By default
is set at the maximum allowable port number.
.Pp
The
-.Va kern.ipc.somaxconn
+.Va kern.ipc.soacceptqueue
sysctl limits the size of the listen queue for accepting new TCP connections.
The default value of 128 is typically too low for robust handling of new
connections in a heavily loaded web server environment.
diff --git a/share/man/man8/Makefile b/share/man/man8/Makefile
index 1257f3ab97bf..cd3cb34b11d1 100644
--- a/share/man/man8/Makefile
+++ b/share/man/man8/Makefile
@@ -10,7 +10,6 @@ MAN= \
intro.8 \
nanobsd.8 \
rc.8 \
- rc.sendmail.8 \
rc.subr.8 \
rescue.8 \
${_uefi.8} \
diff --git a/share/man/man8/rc.sendmail.8 b/share/man/man8/rc.sendmail.8
deleted file mode 100644
index d8dff43fdbe3..000000000000
--- a/share/man/man8/rc.sendmail.8
+++ /dev/null
@@ -1,298 +0,0 @@
-.\" Copyright (c) 1995
-.\" Jordan K. Hubbard
-.\" Copyright (c) 2002 The FreeBSD Project
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 19, 2013
-.Dt RC.SENDMAIL 8
-.Os
-.Sh NAME
-.Nm rc.sendmail
-.Nd
-.Xr sendmail 8
-startup script
-.Sh DESCRIPTION
-The
-.Nm
-script is used by
-.Pa /etc/rc
-at boot time to start
-.Xr sendmail 8 .
-It is meant to be
-.Xr sendmail 8
-specific and not a generic script for all MTAs.
-It is only called by
-.Pa /etc/rc
-if the
-.Xr rc.conf 5
-.Va mta_start_script
-variable is set to
-.Pa /etc/rc.sendmail .
-.Pp
-The
-.Nm
-script can take an optional argument specifying the action to
-perform.
-The available actions are:
-.Bl -tag -width ".Cm restart-mspq"
-.It Cm start
-Starts both the MTA and the MSP queue runner.
-.It Cm stop
-Stops both the MTA and the MSP queue runner.
-.It Cm restart
-Restarts both the MTA and the MSP queue runner.
-.It Cm start-mta
-Starts just the MTA.
-.It Cm stop-mta
-Stops just the MTA.
-.It Cm restart-mta
-Restarts just the MTA.
-.It Cm start-mspq
-Starts just the MSP queue runner.
-.It Cm stop-mspq
-Stops just the MSP queue runner.
-.It Cm restart-mspq
-Restarts just the MSP queue runner.
-.El
-.Pp
-If no action is specified,
-.Cm start
-is assumed.
-.Pp
-The
-.Nm
-script is also used by
-.Pa /etc/mail/Makefile
-to enable the
-.Pa Makefile Ns 's
-.Cm start , stop ,
-and
-.Cm restart
-targets.
-.Sh RC.CONF VARIABLES
-The following variables affect the behavior of
-.Nm .
-They are defined in
-.Pa /etc/defaults/rc.conf
-and can be changed in
-.Pa /etc/rc.conf .
-.Bl -tag -width indent
-.It Va sendmail_enable
-.Pq Vt str
-If set to
-.Dq Li YES ,
-run the
-.Xr sendmail 8
-daemon at system boot time.
-If set to
-.Dq Li NO ,
-do not run a
-.Xr sendmail 8
-daemon to listen for incoming network mail.
-This does not preclude a
-.Xr sendmail 8
-daemon listening on the SMTP port of the loopback interface.
-The
-.Dq Li NONE
-option is deprecated and should not be used.
-It will be removed in a future release.
-.It Va sendmail_cert_create
-.Pq Vt str
-If
-.Va sendmail_enable
-is set to
-.Dq Li YES ,
-create a signed certificate
-.Pa /etc/mail/certs/host.cert
-representing
-.Pa /etc/mail/certs/host.key
-by the CA certificate in
-.Pa /etc/mail/certs/cacert.pem .
-This will enable connecting hosts to negotiate STARTTLS allowing incoming
-email to be encrypted in transit.
-.Xr sendmail 8
-needs to be configured to use these generated files.
-The default configuration in
-.Pa /etc/mail/freebsd.mc
-has the required options in it.
-.It Va sendmail_cert_cn
-.Pq Vt str
-If
-.Va sendmail_enable
-is set to
-.Dq Li YES
-and
-.Va sendmail_cert_create
-is set to
-.Dq Li YES ,
-this is the Common Name (CN) of the certificate that will be created.
-If
-.Va sendmail_cert_cn
-is not set, the system's hostname will be used.
-If there is no hostname set,
-.Dq Li amnesiac
-will be used.
-.It Va sendmail_flags
-.Pq Vt str
-If
-.Va sendmail_enable
-is set to
-.Dq Li YES ,
-these are the flags to pass to the
-.Xr sendmail 8
-daemon.
-.It Va sendmail_submit_enable
-.Pq Vt bool
-If set to
-.Dq Li YES
-and
-.Va sendmail_enable
-is set to
-.Dq Li NO ,
-run
-.Xr sendmail 8
-using
-.Va sendmail_submit_flags
-instead of
-.Va sendmail_flags .
-This is intended to allow local mail submission via
-a localhost-only listening SMTP service required for running
-.Xr sendmail 8
-as a non-set-user-ID binary.
-Note that this does not work inside
-.Xr jail 2
-systems, as jails do not allow binding to just the localhost interface.
-.It Va sendmail_submit_flags
-.Pq Vt str
-If
-.Va sendmail_enable
-is set to
-.Dq Li NO
-and
-.Va sendmail_submit_enable
-is set to
-.Dq Li YES ,
-these are the flags to pass to the
-.Xr sendmail 8
-daemon.
-.It Va sendmail_outbound_enable
-.Pq Vt bool
-If set to
-.Dq Li YES
-and both
-.Va sendmail_enable
-and
-.Va sendmail_submit_enable
-are set to
-.Dq Li NO ,
-run
-.Xr sendmail 8
-using
-.Va sendmail_outbound_flags
-instead of
-.Va sendmail_flags .
-This is intended to allow local mail queue management
-for systems that do not offer a listening SMTP service.
-.It Va sendmail_outbound_flags
-.Pq Vt str
-If both
-.Va sendmail_enable
-and
-.Va sendmail_submit_enable
-are set to
-.Dq Li NO
-and
-.Va sendmail_outbound_enable
-is set to
-.Dq Li YES ,
-these are the flags to pass to the
-.Xr sendmail 8
-daemon.
-.It Va sendmail_msp_queue_enable
-.Pq Vt bool
-If set to
-.Dq Li YES ,
-start a client (MSP) queue runner
-.Xr sendmail 8
-daemon at system boot time.
-As of sendmail 8.12, a separate queue is used for command line
-submissions.
-The client queue runner ensures that nothing is
-left behind in the submission queue.
-.It Va sendmail_msp_queue_flags
-.Pq Vt str
-If
-.Va sendmail_msp_queue_enable
-is set to
-.Dq Li YES ,
-these are the flags to pass to the
-.Xr sendmail 8
-daemon.
-.El
-.Pp
-These variables are used to determine how the
-.Xr sendmail 8
-daemons are started:
-.Bd -literal -offset indent
-# MTA
-if (${sendmail_enable} == NONE)
- # Do nothing
-else if (${sendmail_enable} == YES)
- start sendmail with ${sendmail_flags}
-else if (${sendmail_submit_enable} == YES)
- start sendmail with ${sendmail_submit_flags}
-else if (${sendmail_outbound_enable} == YES)
- start sendmail with ${sendmail_outbound_flags}
-endif
-
-# MSP Queue Runner
-if (${sendmail_enable} != NONE &&
- [ -r /etc/mail/submit.cf] &&
- ${sendmail_msp_queue_enable} == YES)
- start sendmail with ${sendmail_msp_queue_flags}
-endif
-.Ed
-.Pp
-To completely prevent any
-.Xr sendmail 8
-daemons from starting, you must
-set the following variables in
-.Pa /etc/rc.conf :
-.Bd -literal -offset indent
-sendmail_enable="NO"
-sendmail_submit_enable="NO"
-sendmail_outbound_enable="NO"
-sendmail_msp_queue_enable="NO"
-.Ed
-.Sh SEE ALSO
-.Xr rc.conf 5 ,
-.Xr rc 8 ,
-.Xr sendmail 8
-.Sh HISTORY
-The
-.Nm
-file appeared in
-.Fx 4.6 .
diff --git a/share/man/man8/rc.subr.8 b/share/man/man8/rc.subr.8
index 130962ecdcdf..f9c802679e00 100644
--- a/share/man/man8/rc.subr.8
+++ b/share/man/man8/rc.subr.8
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 18, 2022
+.Dd August 16, 2022
.Dt RC.SUBR 8
.Os
.Sh NAME
@@ -685,6 +685,9 @@ This is a generic version of
.Va ${name}_fib ,
or
.Va ${name}_nice .
+.It Va ${name}_setup
+Command to be run prior to
+.Va command .
.It Ar argument Ns Va _cmd
Shell commands which override the default method for
.Ar argument .
diff --git a/share/man/man9/EVENTHANDLER.9 b/share/man/man9/EVENTHANDLER.9
index b369e2f03258..82480ce1dc71 100644
--- a/share/man/man9/EVENTHANDLER.9
+++ b/share/man/man9/EVENTHANDLER.9
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\" $FreeBSD$
.\"
-.Dd September 17, 2020
+.Dd October 7, 2022
.Dt EVENTHANDLER 9
.Os
.Sh NAME
@@ -258,150 +258,6 @@ The
function removes all deregistered callbacks from the event list
.Fa list .
.El
-.Ss Kernel Event Handlers
-The following event handlers are present in the kernel:
-.Bl -tag -width indent
-.It Vt acpi_sleep_event
-Callbacks invoked when the system is being sent to sleep.
-.It Vt acpi_wakeup_event
-Callbacks invoked when the system is being woken up.
-.It Vt app_coredump_start
-Callbacks invoked at start of application core dump.
-.It Vt app_coredump_progress
-Callbacks invoked during progress of application core dump.
-.It Vt app_coredump_finish
-Callbacks invoked at finish of application core dump.
-.It Vt app_coredump_error
-Callbacks invoked on error of application core dump.
-.It Vt bpf_track
-Callbacks invoked when a BPF listener attaches to/detaches from network interface.
-.It Vt cpufreq_levels_changed
-Callback invoked when cpu frequency levels have changed.
-.It Vt cpufreq_post_change
-Callback invoked after cpu frequency has changed.
-.It Vt cpufreq_pre_change
-Callback invoked before cpu frequency has changed.
-.It Vt dcons_poll
-Callback invoked to poll for dcons changes.
-.It Vt device_attach
-Callback invoked after a device has attached.
-.It Vt device_detach
-Callbacks invoked before and after a device has detached.
-.It Vt dev_clone
-Callbacks invoked when a new entry is created under
-.Pa /dev .
-.It Vt group_attach_event
-Callback invoked when an interfance has been added to an interface group.
-.It Vt group_change_event
-Callback invoked when an change has been made to an interface group.
-.It Vt group_detach_event
-Callback invoked when an interfance has been removed from an interface group.
-.It Vt ifaddr_event
-Callbacks invoked when an address is set up on a network interface.
-.It Vt ifaddr_event_ext
-Callback invoked when an address has been added or removed from an interface.
-.It Vt if_clone_event
-Callbacks invoked when an interface is cloned.
-.It Vt iflladdr_event
-Callback invoked when an if link layer address event has happened.
-.It Vt ifnet_arrival_event
-Callbacks invoked when a new network interface appears.
-.It Vt ifnet_departure_event
-Callbacks invoked when a network interface is taken down.
-.It Vt ifnet_link_event
-Callback invoked when an interfance link event has happened.
-.It Vt kld_load
-Callbacks invoked after a linker file has been loaded.
-.It Vt kld_unload
-Callbacks invoked after a linker file has been successfully unloaded.
-.It Vt kld_unload_try
-Callbacks invoked before a linker file is about to be unloaded.
-These callbacks may be used to return an error and prevent the unload from
-proceeding.
-.It Vt livedumper_start
-Callback invoked before beginning a kernel dump of the live system.
-.It Vt livedumper_dump
-Callback invoked for each dumped block of data during a live kernel dump.
-.It Vt livedumper_finish
-Callback invoked once a live kernel dump has completed.
-.It Vt lle_event
-Callback invoked when a link layer event has happened.
-.It Vt nmbclusters_change
-Callback invoked when the number of mbuf clusters has changed.
-.It Vt nmbufs_change
-Callback invoked when the number of mbufs has changed.
-.It Vt maxsockets_change
-Callback invoked when the maximum number of sockets has changed.
-.It Vt mountroot
-Callback invoked when root has been mounted.
-.It Vt power_profile_change
-Callbacks invoked when the power profile of the system changes.
-.It Vt power_resume
-Callback invoked when the system has resumed.
-.It Vt power_suspend
-Callback invoked just before the system is suspended.
-.It Vt process_ctor
-Callback invoked when a process is created.
-.It Vt process_dtor
-Callback invoked when a process is destroyed.
-.It Vt process_exec
-Callbacks invoked when a process performs an
-.Fn exec
-operation.
-.It Vt process_exit
-Callbacks invoked when a process exits.
-.It Vt process_fini
-Callback invoked when a process memory is destroyed.
-This is never called.
-.It Vt process_fork
-Callbacks invoked when a process forks a child.
-.It Vt process_init
-Callback invoked when a process is initialized.
-.It Vt random_adaptor_attach
-Callback invoked when a new random module has been loaded.
-.It Vt register_framebuffer
-Callback invoked when a new frame buffer is registered.
-.It Vt route_redirect_event
-Callback invoked when a route gets redirected to a new location.
-.It Vt shutdown_pre_sync
-Callbacks invoked at shutdown time, before file systems are synchronized.
-.It Vt shutdown_post_sync
-Callbacks invoked at shutdown time, after all file systems are synchronized.
-.It Vt shutdown_final
-Callbacks invoked just before halting the system.
-.It Vt tcp_offload_listen_start
-Callback invoked for TCP Offload to start listening for new connections.
-.It Vt tcp_offload_listen_stop
-Callback invoked ror TCP Offload to stop listening for new connections.
-.It Vt thread_ctor
-Callback invoked when a thread object is created.
-.It Vt thread_dtor
-Callback invoked when a thread object is destroyed.
-.It Vt thread_init
-Callback invoked when a thread object is initialized.
-.It Vt thread_fini
-Callback invoked when a thread object is deinitalized.
-.It Vt usb_dev_configured
-Callback invoked when a USB device is configured
-.It Vt unregister_framebuffer
-Callback invoked when a frame buffer is deregistered.
-.It Vt vfs_mounted
-Callback invoked when a file system is mounted.
-.It Vt vfs_unmounted
-Callback invoked when a file system is unmounted.
-.It Vt vlan_config
-Callback invoked when the vlan configuration has changed.
-.It Vt vlan_unconfig
-Callback invoked when a vlan is destroyed.
-.It Vt vm_lowmem
-Callbacks invoked when virtual memory is low.
-.It Vt vxlan_start
-Callback invoked when a vxlan interface starts.
-.It Vt vxlan_stop
-Callback invoked when a vxlan interface stops.
-.It Vt watchdog_list
-Callbacks invoked when the system watchdog timer is reinitialized.
-.El
.Sh RETURN VALUES
The macro
.Fn EVENTHANDLER_REGISTER
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index 1913f03a48fd..e651172be7eb 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -190,8 +190,8 @@ MAN= accept_filter.9 \
ifnet.9 \
inittodr.9 \
insmntque.9 \
+ intr_event.9 \
intro.9 \
- ithread.9 \
kasan.9 \
KASSERT.9 \
kern_reboot.9 \
@@ -241,6 +241,7 @@ MAN= accept_filter.9 \
OF_package_to_path.9 \
ofw_bus_is_compatible.9 \
ofw_bus_status_okay.9 \
+ ofw_graph.9 \
osd.9 \
owll.9 \
own.9 \
@@ -705,6 +706,14 @@ MLINKS+=bus_space.9 bus_space_alloc.9 \
bus_space.9 bus_space_copy_region_stream_8.9 \
bus_space.9 bus_space_free.9 \
bus_space.9 bus_space_map.9 \
+ bus_space.9 bus_space_peek_1.9 \
+ bus_space.9 bus_space_peek_2.9 \
+ bus_space.9 bus_space_peek_4.9 \
+ bus_space.9 bus_space_peek_8.9 \
+ bus_space.9 bus_space_poke_1.9 \
+ bus_space.9 bus_space_poke_2.9 \
+ bus_space.9 bus_space_poke_4.9 \
+ bus_space.9 bus_space_poke_8.9 \
bus_space.9 bus_space_read_1.9 \
bus_space.9 bus_space_read_2.9 \
bus_space.9 bus_space_read_4.9 \
@@ -1022,13 +1031,10 @@ MLINKS+=dnv.9 dnvlist.9 \
dnv.9 dnvlist_take_number.9 \
dnv.9 dnvlist_take_nvlist.9 \
dnv.9 dnvlist_take_string.9
-MLINKS+=domain.9 DOMAIN_SET.9 \
+MLINKS+=domain.9 protosw.9 \
domain.9 domain_add.9 \
- domain.9 domain_init.9 \
- domain.9 pfctlinput.9 \
- domain.9 pffinddomain.9 \
- domain.9 pffindproto.9 \
- domain.9 pffindtype.9
+ domain.9 protosw_register.9 \
+ domain.9 protosw_unregister.9
MLINKS+=drbr.9 drbr_free.9 \
drbr.9 drbr_enqueue.9 \
drbr.9 drbr_dequeue.9 \
@@ -1313,12 +1319,12 @@ MLINKS+=ifnet.9 if_addmulti.9 \
ifnet.9 ifunit.9 \
ifnet.9 ifunit_ref.9
MLINKS+=insmntque.9 insmntque1.9
-MLINKS+=ithread.9 ithread_add_handler.9 \
- ithread.9 ithread_create.9 \
- ithread.9 ithread_destroy.9 \
- ithread.9 ithread_priority.9 \
- ithread.9 ithread_remove_handler.9 \
- ithread.9 ithread_schedule.9
+MLINKS+=intr_event.9 intr_event_add_handler.9 \
+ intr_event.9 intr_event_create.9 \
+ intr_event.9 intr_event_destroy.9 \
+ intr_event.9 intr_event_handle.9 \
+ intr_event.9 intr_event_remove_handler.9 \
+ intr_event.9 intr_priority.9
MLINKS+=kernacc.9 useracc.9
MLINKS+=kernel_mount.9 free_mntarg.9 \
kernel_mount.9 mount_arg.9 \
@@ -1366,7 +1372,6 @@ MLINKS+=kqueue.9 knlist_add.9 \
kqueue.9 knlist_empty.9 \
kqueue.9 knlist_init.9 \
kqueue.9 knlist_init_mtx.9 \
- kqueue.9 knlist_init_rw_reader.9 \
kqueue.9 knlist_remove.9 \
kqueue.9 knlist_remove_inevent.9 \
kqueue.9 knote_fdclose.9 \
@@ -1413,13 +1418,19 @@ MLINKS+=make_dev.9 destroy_dev.9 \
make_dev.9 make_dev_p.9 \
make_dev.9 make_dev_s.9
MLINKS+=malloc.9 free.9 \
+ malloc.9 malloc_aligned.9 \
malloc.9 malloc_domainset.9 \
+ malloc.9 malloc_domainset_aligned.9 \
+ malloc.9 malloc_domainset_exec.9 \
+ malloc.9 malloc_exec.9 \
+ malloc.9 malloc_usable_size.9 \
malloc.9 mallocarray.9 \
malloc.9 mallocarray_domainset.9 \
malloc.9 MALLOC_DECLARE.9 \
malloc.9 MALLOC_DEFINE.9 \
malloc.9 realloc.9 \
- malloc.9 reallocf.9
+ malloc.9 reallocf.9 \
+ malloc.9 zfree.9
MLINKS+=mbchain.9 mb_detach.9 \
mbchain.9 mb_done.9 \
mbchain.9 mb_fixhdr.9 \
@@ -1463,6 +1474,7 @@ MLINKS+=\
mbuf.9 MGET.9 \
mbuf.9 m_get.9 \
mbuf.9 m_get2.9 \
+ mbuf.9 m_get3.9 \
mbuf.9 m_getjcl.9 \
mbuf.9 m_getcl.9 \
mbuf.9 MGETHDR.9 \
@@ -1693,6 +1705,12 @@ MLINKS+=ofw_bus_is_compatible.9 ofw_bus_is_compatible_strict.9 \
ofw_bus_is_compatible.9 ofw_bus_search_compatible.9
MLINKS+= ofw_bus_status_okay.9 ofw_bus_get_status.9 \
ofw_bus_status_okay.9 ofw_bus_node_status_okay.9
+MLINKS+=ofw_graph.9 ofw_graph_get_device_by_port_ep.9 \
+ ofw_graph.9 ofw_graph_get_endpoint_by_idx.9 \
+ ofw_graph.9 ofw_graph_get_port_by_idx.9 \
+ ofw_graph.9 ofw_graph_get_remove_endpoint.9 \
+ ofw_graph.9 ofw_graph_get_remove_parent.9 \
+ ofw_graph.9 ofw_graph_port_get_num_endpoints.9
MLINKS+=osd.9 osd_call.9 \
osd.9 osd_del.9 \
osd.9 osd_deregister.9 \
@@ -2334,9 +2352,7 @@ MLINKS+=vm_map_lookup.9 vm_map_lookup_done.9
MLINKS+=vm_map_max.9 vm_map_min.9 \
vm_map_max.9 vm_map_pmap.9
MLINKS+=vm_map_stack.9 vm_map_growstack.9
-MLINKS+=vm_map_wire.9 vm_map_wire_mapped.9 \
- vm_page_wire.9 vm_page_unwire.9 \
- vm_page_wire.9 vm_page_unwire_noq.9
+MLINKS+=vm_map_wire.9 vm_map_unwire.9
MLINKS+=vm_page_alloc.9 vm_page_alloc_after.9 \
vm_page_alloc.9 vm_page_alloc_contig.9 \
vm_page_alloc.9 vm_page_alloc_contig_domain.9 \
@@ -2375,7 +2391,9 @@ MLINKS+=vm_page_free.9 vm_page_free_toq.9 \
vm_page_free.9 vm_page_free_zero.9 \
vm_page_free.9 vm_page_try_to_free.9
MLINKS+=vm_page_insert.9 vm_page_remove.9
-MLINKS+=vm_page_wire.9 vm_page_unwire.9
+MLINKS+=vm_page_wire.9 vm_page_unwire.9 \
+ vm_page_wire.9 vm_page_unwire_noq.9 \
+ vm_page_wire.9 vm_page_wire_mapped.9
MLINKS+=VOP_ACCESS.9 VOP_ACCESSX.9
MLINKS+=VOP_ATTRIB.9 VOP_GETATTR.9 \
VOP_ATTRIB.9 VOP_SETATTR.9 \
@@ -2436,7 +2454,6 @@ MLINKS+=superio.9 superio_devid.9 \
superio.9 superio_dev_enable.9 \
superio.9 superio_dev_enabled.9 \
superio.9 superio_find_dev.9 \
- superio.9 superio_find_dev.9 \
superio.9 superio_get_dma.9 \
superio.9 superio_get_iobase.9 \
superio.9 superio_get_irq.9 \
diff --git a/share/man/man9/VOP_LOCK.9 b/share/man/man9/VOP_LOCK.9
index db4608037ade..7368ebd49ccf 100644
--- a/share/man/man9/VOP_LOCK.9
+++ b/share/man/man9/VOP_LOCK.9
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 25, 2008
+.Dd August 23, 2022
.Dt VOP_LOCK 9
.Os
.Sh NAME
@@ -44,7 +44,7 @@
.Ft int
.Fn VOP_LOCK "struct vnode *vp" "int flags"
.Ft int
-.Fn VOP_UNLOCK "struct vnode *vp" "int flags"
+.Fn VOP_UNLOCK "struct vnode *vp"
.Ft int
.Fn VOP_ISLOCKED "struct vnode *vp"
.Ft int
diff --git a/share/man/man9/cpuset.9 b/share/man/man9/cpuset.9
index 29dbc8fc733b..1320cd9f4350 100644
--- a/share/man/man9/cpuset.9
+++ b/share/man/man9/cpuset.9
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd December 12, 2019
+.Dd September 23, 2022
.Dt CPUSET 9
.Os
.Sh NAME
@@ -110,9 +110,9 @@ Each CPU is represented by a single bit.
The maximum number of CPUs representable by
.Vt cpuset_t
is
-.Va MAXCPU .
+.Va CPU_SETSIZE .
Individual CPUs in cpusets are referenced with indices zero through
-.Fa MAXCPU - 1 .
+.Fa CPU_SETSIZE - 1 .
.Pp
The
.Fn CPUSET_T_INITIALIZER
diff --git a/share/man/man9/crypto_request.9 b/share/man/man9/crypto_request.9
index 1b7379245608..cb4d07189394 100644
--- a/share/man/man9/crypto_request.9
+++ b/share/man/man9/crypto_request.9
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 4, 2022
+.Dd November 2, 2022
.Dt CRYPTO_REQUEST 9
.Os
.Sh NAME
@@ -441,17 +441,12 @@ the callback is invoked synchronously if the request was processed by a
software driver or asynchronously if the request was processed by a
hardware driver.
.Pp
-If a request was scheduled to the taskqueue via
-.Dv CRYPTO_F_ASYNC ,
+If a request was scheduled to the taskqueue with
+.Dv CRYPTO_ASYNC_ORDERED ,
callbacks are always invoked asynchronously ignoring
.Dv CRYPTO_F_CBIMM
and
.Dv CRYPTO_F_CBIFSYNC .
-In this case,
-.Dv CRYPTO_F_ASYNC_KEEPORDER
-may be set to ensure that callbacks for requests on a given session are
-invoked in the same order that requests were queued to the session via
-.Fn crypto_dispatch .
This flag is used by IPsec to ensure that decrypted network packets are
passed up the network stack in roughly the same order they were received.
.Ss Other Request Fields
diff --git a/share/man/man9/device_get_property.9 b/share/man/man9/device_get_property.9
index d925f5f224db..93c01f199477 100644
--- a/share/man/man9/device_get_property.9
+++ b/share/man/man9/device_get_property.9
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 18, 2022
+.Dd September 29, 2022
.Dt DEVICE_GET_PROPERTY 9
.Os
.Sh NAME
@@ -54,6 +54,9 @@ Currently the following types are supported:
The underlying property is a string of bytes.
.It Dv DEVICE_PROP_ANY
Wildcard property type.
+.It Dv DEVICE_PROP_HANDLE
+Following a reference the underlying property is a handle of the
+respective bus.
.It Dv DEVICE_PROP_UINT32
The underlying property is an array of unsigned 32 bit integers.
The
diff --git a/share/man/man9/domain.9 b/share/man/man9/domain.9
index 2d42e0b8cb40..5912a7d5e717 100644
--- a/share/man/man9/domain.9
+++ b/share/man/man9/domain.9
@@ -1,5 +1,6 @@
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
+.\" Copyright (C) 2022 Gleb Smirnoff <glebius@FreeBSD.org>
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -26,221 +27,204 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 3, 2022
+.Dd September 14, 2022
.Dt DOMAIN 9
.Os
.Sh NAME
-.Nm domain_add ,
-.Nm domain_init ,
-.Nm pfctlinput ,
-.Nm pffinddomain ,
-.Nm pffindproto ,
-.Nm pffindtype ,
-.Nm DOMAIN_SET
-.Nd "network domain management"
+.Nm domain ,
+.Nm protosw
+.Nd "programming interface for kernel socket implementation"
.Sh SYNOPSIS
.In sys/param.h
.In sys/kernel.h
.In sys/protosw.h
.In sys/domain.h
.Ft void
-.Fn domain_add "void *data"
+.Fn domain_add "struct domain *dom"
.Ft void
-.Fn domain_init "void *data"
+.Fn domain_remove "struct domain *dom"
.Ft void
-.Fn pfctlinput "int cmd" "struct sockaddr *sa"
-.Ft struct domain *
-.Fn pffinddomain "int family"
-.Ft struct protosw *
-.Fn pffindproto "int family" "int protocol" "int type"
-.Ft struct protosw *
-.Fn pffindtype "int family" "int type"
-.Ft void
-.Fn DOMAIN_SET "name"
+.Fn DOMAIN_SET "domain"
+.Ft int
+.Fn protosw_register "struct domain *dom" "struct protosw *pr"
+.Ft int
+.Fn protosw_unregister "struct protosw *pr"
.Sh DESCRIPTION
-Network protocols installed in the system are maintained within what
-are called domains
-(for example the
-.Va inetdomain
-and
-.Va localdomain ) .
+The
+.Nm
+subsystem allows implementation of communication protocols that are exposed to
+the userland via the
+.Xr socket 2
+API.
+When an application performs a
+.Fn socket "domain" "type" "protocol"
+syscall, the kernel searches for a
+.Nm
+matching the
+.Ar domain
+argument, then within this domain, searches for a protocol
+matching
+.Ar type .
+If the third argument,
+.Ar protocol ,
+is not
+.Dv 0 ,
+that value must also match.
+The structure found must implement certain methods, so that
+.Xr socket 2
+API works for this particular kind of a socket.
+.Pp
+A minimal
+.Nm
+structure implementing a domain shall be initialized with sparse C99
+initializer and has public fields as follows:
.Bd -literal
struct domain {
- int dom_family; /* AF_xxx */
- char *dom_name;
- int dom_flags;
- int (*dom_probe)(void); /* check for support (optional) */
- int (*dom_externalize) /* externalize access rights */
- (struct mbuf *, struct mbuf **);
- void (*dom_dispose) /* dispose of internalized rights */
- (struct mbuf *);
- struct protosw *dom_protosw, *dom_protoswNPROTOSW;
- struct domain *dom_next;
- int (*dom_rtattach) /* initialize routing table */
- (void **, int);
- int (*dom_rtdetach) /* clean up routing table */
- (void **, int);
- void *(*dom_ifattach)(struct ifnet *);
- void (*dom_ifdetach)(struct ifnet *, void *);
- int (*dom_ifmtu)(struct ifnet *);
- /* af-dependent data on ifnet */
+ /*
+ * Mandatory fields.
+ */
+ int dom_family; /* PF_xxx, first argument of socket(2) */
+ char *dom_name; /* text name of the domain */
+ u_int dom_nprotosw; /* length of dom_protosw[] */
+ /*
+ * Following methods are optional.
+ */
+ int (*dom_probe)(void); /* check for support */
+ struct rib_head *(*dom_rtattach)(uint32_t); /* init route table */
+ void (*dom_rtdetach)(struct rib_head *); /* clean up table */
+ void *(*dom_ifattach)(struct ifnet *); /* interface attach */
+ void (*dom_ifdetach)(struct ifnet *, void *);/* & detach callbacks */
+ int (*dom_ifmtu)(struct ifnet *); /* mtu change */
+ /*
+ * Mandatory variable size array of pointers to protosw structs.
+ */
+ struct protosw *dom_protosw[];
};
.Ed
.Pp
-Each domain contains an array of protocol switch structures
+Each domain contains the
+.Va dom_protosw
+array of protocol switch structures
.Pq Vt "struct protosw *" ,
one for each socket type supported.
+The array may have
+.Dv NULL
+spacers for loadable protocols.
+Sparse C99 initializers shall be used to initialize
+.Nm protosw
+structures.
+The structure has mandatory field
+.Va pr_type
+and mandatory
+.Va pr_attach
+method.
+The rest of the methods are optional, but a meaningful protocol should
+implement some.
.Bd -literal
struct protosw {
- short pr_type; /* socket type used for */
- struct domain *pr_domain; /* domain protocol a member of */
- short pr_protocol; /* protocol number */
- short pr_flags; /* see below */
-/* protocol-protocol hooks */
- pr_input_t *pr_input; /* input to protocol (from below) */
- pr_output_t *pr_output; /* output to protocol (from above) */
- pr_ctlinput_t *pr_ctlinput; /* control input (from below) */
- pr_ctloutput_t *pr_ctloutput; /* control output (from above) */
-/* utility hooks */
- pr_fasttimo_t *pr_fasttimo; /* fast timeout (200ms) */
- pr_slowtimo_t *pr_slowtimo; /* slow timeout (500ms) */
- pr_drain_t *pr_drain; /* flush any excess space possible */
-
- struct pr_usrreqs *pr_usrreqs; /* user-protocol hook */
+ short pr_type; /* second argument of socket(2) */
+ short pr_protocol; /* third argument of socket(2) or 0 */
+ short pr_flags; /* see protosw.h */
+ pr_soreceive_t *pr_soreceive; /* recv(2) */
+ pr_rcvd_t *pr_rcvd; /* soreceive_generic() if PR_WANTRCV */
+ pr_sosend_t *pr_sosend; /* send(2) */
+ pr_send_t *pr_send; /* send(2) via sosend_generic() */
+ pr_ready_t *pr_ready; /* sendfile/ktls readyness */
+ pr_sopoll_t *pr_sopoll; /* poll(2) */
+ pr_attach_t *pr_attach; /* creation: socreate(), sonewconn() */
+ pr_detach_t *pr_detach; /* destruction: sofree() */
+ pr_connect_t *pr_connect; /* connect(2) */
+ pr_disconnect_t *pr_disconnect; /* sodisconnect() */
+ pr_close_t *pr_close; /* close(2) */
+ pr_shutdown_t *pr_shutdown; /* shutdown(2) */
+ pr_abort_t *pr_abort; /* abrupt tear down: soabort() */
+ pr_aio_queue_t *pr_aio_queue; /* aio(9) */
+ pr_bind_t *pr_bind; /* bind(2) */
+ pr_bindat_t *pr_bindat; /* bindat(2) */
+ pr_listen_t *pr_listen; /* listen(2) */
+ pr_accept_t *pr_accept; /* accept(2) */
+ pr_connectat_t *pr_connectat; /* connectat(2) */
+ pr_connect2_t *pr_connect2; /* socketpair(2) */
+ pr_control_t *pr_control; /* ioctl(2) */
+ pr_rcvoob_t *pr_rcvoob; /* soreceive_rcvoob() */
+ pr_ctloutput_t *pr_ctloutput; /* control output (from above) */
+ pr_peeraddr_t *pr_peeraddr; /* getpeername(2) */
+ pr_sockaddr_t *pr_sockaddr; /* getsockname(2) */
+ pr_sense_t *pr_sense; /* stat(2) */
};
.Ed
.Pp
-The following functions handle the registration of a new domain,
-lookups of specific protocols and protocol types within those domains,
-and handle control messages from the system.
-.Pp
-.Fn pfctlinput
-is called by the system whenever an event occurs that could affect every
-domain.
-Examples of those types of events are routing table changes, interface
-shutdowns or certain
-.Tn ICMP
-message types.
-When called,
-.Fn pfctlinput
-calls the protocol specific
-.Fn pr_ctlinput
-function for each protocol in that has defined one, in every domain.
+The following functions handle the registration of new domains and protocols.
.Pp
.Fn domain_add
adds a new protocol domain to the system.
-The argument
-.Fa data
-is cast directly to
-.Vt "struct domain *"
-within the function, but is declared
-.Vt "void *"
-in order to prevent compiler warnings when new domains are registered with
-.Fn SYSINIT .
In most cases
.Fn domain_add
is not called directly, instead
.Fn DOMAIN_SET
-is used.
-.Pp
-If the new domain has defined a probe routine, it is called first in
+is used, which is a wrapper around
+.Fn SYSINIT
+macro.
+If the new domain has defined a
+.Va dom_probe
+routine, it is called first in
.Fn domain_add
to determine if the domain should be supported on the current system.
-If the probe routine returns a non-0 value, then the domain will not be
-marked as supported.
-Unsupported domains do not proceed with the initialization process and are not
-discoverable by
-.Fn pffinddomain ,
-.Fn pffindtype ,
-or
-.Fn pffindproto .
-.Pp
-.Fn domain_init
-is called after
-.Fn domain_add
-during boot and for each
-.Xr vnet 9 .
-If the new domain has defined an initialization routine, it is called during
-.Fn domain_init ;
-as well, each of the protocols within the domain that have defined an
-initialization routine will have theirs called.
-Note that domain initialization cannot fail at this time.
-.Pp
+If the probe routine returns a non-0 value, then the domain will not be added.
Once a domain is added it cannot be completely unloaded.
This is because there is
no reference counting system in place to determine if there are any
active references from sockets within that domain.
+However, the exprimental
+.Fn domain_remove
+exists, and unloadable domains may be supported in the future.
.Pp
-.Fn pffinddomain
-finds a domain by family.
-If the domain cannot be found,
-.Dv NULL
-is returned.
-.Pp
-.Fn pffindtype
-and
-.Fn pffindproto
-look up a protocol by its number or by its type.
-In most cases, if the protocol or type cannot be found,
-.Dv NULL
-is returned, but
-.Fn pffindproto
-may return the default if the requested type is
-.Dv SOCK_RAW ,
-a protocol switch type of
-.Dv SOCK_RAW
-is found, and the domain has a default raw protocol.
-.Pp
-Both functions are called by
-.Fn socreate
-in order to resolve the protocol for the socket currently being created.
-.Pp
-.Fn DOMAIN_SET
-is a macro that simplifies the registration of a domain via
-.Fn SYSINIT .
-The code resulting from the macro expects there to be a domain structure
-named
-.Dq Fa name Ns Li domain
-where
-.Fa name
-is the argument to
-.Fn DOMAIN_SET :
-.Bd -literal
-struct domain localdomain =
-{ AF_LOCAL, "local", unp_init, unp_externalize, unp_dispose,
- localsw, &localsw[sizeof(localsw)/sizeof(localsw[0])] };
-
-DOMAIN_SET(local);
+.Fn protosw_register
+dynamically adds a protocol to a domain, if the latter
+has an empty slot in its
+.Va dom_protosw .
+Dynamically added protocol can later be unloaded with
+.Fn protosw_unregister .
.Ed
.Sh RETURN VALUES
-Both
-.Fn pffindtype
+The
+.Fn domain_add
+never fails, but it may not add a domain if its
+.Va dom_probe
+fails.
+.Pp
+The
+.Fn protosw_register
+function may fail if:
+.Bl -tag -width Er
+.It Bq Er EEXIST
+A protocol with the same value of
+.Va pr_type
and
-.Fn pffindproto
-return a
-.Vt "struct protosw *"
-for the protocol requested.
-If the protocol or socket type is not found,
-.Dv NULL
-is returned.
-In the case of
-.Fn pffindproto ,
-the default protocol may be returned for
-.Dv SOCK_RAW
-types if the domain has a default raw protocol.
+.Va pr_protocol
+already exists in the domain.
+.It Bq Er ENOMEM
+The domain doesn't have any NULL slots in its
+.Va dom_protosw .
+.El
.Sh SEE ALSO
-.Xr socket 2
+.Xr socket 2 ,
+.Xr SYSINIT 9
.Sh HISTORY
-The functions
-.Fn domain_add ,
-.Fn pfctlinput ,
-.Fn pffinddomain ,
-.Fn pffindproto ,
-.Fn pffindtype
-and
-.Fn DOMAIN_SET
-first appeared in
-.Fx 4.4 .
+The
+.Nm
+subsystem first appeared in
+.Bx 4.3
+as the part of the very first
+.Xr socket 2
+API implementation.
+.Pp
+The
+.Nm
+subsystem and this manual page were significantly rewritten in
+.Fx 14 .
.Sh AUTHORS
This manual page was written by
-.An Chad David Aq Mt davidc@acns.ab.ca .
+.An Chad David Aq Mt davidc@acns.ab.ca
+and
+.An Gleb Smirnoff Aq Mt glebius@FreeBSD.org .
diff --git a/share/man/man9/ifnet.9 b/share/man/man9/ifnet.9
index dd203cb5580b..a1a8acdc5b0b 100644
--- a/share/man/man9/ifnet.9
+++ b/share/man/man9/ifnet.9
@@ -736,9 +736,9 @@ This Ethernet interface supports TCP6 Segmentation offloading.
A shorthand for
.Pq Dv IFCAP_TSO4 | IFCAP_TSO6 .
.It Dv IFCAP_TOE4
-This Ethernet interface supports TCP offloading.
+This Ethernet interface supports TCP4 Offload Engine.
.It Dv IFCAP_TOE6
-This Ethernet interface supports TCP6 offloading.
+This Ethernet interface supports TCP6 Offload Engine.
.It Dv IFCAP_TOE
A shorthand for
.Pq Dv IFCAP_TOE4 | IFCAP_TOE6 .
@@ -753,13 +753,6 @@ as those sent by
.It Dv IFCAP_WOL
A shorthand for
.Pq Dv IFCAP_WOL_UCAST | IFCAP_WOL_MCAST | IFCAP_WOL_MAGIC .
-.It Dv IFCAP_TOE4
-This Ethernet interface supports TCP4 Offload Engine.
-.It Dv IFCAP_TOE6
-This Ethernet interface supports TCP6 Offload Engine.
-.It Dv IFCAP_TOE
-A shorthand for
-.Pq Dv IFCAP_TOE4 | IFCAP_TOE6 .
.It Dv IFCAP_VLAN_HWFILTER
This interface supports frame filtering in hardware on
.Xr vlan 4
diff --git a/share/man/man9/intr_event.9 b/share/man/man9/intr_event.9
new file mode 100644
index 000000000000..70ea1e1bfc43
--- /dev/null
+++ b/share/man/man9/intr_event.9
@@ -0,0 +1,475 @@
+.\" Copyright (c) 2001 John H. Baldwin <jhb@FreeBSD.org>
+.\" Copyright (c) 2006 Tom Rhodes <trhodes@FreeBSD.org>
+.\" Copyright (c) 2021 Mitchell Horne <mhorne@FreeBSD.org>
+.\" Copyright (c) 2022 The FreeBSD Foundation
+.\"
+.\" Portions of this documentation were written by Mitchell Horne
+.\" under sponsorship from the FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd October 30, 2022
+.Dt INTR_EVENT 9
+.Os
+.Sh NAME
+.Nm intr_event_add_handler ,
+.Nm intr_event_create ,
+.Nm intr_event_destroy ,
+.Nm intr_event handle ,
+.Nm intr_event_remove_handler ,
+.Nm intr_priority
+.Nd "kernel interrupt handler and thread API"
+.Sh SYNOPSIS
+.In sys/param.h
+.In sys/bus.h
+.In sys/interrupt.h
+.Ft int
+.Fo intr_event_add_handler
+.Fa "struct intr_event *ie"
+.Fa "const char *name"
+.Fa "driver_filter_t filter"
+.Fa "driver_intr_t handler"
+.Fa "void *arg"
+.Fa "u_char pri"
+.Fa "enum intr_type flags"
+.Fa "void **cookiep"
+.Fc
+.Ft int
+.Fo intr_event_create
+.Fa "struct intr_event **event"
+.Fa "void *source"
+.Fa "int flags"
+.Fa "int irq"
+.Fa "void (*pre_ithread)(void *)"
+.Fa "void (*post_ithread)(void *)"
+.Fa "void (*post_filter)(void *)"
+.Fa "int (*assign_cpu)(void *, int)"
+.Fa "const char *fmt"
+.Fa "..."
+.Fc
+.Ft int
+.Fn intr_event_destroy "struct intr_event *ie"
+.Ft int
+.Fn intr_event_handle "struct intr_event *ie" "struct trapframe *frame"
+.Ft int
+.Fn intr_event_remove_handler "void *cookie"
+.Ft u_char
+.Fn intr_priority "enum intr_type flags"
+.Sh DESCRIPTION
+The interrupt event API provides methods to manage the registration and
+execution of interrupt handlers and their associated thread contexts.
+.Pp
+Each interrupt event in the system corresponds to a single hardware or software
+interrupt source.
+Each interrupt event maintains a list of interrupt handlers, sorted by
+priority, which will be invoked when handling the event.
+An interrupt event will typically, but not always, have an associated
+.Xr kthread 9 ,
+known as the interrupt thread.
+Finally, each event contains optional callback functions which will be
+invoked before and after the handler functions themselves.
+.Pp
+An interrupt handler contains two distinct handler functions:
+the
+.Em filter
+and the thread
+.Em handler .
+The
+.Em filter
+function is run from interrupt context and is intended to perform quick
+handling such as acknowledging or masking a hardware interrupt,
+and queueing work for the ensuing thread
+.Em handler .
+Both functions are optional; each interrupt handler may choose to register a
+filter, a thread handler, or both.
+Each interrupt handler also consists of a name,
+a set of flags,
+and an opaque argument which will be passed to both the
+.Em filter
+and
+.Em handler
+functions.
+.Ss Handler Constraints
+The
+.Em filter
+function is executed inside a
+.Xr critical 9
+section.
+Therefore, filters may not yield the CPU for any reason, and may only use spin
+locks to access shared data.
+Allocating memory within a filter is not permitted.
+.Pp
+The
+.Em handler
+function executes from the context of the associated interrupt kernel thread.
+Sleeping is not permitted, but the interrupt thread may be preempted by higher
+priority threads.
+Thus, threaded handler functions may obtain non-sleepable locks, as described
+in
+.Xr locking 9 .
+Any memory or zone allocations in an interrupt thread must specify the
+.Dv M_NOWAIT
+flag, and any allocation errors must be handled.
+.Pp
+The exception to these constraints is software interrupt threads, which are
+allowed to sleep but should be allocated and scheduled using the
+.Xr swi 9
+interface.
+.Ss Function Descriptions
+The
+.Fn intr_event_create
+function creates a new interrupt event.
+The
+.Fa event
+argument points to a
+.Vt struct intr_event
+pointer that will reference the newly created event upon success.
+The
+.Fa source
+argument is an opaque pointer which will be passed to the
+.Fa pre_ithread ,
+.Fa post_ithread ,
+and
+.Fa post_filter
+callbacks.
+The
+.Fa flags
+argument is a mask of properties of this thread.
+The only valid flag currently for
+.Fn intr_event_create
+is
+.Dv IE_SOFT
+to specify that this interrupt thread is a software interrupt.
+The
+.Fa enable
+and
+.Fa disable
+arguments specify optional functions used to enable and disable this
+interrupt thread's interrupt source.
+The
+.Fa irq
+argument is the unique interrupt vector number corresponding to the event.
+The
+.Fa pre_ithread ,
+.Fa post_ithread ,
+and
+.Fa post_filter
+arguments are callback functions that are invoked at different
+points while handling an interrupt.
+This is described in more detail in the
+.Sx Handler Callbacks
+section, below.
+They may be
+.Va NULL
+to specify no callback.
+The
+.Fa assign_cpu
+argument points to a callback function that will be invoked when binding
+an interrupt to a particular CPU.
+It may be
+.Va NULL
+if binding is unsupported.
+The
+remaining arguments form a
+.Xr printf 9
+argument list that is used to build the base name of the new interrupt thread.
+The full name of an interrupt thread is formed by concatenating the base
+name of the interrupt thread with the names of all of its interrupt handlers.
+.Pp
+The
+.Fn intr_event_destroy
+function destroys a previously created interrupt event by releasing its
+resources.
+.\" The following is not true (yet):
+.\"and arranging for the backing kernel thread to terminate.
+An interrupt event can only be destroyed if it has no handlers remaining.
+.Pp
+The
+.Fn intr_event_add_handler
+function adds a new handler to an existing interrupt event specified by
+.Fa ie .
+The
+.Fa name
+argument specifies a name for this handler.
+The
+.Fa filter
+argument provide the filter function to execute.
+The
+.Fa handler
+argument provides the handler function to be executed from the
+event's interrupt thread.
+The
+.Fa arg
+argument will be passed to the
+.Fa filter
+and
+.Fa handler
+functions when they are invoked.
+The
+.Fa pri
+argument specifies the priority of this handler,
+corresponding to the values defined in
+.In sys/priority.h .
+It determines the order this handler is called relative to the other handlers
+for this event, as well as the scheduling priority of of the backing kernel
+thread.
+.Fa flags
+argument can be used to specify properties of this handler as defined in
+.In sys/bus.h .
+If
+.Fa cookiep
+is not
+.Dv NULL ,
+then it will be assigned a cookie that can be used later to remove this
+handler.
+.Pp
+The
+.Fn intr_event_handle
+function is the main entry point into the interrupt handling code.
+It must be called from an interrupt context.
+The function will execute all filter handlers associated with the interrupt
+event
+.Fa ie ,
+and schedule the associated interrupt thread to run, if applicable.
+The
+.Fa frame
+argument is used to pass a pointer to the
+.Vt struct trapframe
+containing the machine state at the time of the interrupt.
+The main body of this function runs within a
+.Xr critical 9
+section.
+.Pp
+The
+.Fn intr_event_remove_handler
+function removes an interrupt handler from the interrupt event specified by
+.Fa ie .
+The
+.Fa cookie
+argument, obtained from
+.Fn intr_event_add_handler ,
+identifies the handler to remove.
+.Pp
+The
+.Fn intr_priority
+function translates the
+.Dv INTR_TYPE_*
+interrupt flags into interrupt thread scheduling priorities.
+.Pp
+The interrupt flags not related to the type of a particular interrupt
+.Pq Dv INTR_TYPE_*
+can be used to specify additional properties of both hardware and software
+interrupt handlers.
+The
+.Dv INTR_EXCL
+flag specifies that this handler cannot share an interrupt thread with
+another handler.
+The
+.Dv INTR_MPSAFE
+flag specifies that this handler is MP safe in that it does not need the
+Giant mutex to be held while it is executed.
+The
+.Dv INTR_ENTROPY
+flag specifies that the interrupt source this handler is tied to is a good
+source of entropy, and thus that entropy should be gathered when an interrupt
+from the handler's source triggers.
+Presently, the
+.Dv INTR_ENTROPY
+flag is not valid for software interrupt handlers.
+.Ss Handler Callbacks
+Each
+.Vt struct intr_event
+is assigned three optional callback functions when it is created:
+.Fa pre_ithread ,
+.Fa post_ithread ,
+and
+.Fa post_filter .
+These callbacks are intended to be defined by the interrupt controller driver,
+to allow for actions such as masking and unmasking hardware interrupt signals.
+.Pp
+When an interrupt is triggered, all filters are run to determine if any
+threaded interrupt handlers should be scheduled for execution by the associated
+interrupt thread. If no threaded handlers are scheduled, the
+.Fa post_filter
+callback is invoked which should acknowledge the interrupt and permit it to
+trigger in the future.
+If any threaded handlers are scheduled, the
+.Fa pre_ithread
+callback is invoked instead.
+This handler should acknowledge the interrupt, but it should also ensure that
+the interrupt will not fire continuously until after the threaded handlers have
+executed.
+Typically this callback masks level-triggered interrupts in an interrupt
+controller while leaving edge-triggered interrupts alone.
+Once all threaded handlers have executed,
+the
+.Fa post_ithread
+callback is invoked from the interrupt thread to enable future interrupts.
+Typically this callback unmasks level-triggered interrupts in an interrupt
+controller.
+.Sh RETURN VALUES
+The
+.Fn intr_event_add_handler ,
+.Fn intr_event_create ,
+.Fn intr_event_destroy ,
+.Fn intr_event_handle ,
+and
+.Fn intr_event_remove_handler
+functions return zero on success and non-zero on failure.
+The
+.Fn intr_priority
+function returns a process priority corresponding to the passed in interrupt
+flags.
+.Sh EXAMPLES
+The
+.Xr swi_add 9
+function demonstrates the use of
+.Fn intr_event_create
+and
+.Fn intr_event_add_handler .
+.Bd -literal -offset indent
+int
+swi_add(struct intr_event **eventp, const char *name, driver_intr_t handler,
+ void *arg, int pri, enum intr_type flags, void **cookiep)
+{
+ struct intr_event *ie;
+ int error = 0;
+
+ if (flags & INTR_ENTROPY)
+ return (EINVAL);
+
+ ie = (eventp != NULL) ? *eventp : NULL;
+
+ if (ie != NULL) {
+ if (!(ie->ie_flags & IE_SOFT))
+ return (EINVAL);
+ } else {
+ error = intr_event_create(&ie, NULL, IE_SOFT, 0,
+ NULL, NULL, NULL, swi_assign_cpu, "swi%d:", pri);
+ if (error)
+ return (error);
+ if (eventp != NULL)
+ *eventp = ie;
+ }
+ if (handler != NULL) {
+ error = intr_event_add_handler(ie, name, NULL, handler, arg,
+ PI_SWI(pri), flags, cookiep);
+ }
+ return (error);
+}
+.Ed
+.Sh ERRORS
+The
+.Fn intr_event_add_handler
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The
+.Fa ie
+or
+.Fa name
+arguments are
+.Dv NULL .
+.It Bq Er EINVAL
+The
+.Fa handler
+and
+.Fa filter
+arguments are both
+.Dv NULL .
+.It Bq Er EINVAL
+The
+.Dv IH_EXCLUSIVE
+flag is specified and the interrupt thread
+.Fa ie
+already has at least one handler, or the interrupt thread
+.Fa ie
+already has an exclusive handler.
+.El
+.Pp
+The
+.Fn intr_event_create
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+A flag other than
+.Dv IE_SOFT
+was specified in the
+.Fa flags
+parameter.
+.El
+.Pp
+The
+.Fn intr_event_destroy
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The
+.Fa ie
+argument is
+.Dv NULL .
+.It Bq Er EBUSY
+The interrupt event pointed to by
+.Fa ie
+has at least one handler which has not been removed with
+.Fn intr_event_remove_handler .
+.El
+.Pp
+The
+.Fn intr_event_handle
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The
+.Fa ie
+argument is
+.Dv NULL .
+.It Bq Er EINVAL
+There are no interrupt handlers assigned to
+.Fa ie .
+.It Bq Er EINVAL
+The interrupt was not acknowledged by any filter and has no associated thread
+handler.
+.El
+.Pp
+The
+.Fn intr_event_remove_handler
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The
+.Fa cookie
+argument is
+.Dv NULL .
+.El
+.Sh SEE ALSO
+.Xr critical 9 ,
+.Xr kthread 9 ,
+.Xr locking 9 ,
+.Xr malloc 9 ,
+.Xr swi 9 ,
+.Xr uma 9
+.Sh HISTORY
+Interrupt threads and their corresponding API first appeared in
+.Fx 5.0 .
diff --git a/share/man/man9/ithread.9 b/share/man/man9/ithread.9
deleted file mode 100644
index 2a2e44f3d6af..000000000000
--- a/share/man/man9/ithread.9
+++ /dev/null
@@ -1,350 +0,0 @@
-.\" Copyright (c) 2001 John H. Baldwin <jhb@FreeBSD.org>
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 25, 2006
-.Dt ITHREAD 9
-.Os
-.Sh NAME
-.Nm ithread_add_handler ,
-.Nm ithread_create ,
-.Nm ithread_destroy ,
-.Nm ithread_priority ,
-.Nm ithread_remove_handler ,
-.Nm ithread_schedule
-.Nd kernel interrupt threads
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/bus.h
-.In sys/interrupt.h
-.Ft int
-.Fo ithread_add_handler
-.Fa "struct ithd *ithread"
-.Fa "const char *name"
-.Fa "driver_intr_t handler"
-.Fa "void *arg"
-.Fa "u_char pri"
-.Fa "enum intr_type flags"
-.Fa "void **cookiep"
-.Fc
-.Ft int
-.Fo ithread_create
-.Fa "struct ithd **ithread"
-.Fa "int vector"
-.Fa "int flags"
-.Fa "void (*disable)(int)"
-.Fa "void (*enable)(int)"
-.Fa "const char *fmt"
-.Fa "..."
-.Fc
-.Ft int
-.Fn ithread_destroy "struct ithd *ithread"
-.Ft u_char
-.Fn ithread_priority "enum intr_type flags"
-.Ft int
-.Fn ithread_remove_handler "void *cookie"
-.Ft int
-.Fn ithread_schedule "struct ithd *ithread" "int do_switch"
-.Sh DESCRIPTION
-Interrupt threads are kernel threads that run a list of handlers when
-triggered by either a hardware or software interrupt.
-Each interrupt handler has a name, handler function, handler argument,
-priority, and various flags.
-Each interrupt thread maintains a list of handlers sorted by priority.
-This results in higher priority handlers being executed prior to lower
-priority handlers.
-Each thread assumes the priority of its highest priority handler for its
-process priority, or
-.Dv PRIO_MAX
-if it has no handlers.
-Interrupt threads are also associated with a single interrupt source,
-represented as a vector number.
-.Pp
-The
-.Fn ithread_create
-function creates a new interrupt thread.
-The
-.Fa ithread
-argument points to an
-.Vt struct ithd
-pointer that will point to the newly created thread upon success.
-The
-.Fa vector
-argument specifies the interrupt source to associate this thread with.
-The
-.Fa flags
-argument is a mask of properties of this thread.
-The only valid flag currently for
-.Fn ithread_create
-is
-.Dv IT_SOFT
-to specify that this interrupt thread is a software interrupt.
-The
-.Fa enable
-and
-.Fa disable
-arguments specify optional functions used to enable and disable this
-interrupt thread's interrupt source.
-The functions receive the vector corresponding to the thread's interrupt
-source as their only argument.
-The remaining arguments form a
-.Xr printf 9
-argument list that is used to build the base name of the new ithread.
-The full name of an interrupt thread is formed by concatenating the base
-name of an interrupt thread with the names of all of its interrupt handlers.
-.Pp
-The
-.Fn ithread_destroy
-function destroys a previously created interrupt thread by releasing its
-resources and arranging for the backing kernel thread to terminate.
-An interrupt thread can only be destroyed if it has no handlers remaining.
-.Pp
-The
-.Fn ithread_add_handler
-function adds a new handler to an existing interrupt thread specified by
-.Fa ithread .
-The
-.Fa name
-argument specifies a name for this handler.
-The
-.Fa handler
-and
-.Fa arg
-arguments provide the function to execute for this handler and an argument
-to pass to it.
-The
-.Fa pri
-argument specifies the priority of this handler and is used both in sorting
-it in relation to the other handlers for this thread and to specify the
-priority of the backing kernel thread.
-The
-.Fa flags
-argument can be used to specify properties of this handler as defined in
-.In sys/bus.h .
-If
-.Fa cookiep
-is not
-.Dv NULL ,
-then it will be assigned a cookie that can be used later to remove this
-handler.
-.Pp
-The
-.Fn ithread_remove_handler
-removes a handler from an interrupt thread.
-The
-.Fa cookie
-argument specifies the handler to remove from its thread.
-.Pp
-The
-.Fn ithread_schedule
-function schedules an interrupt thread to run.
-If the
-.Fa do_switch
-argument is non-zero and the interrupt thread is idle, then a context switch
-will be forced after putting the interrupt thread on the run queue.
-.Pp
-The
-.Fn ithread_priority
-function translates the
-.Dv INTR_TYPE_*
-interrupt flags into interrupt handler priorities.
-.Pp
-The interrupt flags not related to the type of a particular interrupt
-.Pq Dv INTR_TYPE_*
-can be used to specify additional properties of both hardware and software
-interrupt handlers.
-The
-.Dv INTR_EXCL
-flag specifies that this handler cannot share an interrupt thread with
-another handler.
-The
-.Dv INTR_MPSAFE
-flag specifies that this handler is MP safe in that it does not need the
-Giant mutex to be held while it is executed.
-The
-.Dv INTR_ENTROPY
-flag specifies that the interrupt source this handler is tied to is a good
-source of entropy, and thus that entropy should be gathered when an interrupt
-from the handler's source triggers.
-Presently, the
-.Dv INTR_ENTROPY
-flag is not valid for software interrupt handlers.
-.Pp
-It is not permitted to sleep in an interrupt thread; hence, any memory
-or zone allocations in an interrupt thread should be specified with the
-.Dv M_NOWAIT
-flag set.
-Any allocation errors must be handled thereafter.
-.Sh RETURN VALUES
-The
-.Fn ithread_add_handler ,
-.Fn ithread_create ,
-.Fn ithread_destroy ,
-.Fn ithread_remove_handler ,
-and
-.Fn ithread_schedule
-functions return zero on success and non-zero on failure.
-The
-.Fn ithread_priority
-function returns a process priority corresponding to the passed in interrupt
-flags.
-.Sh EXAMPLES
-The
-.Fn swi_add
-function demonstrates the use of
-.Fn ithread_create
-and
-.Fn ithread_add_handler .
-.Bd -literal -offset indent
-int
-swi_add(struct ithd **ithdp, const char *name, driver_intr_t handler,
- void *arg, int pri, enum intr_type flags, void **cookiep)
-{
- struct proc *p;
- struct ithd *ithd;
- int error;
-
- if (flags & INTR_ENTROPY)
- return (EINVAL);
-
- ithd = (ithdp != NULL) ? *ithdp : NULL;
-
- if (ithd != NULL) {
- if ((ithd->it_flags & IT_SOFT) == 0)
- return(EINVAL);
- } else {
- error = ithread_create(&ithd, pri, IT_SOFT, NULL, NULL,
- "swi%d:", pri);
- if (error)
- return (error);
-
- if (ithdp != NULL)
- *ithdp = ithd;
- }
- return (ithread_add_handler(ithd, name, handler, arg, pri + PI_SOFT,
- flags, cookiep));
-}
-.Ed
-.Sh ERRORS
-The
-.Fn ithread_add_handler
-function will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-Any of the
-.Fa ithread ,
-.Fa handler ,
-or
-.Fa name
-arguments are
-.Dv NULL .
-.It Bq Er EINVAL
-The
-.Dv INTR_EXCL
-flag is specified and the interrupt thread
-.Fa ithread
-already has at least one handler, or the interrupt thread
-.Fa ithread
-already has an exclusive handler.
-.It Bq Er ENOMEM
-Could not allocate needed memory for this handler.
-.El
-.Pp
-The
-.Fn ithread_create
-function will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The system-imposed limit on the total
-number of processes under execution would be exceeded.
-The limit is given by the
-.Xr sysctl 3
-MIB variable
-.Dv KERN_MAXPROC .
-.It Bq Er EINVAL
-A flag other than
-.Dv IT_SOFT
-was specified in the
-.Fa flags
-parameter.
-.It Bq Er ENOMEM
-Could not allocate needed memory for this interrupt thread.
-.El
-.Pp
-The
-.Fn ithread_destroy
-function will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa ithread
-argument is
-.Dv NULL .
-.It Bq Er EINVAL
-The interrupt thread pointed to by
-.Fa ithread
-has at least one handler.
-.El
-.Pp
-The
-.Fn ithread_remove_handler
-function will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa cookie
-argument is
-.Dv NULL .
-.El
-.Pp
-The
-.Fn ithread_schedule
-function will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa ithread
-argument is
-.Dv NULL .
-.It Bq Er EINVAL
-The interrupt thread pointed to by
-.Fa ithread
-has no interrupt handlers.
-.El
-.Sh SEE ALSO
-.Xr kthread 9 ,
-.Xr malloc 9 ,
-.Xr swi 9 ,
-.Xr uma 9
-.Sh HISTORY
-Interrupt threads and their corresponding API first appeared in
-.Fx 5.0 .
-.Sh BUGS
-Currently
-.Vt struct ithd
-represents both an interrupt source and an interrupt thread.
-There should be a separate
-.Vt struct isrc
-that contains a vector number, enable and disable functions, etc.\& that
-an ithread holds a reference to.
diff --git a/share/man/man9/kqueue.9 b/share/man/man9/kqueue.9
index 53f55b8efe03..15a430d4a5a3 100644
--- a/share/man/man9/kqueue.9
+++ b/share/man/man9/kqueue.9
@@ -24,14 +24,14 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 12, 2021
+.Dd August 20, 2022
.Dt KQUEUE 9
.Os
.Sh NAME
.Nm kqueue_add_filteropts , kqueue_del_filteropts ,
.Nm kqfd_register ,
.Nm knote_fdclose ,
-.Nm knlist_init , knlist_init_mtx , knlist_init_rw_reader ,
+.Nm knlist_init , knlist_init_mtx ,
.Nm knlist_add , knlist_remove , knlist_remove_inevent , knlist_empty ,
.Nm knlist_clear , knlist_delete , knlist_destroy ,
.Nm KNOTE_LOCKED , KNOTE_UNLOCKED
@@ -57,8 +57,6 @@
.Ft void
.Fn knlist_init_mtx "struct knlist *knl" "struct mtx *lock"
.Ft void
-.Fn knlist_init_rw_reader "struct knlist *knl" "struct rwlock *lock"
-.Ft void
.Fn knlist_add "struct knlist *knl" "struct knote *kn" "int islocked"
.Ft void
.Fn knlist_remove "struct knlist *knl" "struct knote *kn" "int islocked"
@@ -260,10 +258,9 @@ is not required, but is commonly used.
If used, the
.Vt knlist
must be initialized with either
-.Fn knlist_init ,
-.Fn knlist_init_mtx
+.Fn knlist_init
or
-.Fn knlist_init_rw_reader .
+.Fn knlist_init_mtx .
The
.Vt knlist
structure may be embedded into the object structure.
@@ -308,19 +305,6 @@ style
lock.
.Pp
The function
-.Fn knlist_init_rw_reader
-may be used to initialize a
-.Vt knlist
-when
-.Fa lock
-is a
-.Xr rwlock 9
-read lock.
-Lock is acquired via
-.Fn rw_rlock
-function.
-.Pp
-The function
.Fn knlist_empty
returns true when there are no
.Vt knotes
diff --git a/share/man/man9/ktr.9 b/share/man/man9/ktr.9
index cfe9cacf8611..2bb6f9991ee9 100644
--- a/share/man/man9/ktr.9
+++ b/share/man/man9/ktr.9
@@ -61,7 +61,7 @@ style
fashion.
These events can then be dumped with
.Xr ddb 4 ,
-.Xr gdb 1
+.Xr gdb 1 Pq Pa ports/devel/gdb
or
.Xr ktrdump 8 .
.Pp
diff --git a/share/man/man9/malloc.9 b/share/man/man9/malloc.9
index c240344ea77e..26dcf3081f3e 100644
--- a/share/man/man9/malloc.9
+++ b/share/man/man9/malloc.9
@@ -29,16 +29,25 @@
.\" $NetBSD: malloc.9,v 1.3 1996/11/11 00:05:11 lukem Exp $
.\" $FreeBSD$
.\"
-.Dd July 2, 2021
+.Dd October 12, 2022
.Dt MALLOC 9
.Os
.Sh NAME
.Nm malloc ,
+.Nm mallocarray ,
.Nm free ,
+.Nm zfree ,
.Nm realloc ,
.Nm reallocf ,
+.Nm malloc_usable_size ,
+.Nm malloc_aligned ,
+.Nm malloc_exec ,
+.Nm MALLOC_DECLARE ,
.Nm MALLOC_DEFINE ,
-.Nm MALLOC_DECLARE
+.Nm malloc_domainset ,
+.Nm malloc_domainset_aligned ,
+.Nm malloc_domainset_exec ,
+.Nm mallocarray_domainset
.Nd kernel memory management routines
.Sh SYNOPSIS
.In sys/types.h
@@ -73,6 +82,7 @@
.Fn MALLOC_DEFINE type shortdesc longdesc
.In sys/param.h
.In sys/domainset.h
+.In sys/malloc.h
.Ft void *
.Fn malloc_domainset "size_t size" "struct malloc_type *type" "struct domainset *ds" "int flags"
.Ft void *
@@ -116,7 +126,8 @@ Both
and
.Fn malloc_domainset_exec
can be used to return executable memory.
-Not all platforms enforce a distinction between executable and non-executable memory.
+Not all platforms enforce a distinction between executable and non-executable
+memory.
.Pp
The
.Fn mallocarray
diff --git a/share/man/man9/refcount.9 b/share/man/man9/refcount.9
index 9171062a70b6..0b5a26d6e3cd 100644
--- a/share/man/man9/refcount.9
+++ b/share/man/man9/refcount.9
@@ -32,7 +32,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 2, 2020
+.Dd October 12, 2022
.Dt REFCOUNT 9
.Os
.Sh NAME
@@ -48,7 +48,7 @@
.Fn refcount_init "volatile u_int *count" "u_int value"
.Ft u_int
.Fn refcount_load "volatile u_int *count"
-.Ft void
+.Ft u_int
.Fn refcount_acquire "volatile u_int *count"
.Ft bool
.Fn refcount_acquire_checked "volatile u_int *count"
@@ -91,6 +91,7 @@ qualifier.
The
.Fn refcount_acquire
function is used to acquire a new reference.
+It returns the counter value before the new reference was acquired.
The caller is responsible for ensuring that it holds a valid reference
while obtaining a new reference.
For example,
diff --git a/share/man/man9/sbuf.9 b/share/man/man9/sbuf.9
index 071e6f11e02e..fbef2d7ee168 100644
--- a/share/man/man9/sbuf.9
+++ b/share/man/man9/sbuf.9
@@ -358,7 +358,7 @@ function returns the current user flags.
The
.Fn sbuf_set_flags
and
-.Fn sbuf_get_flags
+.Fn sbuf_clear_flags
functions set or clear one or more user flags, respectively.
The user flags are described under the
.Fn sbuf_new
diff --git a/share/man/man9/socket.9 b/share/man/man9/socket.9
index 1c3f75785013..3c24efb75dc9 100644
--- a/share/man/man9/socket.9
+++ b/share/man/man9/socket.9
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 18, 2018
+.Dd September 6, 2022
.Dt SOCKET 9
.Os
.Sh NAME
@@ -171,8 +171,7 @@ are only useful for protocol implementors.
.Pp
Except where otherwise indicated,
.Nm
-functions may sleep, and are not appropriate for use in an
-.Xr ithread 9
+functions may sleep, and are not appropriate for use in an interrupt thread
context or while holding non-sleepable kernel locks.
.Ss Creating and Destroying Sockets
A new socket may be created using
@@ -461,10 +460,8 @@ argument, and use the same flag name space as the
.Xr sendmsg 2
system call.
.Pp
-Kernel callers running in
-.Xr ithread 9
-context, or with a mutex held, will wish to use non-blocking sockets and pass
-the
+Kernel callers running in an interrupt thread context, or with a mutex held,
+will wish to use non-blocking sockets and pass the
.Dv MSG_DONTWAIT
flag in order to prevent these functions from sleeping.
.Pp
@@ -593,7 +590,7 @@ data between user and kernel code.
.Xr shutdown 2 ,
.Xr socket 2 ,
.Xr ng_ksocket 4 ,
-.Xr ithread 9 ,
+.Xr intr_event 9 ,
.Xr msleep 9 ,
.Xr ucred 9
.Sh HISTORY
diff --git a/share/man/man9/swi.9 b/share/man/man9/swi.9
index 52a39fe61c86..6875fc890696 100644
--- a/share/man/man9/swi.9
+++ b/share/man/man9/swi.9
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 25, 2020
+.Dd October 12, 2022
.Dt SWI 9
.Os
.Sh NAME
@@ -35,9 +35,7 @@
.In sys/param.h
.In sys/bus.h
.In sys/interrupt.h
-.Vt "extern struct intr_event *tty_intr_event" ;
.Vt "extern struct intr_event *clk_intr_event" ;
-.Vt "extern void *vm_ih" ;
.Ft int
.Fo swi_add
.Fa "struct intr_event **eventp"
@@ -140,12 +138,6 @@ Instead,
.Fa handler
will be executed the next time that the software interrupt thread runs after
being scheduled by another event.
-Attaching a handler to the clock software interrupt thread and using this flag
-when scheduling a software interrupt handler can be used to implement the
-functionality performed by
-.Fn setdelayed
-in earlier versions of
-.Fx .
.It Dv SWI_FROMNMI
Specifies that
.Fn swi_sched
@@ -155,24 +147,12 @@ On platforms allowing IPI sending from NMI context it immediately wakes
via the IPI, otherwise it works just like SWI_DELAY.
.El
.Pp
-The
-.Va tty_intr_event
-and
-.Va clk_intr_event
-variables contain pointers to the software interrupt handlers for the tty and
-clock software interrupts, respectively.
-.Va tty_intr_event
-is used to hang tty software interrupt handlers off of the same thread.
.Va clk_intr_event
-is used to hang delayed handlers off of the clock software interrupt thread so
-that the functionality of
-.Fn setdelayed
-can be obtained in conjunction with
-.Dv SWI_DELAY .
-The
-.Va vm_ih
-handler cookie is used to schedule software interrupt threads to run for the
-VM subsystem.
+is a pointer to the
+.Vt struct intr_event
+used to hang delayed handlers off of the clock interrupt, and is invoked
+directly by
+.Xr hardclock 9 .
.Sh RETURN VALUES
The
.Fn swi_add
@@ -227,7 +207,8 @@ is
.Dv NULL .
.El
.Sh SEE ALSO
-.Xr ithread 9 ,
+.Xr hardclock 9 ,
+.Xr intr_event 9 ,
.Xr taskqueue 9
.Sh HISTORY
The
@@ -250,7 +231,3 @@ The
.Fn swi_remove
function first appeared in
.Fx 6.1 .
-.Sh BUGS
-Most of the global variables described in this manual page should not be
-global, or at the very least should not be declared in
-.In sys/interrupt.h .
diff --git a/share/man/man9/vaccess.9 b/share/man/man9/vaccess.9
index 4bf377406903..85ee4cbdd692 100644
--- a/share/man/man9/vaccess.9
+++ b/share/man/man9/vaccess.9
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 18, 2009
+.Dd August 23, 2022
.Dt VACCESS 9
.Os
.Sh NAME
@@ -42,7 +42,6 @@
.Fa "gid_t file_gid"
.Fa "accmode_t accmode"
.Fa "struct ucred *cred"
-.Fa "int *privused"
.Fc
.Sh DESCRIPTION
This call implements the logic for the
@@ -59,19 +58,9 @@ owning UID
owning GID
.Fa file_gid ,
desired access mode
-.Fa accmode ,
-requesting credential
-.Fa cred ,
-and an optional call-by-reference
-.Vt int
-pointer returning whether or not
-privilege was required for successful evaluation of the call; the
-.Fa privused
-pointer may be set to
-.Dv NULL
-by the caller in order not to be informed of
-privilege information, or it may point to an integer that will be set to
-1 if privilege is used, and 0 otherwise.
+.Fa accmode
+and requesting credential
+.Fa cred .
.Pp
This call is intended to support implementations of
.Xr VOP_ACCESS 9 ,
diff --git a/share/man/man9/zone.9 b/share/man/man9/zone.9
index e26b29976807..5c1b4d31d8aa 100644
--- a/share/man/man9/zone.9
+++ b/share/man/man9/zone.9
@@ -50,7 +50,7 @@ typedef void (*uma_free)(void *item, vm_size_t size, uint8_t pflag);
.Ed
.Ft uma_zone_t
.Fo uma_zcreate
-.Fa "char *name" "int size"
+.Fa "char *name" "size_t size"
.Fa "uma_ctor ctor" "uma_dtor dtor" "uma_init zinit" "uma_fini zfini"
.Fa "int align" "uint16_t flags"
.Fc
diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree
index b133aef0fdf3..9b4e1c8a256d 100644
--- a/share/misc/bsd-family-tree
+++ b/share/misc/bsd-family-tree
@@ -428,15 +428,17 @@ FreeBSD 5.2 | | | |
*--FreeBSD | | | | | |
| 13.0 | | | NetBSD 9.2 OpenBSD 6.9 DragonFly 6.0.0
| | | | | | | |
+ | | | | | | | DragonFly 6.0.1
| | | | | | | |
- | | FreeBSD macOS | | OpenBSD 7.0 DragonFly 6.2.1
+ | | FreeBSD macOS | | OpenBSD 7.0 |
| | 12.3 12 | | | |
- | | | | | | |
+ | | | | | | DragonFly 6.2.1
| | | | | OpenBSD 7.1 |
| FreeBSD | | | | |
| 13.1 | | | | |
| | | | | DragonFly 6.2.2
| | | NetBSD 9.3 | |
+ | | | OpenBSD 7.2 |
| | | | |
FreeBSD 14 -current | NetBSD -current OpenBSD -current DragonFly -current
| | | | |
@@ -848,6 +850,7 @@ FreeBSD 13.0 2021-04-13 [FBD]
OpenBSD 6.9 2021-05-01 [OBD]
DragonFly 6.0 2021-05-08 [DFB]
NetBSD 9.2 2021-05-12 [NBD]
+DragonFly 6.0.1 2021-10-12 [DFB]
OpenBSD 7.0 2021-10-14 [OBD]
macOS 12 2021-10-25 [APL]
FreeBSD 12.3 2021-12-01 [FBD]
@@ -856,6 +859,7 @@ OpenBSD 7.1 2022-04-21 [OBD]
FreeBSD 13.1 2022-05-17 [FBD]
DragonFly 6.2.2 2022-06-09 [DFB]
NetBSD 9.3 2022-08-04 [NBD]
+OpenBSD 7.2 2022-10-20 [OBD]
Bibliography
------------------------
diff --git a/share/misc/committers-ports.dot b/share/misc/committers-ports.dot
index 5b526005c3a2..593fe7778907 100644
--- a/share/misc/committers-ports.dot
+++ b/share/misc/committers-ports.dot
@@ -243,6 +243,7 @@ rnoland [label="Robert Noland\nrnoland@FreeBSD.org\n2008/07/21"]
robak [label="Bartek Rutkowski\nrobak@FreeBSD.org\n2014/06/10"]
rodrigo [label="Rodrigo Osorio\nrodrigo@FreeBSD.org\n2014/01/15"]
romain [label="Romain Tartiere\nromain@FreeBSD.org\n2010/01/24"]
+ronald [label="Ronald Klop\nronald@FreeBSD.org\n2022/10/06"]
rpaulo [label="Rui Paulo\nrpaulo@FreeBSD.org\n2014/07/15"]
sahil [label="Sahil Tandon\nsahil@FreeBSD.org\n2010/04/11"]
salvadore [label="Lorenzo Salvadore\nsalvadore@FreeBSD.org\n2020/02/21"]
@@ -692,6 +693,8 @@ pi -> tz
pizzamig -> tagattie
+pkubaj -> ronald
+
rafan -> chinsan
rakuco -> adridg
@@ -707,6 +710,7 @@ rene -> jmd
rene -> joneum
rene -> ler
rene -> olivierd
+rene -> ronald
rm -> koobs
rm -> vg
diff --git a/share/misc/committers-src.dot b/share/misc/committers-src.dot
index 71ed43cbf498..4fa97bb4d76f 100644
--- a/share/misc/committers-src.dot
+++ b/share/misc/committers-src.dot
@@ -144,6 +144,7 @@ cem [label="Conrad Meyer\ncem@FreeBSD.org\n2015/07/05"]
chuck [label="Chuck Tuffli\nchuck@FreeBSD.org\n2017/09/06"]
cognet [label="Olivier Houchard\ncognet@FreeBSD.org\n2002/10/09"]
cokane [label="Coleman Kane\ncokane@FreeBSD.org\n2000/06/19"]
+corvink [label="Corvin Köhne\ncorvink@FreeBSD.org\n2022/11/02"]
cperciva [label="Colin Percival\ncperciva@FreeBSD.org\n2004/01/20"]
csjp [label="Christian S.J. Peron\ncsjp@FreeBSD.org\n2004/05/04"]
cy [label="Cy Schubert\ncy@FreeBSD.org\n2013/04/23"]
@@ -160,6 +161,7 @@ dg [label="David Greenman\ndg@FreeBSD.org\n1993/06/14"]
dim [label="Dimitry Andric\ndim@FreeBSD.org\n2010/08/30"]
donner [label="Lutz Donnerhacke\ndonner@FreeBSD.org\n2021/01/14"]
dougm [label="Doug Moore\ndougm@FreeBSD.org\n2019/04/30"]
+dsl [label="Dmitry Salychev\ndsl@FreeBSD.org\n2022/07/02"]
dteske [label="Devin Teske\ndteske@FreeBSD.org\n2012/04/10"]
dumbbell [label="Jean-Sebastien Pedron\ndumbbell@FreeBSD.org\n2004/11/29"]
dwmalone [label="David Malone\ndwmalone@FreeBSD.org\n2000/07/11"]
@@ -381,6 +383,7 @@ yongari [label="Pyun YongHyeon\nyongari@FreeBSD.org\n2004/08/01"]
yuripv [label="Yuri Pankov\nyuripv@FreeBSD.org\n2018/10/09"]
zbb [label="Zbigniew Bodek\nzbb@FreeBSD.org\n2013/09/02"]
zec [label="Marko Zec\nzec@FreeBSD.org\n2008/06/22"]
+zlei [label="Zhenlei Huang\nzlei@FreeBSD.org\n2022/11/02"]
zml [label="Zachary Loafman\nzml@FreeBSD.org\n2009/05/27"]
zont [label="Andrey Zonov\nzont@FreeBSD.org\n2012/08/21"]
@@ -464,6 +467,7 @@ brooks -> arichardson
bz -> anchie
bz -> jamie
bz -> syrinx
+bz -> dsl
cognet -> br
cognet -> jceel
@@ -718,9 +722,11 @@ kmacy -> lstewart
kp -> donner
kp -> nick
+kp -> zlei
lwhsu -> khng
+manu -> corvink
manu -> oh
marcel -> allanjude
@@ -748,6 +754,8 @@ mdf -> gleb
mdodd -> jake
+melifaro -> zlei
+
mike -> das
mjg -> kaktus
diff --git a/share/misc/organization.dot b/share/misc/organization.dot
index 0d0ea9600b51..a0d75d50aca5 100644
--- a/share/misc/organization.dot
+++ b/share/misc/organization.dot
@@ -29,8 +29,9 @@ core [label="Core Team\ncore@FreeBSD.org\nbapt, bcr, emaste,\ngrog, jhb, lwhsu,\
coresecretary [label="Core Team Secretary\ncore-secretary@FreeBSD.org\nbofh"]
doccommitters [label="Doc/www Committers\ndoc-committers@FreeBSD.org"]
doceng [label="Documentation Engineering Team\ndoceng@FreeBSD.org\nbcr, gabor, gjb, hrs,\nblackend, ryusuke, wblock"]
+pkgmgr [label="Package Management Team\npkgmgr@FreeBSD.org\nantoine, bdrewery"]
portscommitters [label="Ports Committers\nports-committers@FreeBSD.org"]
-portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nantoine, bapt, bdrewery\nmat, rene, swills, tcberner"]
+portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nbapt, mat, pizzamig\nrene, swills, tcberner"]
portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\nrene"]
re [label="Primary Release Engineering Team\nre@FreeBSD.org\ngjb, kib\n, blackend, delphij, cperciva"]
secteam [label="Security Team\nsecteam@FreeBSD.org\ndelphij,\ndes, markj,\nemaste,\ngjb, gordon,\noshogbo, philip"]
@@ -86,6 +87,7 @@ core -> srccommitters
doceng -> doccommitters
+portmgr -> pkgmgr
portmgr -> portmgrsecretary
portmgr -> portscommitters
diff --git a/share/misc/pci_vendors b/share/misc/pci_vendors
index ba1be0bbc1fc..29b30b62fde5 100644
--- a/share/misc/pci_vendors
+++ b/share/misc/pci_vendors
@@ -1,8 +1,8 @@
#
# List of PCI ID's
#
-# Version: 2022.05.18
-# Date: 2022-05-18 03:15:02
+# Version: 2022.09.09
+# Date: 2022-09-09 03:15:02
#
# Maintained by Albert Pool, Martin Mares, and other volunteers from
# the PCI ID Project at https://pci-ids.ucw.cz/.
@@ -72,6 +72,7 @@
01de Oxide Computer Company
0000 Propolis NVMe Controller
0001 Propolis xHCI Controller
+ 0002 Propolis PCI-PCI Bridge
# probably misprogrammed Intel Atom C2338 on Dell 0K8Y0N board
0200 Dell (wrong ID)
# 021b is not Compaq but there is a board misprogrammed
@@ -489,6 +490,7 @@
1028 1f4f PERC H730P Slim
1028 1f54 PERC FD33xD
1028 1fd1 PERC H730P MX
+ 1734 11f6 PRAID EP400i
17aa 1052 ThinkServer RAID 720i
17aa 1053 ThinkServer RAID 720ix
1bd4 0014 12G SAS3108 2G
@@ -735,6 +737,8 @@
1000 46a0 MegaRAID 9660-24i Tri-Mode Storage Adapter
1000 46c0 eHBA 9680W-16e Tri-Mode Storage Adapter
1000 46d0 eHBA 9600-8i8e Tri-Mode Storage Adapter
+# eHBA 9602W-16e Tri-Mode Storage Adapter
+ 1000 46e0 eHBA 9602W-16e Tri-Mode Storage Adapter
1028 2114 PERC H965i Adapter
1028 2115 PERC H965i Front
1028 2117 PERC H965i MX
@@ -749,6 +753,7 @@
1028 2142 HBA465e Adapter
1028 2209 HBA465i Adapter
1028 220a HBA465i Front
+ 1d49 020a ThinkSystem 450W-16e SAS/SATA PCIe Gen4 24Gb HBA
00ab SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC)
# 8 Internal and 8 External port channel 9400 HBA
1000 3040 HBA 9400-8i8e
@@ -846,6 +851,7 @@
1028 2170 HBA350i MM
1028 2175 HBA350i Adapter
1028 2197 HBA350i MM LP
+ 1028 2212 HBA355e-s Adapter
1d49 0205 ThinkSystem 440-16i SAS/SATA PCIe Gen4 12Gb Internal HBA
1d49 0206 ThinkSystem 440-16e SAS/SATA PCIe Gen4 12Gb HBA
1d49 0207 ThinkSystem 440-8i SAS/SATA PCIe Gen4 12Gb HBA
@@ -867,6 +873,8 @@
1d49 0002 ThinkSystem 810-4P NVMe Switch Adapter
02b1 Virtual Endpoint on PCIe Switch (9749)
1d49 0004 ThinkSystem 1610-8P NVMe Switch Adapter
+# Virtual endpoint used in Broadcom synthetic PCIe switches for resource reservation
+ 02b2 Virtual PCIe Placeholder Endpoint
0407 MegaRAID
1000 0530 MegaRAID 530 SCSI 320-0X RAID Controller
1000 0531 MegaRAID 531 SCSI 320-4X RAID Controller
@@ -987,6 +995,7 @@
10e4 MegaRAID 12GSAS/PCIe Unsupported SAS38xx
10e5 MegaRAID 12GSAS/PCIe SAS38xx
10e6 MegaRAID 12GSAS/PCIe Secure SAS38xx
+ 1000 40e0 MegaRAID 9540-2M2
1028 2172 PERC H355 Adapter
1028 2173 PERC H355 Front
1028 2174 PERC H350 Mini
@@ -1010,10 +1019,29 @@
8086 0523 MegaRAID RAID Controller SRCS16
3050 SAS2008 PCI-Express Fusion-MPT SAS-2
6001 DX1 Multiformat Broadcast HD/SD Encoder/Decoder
- c010 PEX88048 50 lane, 50 port, PCI Express Gen 4.0 ExpressFabric Platform
+ c010 PEX880xx PCIe Gen 4 Switch
+ 1000 100b PEX88000 PCIe Gen 4 Virtual Upstream/Downstream Port
+ 1000 2004 PEX88000 Virtual PCIe TWC/NT2 Endpoint
+ 1000 2005 PEX88000 Virtual PCIe gDMA Endpoint
+ 1000 a024 PEX88024 24 lane/port PCIe Gen 4.0 Switch
+ 1000 a032 PEX88032 32 lane/port PCIe Gen 4 Switch
+ 1000 a048 PEX88048 50 lane/port PCIe Gen 4.0 Switch
+ 1000 a064 PEX88064 64 lane/port PCIe Gen 4 Switch
+ 1000 a080 PEX88080 80 lane/port PCIe Gen 4 Switch
+ 1000 a096 PEX88096 98 lane/port PCIe Gen 4.0 Switch
c012 PEX880xx PCIe Gen 4 Switch
1d49 0003 ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter
c030 PEX890xx PCIe Gen 5 Switch
+ 1000 0024 PEX89024 PCIe Gen 5 24 port/lane Switch Upstream/Downstream Port
+ 1000 0032 PEX89032 PCIe Gen 5 32 port/lane Switch Upstream/Downstream Port
+ 1000 0048 PEX89048 PCIe Gen 5 48 port/lane Switch Upstream/Downstream Port
+ 1000 0072 PEX89072 PCIe Gen 5 36 port/72 lane Switch Upstream/Downstream Port
+ 1000 0088 PEX89088 PCIe Gen 5 44 port/88 lane Switch Upstream/Downstream Port
+ 1000 0104 PEX89104 PCIe Gen 5 52 port/104 lane Switch Upstream/Downstream Port
+ 1000 0144 PEX89144 PCIe Gen 5 72 port/144 lane Switch Upstream/Downstream Port
+ 1000 100b PEX89000 PCIe Gen 5 Virtual Upstream/Downstream Port
+ 1000 2004 PEX89000 Virtual PCIe TWC/NT 2.0 Endpoint
+ 1000 2005 PEX89000 Virtual PCIe gDMA Endpoint
1001 Kolter Electronic
0010 PCI 1616 Measurement card with 32 digital I/O lines
0011 OPTO-PCI Opto-Isolated digital I/O board
@@ -1053,7 +1081,8 @@
131b Kaveri [Radeon R4 Graphics]
131c Kaveri [Radeon R7 Graphics]
131d Kaveri [Radeon R6 Graphics]
- 13e9 Ariel
+ 13e9 Ariel/Navi10Lite
+ 13f9 Oberon/Navi12Lite
13fe Cyan Skillfish [BC-250]
1478 Navi 10 XL Upstream Port of PCI Express Switch
1479 Navi 10 XL Downstream Port of PCI Express Switch
@@ -1094,6 +1123,7 @@
1640 Rembrandt Radeon High Definition Audio Controller
164c Lucienne
164d Rembrandt
+ 164e Raphael
164f Phoenix
1681 Rembrandt [Radeon 680M]
1714 BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
@@ -1611,6 +1641,7 @@
1028 00bb Latitude CPx
1179 ff00 Satellite 1715XCDS laptop
13bd 1019 PC-AR10
+ 4c4e Rage Mobility L AGP 2x
4c50 Rage 3 LT [3D Rage LT PRO PCI]
1002 4c50 Rage LT Pro
4c52 M1 [Rage Mobility-M1 PCI]
@@ -2069,6 +2100,7 @@
148c 7340 Radeon R7 340
1682 7240 R7 240 2048 MB
1dcf 3000 Oland PRO [Radeon R7 240/340 / Radeon 520]
+ 6617 Oland LE [Radeon R7 240]
6631 Oland
6640 Saturn XT [FirePro M6100]
106b 014b Tropo XT [Radeon R9 M380 Mac Edition]
@@ -2668,7 +2700,7 @@
# FX-797A-TNBC
1682 3213 HD 7970 Black Edition
1682 3214 Double D HD 7970
- 1787 201c HD 7970 IceQ X²
+ 1787 201c HD 7970 IceQ X²
# Radeon HD 7970 X2
1787 2317 Radeon HD 7990
1787 3000 Tahiti XT2 [Radeon HD 7970 GHz Edition]
@@ -2731,7 +2763,7 @@
174b e282 Vapor-X R9 290X Tri-X OC
174b e285 R9 290X Tri-X OC
174b e324 Grenada XT2 [Radeon R9 390X]
- 1787 2020 R9 290X IceQ X² Turbo
+ 1787 2020 R9 290X IceQ X² Turbo
1787 2357 Grenada XT [Radeon R9 390X]
67b1 Hawaii PRO [Radeon R9 290/390]
1043 04dd STRIX R9 390
@@ -3081,7 +3113,7 @@
688c Cypress XT GL [FireStream 9370]
688d Cypress PRO GL [FireStream 9350]
6898 Cypress XT [Radeon HD 5870]
- 1002 0b00 Radeon HD 5870 Eyefinity⁶ Edition
+ 1002 0b00 Radeon HD 5870 Eyefinity⁶ Edition
106b 00d0 Radeon HD 5870 Mac Edition
# R5870-PM2D1G
1462 8032 Radeon HD 5870 1 GB GDDR5
@@ -3622,7 +3654,7 @@
1002 0322 All-in-Wonder X1800XL
1002 0d02 Radeon X1800 CrossFire Edition
710a R520 [Radeon X1800 GTO]
- 1002 0b12 Radeon X1800 GTO²
+ 1002 0b12 Radeon X1800 GTO²
710b R520 [Radeon X1800 GTO]
710e R520 GL [FireGL V7300]
13cc 3d0c MXRT-5150
@@ -3787,7 +3819,8 @@
1002 0e3a Radeon RX 6900 XT
148c 2408 Red Devil AMD Radeon RX 6900 XT
1da2 440f TOXIC RX 6900 XT
- 1eae 6701 XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black
+ 1eae 6701 Speedster MERC 319 AMD Radeon RX 6800 XT Black
+ 1eae 6901 Speedster MERC 319 AMD Radeon RX 6900 XT Black
73c3 Navi 22
73c4 Navi 22 USB
73ce Navi22-XL SRIOV MxGPU
@@ -3797,8 +3830,12 @@
73e3 Navi 23 WKS-XL [Radeon PRO W6600]
73e4 Navi 23 USB
73ef Navi 23 [Radeon RX 6650 XT]
+ 1002 73ef Navi 23 [Radeon RX 6700S / 6650 XT]
73ff Navi 23 [Radeon RX 6600/6600 XT/6600M]
+ 1462 5022 RX 6600 MECH 2X
148c 2412 PowerColor Red Devil RX 6600 XT
+# This is the non-XT version
+ 1849 5218 Radeon RX 6600 Challenger ITX 8GB
7408 Aldebaran
740c Aldebaran
740f Aldebaran
@@ -3806,7 +3843,7 @@
7422 Navi 24 [Radeon PRO W6400]
7423 Navi 24 [Radeon PRO W6300/W6300M]
7424 Navi 24 [Radeon RX 6300]
- 743f Navi 24 [Radeon RX 6400 / 6500 XT]
+ 743f Navi 24 [Radeon RX 6400/6500 XT/6500M]
1da2 e457 PULSE AMD Radeon RX 6500 XT
7833 RS350 Host Bridge
7834 RS350 [Radeon 9100 PRO/XT IGP]
@@ -5070,6 +5107,7 @@
1629 Arden PCIe GPP Bridge
162a Arden Internal PCIe GPP Bridge 0 to bus X
162b Arden PCIe Non-Transparent Bridge
+ 162c VanGogh USB2
1630 Renoir/Cezanne Root Complex
1631 Renoir/Cezanne IOMMU
1632 Renoir PCIe Dummy Host Bridge
@@ -5087,7 +5125,10 @@
1642 Renoir WLAN
1643 Renoir BT
1644 Renoir I2S
- 1648 VanGogh Root Complex
+ 1645 VanGogh Root Complex
+ 1646 VanGogh IOMMU
+ 1647 VanGogh PCIe GPP Bridge
+ 1648 VanGogh Internal PCIe GPP Bridge to Bus
1649 VanGogh PSP/CCP
164f Milan IOMMU
1650 Milan Data Fabric; Function 0
@@ -5098,6 +5139,14 @@
1655 Milan Data Fabric; Function 5
1656 Milan Data Fabric; Function 6
1657 Milan Data Fabric; Function 7
+ 1660 VanGogh Data Fabric; Function 0
+ 1661 VanGogh Data Fabric; Function 1
+ 1662 VanGogh Data Fabric; Function 2
+ 1663 VanGogh Data Fabric; Function 3
+ 1664 VanGogh Data Fabric; Function 4
+ 1665 VanGogh Data Fabric; Function 5
+ 1666 VanGogh Data Fabric; Function 6
+ 1667 VanGogh Data Fabric; Function 7
166a Cezanne Data Fabric; Function 0
166b Cezanne Data Fabric; Function 1
166c Cezanne Data Fabric; Function 2
@@ -7342,7 +7391,7 @@
1077 02f2 QLogic 1x32Gb QLE2770 FC HBA
1077 02f3 QLogic 2x32Gb QLE2772 FC HBA
1590 02d3 SN1610Q - 1P Enhanced 32GFC Single Port Fibre Channel Host Bus Adapter
- 1590 02d4 SN1610Q – 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter
+ 1590 02d4 SN1610Q – 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter
2289 ISP2852-based 64/32G Fibre Channel to PCIe Controller with StorCryption
1077 02e9 QLE2882 Dual Port 64GFC PCIe Gen4 x8 Adapter with StorCryption
1077 02eb QLE2782 Dual Port 32GFC PCIe Gen4 x8 Adapter with StorCryption
@@ -7590,7 +7639,7 @@
0022 ATM Adapter
108e Oracle/SUN
0001 EBUS
- 1000 EBUS
+ 1000 STP2003QFP [PCIO] EBUS
1001 Happy Meal 10/100 Ethernet [hme]
1100 RIO EBUS
108e 1100 RIO EBUS on Blade 100 motherboard
@@ -8945,10 +8994,10 @@
10b5 3334 Cambridge Pixel HPx Radar Input Card
10b5 3352 Alpermann+Velte PCL PCIe HD: Timecode Reader Board
10b5 3353 Alpermann+Velte PCL PCIe D: Timecode Reader Board
- 10b5 3354 Alpermann+Velte PCL PCIe LV: Timecode Reader Board
- 10b5 3355 Alpermann+Velte PCL PCIe L: Timecode Reader Board
- 10b5 3415 Alpermann+Velte PCIe TS: Time Synchronisation Board
- 10b5 3493 Alpermann+Velte PCL PCIe 3G: Timecode Reader Board
+ 10b5 3354 Plura PCL PCIe LV: Timecode Reader Board
+ 10b5 3355 Plura PCL PCIe L: Timecode Reader Board
+ 10b5 3415 Plura PCIe TS: Time Synchronisation Board
+ 10b5 3493 Plura PCL PCIe 3G: Timecode Reader Board
10b5 3565 Cambridge Pixel HPx Radar Output Card
1369 c001 LX6464ES
1369 c201 LX1616ES
@@ -12331,6 +12380,7 @@
10de 131d Tesla V100-SXM3-32GB-H
1dba GV100GL [Quadro GV100]
10de 12eb TITAN V CEO Edition
+ 1dbe GV100 Engineering Sample
1df0 GV100GL [Tesla PG500-216]
1df2 GV100GL [Tesla PG503-216]
1df5 GV100GL [Tesla V100 SXM2 16GB]
@@ -12366,7 +12416,7 @@
1e91 TU104M [GeForce RTX 2070 SUPER Mobile / Max-Q]
1e93 TU104M [GeForce RTX 2080 SUPER Mobile / Max-Q]
1eab TU104M
- 1eae TU104M
+ 1eae TU104M [GeForce GTX 2080 Engineering Sample]
1eb0 TU104GL [Quadro RTX 5000]
1eb1 TU104GL [Quadro RTX 4000]
1eb4 TU104GL [T4G]
@@ -12407,6 +12457,7 @@
1f76 TU106GLM [Quadro RTX 3000 Mobile Refresh]
1f81 TU117
1f82 TU117 [GeForce GTX 1650]
+ 1f83 TU117 [GeForce GTX 1630]
1f91 TU117M [GeForce GTX 1650 Mobile / Max-Q]
1f92 TU117M [GeForce GTX 1650 Mobile]
1f94 TU117M [GeForce GTX 1650 Mobile]
@@ -12493,9 +12544,11 @@
2238 GA102GL [A10M]
223f GA102GL
228b GA104 High Definition Audio Controller
+ 228e GA106 High Definition Audio Controller
2296 Tegra PCIe Endpoint Virtual Network
2302 GH100
2321 GH100
+ 2331 GH100 [H100 80GB 8GPC Engineering Sample]
2336 GH100 [H100 96GB]
2414 GA103 [GeForce RTX 3060 Ti]
2420 GA103M [GeForce RTX 3080 Ti Mobile]
@@ -12554,6 +12607,8 @@
25a7 GA107M [GeForce MX570]
25a9 GA107M [GeForce RTX 2050]
25aa GA107M [GeForce MX570 A]
+# GN20-P0 Refresh
+ 25ac GN20-P0-R-K2
25af GA107 [GeForce RTX 3050 Engineering Sample]
25b5 GA107GLM [RTX A4 Mobile]
# A16 - 25B6 10DE 14A9 / A2 - 25B6 10DE 157E
@@ -12565,8 +12620,22 @@
25e0 GA107BM [GeForce RTX 3050 Ti Mobile]
25e2 GA107BM [GeForce RTX 3050 Mobile]
25e5 GA107BM [GeForce RTX 3050 Mobile]
+# GN20-P0 Refresh
+ 25ec GN20-P0-R-K2
25f9 GA107 [RTX A1000 Embedded GPU ]
25fa GA107 [RTX A2000 Embedded GPU]
+ 2684 AD102 [GeForce RTX 4090]
+ 2717 GN21-X11
+ 2757 GN21-X11
+ 2785 AD104
+ 27a0 GN21-X9
+ 27e0 GN21-X9
+ 2820 GN21-X6
+ 2860 GN21-X6
+ 28a0 GN21-X4
+ 28a1 GN21-X2
+ 28e0 GN21-X4
+ 28e1 GN21-X2
10df Emulex Corporation
0720 OneConnect NIC (Skyhawk)
103c 1934 FlexFabric 20Gb 2-port 650M Adapter
@@ -12904,6 +12973,7 @@
103c 2a6f Asus IPIBL-LB Motherboard
103c 825b OMEN-17-w001nv
103c 8615 Pavilion Laptop 15-cw1xxx
+ 103c 86d4 Pavilion Laptop 15-ec0xxx
# Rev 29, uses r8169 Driver on Linux
103c 8882 HP ProDesk 405 G8 Desktop Mini PC
1043 11f5 Notebook motherboard (one of many models)
@@ -12994,7 +13064,7 @@
10ec 8739 Dell Wireless 1801
17aa b736 Z50-75
b822 RTL8822BE 802.11a/b/g/n/ac WiFi adapter
- 103c 831b Realtek RTL8822BE 802.11ac 2 × 2 Wi-Fi + Bluetooth 4.2 Combo Adapter (MU-MIMO supported)
+ 103c 831b Realtek RTL8822BE 802.11ac 2 × 2 Wi-Fi + Bluetooth 4.2 Combo Adapter (MU-MIMO supported)
17aa 5124 ThinkPad E595
17aa b023 ThinkPad E595
c821 RTL8821CE 802.11ac PCIe Wireless Network Adapter
@@ -13032,12 +13102,18 @@
5020 Alveo U50 XMDA Platform
# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
505c Alveo U55C
+ 6987 SmartSSD
+ 6988 SmartSSD
+ 7011 7-Series FPGA Hard PCIe block (AXI/debug)
7038 FPGA Card XC7VX690T
17aa 402f FPGA XC7VX690T-3FFG1157E
8019 Memory controller
1eec 0201 VSEC10232X Dual-port 100Gb/s Etherent PCIe
8380 Ellips ProfiXpress Profibus Master
8381 Ellips Santos Frame Grabber
+ 9134 SmartSSD
+ 9234 SmartSSD
+ 9434 SmartSSD
# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
d000 Alveo U200 Golden Image
# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html
@@ -17251,7 +17327,17 @@
5191 9200 PRO NVMe SSD
5192 9200 MAX NVMe SSD
51a2 7300 PRO NVMe SSD
+ 1344 2000 960GB U.2
+ 1344 3000 1920GB U.2
+ 1344 4000 3480GB U.2
+ 1344 5000 7680GB U.2
51a3 7300 MAX NVMe SSD
+ 1344 1100 400GB M.2
+ 1344 2000 800GB U.2
+ 1344 2100 800GB M.2
+ 1344 3000 1600GB U.2
+ 1344 4000 3200GB U.2
+ 1344 5000 6400GB U.2
51b1 9300 PRO NVMe SSD
1344 4000 3.84TB U.2
1344 5000 7.68TB U.2
@@ -18031,6 +18117,7 @@
0002 MN-130 (ADMtek Centaur-P based)
# Virtual Video Card Device for Windows Remote Desktop (RDP)
008c Basic Render Driver
+ 008e Basic Render Driver
5353 Hyper-V virtual VGA
5801 XMA Decoder (Xenon)
5802 SATA Controller - CdRom (Xenon)
@@ -19780,6 +19867,7 @@
16d4 BCM57402 NetXtreme-E Ethernet Partition
16d5 BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
16d6 BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller
+ 117c 00cd FastFrame N4S2 Dual-port 10Gb Ethernet Adapter
14e4 1202 BCM957412M4122C OCP 1x25G Type1 wRoCE
14e4 4120 NetXtreme E-Series Advanced Dual-port 10Gb SFP+ Ethernet Network Daughter Card
14e4 4126 NetXtreme-E Dual-port 10G SFP+ Ethernet OCP 3.0 Adapter (BCM957412N4120C)
@@ -19788,6 +19876,7 @@
# NIC-ETH531F-LP-2P BCM57412 2 x 10G SFP+ Ethernet PCIe Card
193d 1024 NIC-ETH531F-LP-2P
16d7 BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller
+ 117c 00cc FastFrame N422 Dual-port 25Gb Ethernet Adapter
14e4 1402 BCM957414A4142CC 10Gb/25Gb Ethernet PCIe
14e4 1404 BCM957414M4142C OCP 2x25G Type1 wRoCE
14e4 4140 NetXtreme E-Series Advanced Dual-port 25Gb SFP28 Network Daughter Card
@@ -19796,9 +19885,11 @@
14e4 4146 NetXtreme-E Dual-port 25G SFP28 Ethernet OCP 3.0 Adapter (BCM957414N4140C)
1590 020e Ethernet 25Gb 2-port 631SFP28 Adapter
1590 0211 Ethernet 25Gb 2-port 631FLR-SFP28 Adapter
- 1eec 0101 VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
+# VSE-225-31S Dual-port 10Gb/25Gb Ethernet PCIe
+ 1eec 0101 VSE-225-31S Dual-port 10Gb/25Gb Ethernet PCIe
16d8 BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller
1028 1feb NetXtreme-E 10Gb SFP+ Adapter
+ 117c 00ce FastFrame N4T2 Dual-port 10GBASE-T Ethernet Adapter
14e4 4163 NetXtreme-E Dual-port 10GBASE-T Ethernet OCP 2.0 Adapter (BCM957416M4163C)
14e4 4166 NetXtreme-E Dual-port 10GBASE-T Ethernet OCP 3.0 Adapter (BCM957416N4160C)
1590 020c Ethernet 10Gb 2-port 535T Adapter
@@ -19850,6 +19941,7 @@
103c 30c0 Compaq 6710b
17aa 3a23 IdeaPad S10e
1750 BCM57508 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet
+ 117c 00cf FastFrame N412 Dual-port 100Gb Ethernet Adapter
14e4 2100 NetXtreme-E Dual-port 100G QSFP56 Ethernet PCIe4.0 x16 Adapter (BCM957508-P2100G)
14e4 5208 NetXtreme-E Dual-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957508-N2100G)
14e4 d124 NetXtreme-E P2100D BCM57508 2x100G QSFP PCIE
@@ -20135,6 +20227,12 @@
5850 BCM5850 Crypto Accelerator
5e87 Valkyrie offload engine
5e88 Viper Offload Engine
+# bluetooth PCI function of the BRCM4378 Wireless Network Adapter
+ 5f69 BRCM4378 Bluetooth Controller
+# Bluetooth PCI function of the BRCM4387 Wireless Network Adapter
+ 5f71 BRCM4387 Bluetooth Controller
+# Bluetooth PCI function of the BRCM4377 Wireless Network Adapter
+ 5fa0 BRCM4377 Bluetooth Controller
8602 BCM7400/BCM7405 Serial ATA Controller
9026 CN99xx [ThunderX2] Integrated USB 3.0 xHCI Host Controller
9027 CN99xx [ThunderX2] Integrated AHCI/SATA 3 Host Controller
@@ -20837,6 +20935,7 @@
15b0 Zoltrix International Ltd
15b1 Source Technology Inc
15b2 Mosaid Technologies Inc
+# now NVIDIA
15b3 Mellanox Technologies
0191 MT25408 [ConnectX IB Flash Recovery]
01f6 MT27500 Family [ConnectX-3 Flash Recovery]
@@ -20878,6 +20977,8 @@
0259 Abir Chiplet
025b Quantum-3 in Flash Recovery Mode
025c Quantum-3 RMA
+ 025d Quantum-3CPO in Flash Recovery Mode
+ 025e Quantum-3CPO RMA
0262 MT27710 [ConnectX-4 Lx Programmable] EN
0263 MT27710 [ConnectX-4 Lx Programmable Virtual Function] EN
0264 Innova-2 Flex Burn image
@@ -20887,6 +20988,8 @@
0275 Spectrum-4C RMA
0277 Spectrum-4TOR RMA
0281 NPS-600 Flash Recovery
+ 0282 ArcusE Flash recovery
+ 0283 ArcusE RMA
1002 MT25400 Family [ConnectX-2 Virtual Function]
1003 MT27500 Family [ConnectX-3]
1014 04b5 PCIe3 40GbE RoCE Converged Host Bus Adapter for Power
@@ -20965,10 +21068,10 @@
193d 1084 NIC-ETH540F-3S-2P
1016 MT27710 Family [ConnectX-4 Lx Virtual Function]
1017 MT27800 Family [ConnectX-5]
- 15b3 0006 ConnectX®-5 EN network interface card, 100GbE single-port QSFP28, PCIe3.0 x16, tall bracket; MCX515A-CCAT
- 15b3 0007 Mellanox ConnectX®-5 MCX516A-CCAT
- 15b3 0020 ConnectX®-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8, tall bracket ; MCX512A-ACAT
- 15b3 0068 ConnectX®-5 EN network interface card for OCP2.0, Type 1, with host management, 25GbE dual-port SFP28, PCIe3.0 x8, no bracket Halogen free ; MCX542B-ACAN
+ 15b3 0006 ConnectX®-5 EN network interface card, 100GbE single-port QSFP28, PCIe3.0 x16, tall bracket; MCX515A-CCAT
+ 15b3 0007 Mellanox ConnectX®-5 MCX516A-CCAT
+ 15b3 0020 ConnectX®-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8, tall bracket ; MCX512A-ACAT
+ 15b3 0068 ConnectX®-5 EN network interface card for OCP2.0, Type 1, with host management, 25GbE dual-port SFP28, PCIe3.0 x8, no bracket Halogen free ; MCX542B-ACAN
193d 1051 NIC-IB1040i-Mb-2P
1018 MT27800 Family [ConnectX-5 Virtual Function]
1019 MT28800 Family [ConnectX-5 Ex]
@@ -21060,6 +21163,7 @@
a2dd BF4 Family Crypto enabled [BlueField-4 SoC Crypto enabled]
a2de BF4 Family Crypto disabled [BlueField-4 SoC Crypto disabled]
a2df BF4 Family integrated network controller [BlueField-4 integrated network controller]
+ b200 ArcusE
c2d2 MT416842 BlueField SoC management interfac
c2d3 MT42822 BlueField-2 SoC Management Interface
c2d4 MT43162 BlueField-3 Lx SoC Management Interface
@@ -21082,6 +21186,7 @@
d2f0 Quantum HDR (200Gbps) switch
d2f2 Quantum-2 NDR (400Gbps) switch
d2f4 Quantum-3
+ d2f6 Quantum-3CPO
15b4 CCI/TRIAD
15b5 Cimetrics Inc
15b6 Texas Memory Systems Inc
@@ -21162,7 +21267,7 @@
15cd Dreamtech Co Ltd
15ce Genrad Inc
# https://www.hilscher.com/imprint/
-15cf Hilscher Gesellschaft für Systemautomation mbH
+15cf Hilscher Gesellschaft für Systemautomation mbH
0000 CIFX PCI/PCIe
15d1 Infineon Technologies AG
15d2 FIC (First International Computer Inc)
@@ -21632,14 +21737,14 @@
002e AR9287 Wireless Network Adapter (PCI-Express)
105b e034 T77H167.00
0030 AR93xx Wireless Network Adapter
- 103c 1627 AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter
+ 103c 1627 AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter
106b 009a AirPort Extreme
1186 3a7e DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter
1a56 2000 Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382]
1a56 2001 Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380]
0032 AR9485 Wireless Network Adapter
1028 0208 Wireless 1506 WLAN Half Mini-Card
- 103c 1838 AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter
+ 103c 1838 AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter
105b e044 Unex DHXA-225
144d 410e AR9485WB-EG 802.11b/g/n mini-PCIe card on a series 3 laptop
1a3b 1186 AW-NE186H
@@ -23199,6 +23304,10 @@
0212 Hi1822 Family (2*8G FC)
19e5 d303 Hi1822 SP522 (2*8G FC)
19e5 d306 Hi1822 SP523 (2*8G FC)
+ 0222 Hi1822 Family
+ 19e5 0051 Hi1822 SP681 (2*25/10GE)
+ 19e5 0052 Hi1822 SP680 (4*25/10GE)
+ 19e5 00a1 Hi1822 SP670 (2*100GE)
1710 iBMA Virtual Network Adapter
1711 Hi171x Series [iBMC Intelligent Management system chip w/VGA support]
1822 Hi1822 Family (4*25GE)
@@ -23220,7 +23329,9 @@
19e5 6214 NVMe SSD ES3500P V6 7680GB 2.5" U.2
19e5 6215 NVMe SSD ES3500P V6 15360GB 2.5" U.2
375e Hi1822 Family Virtual Function
+ 375f Hi1822 Family Virtual Function
379e Hi1822 Family Virtual Function
+ 379f Hi1822 Family Virtual Function
a120 HiSilicon PCIe Root Port with Gen4
a121 HiSilicon PCI-PCI Bridge
a122 HiSilicon Embedded DMA Engine
@@ -23543,6 +23654,7 @@
1af4 1100 QEMU Virtual Machine
1af5 Netezza Corp.
1afa J & W Electronics Co., Ltd.
+1b00 Montage Technology Co., Ltd.
1b03 Magnum Semiconductor, Inc,
6100 DXT/DXTPro Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder
7000 D7 Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder
@@ -23556,6 +23668,7 @@
0611 ASM1061 SATA IDE Controller
0612 ASM1062 Serial ATA Controller
1849 0612 Motherboard
+ 0625 106x SATA/RAID Controller
1040 ASM1040 XHCI Controller
1042 ASM1042 SuperSpeed USB Host Controller
1043 1059 K53SM motherboard
@@ -23573,7 +23686,7 @@
1242 ASM1142 USB 3.1 Host Controller
1343 ASM1143 USB 3.1 Host Controller
1812 ASM1812 6-Port PCIe x4 Gen2 Packet Switch
- 2142 ASM2142 USB 3.1 Host Controller
+ 2142 ASM2142/ASM3142 USB 3.1 Host Controller
1462 7a72 H270 PC MATE
2824 ASM2824 PCIe Gen3 Packet Switch
3242 ASM3242 USB 3.2 Host Controller
@@ -23980,7 +24093,8 @@
1339 BC511
1504 SC300 512GB M.2 2280 SATA Solid State Drive
1527 PC401 NVMe Solid State Drive 256GB
- 174a Gold P31 SSD
+ 174a PC711 NVMe Solid State Drive
+ 2204 960GB TLC PCIe Gen3 x4 NVMe M.2 22110
243b PE6110 NVMe Solid State Drive
1c5c 0100 PE6110 NVMe Solid State Drive
2839 PE8000 Series NVMe Solid State Drive
@@ -24004,12 +24118,16 @@
1c5f 0b31 NVMe SSD PBlaze6 6530 3840G 2.5" U.2
1c5f 0b40 NVMe SSD PBlaze6 6530 7680G AIC
1c5f 0b41 NVMe SSD PBlaze6 6530 7680G 2.5" U.2
- 1c5f 4b20 NVMe SSD PBlaze6 6530 1600G AIC
- 1c5f 4b21 NVMe SSD PBlaze6 6530 1600G 2.5" U.2
- 1c5f 4b30 NVMe SSD PBlaze6 6530 3200G AIC
- 1c5f 4b31 NVMe SSD PBlaze6 6530 3200G 2.5" U.2
- 1c5f 4b40 NVMe SSD PBlaze6 6530 6400G AIC
- 1c5f 4b41 NVMe SSD PBlaze6 6530 6400G 2.5" U.2
+ 1c5f 1331 NVMe SSD PBlaze6 6531 3840G 2.5" U.2
+ 1c5f 1341 NVMe SSD PBlaze6 6531 7680G 2.5" U.2
+ 1c5f 4b20 NVMe SSD PBlaze6 6536 1600G AIC
+ 1c5f 4b21 NVMe SSD PBlaze6 6536 1600G 2.5" U.2
+ 1c5f 4b30 NVMe SSD PBlaze6 6536 3200G AIC
+ 1c5f 4b31 NVMe SSD PBlaze6 6536 3200G 2.5" U.2
+ 1c5f 4b40 NVMe SSD PBlaze6 6536 6400G AIC
+ 1c5f 4b41 NVMe SSD PBlaze6 6536 6400G 2.5" U.2
+ 1c5f 5331 NVMe SSD PBlaze6 6537 3200G 2.5" U.2
+ 1c5f 5341 NVMe SSD PBlaze6 6537 6400G 2.5" U.2
003d PBlaze5 920/926
003e PBlaze6 6920
1c5f 0a31 NVMe SSD PBlaze6 6920 3840GB 2.5" U.2
@@ -24061,7 +24179,7 @@
# 256GB NVMe SSD
5766 ADATA XPG GAMMIXS1 1L Media
8201 XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive
-1cc4 Union Memory (Shenzhen)
+1cc4 Shenzhen Unionmemory Information System Ltd.
1203 NVMe SSD Controller UHXXXa series
1cc4 a121 NVMe SSD UHXXXa series U.2 960GB
1cc4 a122 NVMe SSD UHXXXa series U.2 1920GB
@@ -24075,7 +24193,8 @@
17ab NVMe 256G SSD device
6303 AM630 PCIe 4.0 x4 NVMe SSD Controller
1cc5 Embedded Intelligence, Inc.
- 0100 CAN-PCIe-02
+ 0100 PCIe-CAN-02 Dual CAN bus (9-pin male). PCI Express x1.
+ 0101 PCIe-CAN-01 Single CAN bus (9-pin male). PCI Express x1.
1cc7 Radian Memory Systems Inc.
0200 RMS-200
0250 RMS-250
@@ -24119,6 +24238,9 @@
1d00 Pure Storage
1d05 Tongfang Hongkong Limited
1d0f Amazon.com, Inc.
+ 7064 NeuronDevice (Inferentia)
+ 7164 NeuronDevice
+ 1d0f 0000 Trainium
8061 NVMe EBS Controller
cd01 NVMe SSD Controller
ec20 Elastic Network Adapter (ENA)
@@ -24276,6 +24398,8 @@
101d AR-ARK-NIC [Arkville ArkNIC Kernel Path Device]
101e AR-ARKA-FX1 [Arkville 64B DPDK Data Mover for Agilex R-Tile]
101f AR-TK242 [2x100GbE Packet Capture Device]
+ 1020 AR-GP-PF [General-Purpose Physical Function]
+ 1021 AR-MGMT-PF [Board-Generic Management Physical Function]
4200 A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument]
1d72 Xiaomi
1d78 DERA Storage
@@ -24292,6 +24416,50 @@
1d78 3103 D5457 U.2 1.6TB NVMe SSD
1d78 3105 D5457 U.2 3.2TB NVMe SSD
1d78 3107 D5457 U.2 6.4TB NVMe SSD
+ 1d78 5003 D5447 HHHL 1.6TB NVMe SSD
+ 1d78 5004 D5427 HHHL 1.92TB NVMe SSD
+ 1d78 5005 D5447 HHHL 3.2TB NVMe SSD
+ 1d78 5006 D5427 HHHL 3.84TB NVMe SSD
+ 1d78 5007 D5447 HHHL 6.4TB NVMe SSD
+ 1d78 5008 D5427 HHHL 7.68TB NVMe SSD
+ 1d78 5103 D5447 U.2 1.6TB NVMe SSD
+ 1d78 5105 D5447 U.2 3.2TB NVMe SSD
+ 1d78 5106 AF3UP34DTCUN3T8B SSD
+ 1d78 5107 D5447 U.2 6.4TB NVMe SSD
+ 1d78 5114 D5427 U.2 1.92TB NVMe SSD
+ 1d78 5116 D5427 U.2 3.84TB NVMe SSD
+ 1d78 5118 D5427 U.2 7.68TB NVMe SSD
+ 1513 DERA MENG NVMe Controller
+ 1d78 6015 D6456 HHHL 3.2TB NVMe SSD
+ 1d78 6016 D6436 HHHL 3.84TB NVMe SSD
+ 1d78 6017 D6456 HHHL 6.4TB NVMe SSD
+ 1d78 6018 D6436 HHHL 7.68TB NVMe SSD
+ 1d78 6105 D6457 U.2 3.2TB NVMe SSD
+ 1d78 6106 D6437 U.2 3.84TB NVMe SSD
+ 1d78 6107 D6457 U.2 6.4TB NVMe SSD
+ 1d78 6108 D6437 U.2 7.68TB NVMe SSD
+ 1d78 6115 D6456 U.2 3.2TB NVMe SSD
+ 1d78 6116 D6436 U.2 3.84TB NVMe SSD
+ 1d78 6117 D6456 U.2 6.4TB NVMe SSD
+ 1d78 6118 D6436 U.2 7.68TB NVMe SSD
+ 1515 DERA EMEI NVMe Controller
+ 1d78 7002 D7436 HHHL 1.92TB NVMe SSD
+ 1d78 7003 D7456 HHHL 1.6TB NVMe SSD
+ 1d78 7004 D7436 HHHL 3.84TB NVMe SSD
+ 1d78 7005 D7456 HHHL 3.2TB NVMe SSD
+ 1d78 7007 D7456 HHHL 6.4TB NVMe SSD
+ 1d78 7008 D7436 HHHL 7.68TB NVMe SSD
+ 1d78 7009 D7456 HHHL 12.8TB NVMe SSD
+ 1d78 700a D7436 HHHL 15.36TB NVMe SSD
+ 1d78 7102 D7436 U.2 15mm 1.92TB NVMe SSD
+ 1d78 7103 D7456 U.2 15mm 1.6TB NVMe SSD
+ 1d78 7104 D7436 U.2 15mm 3.84TB NVMe SSD
+ 1d78 7105 D7456 U.2 15mm 3.2TB NVMe SSD
+ 1d78 7107 D7456 U.2 15mm 6.4TB NVMe SSD
+ 1d78 7108 D7436 U.2 15mm 7.68TB NVMe SSD
+ 1d78 7109 D7456 U.2 15mm 12.8TB NVMe SSD
+ 1d78 710a D7436 U.2 15mm 15.36TB NVMe SSD
+1d79 Transcend Information, Inc.
1d7c Aerotech, Inc.
# Fiber-optic HyperWire motion control bus from Aerotech.
0001 HyperWire Adapter
@@ -24352,10 +24520,14 @@
e26a Radeon R7 250
1da3 Habana Labs Ltd.
0001 HL-1000 AI Inference Accelerator [Goya]
+# PCIe accelerator card for Deep Learning inference tasks
+ 0030 Greco AI Inference Accelerator
# PCIe accelerator card for Deep Learning training tasks
1000 HL-2000 AI Training Accelerator [Gaudi]
# PCIe accelerator card for Deep Learning training tasks with secured firmware
1010 HL-2000 AI Training Accelerator [Gaudi secured]
+# PCIe accelerator card for Deep Learning training tasks
+ 1020 Gaudi2 AI Training Accelerator
1da8 Corigine, Inc.
1dad Fungible
1db2 ATP ELECTRONICS INC
@@ -24578,6 +24750,7 @@
1dfc JSC NT-COM
1181 TDM 8 Port E1/T1/J1 Adapter
1e0f KIOXIA Corporation
+ 0001 NVMe SSD Controller BG4
0007 NVMe SSD Controller Cx6
1028 2078 DC NVMe CD6 RI 960GB
1028 2079 DC NVMe CD6 RI 1.92TB
@@ -24703,6 +24876,7 @@
1e3b 008b Enterprise NVMe SSD HHHL 1.6TB (H3900)
1e3b 0091 Enterprise NVMe SSD HHHL 0.75TB (H3900)
1e3d Burlywood, Inc
+1e44 Valve Software
1e49 Yangtze Memory Technologies Co.,Ltd
0041 ZHITAI TiPro7000
# YMTC PCIe/NVMe SSD
@@ -24718,6 +24892,7 @@
# Associative Processing Unit (APU)
0010 APU [Leda]
1e4c 0120 SE120
+1e50 IP3 Tech (HK) Limited
1e57 Beijing Panyi Technology Co., Ltd
0100 The device has already been deleted.
0000 0100 PY8800 64GB Accelerator
@@ -24728,6 +24903,8 @@
7010 AI controller A7010
1e60 Hailo Technologies Ltd.
2864 Hailo-8 AI Processor
+1e67 Untether AI
+ 0002 runAI200 AI Inference Accelerator
1e68 Jiangsu Xinsheng Intelligent Technology Co., Ltd
1e6b Axiado Corp.
1e7b Dataland
@@ -24737,17 +24914,18 @@
1203 NVMe SSD Controller UHXXXa series
1e81 a121 NVMe SSD UHXXXa series U.2 960GB
1e81 a122 NVMe SSD UHXXXa series U.2 1920GB
- 1e81 a123 NVMe SSD UHXXXa series U.2 3840GB 
- 1e81 a124 NVMe SSD UHXXXa series U.2 7680GB 
+ 1e81 a123 NVMe SSD UHXXXa series U.2 3840GB 
+ 1e81 a124 NVMe SSD UHXXXa series U.2 7680GB 
1e81 a125 NVMe SSD UHXXXa series U.2 15360GB
- 1e81 a211 NVMe SSD UHXXXa series U.2 800GB 
- 1e81 a212 NVMe SSD UHXXXa series U.2 1600GB 
- 1e81 a213 NVMe SSD UHXXXa series U.2 3200GB 
- 1e81 a214 NVMe SSD UHXXXa series U.2 6400GB 
+ 1e81 a211 NVMe SSD UHXXXa series U.2 800GB 
+ 1e81 a212 NVMe SSD UHXXXa series U.2 1600GB 
+ 1e81 a213 NVMe SSD UHXXXa series U.2 3200GB 
+ 1e81 a214 NVMe SSD UHXXXa series U.2 6400GB 
1e85 Heitec AG
1e89 ID Quantique SA
0002 Quantis-PCIe-40M
0003 Quantis-PCIe-240M
+1e93 Beijing Bytedance Network Technology Co., Ltd.
# aka SED Systems
1e94 Calian SED
1e95 Solid State Storage Technology Corporation
@@ -24773,6 +24951,7 @@
3401 SSD Contoller
1ebd EMERGETECH Company Ltd.
0101 Seirios 2063 Video Codec
+1ec9 Wingtech Group(HongKong)Limited
1ed2 FuriosaAI, Inc.
0000 Warboy
1ed3 Yeston
@@ -24786,32 +24965,31 @@
0121 MTT S1000M
0122 MTT S1000
0123 MTT S2000
+ 01ff MTT HDMI/DP Audio
+ 0201 G2D30
+ 0202 G2D20
+ 0203 G2D10
+ 0211 G2D40
+ 0221 G2S80
+ 0222 G2S85
+ 0223 G2S4
+ 0251 G2N10
+ 02ff MTT HDMI/DP Audio
1ed8 Digiteq Automotive
0101 FG4 PCIe Frame Grabber
1ed9 Myrtle.ai
+1ee4 PETAiO, Inc
1ee9 SUSE LLC
1eec Viscore Technologies Ltd
0102 VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
1eec VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
1eed XDX Computing Technology Ltd.
- 1100 XDX110 Graphic/VGA Controller
- 1101 XDX110 Audio Controller
- 1200 XDX120 Graphic/VGA Controller
- 1201 XDX120 Audio Controller
- 1300 XDX130 Graphic/VGA Controller
- 1301 XDX130 Audio Controller
- 1400 XDX140 Graphic/VGA Controller
- 1401 XDX140 Audio Controller
- 1500 XDX150 Graphic/VGA Controller
- 1501 XDX150 Audio Controller
- 1600 XDX160 Graphic/VGA Controller
- 1601 XDX160 Audio Controller
- 1700 XDX170 Graphic/VGA Controller
- 1701 XDX170 Audio Controller
- 1800 XDX180 Graphic/VGA Controller
- 1801 XDX180 Audio Controller
- 1900 XDX190 Graphic/VGA Controller
- 1901 XDX190 Audio Controller
+ 10a0 XDX110 Graphic/VGA Controller
+ 10a1 XDX110 Audio Controller
+ 1140 XDX120 Graphic/VGA Controller
+ 1141 XDX120 Audio Controller
+1ef6 GrAI Matter Labs
+1ef7 Shenzhen Gunnir Technology Development Co., Ltd
1efb Flexxon Pte Ltd
1f02 Beijing Dayu Technology
1f03 Shenzhen Shichuangyi Electronics Co., Ltd
@@ -24868,7 +25046,12 @@
9032 SDI5.1
1f3f 00a1 Dual Port 100GE SDI5.1
1f40 Netac Technology Co.,Ltd
+1f44 VVDN Technologies Private Limited
+1f4b Axera Semiconductor Co., Ltd
+1f52 MangoBoost Inc.
1faa Hexaflake (Shanghai) Information Technology Co., Ltd.
+ 0c10 Compass C10 PF
+ 0c11 Compass C10 VF
1fab Unifabrix Ltd.
0000 Nexus Alpha IVPU
# nee Tumsan Oy
@@ -25932,6 +26115,7 @@
# uninitialized SRCU32 RAID Controller
061f 80303 I/O Processor
0684 H470 Chipset LPC/eSPI Controller
+ 0685 Z490 Chipset LPC/eSPI Controller
0687 Q470 Chipset LPC/eSPI Controller
068d Comet Lake LPC Controller
06a3 Comet Lake PCH SMBus Controller
@@ -25942,6 +26126,8 @@
06ab Comet Lake PCH Serial IO SPI Controller #1
06ac Comet Lake PCI Express Root Port #21
06b0 Comet Lake PCI Express Root Port #9
+ 06ba Comet Lake PCI Express Root Port #1
+ 06bb Comet Lake PCI Express Root Port #4
06bd Comet Lake PCIe Port #6
06c0 Comet Lake PCI Express Root Port #17
06c8 Comet Lake PCH cAVS
@@ -26361,6 +26547,13 @@
0960 80960RP (i960RP) Microprocessor/Bridge
0962 80960RM (i960RM) Bridge
0964 80960RP (i960RP) Microprocessor/Bridge
+ 0998 Ice Lake IEH
+ 09a2 Ice Lake Memory Map/VT-d
+ 09a3 Ice Lake RAS
+ 09a4 Ice Lake Mesh 2 PCIe
+ 09a6 Ice Lake MSM
+ 09a7 Ice Lake PMON MSM
+ 09ab RST VMD Managed Controller
0a03 Haswell-ULT Thermal Subsystem
0a04 Haswell-ULT DRAM Controller
17aa 2214 ThinkPad X240
@@ -26434,6 +26627,7 @@
1028 1fe7 Express Flash NVMe 3.2TB 2.5" U.2 (P4600)
1028 1fe8 Express Flash NVMe 2.0TB HHHL AIC (P4600)
1028 1fe9 Express Flash NVMe 4.0TB HHHL AIC (P4600)
+ 0b00 Ice Lake CBDMA [QuickData Technology]
0b26 Thunderbolt 4 Bridge [Goshen Ridge 2020]
0b27 Thunderbolt 4 USB Controller [Goshen Ridge 2020]
0b60 NVMe DC SSD [3DNAND, Sentinel Rock Controller]
@@ -26573,6 +26767,7 @@
0dd5 Ethernet Adaptive Virtual Function
0dda Ethernet Connection X722 for 10GbE SFP+
1bd4 0076 Ethernet Connection F102IX722 for 10GbE SFP
+ 1bd4 0082 Ethernet Connection F102IX722 for 10GbE SFP
0e00 Xeon E7 v2/Xeon E5 v2/Core i7 DMI2
1028 04f7 Xeon E5 v2 on PowerEdge R320 server
15d9 066b X9SRL-F
@@ -27604,6 +27799,7 @@
1bd4 001d 1G base-T QP EP014Ti1 Adapter
1bd4 0035 1G base-T QP EP014Ti1 Adapter
1bd4 0066 F014I350
+ 1bd4 008a F012I350
8086 0001 Ethernet Server Adapter I350-T4
8086 0002 Ethernet Server Adapter I350-T2
8086 0003 Ethernet Network Adapter I350-T4 for OCP NIC 3.0
@@ -27678,6 +27874,8 @@
10a9 802c UV300 BaseIO single-port GbE
10a9 802d UV3000 BaseIO GbE Network
17aa 1100 ThinkServer Ethernet Server Adapter
+ 17aa 1509 I210 Gigabit Network Connection
+ 17aa 404d I210 PCIe 1Gb 1-Port RJ45 LOM
8086 0001 Ethernet Server Adapter I210-T1
8086 0002 Ethernet Server Adapter I210-T1
1536 I210 Gigabit Fiber Network Connection
@@ -27784,6 +27982,7 @@
1bd4 0056 Ethernet Network Adapter X710-BM2 for OCP NIC 3.0
1bd4 0065 F102IX710
1bd4 0074 Ethernet Network Adapter X710-BM2 for lldp
+ 1bd4 008b F102IX710
8086 0000 Ethernet Converged Network Adapter X710
8086 0001 Ethernet Converged Network Adapter X710-4
8086 0002 Ethernet Converged Network Adapter X710-4
@@ -27909,8 +28108,10 @@
8086 0008 Ethernet Network Adapter OCP XXV710-1
8086 0009 Ethernet 25G 2P XXV710 Adapter
8086 000a Ethernet 25G 2P XXV710 OCP
+ 8086 000d Ethernet 25G 2P XXV710 OCP
8086 4001 Ethernet Network Adapter XXV710-2
1591 Ethernet Controller E810-C for backplane
+ 8086 bcce Ethernet Controller E810-C for Intel(R) Open FPGA Stack
1592 Ethernet Controller E810-C for QSFP
1137 02bf E810CQDA2 2x100 GbE QSFP28 PCIe NIC
193d 1050 NIC-ETH1060F-LP-2P 2x100GbE Ethernet PCIe Card
@@ -27955,7 +28156,8 @@
1bd4 0057 Ethernet Network Adapter E810-XXVAM2
1bd4 0058 Ethernet Network Adapter E810-XXVAM2 for OCP 3.0
1bd4 006e Ethernet Network Adapter E810-XXVAM2 for BD
- 1eec 0102 VSE250241E Dual-port 10Gb/25Gb Ethernet PCIe
+ 1bd4 0083 Ethernet Network Adapter E810-XXVAM2 for lldp
+ 1eec 0102 VSE-225-41E Dual-port 10Gb/25Gb Etherent PCIe
8086 0001 Ethernet 25G 2P E810-XXV OCP
8086 0002 Ethernet 25G 2P E810-XXV Adapter
8086 0003 Ethernet Network Adapter E810-XXV-2
@@ -28124,6 +28326,7 @@
188a Ethernet Connection E823-C for backplane
188b Ethernet Connection E823-C for QSFP
188c Ethernet Connection E823-C for SFP
+ 1028 0abd Ethernet Connection 25G 4P E823-C LOM
188d Ethernet Connection E823-C/X557-AT 10GBASE-T
188e Ethernet Connection E823-C 1GbE
1890 Ethernet Connection E822-C for backplane
@@ -28161,6 +28364,7 @@
17aa 382a B51-80 Laptop
1908 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1909 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x4)
+ 190b HD Graphics 510
190c Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1028 06d6 Latitude 7275 tablet
1028 06e6 Latitude 11 5175 2-in-1
@@ -28194,6 +28398,7 @@
1028 06e6 Latitude 11 5175 2-in-1
191f Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1921 HD Graphics 520
+ 1923 HD Graphics 535
1926 Iris Graphics 540
1927 Iris Graphics 550
192b Iris Graphics 555
@@ -30069,7 +30274,7 @@
8086 3904 NVMe Datacenter SSD [Optane] x4 AIC (P4800X)
8086 3905 NVMe Datacenter SSD [Optane] 15mm 2.5" U.2 (P4800X)
2723 Wi-Fi 6 AX200
- 1a56 1654 Killer™ Wi-Fi 6 AX1650x (AX200NGW)
+ 1a56 1654 Killerâ„¢ Wi-Fi 6 AX1650x (AX200NGW)
8086 0084 Wi-Fi 6 AX200NGW
2725 Wi-Fi 6 AX210/AX211/AX411 160MHz
8086 0020 Wi-Fi 6 AX210 160MHz
@@ -31670,6 +31875,9 @@
3432 5520/5500/X58 Chipset QuickData Technology Device
3433 5520/5500/X58 Chipset QuickData Technology Device
3438 7500/5520/5500/X58 I/O Hub Throttle Registers
+ 3440 Ice Lake UPI Misc
+ 3441 Ice Lake UPI Link/Phy0
+ 3456 Ice Lake NorthPeak
347e Ice Lake Xeon Non-Transparent Bridge
3482 Ice Lake-LP LPC Controller
34a3 Ice Lake-LP SMBus Controller
@@ -32322,12 +32530,19 @@
3e92 CoffeeLake-S GT2 [UHD Graphics 630]
1028 0869 Vostro 3470
3e93 CoffeeLake-S GT1 [UHD Graphics 610]
+ 3e94 Coffee Lake-S GT2 [UHD Graphics P630]
3e96 CoffeeLake-S GT2 [UHD Graphics P630]
3e98 CoffeeLake-S GT2 [UHD Graphics 630]
+ 3e9a Coffee Lake-S GT2 [UHD Graphics P630]
3e9b CoffeeLake-H GT2 [UHD Graphics 630]
+ 3e9c Coffee Lake-S GT1 [UHD Graphics 610]
3ea0 WhiskeyLake-U GT2 [UHD Graphics 620]
1028 089e Inspiron 5482
+ 3ea1 Whiskey Lake-U GT1 [UHD Graphics 610]
3ea5 CoffeeLake-U GT3e [Iris Plus Graphics 655]
+ 3ea6 Coffee Lake-U GT3 [Iris Plus Graphics 645]
+ 3ea8 Coffee Lake-U GT3 [Iris Plus Graphics 655]
+ 3ea9 Coffee Lake-U GT2 [UHD Graphics 620]
3ec2 8th Gen Core Processor Host Bridge/DRAM Registers
1028 0869 Vostro 3470
1043 8694 PRIME H310M-D
@@ -32473,6 +32688,7 @@
43c8 Tiger Lake-H HD Audio Controller
43e0 Tiger Lake-H Management Engine Interface
43e8 Tiger Lake-H Serial IO I2C Controller #0
+ 43e9 Tiger Lake-H Serial IO I2C Controller #1
43ed Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller
43ef Tiger Lake-H Shared SRAM
43f0 Tiger Lake PCH CNVi WiFi
@@ -32480,12 +32696,16 @@
8086 0074 Wi-Fi 6 AX201 160MHz
8086 0264 Wireless-AC 9461
8086 02a4 Wireless-AC 9462
+ 43fc Tiger Lake-H Integrated Sensor Hub
444e Turbo Memory Controller
+ 4555 Elkhart Lake [UHD Graphics Gen11 16EU]
+ 4571 Elkhart Lake [UHD Graphics Gen11 32EU]
460d 12th Gen Core Processor PCI Express x16 Controller #1
461d Alder Lake Innovation Platform Framework Processor Participant
461e Alder Lake-P Thunderbolt 4 USB Controller
461f Alder Lake-P Thunderbolt 4 PCI Express Root Port #3
4626 Alder Lake-P Integrated Graphics Controller
+ 4628 Alder Lake-UP3 GT2 [UHD Graphics]
4629 12th Gen Core Processor Host Bridge/DRAM Registers
462f Alder Lake-P Thunderbolt 4 PCI Express Root Port #2
463d 12th Gen Core Processor PCI Express x4 Controller #2
@@ -32495,21 +32715,34 @@
464d 12th Gen Core Processor PCI Express x4 Controller #0
464f 12th Gen Core Processor Gaussian & Neural Accelerator
4660 12th Gen Core Processor Host Bridge/DRAM Registers
+ 4668 12th Gen Core Processor Host Bridge/DRAM Registers
466d Alder Lake-P Thunderbolt 4 NHI #1
466e Alder Lake-P Thunderbolt 4 PCI Express Root Port #0
467d Platform Monitoring Technology
467f Volume Management Device NVMe RAID Controller
4680 AlderLake-S GT1
+ 4682 Alder Lake-S GT1 [UHD Graphics 730]
+ 4688 Alder Lake-HX GT1 [UHD Graphics 770]
+ 468a Alder Lake-S [UHD Graphics]
+ 468b Alder Lake-S [UHD Graphics]
+ 4690 Alder Lake-S GT1 [UHD Graphics 770]
+ 4692 Alder Lake-S GT1 [UHD Graphics 730]
+ 4693 Alder Lake-S GT1 [UHD Graphics 710]
46a0 AlderLake-P GT2
46a1 UHD Graphics
46a3 Alder Lake-P GT1 [UHD Graphics]
46a6 Alder Lake-P Integrated Graphics Controller
+ 46a8 Alder Lake-UP3 GT2 [Iris Xe Graphics]
+ 46aa Alder Lake-UP4 GT2 [Iris Xe Graphics]
+ 46b3 Alder Lake-UP3 GT1 [UHD Graphics]
46c0 AlderLake-M GT1
+ 46c3 Alder Lake-UP4 GT1 [UHD Graphics]
4905 DG1 [Iris Xe MAX Graphics]
4906 DG1 [Iris Xe Pod]
4907 SG1 [Server GPU SG-18M]
193d 4000 UN-GPU-XG310-32GB-FHFL
4908 DG1 [Iris Xe Graphics]
+ 4909 DG1 [UHD Discrete Graphics]
4c3d Volume Management Device NVMe RAID Controller
4c8a RocketLake-S GT1 [UHD Graphics 750]
4c8b RocketLake-S GT1 [UHD Graphics 730]
@@ -32607,6 +32840,20 @@
8086 0001 EtherExpress PRO/100 Server Ethernet Adapter
530d 80310 (IOP) IO Processor
5502 Ethernet Controller (2) I225-LMvP
+ 1ab6 0225 TS4 On-Board 2.5GbE Ethernet Adaptor
+ 5690 DG2 [Arc A770M]
+ 5691 DG2 [Arc A730M]
+ 5692 DG2 [Arc A550M]
+ 5693 DG2 [Arc A370M]
+ 5694 DG2 [Arc A350M]
+ 5695 DG2 [Iris Xe MAX A200M]
+ 56a0 DG2 [Arc A770]
+ 56a1 DG2 [Arc A750]
+ 56a2 DG2 [Arc A580]
+ 56a5 DG2 [Arc A380]
+ 56a6 DG2 [Arc A310]
+ 56c0 Data Center GPU Flex 170
+ 56c1 Data Center GPU Flex 140
5845 QEMU NVM Express Controller
1af4 1100 QEMU Virtual Machine
5900 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
@@ -32617,7 +32864,9 @@
17aa 2247 ThinkPad T570
17aa 224f ThinkPad X1 Carbon 5th Gen
5905 Xeon E3-1200 v6/7th Gen Core Processor PCIe Controller (x8)
+ 5906 HD Graphics 610
5909 Xeon E3-1200 v6/7th Gen Core Processor PCIe Controller (x4)
+ 590b HD Graphics 610
590c Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
590f Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
1462 7a68 B250 KRAIT GAMING (MS-7A68)
@@ -32640,10 +32889,11 @@
591d HD Graphics P630
591e HD Graphics 615
591f Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
+ 5921 HD Graphics 620
5923 HD Graphics 635
5926 Iris Plus Graphics 640
5927 Iris Plus Graphics 650
- 5a84 Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller
+ 5a84 Apollo Lake [HD Graphics 505]
5a85 HD Graphics 500
5a88 Celeron N3350/Pentium N4200/Atom E3900 Series Imaging Unit
5a98 Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster
@@ -32972,18 +33222,56 @@
7aa3 Alder Lake-S PCH SMBus Controller
7aa4 Alder Lake-S PCH SPI Controller
7aa7 Alder Lake-S PCH Shared SRAM
+ 7aa8 Alder Lake-S PCH Serial IO UART #0
+ 7aab Alder Lake-S PCH Serial IO SPI Controller #1
+ 7ab0 Alder Lake-S PCH PCI Express Root Port #9
7ab4 Alder Lake-S PCH PCI Express Root Port #13
7ab8 Alder Lake-S PCH PCI Express Root Port #1
7ab9 Alder Lake-S PCH PCI Express Root Port #2
7abc Alder Lake-S PCH PCI Express Root Port #5
7abd Alder Lake-S PCH PCI Express Root Port #6
- 7acc Alder Lake-S PCH I2C Controller #0
+ 7abf Alder Lake-S PCH PCI Express Root Port #8
+ 7acc Alder Lake-S PCH Serial IO I2C Controller #0
+ 7acd Alder Lake-S PCH Serial IO I2C Controller #1
+ 7ace Alder Lake-S PCH Serial IO I2C Controller #2
+ 7acf Alder Lake-S PCH Serial IO I2C Controller #3
7ad0 Alder Lake-S HD Audio Controller
7ae0 Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller
7ae2 Alder Lake-S PCH SATA Controller [AHCI Mode]
7ae8 Alder Lake-S PCH HECI Controller #1
7af0 Alder Lake-S PCH CNVi WiFi
+ 8086 0034 Wireless-AC 9560
+ 8086 0070 Wi-Fi 6 AX201 160MHz
8086 0094 Wi-Fi 6 AX201 160MHz
+ 7afc Alder Lake-S PCH Serial IO I2C Controller #4
+ 7afd Alder Lake-S PCH Serial IO I2C Controller #5
+ 7d0b Volume Management Device NVMe RAID Controller Intel Corporation
+ 7e01 Meteor Lake-P LPC/eSPI Controller
+ 7e22 Meteor Lake-P SMBus Controller
+ 7e23 Meteor Lake-P SPI Controller
+ 7e24 Meteor Lake-P Trace Hub
+ 7e25 Meteor Lake-P Serial IO UART Controller #0
+ 7e26 Meteor Lake-P Serial IO UART Controller #1
+ 7e27 Meteor Lake-P Serial IO SPI Controller #0
+ 7e28 Meteor Lake-P HD Audio Controller
+ 7e30 Meteor Lake-P Serial IO SPI Controller #1
+ 7e46 Meteor Lake-P Serial IO SPI Controller #2
+ 7e50 Meteor Lake-P Serial IO I2C Controller #4
+ 7e51 Meteor Lake-P Serial IO I2C Controller #5
+ 7e52 Meteor Lake-P Serial IO UART Controller #2
+ 7e78 Meteor Lake-P Serial IO I2C Controller #0
+ 7e79 Meteor Lake-P Serial IO I2C Controller #1
+ 7e7a Meteor Lake-P Serial IO I2C Controller #2
+ 7e7b Meteor Lake-P Serial IO I2C Controller #3
+ 7e7d Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller
+ 7e7e Meteor Lake-P USB Device Controller
+ 7ec0 Meteor Lake-P Thunderbolt 4 USB Controller
+ 7ec2 Meteor Lake-P Thunderbolt 4 NHI #0
+ 7ec3 Meteor Lake-P Thunderbolt 4 NHI #1
+ 7ec4 Meteor Lake-P Thunderbolt 4 PCI Express Root Port #0
+ 7ec5 Meteor Lake-P Thunderbolt 4 PCI Express Root Port #1
+ 7ec6 Meteor Lake-P Thunderbolt 4 PCI Express Root Port #2
+ 7ec7 Meteor Lake-P Thunderbolt 4 PCI Express Root Port #3
8002 Trusted Execution Technology Registers
8003 Trusted Execution Technology Registers
8100 US15W/US15X SCH [Poulsbo] Host Bridge
@@ -33027,6 +33315,7 @@
1993 0def mGuard-PCI AV#0
8603 Ice Lake-LP Dynamic Tuning Processor Participant
87c0 UHD Graphics 617
+ 87ca UHD Graphics 617
8800 Platform Controller Hub EG20T PCI Express Port
8801 Platform Controller Hub EG20T Packet Hub
8802 Platform Controller Hub EG20T Gigabit Ethernet Controller
@@ -33068,6 +33357,7 @@
8a52 Iris Plus Graphics G7
8a53 Iris Plus Graphics G7
8a56 Iris Plus Graphics G1 (Ice Lake)
+ 8a58 Ice Lake-Y GT1 [UHD Graphics G1]
8a5a Iris Plus Graphics G4 (Ice Lake)
8a5c Iris Plus Graphics G4 (Ice Lake)
8c00 8 Series/C220 Series Chipset Family 4-port SATA Controller 1 [IDE mode]
@@ -33316,6 +33606,8 @@
9622 Integrated RAID
9641 Integrated RAID
96a1 Integrated RAID
+ 9840 Lakefield GT2 [UHD Graphics]
+ 9841 Lakefield GT1.5 [UHD Graphics]
9a01 11th Gen Core Processor PCIe Controller #1
9a03 TigerLake-LP Dynamic Tuning Processor Participant
9a09 11th Gen Core Processor PCIe Controller
@@ -33341,13 +33633,18 @@
9a31 Tiger Lake-H Thunderbolt 4 PCI Express Root Port #3
9a33 Tiger Lake Trace Hub
9a36 11th Gen Core Processor Host Bridge/DRAM Registers
+ 9a40 Tiger Lake-UP4 GT2 [Iris Xe Graphics]
9a49 TigerLake-LP GT2 [Iris Xe Graphics]
9a60 TigerLake-H GT1 [UHD Graphics]
9a68 TigerLake-H GT1 [UHD Graphics]
+ 9a70 Tiger Lake-H GT1 [UHD Graphics]
+ 9a78 Tiger Lake-LP GT2 [UHD Graphics G4]
+ 9b21 Comet Lake-U GT2 [UHD Graphics 620]
9b33 Comet Lake-S 6c Host Bridge/DRAM Controller
9b41 CometLake-U GT2 [UHD Graphics]
1028 09bd Latitude 7310
1028 09be Latitude 7410
+ 9b43 10th Gen Core Processor Host Bridge/DRAM Registers
9b44 10th Gen Core Processor Host Bridge/DRAM Registers
9b53 Comet Lake-S 6c Host Bridge/DRAM Controller
9b54 10th Gen Core Processor Host Bridge/DRAM Registers
@@ -33355,11 +33652,18 @@
1028 09be Latitude 7410
9b63 10th Gen Core Processor Host Bridge/DRAM Registers
9b64 10th Gen Core Processor Host Bridge/DRAM Registers
+ 9ba4 Comet Lake-H GT1 [UHD Graphics 610]
9ba8 CometLake-S GT1 [UHD Graphics 610]
+ 9baa Comet Lake UHD Graphics
+ 9bac Comet Lake UHD Graphics
9bc4 CometLake-H GT2 [UHD Graphics]
9bc5 CometLake-S GT2 [UHD Graphics 630]
+ 9bc6 Comet Lake-S GT2 [UHD Graphics P630]
9bc8 CometLake-S GT2 [UHD Graphics 630]
9bca Comet Lake UHD Graphics
+ 9bcc Comet Lake UHD Graphics
+ 9be6 Comet Lake-S GT2 [UHD Graphics P630]
+ 9bf6 Coffee Lake-S GT2 [UHD Graphics P630]
9c00 8 Series SATA Controller 1 [IDE mode]
9c01 8 Series SATA Controller 1 [IDE mode]
9c02 8 Series SATA Controller 1 [AHCI mode]
@@ -33672,6 +33976,8 @@
a0c5 Tiger Lake-LP Serial IO I2C Controller #4
a0c6 Tiger Lake-LP Serial IO I2C Controller #5
a0c8 Tiger Lake-LP Smart Sound Technology Audio Controller
+# SATA controller on Intel Tiger Lake based mobile platforms in AHCI mode. Could be found on Panasonic Let's Note CF-SV2.
+ a0d3 Tiger Lake-LP SATA Controller
a0e0 Tiger Lake-LP Management Engine Interface
a0e3 Tiger Lake-LP Active Management Technology - SOL
a0e8 Tiger Lake-LP Serial IO I2C Controller #0
@@ -33996,7 +34302,17 @@
a3eb Comet Lake PCI Express Root Port #21
a3f0 Comet Lake PCH-V cAVS
a620 6400/6402 Advanced Memory Buffer (AMB)
+ a77f Volume Management Device NVMe RAID Controller Intel Corporation
+ a780 Raptor Lake-S UHD Graphics
+ a781 Raptor Lake-S UHD Graphics
+ a782 Raptor Lake-S UHD Graphics
+ a783 Raptor Lake-S UHD Graphics
+ a788 Raptor Lake-S UHD Graphics
+ a789 Raptor Lake-S UHD Graphics
+ a78a Raptor Lake-S UHD Graphics
+ a78b Raptor Lake-S UHD Graphics
abc0 Omni-Path Fabric Switch Silicon 100 Series
+ ad0b Volume Management Device NVMe RAID Controller Intel Corporation
b152 21152 PCI-to-PCI Bridge
8086 b152 21152 PCI-to-PCI Bridge
# observed, and documented in Intel revision note; new mask of 1011:0026
@@ -34087,6 +34403,8 @@
011b WX1860AL1 Gigabit Ethernet Controller Virtual Function
1000 Ethernet Controller RP1000 Virtual Function for 10GbE SFP+
1001 Ethernet Controller RP1000 for 10GbE SFP+
+ 1bd4 0084 Ethernet Controller RP1000 for 10GbE SFP+(lldp)
+ 1bd4 0085 Ethernet Controller SP1000A for 10GBASE-T
8088 0000 Ethernet Network Adaptor RP1000 for 10GbE SFP+
2000 Ethernet Controller RP2000 Virtual Function for 10GbE SFP+
2001 Ethernet Controller RP2000 for 10GbE SFP+
@@ -34482,6 +34800,10 @@
1bd4 0078 RS0800M5E24iM
1bd4 0079 RS0800M5H24iM
1bd4 0080 RS0804M5R16iM
+ 1bd4 0086 RT0800M7E
+ 1bd4 0087 RT0800M7H
+ 1bd4 0088 RT0804M7R
+ 1bd4 0089 RT0808M7R
1cc4 0101 Ramaxel FBGF-RAD PM8204
1cc4 0201 Ramaxel FBGF-RAD PM8222
1d49 0220 ThinkSystem 4350-8i SAS/SATA 12Gb HBA
@@ -34532,11 +34854,17 @@
9005 1462 HBA 1200-8i
9005 1471 SmartRAID 3254-16i /e
9005 1472 SmartRAID 3258-16i /e
+ 9005 1475 SmartRAID 3254-16e /e
9005 14a0 SmartRAID 3254-8i
9005 14a1 SmartRAID 3204-8i
9005 14a2 SmartRAID 3252-8i
+ 9005 14a4 SmartRAID 3254-8i /e
+ 9005 14a5 SmartRAID 3252-8i /e
+ 9005 14a6 SmartRAID 3204-8i /e
9005 14c0 SmartHBA 2200-16i
9005 14c1 HBA 1200-16i
+ 9005 14c3 HBA 1200-16e
+ 9005 14c4 HBA 1200-8e
0410 AIC-9410W SAS (Razor HBA RAID)
9005 0410 ASC-48300(Spirit RAID)
9005 0411 ASC-58300 (Oakmont RAID)
@@ -34644,7 +34972,7 @@
# 2-port Serial 1-port Parallel Adaptor
9912 PCIe 9912 Multi-I/O Controller
9922 MCS9922 PCIe Multi-I/O Controller
- 9990 MCS9990 PCIe to 4‐Port USB 2.0 Host Controller
+ 9990 MCS9990 PCIe to 4‐Port USB 2.0 Host Controller
# Subsystem ID on a 3c985B-SX network card
9850 3Com (wrong ID)
9902 Stargen Inc.
diff --git a/share/mk/bsd.compat.mk b/share/mk/bsd.compat.mk
index f7b40ce47532..9a59020b4df2 100644
--- a/share/mk/bsd.compat.mk
+++ b/share/mk/bsd.compat.mk
@@ -66,6 +66,12 @@ LIB32WMAKEFLAGS+= OBJCOPY="${XOBJCOPY}"
LIB32CFLAGS= -DCOMPAT_32BIT
LIB32DTRACE= ${DTRACE} -32
LIB32WMAKEFLAGS+= -DCOMPAT_32BIT
+LIB32_MACHINE_ABI= ${MACHINE_ABI:N*64} long32 ptr32
+.if ${COMPAT_ARCH} == "amd64"
+LIB32_MACHINE_ABI+= time32
+.else
+LIB32_MACHINE_ABI+= time64
+.endif
# -------------------------------------------------------------------
# In the program linking case, select LIBCOMPAT
@@ -95,7 +101,7 @@ _LIBCOMPAT:= ${WANT_COMPAT}
# Set defaults based on type.
libcompat= ${_LIBCOMPAT:tl}
_LIBCOMPAT_MAKEVARS= _OBJTOP TMP CPUFLAGS CFLAGS CXXFLAGS LDFLAGS \
- _MACHINE _MACHINE_ARCH \
+ _MACHINE _MACHINE_ARCH _MACHINE_ABI \
WMAKEENV WMAKEFLAGS WMAKE WORLDTMP
.for _var in ${_LIBCOMPAT_MAKEVARS}
.if !empty(LIB${_LIBCOMPAT}${_var})
diff --git a/share/mk/bsd.compiler.mk b/share/mk/bsd.compiler.mk
index c8fb9e1ba4a8..e34c3c62a7e8 100644
--- a/share/mk/bsd.compiler.mk
+++ b/share/mk/bsd.compiler.mk
@@ -235,6 +235,10 @@ ${X_}COMPILER_FEATURES+= c++11 c++14
(${${X_}COMPILER_TYPE} == "gcc" && ${${X_}COMPILER_VERSION} >= 70000)
${X_}COMPILER_FEATURES+= c++17
.endif
+.if (${${X_}COMPILER_TYPE} == "clang" && ${${X_}COMPILER_VERSION} >= 100000) || \
+ (${${X_}COMPILER_TYPE} == "gcc" && ${${X_}COMPILER_VERSION} >= 100100)
+${X_}COMPILER_FEATURES+= c++20
+.endif
.if ${${X_}COMPILER_TYPE} == "clang"
${X_}COMPILER_FEATURES+= retpoline init-all
# PR257638 lld fails with BE compressed debug. Fixed in main but external tool
diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk
index 610f45969b4d..db5fa08df4bc 100644
--- a/share/mk/bsd.cpu.mk
+++ b/share/mk/bsd.cpu.mk
@@ -362,3 +362,41 @@ CFLAGS_NO_SIMD += ${CFLAGS_NO_SIMD.${COMPILER_TYPE}}
CFLAGS += ${CFLAGS.${MACHINE_ARCH}}
CXXFLAGS += ${CXXFLAGS.${MACHINE_ARCH}}
+#
+# MACHINE_ABI is a list of properties about the ABI used for MACHINE_ARCH.
+# The following properties are indicated with one of the follow values:
+#
+# Byte order: big-endian, little-endian
+# Floating point ABI: soft-float, hard-float
+# Size of long (size_t, etc): long32, long64
+# Pointer type: ptr32, ptr64
+# Size of time_t: time32, time64
+#
+.if (${MACHINE} == "arm" && (defined(CPUTYPE) && ${CPUTYPE:M*soft*})) || \
+ (${MACHINE_ARCH} == "powerpc" && (defined(CPUTYPE) && ${CPUTYPE} == "e500")) || \
+ ${MACHINE_ARCH:Mriscv*sf*}
+MACHINE_ABI+= soft-float
+.else
+MACHINE_ABI+= hard-float
+.endif
+# Currently all 64-bit architectures include 64 in their name (see arch(7)).
+.if ${MACHINE_ARCH:M*64*}
+MACHINE_ABI+= long64
+.else
+MACHINE_ABI+= long32
+.endif
+.if ${MACHINE_ABI:Mlong64}
+MACHINE_ABI+= ptr64
+.else
+MACHINE_ABI+= ptr32
+.endif
+.if ${MACHINE_ARCH} == "i386"
+MACHINE_ABI+= time32
+.else
+MACHINE_ABI+= time64
+.endif
+.if ${MACHINE_ARCH:Mpowerpc*} && !${MACHINE_ARCH:M*le}
+MACHINE_ABI+= big-endian
+.else
+MACHINE_ABI+= little-endian
+.endif
diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk
index e53e129281c7..35f2206fee23 100644
--- a/share/mk/bsd.libnames.mk
+++ b/share/mk/bsd.libnames.mk
@@ -27,6 +27,7 @@ LIBAVL?= ${LIBDESTDIR}${LIBDIR_BASE}/libavl.a
LIBBE?= ${LIBDESTDIR}${LIBDIR_BASE}/libbe.a
LIBBEGEMOT?= ${LIBDESTDIR}${LIBDIR_BASE}/libbegemot.a
LIBBLACKLIST?= ${LIBDESTDIR}${LIBDIR_BASE}/libblacklist.a
+LIBBLOCKSRUNTIME?= ${LIBDESTDIR}${LIBDIR_BASE}/libBlocksRuntime.a
LIBBLUETOOTH?= ${LIBDESTDIR}${LIBDIR_BASE}/libbluetooth.a
LIBBSDXML?= ${LIBDESTDIR}${LIBDIR_BASE}/libbsdxml.a
LIBBSM?= ${LIBDESTDIR}${LIBDIR_BASE}/libbsm.a
@@ -116,7 +117,6 @@ LIBNV?= ${LIBDESTDIR}${LIBDIR_BASE}/libnv.a
LIBNVPAIR?= ${LIBDESTDIR}${LIBDIR_BASE}/libnvpair.a
LIBOPENCSD?= ${LIBDESTDIR}${LIBDIR_BASE}/libopencsd.a
LIBOPENSM?= ${LIBDESTDIR}${LIBDIR_BASE}/libopensm.a
-LIBOPIE?= ${LIBDESTDIR}${LIBDIR_BASE}/libopie.a
LIBOSMCOMP?= ${LIBDESTDIR}${LIBDIR_BASE}/libosmcomp.a
LIBOSMVENDOR?= ${LIBDESTDIR}${LIBDIR_BASE}/libosmvendor.a
LIBPAM?= ${LIBDESTDIR}${LIBDIR_BASE}/libpam.a
diff --git a/share/mk/bsd.sanitizer.mk b/share/mk/bsd.sanitizer.mk
index 31aecd9e578e..0f2fb7f9e71a 100644
--- a/share/mk/bsd.sanitizer.mk
+++ b/share/mk/bsd.sanitizer.mk
@@ -29,7 +29,7 @@ _use_sanitizers= yes
# For libraries we only instrument the shared and PIE libraries by setting
# SHARED_CFLAGS instead of CFLAGS. We do this since static executables are not
-# compatible with the santizers (interceptors do not work).
+# compatible with the sanitizers (interceptors do not work).
.if ${_use_sanitizers} != "no"
.include "../../lib/libclang_rt/compiler-rt-vars.mk"
.if target(__<bsd.lib.mk>__)
diff --git a/share/mk/bsd.subdir.mk b/share/mk/bsd.subdir.mk
index fb686a101322..e45c332a1134 100644
--- a/share/mk/bsd.subdir.mk
+++ b/share/mk/bsd.subdir.mk
@@ -64,6 +64,11 @@ STANDALONE_SUBDIR_TARGETS+= realinstall
.include <bsd.init.mk>
+.if ${MK_META_MODE} == "yes"
+.MAKE.JOB.PREFIX=
+ECHODIR= :
+.endif
+
.if make(print-dir)
NEED_SUBDIR= 1
ECHODIR= :
diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk
index 221e8b028479..42290e96f859 100644
--- a/share/mk/bsd.sys.mk
+++ b/share/mk/bsd.sys.mk
@@ -75,6 +75,9 @@ CWARNFLAGS.clang+= -Wthread-safety
CWARNFLAGS+= -Wno-uninitialized
.endif # WARNS >=2 && WARNS <= 4
CWARNFLAGS+= -Wno-pointer-sign
+.if !defined(NO_WDATE_TIME)
+CWARNFLAGS+= -Wdate-time
+.endif # NO_WDATE_TIME
# Clang has more warnings enabled by default, and when using -Wall, so if WARNS
# is set to low values, these have to be disabled explicitly.
.if ${WARNS} <= 6
@@ -114,6 +117,15 @@ CWARNFLAGS+= -Wno-misleading-indentation
.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 140000
NO_WBITWISE_INSTEAD_OF_LOGICAL= -Wno-bitwise-instead-of-logical
.endif
+.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150000
+NO_WDEPRECATED_NON_PROTOTYPE=-Wno-deprecated-non-prototype
+.endif
+.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 110100
+NO_WARRAY_PARAMETER= -Wno-array-parameter
+.endif
+.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 120100
+NO_WUSE_AFTER_FREE= -Wno-use-after-free
+.endif
.endif # WARNS
.if defined(FORMAT_AUDIT)
@@ -205,6 +217,14 @@ CWARNFLAGS+= -Wno-error=overflow
.endif
.endif
+# GCC 12.1.0
+.if ${COMPILER_VERSION} >= 120100
+# These warnings are raised by headers in libc++ so are disabled
+# globally for all C++
+CXXWARNFLAGS+= -Wno-literal-suffix \
+ -Wno-error=unknown-pragmas
+.endif
+
# GCC produces false positives for functions that switch on an
# enum (GCC bug 87950)
CWARNFLAGS+= -Wno-return-type
@@ -216,7 +236,8 @@ CWARNFLAGS+= -Wno-system-headers
.endif # gcc
# How to handle FreeBSD custom printf format specifiers.
-.if ${COMPILER_TYPE} == "clang"
+.if ${COMPILER_TYPE} == "clang" || \
+ (${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 120100)
FORMAT_EXTENSIONS= -D__printf__=__freebsd_kprintf__
.else
FORMAT_EXTENSIONS= -fformat-extensions
diff --git a/share/mk/meta.stage.mk b/share/mk/meta.stage.mk
index c362f0b590ad..9f54f3b1f9c5 100644
--- a/share/mk/meta.stage.mk
+++ b/share/mk/meta.stage.mk
@@ -52,7 +52,7 @@ _objroot ?= ${_OBJROOT:tA}
# make sure this is global
_STAGED_DIRS ?=
.export _STAGED_DIRS
-# add each dir we stage to to _STAGED_DIRS
+# add each dir we stage to _STAGED_DIRS
# and make sure we have absolute paths so that bmake
# will match against .MAKE.META.BAILIWICK
STAGE_DIR_FILTER = tA:@d@$${_STAGED_DIRS::+=$$d}$$d@
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk
index 50eb5f1bf915..59b7630bcf55 100644
--- a/share/mk/src.libnames.mk
+++ b/share/mk/src.libnames.mk
@@ -97,6 +97,7 @@ _LIBRARIES= \
archive \
asn1 \
avl \
+ BlocksRuntime \
be \
begemot \
bluetooth \
@@ -175,7 +176,6 @@ _LIBRARIES= \
nv \
nvpair \
opencsd \
- opie \
pam \
panel \
panelw \
@@ -315,7 +315,6 @@ _DP_cap_syslog= nv
_DP_pcap= ibverbs mlx5
.endif
_DP_pjdlog= util
-_DP_opie= md
_DP_usb= pthread
_DP_unbound= ssl crypto pthread
_DP_rt= pthread
@@ -356,7 +355,7 @@ _DP_gmock= gtest
_DP_gmock_main= gmock
_DP_gtest_main= gtest
_DP_devstat= kvm
-_DP_pam= radius tacplus opie md util
+_DP_pam= radius tacplus md util
.if ${MK_KERBEROS} != "no"
_DP_pam+= krb5
.endif
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index 4ac61f13cee2..adb6912daa7d 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -81,7 +81,6 @@ __DEFAULT_YES_OPTIONS = \
CDDL \
CLANG \
CLANG_BOOTSTRAP \
- CLANG_IS_CC \
CLEAN \
CPP \
CROSS_COMPILER \
@@ -142,6 +141,7 @@ __DEFAULT_YES_OPTIONS = \
LOCATE \
LPR \
LS_COLORS \
+ MACHDEP_OPTIMIZATIONS \
MAIL \
MAILWRAPPER \
MAKE \
@@ -204,7 +204,6 @@ __DEFAULT_NO_OPTIONS = \
DTRACE_TESTS \
EXPERIMENTAL \
HESIOD \
- LOADER_FIREWIRE \
LOADER_VERBOSE \
LOADER_VERIEXEC_PASS_MANIFEST \
LLVM_BINUTILS \
@@ -331,8 +330,7 @@ BROKEN_OPTIONS+=CXGBETOOL
BROKEN_OPTIONS+=MLX5TOOL
.endif
-# HyperV is currently x86-only
-.if ${__T} != "amd64" && ${__T} != "i386"
+.if ${__T} != "amd64" && ${__T} != "i386" && ${__T} != "aarch64"
BROKEN_OPTIONS+=HYPERV
.endif
@@ -349,6 +347,11 @@ __DEFAULT_YES_OPTIONS+=OPENMP
__DEFAULT_NO_OPTIONS+=OPENMP
.endif
+# libc++ requires C++20
+.if !${COMPILER_FEATURES:Mc++20}
+BROKEN_OPTIONS+=CXX
+.endif
+
.include <bsd.mkopt.mk>
#
@@ -380,6 +383,9 @@ MK_KERBEROS_SUPPORT:= no
.if ${MK_CXX} == "no"
MK_CLANG:= no
+MK_LLD:= no
+MK_LLDB:= no
+MK_LLVM_BINUTILS:= no
MK_GOOGLETEST:= no
MK_OFED:= no
MK_OPENMP:= no
diff --git a/share/syscons/keymaps/INDEX.keymaps b/share/syscons/keymaps/INDEX.keymaps
index 800251186bf2..9db6eec2ea56 100644
--- a/share/syscons/keymaps/INDEX.keymaps
+++ b/share/syscons/keymaps/INDEX.keymaps
@@ -207,7 +207,7 @@ fr.iso.acc.kbd:uk: ISO-8859-1 (accent keys)
fr.macbook.acc.kbd:en:French Macbook/Macbook Pro ISO-8859-15 (accent keys)
fr.macbook.acc.kbd:da:Fransk MacBook/MacBook Pro ISO-8859-15 (accenttaster)
-fr.macbook.acc.kbd:de:Franzsisch Macbook/Macbook Pro ISO-8859-15 (mit Aksenten)
+fr.macbook.acc.kbd:de:Franzsisch Macbook/Macbook Pro ISO-8859-15 (mit Akzenten)
fr.macbook.acc.kbd:fr:Franais Macbook/Macbook Pro ISO-8859-15 (accent keys)
fr.macbook.acc.kbd:pt:Francs Macbook/Macbook Pro ISO-8859-15 (com acentos)
fr.macbook.acc.kbd:es:Francs Macbook/Macbook Pro ISO-8859-15 (con acentos)
diff --git a/share/termcap/Makefile b/share/termcap/Makefile
index e7c7f544b7f4..8e2a82a7b268 100644
--- a/share/termcap/Makefile
+++ b/share/termcap/Makefile
@@ -11,7 +11,6 @@ PACKAGE= runtime
FILES= termcap termcap.db
FILESDIR= ${BINDIR}/misc
CLEANFILES+= termcap.db
-CONFS= termcap.small
.include <bsd.endian.mk>
.include <src.tools.mk>
diff --git a/share/termcap/termcap.small b/share/termcap/termcap.small
deleted file mode 100644
index 7c308378250b..000000000000
--- a/share/termcap/termcap.small
+++ /dev/null
@@ -1,315 +0,0 @@
-# Copyright (c) 1980, 1985, 1989 The Regents of the University of California.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. All advertising materials mentioning features or use of this software
-# must display the following acknowledgement:
-# This product includes software developed by the University of
-# California, Berkeley and its contributors.
-# 4. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-# @(#)termcap.src 5.88 (Berkeley) 4/30/91
-# $FreeBSD$
-#
-# for syscons
-# common entry without semigraphics
-cons25w|ansiw|ansi80x25-raw:\
- :am:bs:NP:ms:pt:AX:eo:bw:ut:km:\
- :co#80:li#25:pa#64:Co#8:it#8:\
- :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
- :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:cb=\E[1K:\
- :nd=\E[C:rs=\Ec:so=\E[7m:se=\E[27m:up=\E[A:cr=^M:ta=^I:\
- :AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:sc=\E7:rc=\E8:\
- :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\
- :k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\
- :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:sf=\E[S:sr=\E[T:\
- :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\177:kB=\E[Z:\
- :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\
- :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:\
- :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:bl=^G:\
- :ve=\E[=S:vi=\E[=1S:vs=\E[=2S:
-# CP437 FreeBSD console with ACS support
-cons25|ansis|ansi80x25:\
- :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261i^U0\333y\363z\362:\
- :tc=cons25w:
-cons25-m|ansis-mono|ansi80x25-mono:\
- :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25:
-cons30|ansi80x30:\
- :li#30:tc=cons25:
-cons30-m|ansi80x30-mono:\
- :li#30:tc=cons25-m:
-cons43|ansi80x43:\
- :li#43:tc=cons25:
-cons43-m|ansi80x43-mono:\
- :li#43:tc=cons25-m:
-cons50|ansil|ansi80x50:\
- :li#50:tc=cons25:
-cons50-m|ansil-mono|ansi80x50-mono:\
- :li#50:tc=cons25-m:
-cons60|ansi80x60:\
- :li#60:tc=cons25:
-cons60-m|ansi80x60-mono:\
- :li#60:tc=cons25-m:
-# Syscons console with 132 characters (VESA modes)
-cons25-w|ansi132x25:\
- :co#132:tc=cons25:
-cons30-w|ansi132x30:\
- :co#132:tc=cons30:
-cons43-w|ansi132x43:\
- :co#132:tc=cons43:
-cons50-w|ansil-w|ansi132x50:\
- :co#132:tc=cons50:
-cons60-w|ansi132x60:\
- :co#132:tc=cons60:
-# KOI8-R/KOI8-U FreeBSD console with ACS support
-cons25r|cons25u|pc3r|ibmpc3r|cons25-koi8:\
- :ac=q\200x\201m\204v\211j\205t\206n\212u\207l\202w\210k\203y\230z\231f\234~\225a\220h\2210\215:\
- :tc=cons25w:
-cons25r-m|cons25u-m|pc3r-m|ibmpc3r-mono|cons25-koi8-mono:\
- :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25r:
-cons30r|cons30u|cons30-koi8:\
- :li#30:tc=cons25r:
-cons30r-m|cons30u-m|cons30-koi8-mono:\
- :li#30:tc=cons25r-m:
-cons43r|cons43u|cons43-koi8:\
- :li#43:tc=cons25r:
-cons43r-m|cons43u-m|cons43-koi8-mono:\
- :li#43:tc=cons25r-m:
-cons50r|cons50u|cons50-koi8:\
- :li#50:tc=cons25r:
-cons50r-m|cons50u-m|cons50-koi8-mono:\
- :li#50:tc=cons25r-m:
-cons60r|cons60u|cons60-koi8:\
- :li#60:tc=cons25r:
-cons60r-m|cons60u-m|cons60-koi8-mono:\
- :li#60:tc=cons25r-m:
-# Syscons console with 90 characters (VGA modes)
-# KOI8-R/KOI8-U FreeBSD console with ACS support.
-cons25r-v|cons25u-v|pc3r-v|ibmpc3r-vga|cons25-koi8-vga:\
- :co#90:tc=cons25r:
-cons25r-mv|cons25u-mv|pc3r-mv|ibmpc3r-monovga|cons25-koi8-monovga:\
- :co#90:tc=cons25r-m:
-cons30r-v|cons30u-v|cons30-koi8-vga:\
- :co#90:tc=cons30r:
-cons30r-mv|cons30u-mv|cons30-koi8-monovga:\
- :co#90:tc=cons30r-m:
-cons43r-v|cons43u-v|cons43-koi8-vga:\
- :co#90:tc=cons43r:
-cons43r-mv|cons43u-mv|cons43-koi8-monovga:\
- :co#90:tc=cons43r-m:
-cons50r-v|cons50u-v|cons50-koi8-vga:\
- :co#90:tc=cons50r:
-cons50r-mv|cons50u-mv|cons50-koi8-monovga:\
- :co#90:tc=cons50r-m:
-cons60r-v|cons60u-v|cons60-koi8-vga:\
- :co#90:tc=cons60r:
-cons60r-mv|cons60u-mv|cons60-koi8-monovga:\
- :co#90:tc=cons60r-m:
-# ISO 8859-2 FreeBSD console with ACS support
-cons25l2|cons25-iso8859-2:\
- :ac=f\260i\247:\
- :tc=cons25w:
-cons25l2-m|cons25-iso8859-2-mono:\
- :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25l2:
-cons30l2|cons30-iso8859-2:\
- :li#30:tc=cons25l2:
-cons30l2-m|cons30-iso8859-2-mono:\
- :li#30:tc=cons25l2-m:
-cons43l2|cons43-iso8859-2:\
- :li#43:tc=cons25l2:
-cons43l2-m|cons43-iso8859-2-mono:\
- :li#43:tc=cons25l2-m:
-cons50l2|cons50-iso8859-2:\
- :li#50:tc=cons25l2:
-cons50l2-m|cons50-iso8859-2-mono:\
- :li#50:tc=cons25l2-m:
-cons60l2|cons60-iso8859-2:\
- :li#60:tc=cons25l2:
-cons60l2-m|cons60-iso8859-2-mono:\
- :li#60:tc=cons25l2-m:
-# ISO 8859-1 FreeBSD console with ACS support
-cons25l1|cons25-iso8859-1:\
- :ac=f\260g\261}\243+\253,\273i\247:\
- :tc=cons25w:
-cons25l1-m|cons25-iso8859-1-mono:\
- :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25l1:
-cons30l1|cons30-iso8859-1:\
- :li#30:tc=cons25l1:
-cons30l1-m|cons30-iso8859-1-mono:\
- :li#30:tc=cons25l1-m:
-cons43l1|cons43-iso8859-1:\
- :li#43:tc=cons25l1:
-cons43l1-m|cons43-iso8859-1-mono:\
- :li#43:tc=cons25l1-m:
-cons50l1|cons50-iso8859-1:\
- :li#50:tc=cons25l1:
-cons50l1-m|cons50-iso8859-1-mono:\
- :li#50:tc=cons25l1-m:
-cons60l1|cons60-iso8859-1:\
- :li#60:tc=cons25l1:
-cons60l1-m|cons60-iso8859-1-mono:\
- :li#60:tc=cons25l1-m:
-# 132x25 ISO 8859-1 FreeBSD console
-cons25l1-w|cons25w-iso8859-1:\
- :co#132:tc=cons25l1:
-cons30l1-w|cons30w-iso8859-1:\
- :co#132:tc=cons30l1:
-cons43l1-w|cons43w-iso8859-1:\
- :co#132:tc=cons43l1:
-cons50l1-w|cons50w-iso8859-1:\
- :co#132:tc=cons50l1:
-cons60l1-w|cons60w-iso8859-1:\
- :co#132:tc=cons60l1:
-# ISO 8859-7 FreeBSD console with ACS support
-cons25l7|cons25-iso8859-7:\
- :ac=f\260g\261{\360}\243+\253,\273i\247:\
- :tc=cons25w:
-cons25l7-m|cons25-iso8859-7-mono:\
- :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25l7:
-cons30l7|cons30-iso8859-7:\
- :li#30:tc=cons25l7:
-cons30l7-m|cons30-iso8859-7-mono:\
- :li#30:tc=cons25l7-m:
-cons43l7|cons43-iso8859-7:\
- :li#43:tc=cons25l7:
-cons43l7-m|cons43-iso8859-7-mono:\
- :li#43:tc=cons25l7-m:
-cons50l7|cons50-iso8859-7:\
- :li#50:tc=cons25l7:
-cons50l7-m|cons50-iso8859-7-mono:\
- :li#50:tc=cons25l7-m:
-cons60l7|cons60-iso8859-7:\
- :li#60:tc=cons25l7:
-cons60l7-m|cons60-iso8859-7-mono:\
- :li#60:tc=cons25l7-m:
-
-SC|screen|VT 100/ANSI X3.64 virtual terminal:\
- :am:xn:ms:mi:G0:km:\
- :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
- :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
- :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
- :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\
- :li#24:co#80:us=\E[4m:ue=\E[24m:so=\E[3m:se=\E[23m:\
- :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:sr=\EM:al=\E[L:\
- :AL=\E[%dL:dl=\E[M:DL=\E[%dM:cs=\E[%i%d;%dr:dc=\E[P:\
- :DC=\E[%dP:im=\E[4h:ei=\E[4l:IC=\E[%d@:\
- :ks=\E[?1h\E=:ke=\E[?1l\E>:vb=\Eg:\
- :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
- :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\
- :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\
- :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\
- :F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
- :kh=\E[1~:kI=\E[2~:kD=\E[3~:@7=\E[4~:kP=\E[5~:\
- :kN=\E[6~:eA=\E(B\E)0:as=^N:ae=^O:ti=\E[?1049h:te=\E[?1049l:\
- :vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\
- :Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\
- :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:
-
-vt100|dec-vt100|vt100-am|vt100am|dec vt100:\
- :do=2\E[B:co#80:li#24:cl=50\E[H\E[J:sf=2*\ED:\
- :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\
- :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
- :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:\
- :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;24r\E[24;1H:\
- :if=/usr/share/tabset/vt100:nw=2\EE:ho=\E[H:\
- :as=2\E(0:ae=2\E(B:\
- :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||:\
- :rs=\E>\E[?1;3;4;5l\E[?7;8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\
- :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=\177:\
- :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:\
- :k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:@8=\EOM:\
- :K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:pt:sr=2*\EM:xn:\
- :sc=2\E7:rc=2\E8:cs=5\E[%i%d;%dr:UP=2\E[%dA:DO=2\E[%dB:RI=2\E[%dC:\
- :LE=2\E[%dD:ct=2\E[3g:st=2\EH:ta=^I:ms:bl=^G:cr=^M:eo:it#8:\
- :RA=\E[?7l:SA=\E[?7h:po=\E[5i:pf=\E[4i:
-
-# $XTermId: termcap,v 1.78 2009/11/09 00:24:26 tom Exp $
-#
-xterm-new|modern xterm:\
- :@7=\EOF:@8=\EOM:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\
- :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\
- :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kI=\E[2~:\
- :kN=\E[6~:kP=\E[5~:kd=\EOB:kh=\EOH:kl=\EOD:kr=\EOC:ku=\EOA:\
- :tc=xterm-basic:
-#
-# This chunk is used for building the VT220/Sun/PC keyboard variants.
-xterm-basic|modern xterm common:\
- :am:bs:km:mi:ms:ut:xn:AX:\
- :Co#8:co#80:kn#12:li#24:pa#64:\
- :AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
- :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:\
- :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
- :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:\
- :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E[!p\E[?3;4l\E[4l\E>:\
- :kD=\E[3~:kb=^H:ke=\E[?1l\E>:ks=\E[?1h\E=:le=^H:md=\E[1m:\
- :me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:op=\E[39;49m:\
- :rc=\E8:rs=\E[!p\E[?3;4l\E[4l\E>:sc=\E7:se=\E[27m:sf=^J:\
- :so=\E[7m:sr=\EM:st=\EH:\
- :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h:
-#
-# This is the only entry which you should have to customize, since "xterm"
-# is widely used for a variety of incompatible terminal emulations including
-# color_xterm and rxvt.
-xterm|X11 terminal emulator:\
- :tc=xterm-new:
-#
-# Add the capability to "clear the screen" after exiting vi, more/less, etc.
-xterm-clear:\
- :te=\E[?1049l:ti=\E[?1049h:\
- :tc=xterm-new:
-#
-# This should work for the commonly used "color xterm" variations (XFree86
-# xterm, color_xterm, nxterm, rxvt). Note that it does not set 'bce', so for
-# XFree86 and rxvt, some applications that use colors will be less efficient,
-# and in a few special cases (with "smart" optimization) the wrong color will
-# be painted in spots.
-xterm-color|generic "ANSI" color xterm:\
- :Co#8:NC@:pa#64:\
- :AB=\E[4%dm:AF=\E[3%dm:ac=:op=\E[m:tc=xterm-r6:
-#
-# Compatible with the X11R6.3 xterm
-xterm-r6|xterm-old|X11R6 xterm:\
- :am:bs:km:mi:ms:pt:xn:\
- :co#80:kn#20:li#24:\
- :*6=\E[4~:@0=\E[1~:@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
- :DO=\E[%dB:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\
- :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\
- :FA=\E[34~:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:\
- :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
- :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:eA=\E)0:ei=\E[4l:\
- :ho=\E[H:im=\E[4h:\
- :is=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8:\
- :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
- :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
- :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\
- :ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
- :ku=\EOA:md=\E[1m:me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:\
- :rc=\E8:rs=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8:\
- :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\
- :ue=\E[m:up=\E[A:us=\E[4m:
-#
-# Add the capability to "clear the screen" after exiting vi, more/less, etc.
-xterm-r6-clear:\
- :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:\
- :tc=xterm-r6:
diff --git a/share/vt/keymaps/INDEX.keymaps b/share/vt/keymaps/INDEX.keymaps
index e45c2d31b1b6..5d5d2fb042ea 100644
--- a/share/vt/keymaps/INDEX.keymaps
+++ b/share/vt/keymaps/INDEX.keymaps
@@ -178,7 +178,7 @@ fr.bepo.kbd:uk:French Bépo
fr.macbook.kbd:en:French (MacBook/MacBook Pro) (accent keys)
fr.macbook.kbd:da:Fransk (MacBook/MacBook Pro) (accenttaster)
-fr.macbook.kbd:de:Französisch (MacBook/MacBook Pro) (mit Aksenten)
+fr.macbook.kbd:de:Französisch (MacBook/MacBook Pro) (mit Akzenten)
fr.macbook.kbd:fr:Français (MacBook/MacBook Pro) (accent keys)
fr.macbook.kbd:pt:Francês (MacBook/MacBook Pro) (com acentos)
fr.macbook.kbd:es:Francés (MacBook/MacBook Pro) (con acentos)
diff --git a/share/zoneinfo/Makefile b/share/zoneinfo/Makefile
index 0360b59288ab..dfe148544bd6 100644
--- a/share/zoneinfo/Makefile
+++ b/share/zoneinfo/Makefile
@@ -33,7 +33,6 @@
.include <src.opts.mk>
PACKAGE= zoneinfo
-CLEANFILES+= yearistype
CLEANDIRS+= builddir
CONTRIBDIR= ${SRCTOP}/contrib/tzdata/
.PATH: ${CONTRIBDIR}
@@ -51,7 +50,7 @@ LEAPFILE=
TZFILES= africa antarctica asia australasia etcetera europe \
factory northamerica southamerica
-TZFILES+= backward systemv
+TZFILES+= backward
POSIXRULES= America/New_York
TZFILES:= ${TZFILES:S/^/${CONTRIBDIR}/}
@@ -71,8 +70,7 @@ TZBUILDSUBDIRS= \
Etc \
Europe \
Indian \
- Pacific \
- SystemV
+ Pacific
TZBUILDSUBDIRS+= US Mexico Chile Canada Brazil
.if !defined(_SKIP_BUILD)
@@ -80,12 +78,12 @@ all: zoneinfo
.endif
META_TARGETS+= zoneinfo install-zoneinfo
-zoneinfo: yearistype ${TDATA}
+zoneinfo: ${TDATA}
mkdir -p ${TZBUILDDIR}
cd ${TZBUILDDIR}; mkdir -p ${TZBUILDSUBDIRS}
umask 022; cd ${.CURDIR}; \
zic -D -d ${TZBUILDDIR} -p ${POSIXRULES} -m ${NOBINMODE} \
- ${LEAPFILE} -y ${.OBJDIR}/yearistype ${TZFILES}
+ ${LEAPFILE} ${TZFILES}
#
# Sort TZS to ensure they are the same every build. find -s might