FreeBSD/src fdf86dftests/sys/net Makefile if_gre.sh

if_gre: Add a regression test

Add a regression test for gre(4)
to make sure all of the gre capabilities and options are
working as intended.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D55363
DeltaFile
+396-0tests/sys/net/if_gre.sh
+1-0tests/sys/net/Makefile
+397-02 files

FreeBSD/src 1cd332asbin/ifconfig ifgre.c

ifconfig: Add gre netlink support

Implement netlink support for gre in ifconfig

Differential Revision: https://reviews.freebsd.org/D55366
DeltaFile
+274-0sbin/ifconfig/ifgre.c
+274-01 files

FreeBSD/src a0d2e5esys/net if_gre.h if_gre.c

if_gre(4): Fix races by changing initialization order and locks

Treat if_gre like any other network drivers during module
initialization by using SI_SUB_PROTO_IF.
Also, destroy cloned interfaces via a prison removal callback for
gre over udp.

PR:             275474
Reviewed by:    markj
Discussed with: glebius
Differential Revision: https://reviews.freebsd.org/D57669
DeltaFile
+62-34sys/net/if_gre.c
+0-3sys/net/if_gre.h
+62-372 files

FreeBSD/src 2c98dc4tools/tools/git git-mfc

git-mfc: Give a useful error message if a remote can't be found
DeltaFile
+2-0tools/tools/git/git-mfc
+2-01 files

FreeBSD/src a7677a6tools/tools/git git-mfc.1 git-mfc

git-mfc: Add --abort and --continue flags

Instead of making the user run the underlying git-cherry-pick command
after a conflict.

Requested by:   des
Reviewed by:    des
Differential Revision:  https://reviews.freebsd.org/D58514
DeltaFile
+48-22tools/tools/git/git-mfc
+19-5tools/tools/git/git-mfc.1
+67-272 files

FreeBSD/src ac2ebdapackages/tests Makefile

packages/tests: Fix gtest dependency

The MFC of 1d0ae66d3c21 (packages subdir build) added a dependency
from FreeBSD-tests on FreeBSD-googletest.  However, the googletest
package doesn't exist in 15 because the relevant commit wasn't MFC'd.
This caused a broken and unresolvable dependency.

Replace the incorrect googletest dependency with a dependency on
utilities.

This is a direct commit to stable/15.

Fixes: 1d0ae66d3c21 ("packages: Convert world to a subdir build")
Reviewed by:    cperciva
Reported by:    Mark Millard <marklmi at yahoo.com>
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D58553
DeltaFile
+1-1packages/tests/Makefile
+1-11 files

FreeBSD/src 72952bfsys/amd64/amd64 exception.S

amd64: try to fix the build with old clang that does not know about FRED

Reported by:    jhb
Reviewed by:    jhb, jrtc27
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58550
DeltaFile
+17-0sys/amd64/amd64/exception.S
+17-01 files

FreeBSD/src cef05c5sys/amd64/amd64 exec_machdep.c

amd64: do not allow to set reserved bits in MXCSR for ptrace(PT_SETFPREGS)

Also do not mask bits in the mxcsr_mask.  It is ignored by FRSTOR/XRSTOR.

Reported by:    markj
Reviewed by:    jhb, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58548
DeltaFile
+12-5sys/amd64/amd64/exec_machdep.c
+12-51 files

FreeBSD/src 351ed13lib/libfetch common.c

libfetch: Further improve connection polling

* Reorganize the connection loop to make it a little more readable

* Start the timeout clock earlier

* Correctly calculate the poll timeout before calling poll()

* Don't leak the socket on failure

Fixes:          848f360c8f9a ("libfetch: Apply timeout to connection attempts")
Fixes:          b02e02958dad ("libfetch: Fix handling of connection failures")
MFC after:      3 days
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D58512
DeltaFile
+51-36lib/libfetch/common.c
+51-361 files

FreeBSD/src a2e5bacusr.sbin/bhyve bhyve_config.5

bhyve: tidy up bhyve_config.5

There are few warnings reported by mandoc -Tlint:

