git: 27cbba49b7 - main - Status/2026Q3: Pouria reports

From: Pouria Mousavizadeh Tehrani <pouria_at_FreeBSD.org>
Date: Sun, 18 Oct 2026 21:16:48 UTC
The branch main has been updated by pouria:

URL: https://cgit.FreeBSD.org/doc/commit/?id=27cbba49b7b539ec7e809df7791e369339c719d3

commit 27cbba49b7b539ec7e809df7791e369339c719d3
Author:     Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
AuthorDate: 2026-10-18 21:14:13 +0000
Commit:     Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
CommitDate: 2026-10-18 21:14:35 +0000

    Status/2026Q3: Pouria reports
    
    Status/2026Q3/ipv6_improvements.adoc
    Status/2026Q3/netlink_tunnels.adoc
    Status/2026Q3/routing_improvements.adoc
    
    Reviewed by:    gperciva, salvadore
    Approved by:    gperciva, salvadore
    Differential Revision:  https://reviews.freebsd.org/D60166
---
 .../report-2026-07-2026-09/ipv6_improvements.adoc  | 30 ++++++++++++++++++
 .../report-2026-07-2026-09/netlink_tunnels.adoc    | 30 ++++++++++++++++++
 .../routing_improvements.adoc                      | 37 ++++++++++++++++++++++
 3 files changed, 97 insertions(+)