bhyve_config.5:255:31: WARNING: new sentence, new line
bhyve_config.5:257:43: WARNING: new sentence, new line
bhyve_config.5:422:2: WARNING: missing section argument: Xr nm_open
bhyve_config.5:469:24: WARNING: skipping no-space macro
bhyve_config.5:483:2: WARNING: wrong number of cells: 2 columns, 4 cells
bhyve_config.5:484:2: WARNING: wrong number of cells: 2 columns, 4 cells
bhyve_config.5:541:24: WARNING: skipping no-space macro

 - "new sentence, new line" is a trivial formatting fix.
 - "missing section": there is actually no nm_open() manual page,
    so use .Nm instead of .Xr for it.
 - "no-space macro": format without .Oc and .Ns, similarly to
    how it is already done in bhyve.8 for VNC addresses.
 - "wrong number of cells": also a trivial fix.


    [4 lines not shown]
DeltaFile
+19-9usr.sbin/bhyve/bhyve_config.5
+19-91 files

FreeBSD/src 727a83etests/sys/kern procdesc.c

tests/procdesc: Fix race in pdopenpid_pdwait_only_one

The child exited immediately after pdfork(), so the parent's pdopenpid() could
catch it mid-exit (P_WEXIT) and fail with EBUSY.
Block the child on a pipe until the parent has opened the second descriptor,
then release it

Approved by:    markj
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D58546
DeltaFile
+16-3tests/sys/kern/procdesc.c
+16-31 files

FreeBSD/src c4d7745sys/net if_vxlan.c

if_vxlan(4): Fix panic by validating unused drvspec values

Add validation for unused parameter values in the gap between
VXLAN_PARAM_WITH_LOCAL_ADDR4 and VXLAN_PARAM_WITH_LOCAL_ADDR6 to prevent
panics.

PR:             297151
Reported by:    Robert Morris <rtm at lcs.mit.edu>
Reviewed by:    markj
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D58552
DeltaFile
+2-1sys/net/if_vxlan.c
+2-11 files

FreeBSD/src a77257dsys/dev/e1000 e1000_regs.h if_em.h

igbv: Sanitize retained VF queue state

82576 and I350 VFLR leave queue configuration unchanged.  A previous
VF owner can therefore leave a transmit head-writeback DMA destination
and other queue policy for the next guest.

After each reset attempt, disable all exposed VF queues and wait for
their enable bits to clear before clearing SRRCTL, VFPSRTYPE, RXCTRL,
TXCTRL, and TDWBAL/H.  Spin briefly and then sleep until the bounded
queue-disable deadline.

iflib cannot report initialization failure and marks an interface
running after its init callback returns.  On sanitation failure, keep
interrupts disabled and use the deferred admin task to clear RUNNING.
Retry after 100 and 500 ms; after three total failures, leave the
interface down until another administrative initialization starts a
new bounded attempt set.

igbv uses queue zero on both families, but 82576 exposes a second VF

    [8 lines not shown]
DeltaFile
+214-2sys/dev/e1000/if_igbv.c
+20-1sys/dev/e1000/if_em.c
+18-2sys/dev/e1000/e1000_osdep.h
+12-0sys/dev/e1000/if_em.h
+1-0sys/dev/e1000/e1000_regs.h
+265-55 files

FreeBSD/src 8c87247sys/dev/e1000 if_igb_iov.c

igb: Sanitize retained VF queue state

82576 and I350 VFLR leave the VF queue configuration unchanged.  A VF
can program transmit head write-back and leave its DMA destination for
a later VF owner; mainstream VF drivers do not overwrite TDWBAL/H.

Disable every receive and transmit queue assigned to the VF, wait for
the enable bits to clear, then clear SRRCTL, PSRTYPE, RXCTRL, TXCTRL,
and TDWBAL/H.  Spin briefly for the normal transition, then sleep at
100 microsecond intervals with an approximately 1 ms bound.  This
prevents a VF that keeps asserting QUEUE_ENABLE from busy-waiting the
PF context lock for 10 ms.

If a queue does not quiesce, leave the VF disabled and NACK its reset
rather than programming an active queue.  Rate-limit this diagnostic
independently from mailbox and malicious-driver notifications.

I350 maps pool n to queue n.  82576 assigns physical queues n and n+8
to VF n, so sanitize both queues while clearing per-pool PSRTYPE once.

    [11 lines not shown]
DeltaFile
+124-8sys/dev/e1000/if_igb_iov.c
+124-81 files

FreeBSD/src 7cd6d23sys/dev/e1000 if_em.c e1000_osdep.h

e1000: Correct VF register validation

Pass the VF generation through the CSR accessors so the validator can
distinguish the sparse 82576 and I350 register maps.

Admit the queue-zero RXCTRL, TXCTRL, TDWBAL, TDWBAH, and
VFPSRTYPE registers exposed by both families.

82576 exposes VFMPRC at 0xf3c.  I350 erratum 31 makes its
corrected 0xf38 address inaccessible to a VF, so reject both I350
spellings while retaining read access on 82576.

Sponsored by:   BBOX.io
DeltaFile
+18-4sys/dev/e1000/e1000_osdep.h
+1-0sys/dev/e1000/if_em.c
+19-42 files

FreeBSD/src 9b6287ckrb5/include Makefile, krb5/util/profile Makefile.profile Makefile

krb5: Install profile.h again

Commit 1876de606eb8 exposed missing symbols that the port security/krb5
installed that the base system did not install. Part of the solution
was to make libprofile.so private (not libprofile.a) just as the port
does, Red Hat Enterprise Linux does, and as installing MIT KRB5 by hand
does. The actual fix for this was to put symbols and their corresponding
functions into the correct librarires, i.e. libkrb5.so and othes, just
as the port, Red Hat, and manually installed via tarball do.

Unfortunately INTERNALLIB disables the include of bsd.incs.mk and the
install of header files. This is still needed to install profile.h into
/usr/include (just as the port installs it into ${LOCALBASE}/include
and RHEL installs it in /usr/include). This commit fixes this by
installing profile.h into /usr/include from the krb5/include Makfile.

Reported by:    fluffy
Tested by:      fluffy
Reviewed by:    fluffy

    [4 lines not shown]
DeltaFile
+1-26krb5/util/profile/Makefile
+26-0krb5/util/profile/Makefile.profile
+11-3krb5/include/Makefile
+38-293 files

FreeBSD/src 81efd61sys/net/route route_var.h

routing: Remove unused rib_head members

Remove unused rnh_multipath and rib_algo_fixed members.
While here, convert rib_dying and rib_algo_init from uint32_t to bool.

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D58537
DeltaFile
+2-4sys/net/route/route_var.h
+2-41 files

FreeBSD/src 25165e4sys/kern uipc_mbuf.c

mbuf: Make m_unshare() fail on KTLS mbufs

Commit f2202ab5abda did not account for  KTLS mbufs.

m_unshare() tries to linearize the original mbuf chain and creates a
writable copy of it, converting unmapped mbufs.  Both of them are
unsafe for KTLS mbufs.

It is better to return NULL if the mbuf chain contains a KTLS mbuf.

Reported by:    jhb
Reviewed by:    jhb
Differential Revision:  https://reviews.freebsd.org/D58466
DeltaFile
+9-0sys/kern/uipc_mbuf.c
+9-01 files

FreeBSD/src 185becbcontrib/libarchive/libarchive/test test_read_format_zip_winzip_aes256_large_bzip2.zip.uu test_read_format_zip_winzip_aes256_large_lzma.zip.uu

libarchive: merge from vendor branch

libarchive 3.8.9

ChangeLog:
https://github.com/libarchive/libarchive/compare/v3.8.7...v3.8.9

Obtained from:  libarchive
Vendor commit:  27cbc7827172698143e440801fc0ba39ccb4f1f5
MFC after:      2 weeks
DeltaFile
+23,307-0contrib/libarchive/libarchive/test/test_read_format_rar_newsub_rr_over_1m.rar.uu
+2,919-0contrib/libarchive/libarchive/test/test_read_format_cpio_symlink_trailer.cpio.uu
+2,053-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_zstd.zip.uu
+1,898-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_xz.zip.uu
+1,893-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_lzma.zip.uu
+1,616-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_bzip2.zip.uu
+33,686-0438 files not shown
+58,681-9,875444 files

FreeBSD/src 6d46c75libarchive archive_read_support_format_cab.c archive_read_support_format_7zip.c, libarchive/test test_read_format_iso_rockridge_zf_overflow.iso.uu test_read_format_cpio_symlink_trailer.cpio.uu

Update vendor/libarchive to 3.8.9

ChangeLog:
https://github.com/libarchive/libarchive/compare/v3.8.8...v3.8.9