diff --git a/website/content/en/status/report-2026-07-2026-09/ipv6_improvements.adoc b/website/content/en/status/report-2026-07-2026-09/ipv6_improvements.adoc
new file mode 100644
index 0000000000..4ee5258267
--- /dev/null
+++ b/website/content/en/status/report-2026-07-2026-09/ipv6_improvements.adoc
@@ -0,0 +1,30 @@
+=== Series of IPv6 Improvements
+
+Contact: Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
+
+Since the last report, I have continued refreshing our IPv6 stack and implementing pending RFCs, and the results are now available on CURRENT.
+
+So far, I have added the support for:
+
+* RFC 8925: IPv6-Only Preferred Option in man:dhclient[8].
+When the option is received and IPv6 connectivity is available, dhclient stops the DHCPv4 configuration, releases the previous lease and waits for the duration specified by the server before restarting discovery.
+Netlink is used to check for IPv6 connectivity.
+link:https://reviews.freebsd.org/D56637[(D56637)]
+* RFC 6275 (Section 8.3) and RFC 9762 (Section 7.1): The R-bit and P-bit of the Prefix Information option are now exposed to userland for future implementations.
+link:https://reviews.freebsd.org/D56207[(D56207)]
+
+I also fixed a few bugs in the stack:
+
+* RFC 8981 temporary addresses were regenerated for detached prefixes.
+link:https://reviews.freebsd.org/D60051[(D60051)]
+* The outgoing interface index of pktinfo was checked against the wrong interface in the route cache, per RFC 3542 Section 6.
+link:https://reviews.freebsd.org/D58544[(D58544)]
+* Wrong RA flag inconsistency messages in man:rtadvd[8].
+link:https://reviews.freebsd.org/D58672[(D58672)]
+
+Ongoing work:
+
+* RFC 4429: Add support for Optimistic DAD.
+link:https://reviews.freebsd.org/D55229[(D55229)]
+
+I want to especially thank mailto:zarychtam@plan-b.pwste.edu.pl[Marek Zarychta] for his tests and reviews.
diff --git a/website/content/en/status/report-2026-07-2026-09/netlink_tunnels.adoc b/website/content/en/status/report-2026-07-2026-09/netlink_tunnels.adoc
new file mode 100644
index 0000000000..d96abf3972
--- /dev/null
+++ b/website/content/en/status/report-2026-07-2026-09/netlink_tunnels.adoc
@@ -0,0 +1,30 @@
+=== Netlink Support for Tunnel Interfaces
+
+Contact: Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
+
+Following the man:geneve[4] work, I have been migrating our other tunnel drivers to the new if_clone KPI and adding netlink support for them, both in kernel and in man:ifconfig[8].
+They are now available on CURRENT.
+
+So far, I have added the support for:
+
+* Netlink support for man:gif[4] with tests.
+link:https://reviews.freebsd.org/D57666[(D57666)]
+* Netlink support for man:gre[4] with a regression test.
+link:https://reviews.freebsd.org/D55366[(D55366)]
+* IFLAF_GROUP, a FreeBSD-specific netlink attribute to carry the interface groups, since IFLA_GROUP only works with a single numeric group id.
+man:ifconfig[8] now reads the interface groups from it.
+link:https://reviews.freebsd.org/D58643[(D58643)]
+
+While here, I fixed the following bugs:
+
+* Races during man:gre[4] module initialization and destruction of cloned interfaces in jails.
+link:https://reviews.freebsd.org/D57669[(D57669)]
+* Panic in man:vxlan[4] when unused drvspec values are passed.
+link:https://reviews.freebsd.org/D58552[(D58552)]
+* Wrong interface name translation in Linux netlink dumps under man:linux[4], and mapping of more interface types to ARPHRD.
+link:https://reviews.freebsd.org/D59595[(D59595)]
+
+Ongoing work:
+
+* Full support for GRE key.
+link:https://reviews.freebsd.org/D59849[(D59849)]
diff --git a/website/content/en/status/report-2026-07-2026-09/routing_improvements.adoc b/website/content/en/status/report-2026-07-2026-09/routing_improvements.adoc
new file mode 100644
index 0000000000..247dcf0a77
--- /dev/null
+++ b/website/content/en/status/report-2026-07-2026-09/routing_improvements.adoc
@@ -0,0 +1,37 @@
+=== Series of Routing Stack Improvements
+
+Contact: Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
+
+For the past 3 months, I have worked on improving the resilience of our routing stack, and the results are now available on CURRENT.
+
+Previously, the reachability of every nexthop was checked against the interface link status for each packet.
+Now, nexthops subscribe to interface link events and only the reachability flag of the final nexthop is checked in the forwarding path.
+When a nexthop becomes unreachable, the nexthop groups that contain it are recompiled immediately by replacing the unreachable nexthops with the reachable ones.
+Once the link comes back, the nexthops return to their normal slots in the nexthop group.
+This means a multipath route keeps forwarding traffic when one of its links goes down, without deleting the route.
+I am really proud of this one.
+
+So far, I have added the support for:
+
+* Subscription of nexthops to interface link events.
+link:https://reviews.freebsd.org/D57375[(D57375)]
+* Replacement of unreachable nexthops in nexthop groups.
+link:https://reviews.freebsd.org/D57389[(D57389)]
+* RTA_PREFSRC in netlink and the prefsrc option in man:route[8], to select the source address of outgoing packets even when it is configured on another interface.
+This is frequently used on unnumbered interfaces and L3 multi-homed hosts.
+link:https://reviews.freebsd.org/D58294[(D58294)]
+* FIB-aware ifa lookups via ifa_ifwithaddr_fib(), and used it in route installation, source address selection and ICMP redirect verification.
+link:https://reviews.freebsd.org/D58305[(D58305)]
+* Nexthop statistics in man:netstat[1] with the -os flag.
+link:https://reviews.freebsd.org/D58538[(D58538)]
+* A new man:nhop[9] manual to replace the outdated nexthop information in man:rtentry[9].
+link:https://reviews.freebsd.org/D58564[(D58564)]
+
+I also fixed a couple of bugs in fib_algo:
+
+* Nexthop index collision across families, which affected IPv4 routes with IPv6 nexthops.
+link:https://reviews.freebsd.org/D59552[(D59552)]
+* Leak of radix_masks in the radix_lockless algorithm.
+link:https://reviews.freebsd.org/D59112[(D59112)]
+
+I want to especially thank mailto:glebius@FreeBSD.org[Gleb Smirnoff], mailto:melifaro@FreeBSD.org[Alexander Chernikov] and mailto:markj@FreeBSD.org[Mark Johnston] for their reviews and guidance on these works.