Obtained from:          libarchive
Libarcive commit:       27cbc7827172698143e440801fc0ba39ccb4f1f5
DeltaFile
+2,919-0libarchive/test/test_read_format_cpio_symlink_trailer.cpio.uu
+556-542libarchive/archive_read_support_format_rar5.c
+1,096-0libarchive/test/test_read_format_iso_rockridge_zf_overflow.iso.uu
+462-411libarchive/archive_read_support_format_7zip.c
+497-347libarchive/archive_read_support_format_cab.c
+728-0unzip/bsdunzip_windows.c
+6,258-1,300233 files not shown
+17,454-7,685239 files

FreeBSD/src 5f02c84share/man/man4 Makefile em.4

igb(4)/igbv(4): Document SR-IOV PF and VF functionality

Document supported controllers, PF and VF naming, PCI_IOV and IOMMU
requirements, queue and lifecycle constraints, iovctl schema, filtering
and anti-spoof policy, mailbox and MDD recovery, shared hardware
limits, rate control, and statistics cadence.

Relnotes:       yes
Sponsored by:   BBOX.io
DeltaFile
+169-4share/man/man4/em.4
+2-0share/man/man4/Makefile
+171-42 files

FreeBSD/src fdce383sys/dev/e1000 if_em.h if_em.c

igbv: Retry transient VLAN admission failures

A PF mailbox NACK does not distinguish the SR-IOV VLAN request rate
limit from permanent VLVF exhaustion. Preserve desired VLAN membership
and retry four additions per 500 ms timer tick, matching the PF
sustained allowance.

Bound the whole recovery batch to eight seconds from its first failure
and consolidate restore diagnostics, so a full table cannot create a
permanent mailbox poller or repeated per-VID log bursts.

Sponsored by:   BBOX.io
DeltaFile
+92-3sys/dev/e1000/if_igbv.c
+16-5sys/dev/e1000/if_em.c
+5-0sys/dev/e1000/if_em.h
+113-83 files

FreeBSD/src d2cd0b5sys/dev/e1000 if_em.h if_igbv.c

e1000: Sample statistics at timer cadence

Mailbox and link interrupts share iflib admin service with the periodic
timer. Mark timer-driven passes explicitly and run the hardware
statistics sweep only for those samples instead of repeating 66 PF MMIO
reads for every VF mailbox message.

DTrace on the I350 DUT measured the PF sweep at about 79 us on average.
The normal hz/2 timer continues to extend clear-on-read counters
safely; exported counters may trail hardware by up to 500 ms.

Sponsored by:   BBOX.io
DeltaFile
+14-1sys/dev/e1000/if_em.c
+2-1sys/dev/e1000/if_igbv.c
+1-0sys/dev/e1000/if_em.h
+17-23 files

FreeBSD/src e8f3b96sys/dev/e1000 if_igb_iov.c

igb: Rate-limit VF VLAN rebuild requests

Give each VF a burst of 64 VLAN additions and refill it at eight
additions per second. Removals remain unrestricted, idempotent requests
consume nothing, and trusted PF-wide initialization replenishes the
burst while guest resets do not.  Checks VLVF capacity before charging
a token.

Do not apply this policy to multicast requests because Linux igbvf and
DPDK ignore their reply status; aggregate MTA write elision bounds
those updates instead.

Sponsored by:   BBOX.io
DeltaFile
+57-5sys/dev/e1000/if_igb_iov.c
+57-51 files

FreeBSD/src 5ce6c94sys/dev/e1000 if_igb_iov.c

igb: Update only changed IOV VLAN filters

Keep the full VFTA/VLVF software recomputation and clear-map-set
ordering, but compare each phase against the authoritative old value.
Write only VFTA words and VLVF slots whose effective contents change.

I350 uses its software VFTA shadow because erratum 20 makes live reads
unreliable; an invalid shadow forces a complete clear before sparse
restoration. 82576 continues to diff against live VFTA reads.

Add SDT probes for every logical write phase and the final software
images so hardware tests can verify exact elision counts. On my I350
DUT, the old full table path averaged 819 us across 31 VLAN removals
versus about 79 us for the PF statistics sweep.

Sponsored by:   BBOX.io
DeltaFile
+83-15sys/dev/e1000/if_igb_iov.c
+83-151 files

FreeBSD/src 350211asys/dev/e1000 if_em.h if_em.c

igb: Update only changed IOV multicast hashes

Build the aggregate PF/VF multicast bitmap in software and compare it
with the e1000 MTA shadow. Write only registers whose desired value
changed, while forcing a complete write after PF reset invalidates the
hardware table.

This bounds alternating VF multicast updates without NACKing them.
Linux igbvf and DPDK ignore multicast reply status, so a command-rate
limiter could otherwise acknowledge configuration while leaving
hardware state stale.

Sponsored by:   BBOX.io
DeltaFile
+29-8sys/dev/e1000/if_igb_iov.c
+2-1sys/dev/e1000/if_em.c
+1-0sys/dev/e1000/if_em.h
+32-93 files

FreeBSD/src c637d47sys/dev/e1000 if_em.c

igb: Stop writing the legacy TADV register

TADV is an em-class interrupt delay register and is absent from the
82575 and later register model. The igb attach path does not expose or
initialize that control, but transmit initialization still wrote its
zero valued storage into a reserved queue-window offset.

Apply the same igb_mac_min boundary already used for TIDV and the
absolute-delay sysctls.

MFC after:      1 week
Sponsored by:   BBOX.io
DeltaFile
+1-1sys/dev/e1000/if_em.c
+1-11 files

FreeBSD/src 9332fd5sys/dev/e1000 if_em.c e1000_vf.h

igbv: Support secondary unicast filters

Support the Linux igbvf secondary-MAC mailbox subprotocol, used by
Linux guests running MacVTap.

Replay up to three non-primary unicast addresses after reset and
whenever the address list changes, subject to PF allow-set-mac policy.

Sponsored by:   BBOX.io
DeltaFile
+66-0sys/dev/e1000/if_igbv.c
+35-0sys/dev/e1000/e1000_vf.c
+3-0sys/dev/e1000/if_em.h
+1-0sys/dev/e1000/if_em.c
+1-0sys/dev/e1000/e1000_vf.h
+1-0sys/dev/e1000/e1000_82575.h
+107-06 files

FreeBSD/src a6bb385sys/dev/e1000 if_em.h igb_txrx.c

igbv: Improve VF mailbox and status behavior

Treat VF media as fixed 1000baseT full duplex and report PF not ready
and generated MAC fallback states during attach.

After a successful reset handshake, reconcile a PF rejected MAC back
into the ifnet. If the PF is unavailable, defer MAC, multicast, VLAN,
LPE, and promiscuity replay until CTS is restored. Track a rejected
VLAN removal separately so leaked traffic remains tagged until reset
proves that the stale hardware filter is gone.

Baseline VF counters at attach, collect the four loopback packet and
octet counters with rollover-safe deltas, and account software RX
checksum offload results. Preserve accumulated statistics across PF
resets by rebasing the raw hardware counters, and sample them while
physical link is down because VF loopback can remain active.

Retain the 82576 VFMPRC hardware statistic, but do not read it on I350
VFs because specification update errata 31 says it is unavailable.

    [5 lines not shown]
DeltaFile
+168-44sys/dev/e1000/if_em.c
+115-0sys/dev/e1000/if_igbv.c
+26-8sys/dev/e1000/igb_txrx.c
+10-4sys/dev/e1000/if_em.h
+319-564 files

FreeBSD/src 316f6f2sys/conf files, sys/dev/e1000 em_txrx.c if_em.h

igbv: Isolate VF policy and validate its registers

Give igb virtual functions a separate ifdi method table and move
VF-specific attach, reset, queue, interrupt, and diagnostic policy to
if_igbv.c. Keep shared descriptor-ring mechanisms in if_em.c.

Derive VF identity from IFLIB_IS_VF and assert that hardware
identification agrees. Under INVARIANTS, validate normal VF CSR
accesses against the sparse 82576 and I350 VF register maps.

Stop shared setup from accessing PF-only controls. Require MSI-X and
defer VF sysctls until attach succeeds so failed attachment cannot
leave handlers pointing at freed driver state.

Advertise only VF capabilities, run adaptive moderation without the
PF receive-buffer guard, enable SRRCTL.DROP_EN, and provide a VF-safe
diagnostic register view.

The moved implementation is the existing FreeBSD code. Register model

    [3 lines not shown]
DeltaFile
+361-252sys/dev/e1000/if_em.c
+205-0sys/dev/e1000/if_igbv.c
+83-1sys/dev/e1000/e1000_osdep.h
+19-0sys/dev/e1000/if_em.h
+5-0sys/dev/e1000/em_txrx.c
+2-0sys/conf/files
+675-2531 files not shown
+676-2547 files