FreeBSD/src 74019bcsys/netinet tcp_var.h

tcp: cleanup whitespaces

Use tabs consistently in #defines
No functional change intended.

Reported by:    Hannes Elfert
MFC after:      1 week
MFC to:         stable/15
DeltaFile
+3-3sys/netinet/tcp_var.h
+3-31 files

FreeBSD/src b92d13asys/netpfil/pf if_pfsync.c, tests/sys/netpfil/pf pfsync.sh

pfsync: handle large MTU pfsync interfaces

pfsync packets were allocated with m_get2(), which can't return packets
larger than MJUMPAGESIZE. As a result 9k MTU pfsync interfaces simply didn't work.

Use m_get3(), which can allocate sufficiently large mbufs.

Extend the pfsync:bulk test case to provoke this problem.

PR:             297307
MFC after:      2 weeks
Sponsored by:   Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 7e2781fdcfdbe489cc07572d33dc36bca06a342d)
DeltaFile
+8-3tests/sys/netpfil/pf/pfsync.sh
+1-1sys/netpfil/pf/if_pfsync.c
+9-42 files

FreeBSD/src ef676ecsys/netpfil/pf if_pfsync.c, tests/sys/netpfil/pf pfsync.sh

pfsync: handle large MTU pfsync interfaces

pfsync packets were allocated with m_get2(), which can't return packets
larger than MJUMPAGESIZE. As a result 9k MTU pfsync interfaces simply didn't work.

Use m_get3(), which can allocate sufficiently large mbufs.

Extend the pfsync:bulk test case to provoke this problem.

PR:             297307
MFC after:      2 weeks
Sponsored by:   Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 7e2781fdcfdbe489cc07572d33dc36bca06a342d)
DeltaFile
+8-3tests/sys/netpfil/pf/pfsync.sh
+1-1sys/netpfil/pf/if_pfsync.c
+9-42 files

FreeBSD/src 9a34256sys/netpfil/ipfilter/netinet ip_nat.c

ipfilter: Fix checksum update for NAT_DIVERTOUT

When taking a snapshot of the before ip_len (s1) for comparison with the
after-translated ip_len (s2), we must convert it from network to host
byte order before we can use it. Add the missing ntohs() call.

PR:             296944
MFC after:      3 days

(cherry picked from commit c08a97fa27b914988ef092352872b2f455abb7c3)
DeltaFile
+1-1sys/netpfil/ipfilter/netinet/ip_nat.c
+1-11 files

FreeBSD/src 008259bsys/netpfil/ipfilter/netinet ip_nat.c

ipfilter: Fix checksum update for NAT_DIVERTOUT

When taking a snapshot of the before ip_len (s1) for comparison with the
after-translated ip_len (s2), we must convert it from network to host
byte order before we can use it. Add the missing ntohs() call.

PR:             296944
MFC after:      3 days

(cherry picked from commit c08a97fa27b914988ef092352872b2f455abb7c3)
DeltaFile
+1-1sys/netpfil/ipfilter/netinet/ip_nat.c
+1-11 files

FreeBSD/src 22c4099release/tools ec2-small.conf ec2-base.conf

EC2: Enable autogrowing filesystems post-boot

Enable the new growfs_postboot mechanism.  Note that this also implies
disabling automatic allocation of swap space on the root disk, since we
cannot grow the root filesystem if swap space is allocated after it.

This will not be MFCed since it is a significant behavioural change.

Sponsored by:   Amazon
Relnotes:       yes
DeltaFile
+5-1release/tools/ec2-small.conf
+5-1release/tools/ec2-base.conf
+10-22 files

FreeBSD/src 5a31987libexec/rc rc.conf, libexec/rc/rc.d growfs_postboot

rc+devd: Add growfs_postboot

In VM and cloud environments it is often possible to enlarge virtual
disks; this can be useful, for example, if a system is launched with a
small root disk and it later becomes clear that more space is needed.

On kernels which support run-time resizing of disks (for NVMe, this was
added in November 2025; some other disk types have supported this for
longer) a SIZECHANGE notification is sent to userland via devd.

Add a "nostart" rc.d script (runnable manually but not automatically at
boot time) and a devd script which invokes it when a notification
arrives.  The rc.d script enlarges the "final partition" on partitioned
geoms, or the UFS filesystem or zpool device when triggered on a disk
containing either of those.

Reviewed by:    imp, ziaee
MFC after:      2 weeks
Relnotes:       Disk partitions and filesystems can be enlarged

    [4 lines not shown]
DeltaFile
+116-0libexec/rc/rc.d/growfs_postboot
+69-0share/man/man7/growfs_postboot.7
+8-0sbin/devd/growfs_postboot.conf
+3-0libexec/rc/rc.conf
+1-0share/man/man7/growfs.7
+1-0share/man/man7/Makefile
+198-03 files not shown
+201-09 files

FreeBSD/src aefd61asys/dev/dpaa qman.c if_memac.c

dpaa: Add LRO and receive callback batching

Reduce the code executed in the DQRR dequeue loop, and move the
heavy-weight operations to post-dequeue loop.

* Batch if_input() after DQRR dispatch loop completes.  Only do the
  DQRR_CI_CINH write at the end of the loop, so only up to 16 entries
  will be processed.
* Add software LRO per FQ.  Each per-CPU RX FQ gets its own LRO tracking
  structure.

Since LRO is configured at FQ initialization time, allocate the ifnet
earlier in attach to prevent a panic.
DeltaFile
+57-1sys/dev/dpaa/dpaa_eth.c
+30-8sys/dev/dpaa/qman_portals.c
+20-0sys/dev/dpaa/qman.h
+13-0sys/dev/dpaa/dpaa_eth.h
+7-3sys/dev/dpaa/if_memac.c
+7-0sys/dev/dpaa/qman.c
+134-122 files not shown
+142-158 files

FreeBSD/src d7397e9sys/dev/dpaa qman.c dpaa_eth.h

dpaa/eth: distribute RX across per-CPU FQs via FMan KeyGen

Grow sc_nrxfqs from 1 to the CPU total, and hash the RX
5-tuple across the range with the KG driver from the prior commit.
Each FQ lands on its own per-CPU QMan channel, so a given core
drains only its own share of RX work and gets frame annotation +
data-head stashed into its cache.

* Add alignment parameter to qman_alloc_fqid_range() to meet KeyGen
  requirements.
* Initialize 1 frame queue (FQ) per CPU in dpaa_eth_fm_port_rx_init(),
  using a 5-tuple to spread the load across CPUs.
* Channel ownership for TX confirms moved from rx_init/free to
  tx_init/free -- sc_rx_channel is now a TX-confirm-only per-port
  pool channel.

Fallbacks/degradation:
* If any per-CPU channel is -1 (no portal attached)
  the port fails to attach with a clear message.

    [4 lines not shown]
DeltaFile
+221-47sys/dev/dpaa/dpaa_eth.c
+23-0sys/dev/dpaa/fman_port.c
+12-0sys/dev/dpaa/fman_port.h
+5-3sys/dev/dpaa/qman.h
+6-0sys/dev/dpaa/dpaa_eth.h
+3-2sys/dev/dpaa/qman.c
+270-526 files

FreeBSD/src 4dccd3asys/conf files.powerpc, sys/dev/dpaa fman.c fman_port.c

dpaa/fman: KeyGen (Parse-Classify-Distribute) driver

Add sys/dev/dpaa/fman_keygen.[ch].  Public API is four functions:

* fman_kg_init(sc) -- Initialize KeyGen subsystem, clear out any stale
                      config.
* fman_kg_fini(sc) -- Teardown KeyGen
* fman_kg_alloc_hash_scheme(sc, port, base_fqid, nfqs)
                   -- Allocate a scheme, program it for
                      RSS-over-IP-5-tuple hashing to nfqs FQs
                      starting at base_fqid, bind it to port.
* fman_kg_free_hash_scheme(sc, port)
                   -- Remove a scheme added by
                   fman_kg_alloc_hash_scheme().

KeyGen state (bitmap + port->scheme table) is added to the fman softc.

Future work may allow configuring the KG hash inputs, but what we have
now (5-tuple of src/src-port/dst/dst-port/IPSec SPI field) is
sufficient.
DeltaFile
+371-0sys/dev/dpaa/fman_keygen.c
+39-0sys/dev/dpaa/fman_keygen.h
+22-0sys/dev/dpaa/fman.h
+0-12sys/dev/dpaa/fman_port.c
+2-8sys/dev/dpaa/fman.c
+1-0sys/conf/files.powerpc
+435-206 files

FreeBSD/src dcd99desys/dev/dpaa dpaa_eth.h dpaa_eth.c

dpaa_eth: refactor RX FQ state into an array (N=1)

Preparation for FMan KeyGen-driven multi-queue RX.  Replace the
single sc_rx_fq / sc_rx_fqid pair with a sc_rx_fqs[] array (currently
one entry) and sc_rx_fqid_base.  Each entry carries a back-pointer
to the softc for use by the RX callback.
DeltaFile
+26-10sys/dev/dpaa/dpaa_eth.c
+19-3sys/dev/dpaa/dpaa_eth.h
+45-132 files

FreeBSD/src 7733521sys/dev/dpaa qman_var.h qman.h

dpaa/qman: per-CPU pool channel service + FQID range allocator

Add plumbing for future FMan KeyGen-driven multi-queue RX.  Pure
infrastructure; no behavioural change for existing single-FQ
consumers.

qman:
* New qman_percpu_channel(cpu) to get the per-CPU channel, needed for
  receive-side scaling.
* New qman_alloc_fqid_range(count, *basep) / qman_free_fqid_range()
  reserve a contiguous FQID range so a later KeyGen-distribution
  caller can compute FQID = base + (hash & mask) and create each FQ
  individually with force_fqid=true (each landing on its own
  per-CPU channel).

qman_fq_create:
* Honor the force_fqid / fqid_or_align parameters: when force_fqid is
  set, use the caller-supplied FQID and skip the internal vmem_alloc.
  The fqids_num != 1 restriction is lifted; qman_fq_list[] now records

    [4 lines not shown]
DeltaFile
+80-16sys/dev/dpaa/qman.c
+15-0sys/dev/dpaa/qman.h
+3-1sys/dev/dpaa/qman_var.h
+98-173 files

FreeBSD/src 1c2263blib/libusb libusb10_hotplug.c

libusb: Validate arguments before dereferencing the hotplug context

libusb_hotplug_register_callback() resolves its context with
GET_CONTEXT() and then immediately reads ctx->no_discovery and
ctx->usb_event_mode, but only checks "ctx == NULL" afterwards.

GET_CONTEXT() falls back to usbi_default_context, which is NULL before
libusb_init() and is reset to NULL by libusb_exit().  An application
that calls libusb_hotplug_register_callback(NULL, ...) without an
initialised default context therefore crashes on the ctx->no_discovery
read, instead of getting the LIBUSB_ERROR_INVALID_PARAM the existing
guard was clearly written to return.

Move the argument validation ahead of the first dereference.  None of
the validated arguments depend on the context, so no other ordering
constraint is affected.

Signed-off-by: yuvrajnode <yuvrajsinghrock1221 at gmail.com>
Reviewed by:    aokblast

    [3 lines not shown]
DeltaFile
+6-6lib/libusb/libusb10_hotplug.c
+6-61 files

FreeBSD/src fc3e843lib/libusb libusb10_hotplug.c

libusb: Fix NULL dereference when a hotplug callback deregisters itself

libusb_hotplug_register_callback() runs the newly registered callback
over the already-enumerated device list when LIBUSB_HOTPLUG_ENUMERATE
is set.  A hotplug callback returning non-zero means "deregister me",
and the enumerate loop honours that by freeing the handle and setting
it to NULL.

Since commit 6bda9f26d2ed changed libusb_hotplug_callback_handle from a
pointer to an int, the tail of the function unconditionally dereferences
that handle, so any caller that passes LIBUSB_HOTPLUG_ENUMERATE, a
non-NULL handle pointer, and a callback that returns non-zero on a
matching device crashes inside libusb.  This is a normal usage pattern
and it was safe before the conversion, when the equivalent line simply
stored NULL.

Report the reserved id 0 instead.  The allocator hands out ids starting
at 1, and libusb_hotplug_deregister_callback() already ignores 0, so
this restores the pre-conversion behaviour.

    [6 lines not shown]
DeltaFile
+8-1lib/libusb/libusb10_hotplug.c
+8-11 files

FreeBSD/src 8bee781sys/dev/ixl ixl_pf_iflib.c ixl_pf_iov.c

ixl: Make VF reset resource reconstruction fallible

Treat each stage of VF reset and VSI reconstruction as fallible.  Keep
the VF out of VFACTIVE when PCIe drain, reset completion, VSI
release, or VSI allocation fails, following the DPDK PF reset model.
Propagate initial reset failures back through pci_iov_vf_add and unwind
the VF queue allocation.

Free the old software filter list before initializing a replacement VSI.
ixl_init_filters() previously replaced the list head without freeing its
entries, so every VF FLR leaked all MAC and VLAN filter objects.  Reset
the associated counters and VLAN bitmap with the list.

Avoid allocating an initial VSI only to destroy it during the required
initial VF reset, and remove redundant broadcast/filter programming from
VSI setup.  Also delete a partially created VSI when later Admin Queue
setup fails.

(cherry picked from commit ee52b925fa08158e510d5dddfd1c8fa26f120575)
DeltaFile
+118-55sys/dev/ixl/ixl_pf_iov.c
+11-4sys/dev/ixl/ixl_pf_iflib.c
+129-592 files

FreeBSD/src d4f1764sys/dev/ixl virtchnl.h ixl_pf_iov.c

ixl: Validate VF virtchnl configuration

Bound variable-length virtchnl messages before computing their expected
length, following the newer Intel virtchnl implementation.

Validate VF ring sizes and alignments before programming HMC contexts.
DPDK uses 128-byte ring alignment and 64 through 8160 descriptors;
the virtchnl ABI further specifies TX multiples of 8 and RX multiples
of 32.  Preserve the 4096-descriptor limit on X722.

Validate queue bitmaps before changing any rings, validate all queue
and interrupt contexts before applying a request, and reject invalid
RSS table entries.  Also avoid sending an ACK after VLAN-strip setup
fails and reply to delete-VLAN errors with the correct opcode.

These checks prevent malformed or oversized requests from an untrusted
VF from partially programming resources outside its allocation.

(cherry picked from commit e779914354db5cb3a20f4ec894d08b0f81d05ba2)
DeltaFile
+108-48sys/dev/ixl/ixl_pf_iov.c
+57-13sys/dev/ixl/virtchnl.h
+165-612 files

FreeBSD/src 7afc16esys/dev/ixl ixl_pf_iov.c

ixl: Initialize VF sysctl contexts before use

The VF array is zeroed at allocation, but its sysctl contexts were
only populated after each VF was successfully added.  If VF setup
failed, IOV teardown still passed every requested VF context to
sysctl_ctx_free().  An untouched context is not an initialized empty
TAILQ and caused a page fault during teardown.

Initialize every VF context with the array so both successful setup
and partial-failure cleanup have a valid lifetime.

(cherry picked from commit ae122c5443882ae4d3d19aacfcfd16a2c8d7b688)
DeltaFile
+3-1sys/dev/ixl/ixl_pf_iov.c
+3-11 files

FreeBSD/src 78f5c8esys/dev/iavf iavf_txrx_iflib.c

iavf: Honor iflib transmit completion batching

iavf uses descriptor writeback by default.  Hardware writes completion
status into a transmit descriptor only when it completes a descriptor
marked RS.  iavf marked every packet RS even though its report-status
queue recorded and inspected only descriptors selected by iflib.  The
other completion writes could not help reclaim descriptors.

iflib marks selected packets with IPI_TX_INTR as completion
checkpoints.  It forces a checkpoint as deferred work or ring pressure
grows.  Retain EOP on every packet, but set RS only at those
checkpoints.

The deprecated head-writeback option on 700-series VFs gets the same
batching: each RS checkpoint permits hardware to publish the completed
ring head.

DPDK uses the same sparse RS design.  Let iflib choose the adaptive
interval for FreeBSD.  This is a PCIe/memory bandwidth savings.

    [2 lines not shown]
DeltaFile
+5-4sys/dev/iavf/iavf_txrx_iflib.c
+5-41 files

FreeBSD/src a721f72sys/dev/ixl ixl_txrx.c

ixl: Honor iflib transmit completion batching

ixl uses head writeback by default.  Hardware publishes the transmit
ring head through DMA only after completing a descriptor marked RS.
Marking every packet requested much more frequent head updates than
iflib needs to reclaim descriptors.

iflib marks selected packets with IPI_TX_INTR as completion
checkpoints.  It forces a checkpoint as deferred work or ring pressure
grows.  Retain EOP on every packet, but set RS only at those
checkpoints.  This batches head writebacks while preserving bounded
descriptor reclamation.

The optional descriptor writeback mode benefits as well.  ixl already
recorded only IPI_TX_INTR descriptors in its report-status queue, so
status written for every other packet was not inspected.

DPDK uses the same sparse RS design.  Let iflib choose the adaptive
interval for FreeBSD.  This is a PCIe/memory bandwidth savings.

    [2 lines not shown]
DeltaFile
+5-4sys/dev/ixl/ixl_txrx.c
+5-41 files

FreeBSD/src b902b27sys/dev/iavf iavf_vc_common.h iavf_lib.h

iavf: Recover when PF communication is unavailable

A PF reset or loss of virtchnl service can make visible interface
initialization wait up to ten seconds and then return from the void
ifdi_init callback.  Iflib consequently marks the interface running even
though its queues were not initialized, and no retry is scheduled when
the PF returns.

Check reset readiness without polling during reinitialization, propagate
queue-message submission errors, and bound a silent enable or disable to
one mailbox timeout.  Report unsuccessful initialization to iflib and
publish link-down state without polling the stopped mailbox.

A VFLR also discards the Admin Queue and permits the PF to replace the
VF VSI.  Track when full virtchnl rediscovery is required, renegotiate the
API version, refresh and validate the VF resources before using a cached
VSI ID, and replay the MAC and VLAN filters cleared by reset.  Bound each
runtime discovery attempt while preserving the existing attach-time wait.


    [5 lines not shown]
DeltaFile
+365-38sys/dev/iavf/if_iavf_iflib.c
+53-20sys/dev/iavf/iavf_vc_common.c
+36-12sys/dev/iavf/iavf_lib.c
+8-0sys/dev/iavf/iavf_iflib.h
+3-1sys/dev/iavf/iavf_lib.h
+2-0sys/dev/iavf/iavf_vc_common.h
+467-716 files

FreeBSD/src 84e092esys/dev/e1000 e1000_82542.c

e1000: Correct 82542 flow-control mode handling

The 82542-specific setup routine unconditionally reads the NVM
default, overwriting a flow-control mode selected by software.  It
also removes transmit PAUSE support from all 82542 revisions even
though the hardware restriction applies only to rev 2.0.

Resolve the NVM default only when requested, scope the transmit
restriction to rev 2.0, and replace integer bit masking of the enum
with explicit valid mode transitions.  This restores the behavior
from before the Intel shared-code split and resolves -Wassign-enum.

Reported by:    glebius

(cherry picked from commit 2f1d9ab96214db2ec6ce30c44b55a89a7eaa8f6a)
DeltaFile
+32-7sys/dev/e1000/e1000_82542.c
+32-71 files

FreeBSD/src d1e26c2sys/dev/ice if_ice_iflib.c

ice: Report initialization failures to iflib

The primary and mirror-VSI ifdi_init callbacks can return early when
reset state or hardware queue and filter setup prevents initialization.
Iflib then marks the interface running and enables interrupts although
the driver did not finish bringing it up.

Report each non-detach failure through iflib_init_failed().  Keep the
existing ice reset and subinterface-reinitialization machinery
responsible for scheduling recovery.

(cherry picked from commit dcdc00a41d3e4be0e75eb625cd3a23d5a927ed15)
DeltaFile
+13-9sys/dev/ice/if_ice_iflib.c
+13-91 files

FreeBSD/src b50cef6sys/dev/bnxt/bnxt_en if_bnxt.c

bnxt: Report initialization failures to iflib

HWRM failures currently return from the void ifdi_init callback.
iflib then marks the interface running and enables interrupts despite an
incomplete ring or VNIC setup.

Move the hardware setup into an error-returning helper.  The ifdi_init
wrapper can report failure through iflib_init_failed(), while firmware
recovery can propagate the same error through bnxt_open().  Also clear
the initialized state after partial setup is torn down.

(cherry picked from commit cb0e8f5fb6de03428137c096b1c8b62710829029)
DeltaFile
+16-4sys/dev/bnxt/bnxt_en/if_bnxt.c
+16-41 files

FreeBSD/src f336c45sys/dev/ixgbe if_ix.c

ixgbe: Enable PF RSS across queues with SR-IOV

PSRTYPE is indexed by pool in VMDq+RSS mode, and its RQPL
field selects the number of receive queues available within the pool.
The PF occupies the last pool, but the driver programmed pool zero and
left the PF RQPL value at zero.  As a result, all PF receive traffic
was directed to its first queue while SR-IOV was enabled.

Program PSRTYPE for the PF pool and encode its allocated receive queue
count.

(cherry picked from commit 49f9143d9a37a4646c9f4ddac53b97dde04e3fa3)
DeltaFile
+15-1sys/dev/ixgbe/if_ix.c
+15-11 files

FreeBSD/src 17222ebsys/dev/ixgbe ixgbe.h if_ixv.c

ixv: Recover when the PF mailbox is unavailable

A failed VF reset or mailbox API negotiation currently returns from
the void ifdi_init callback. Iflib then marks the interface running
even though ixv left its adapter stopped. Stopped media queries can
continue polling the PF, and no timer remains active to retry when the
PF returns.

Track mailbox readiness and report unsuccessful initialization to
iflib. Stopped admin and media-status passes now publish cached
link-down state without touching the mailbox. While the VF remains
administratively up, retry complete initialization after 250 ms, one
second, four seconds, and then at a capped eight-second interval.

Preserve the requested MAC across reset, then program it once after
mailbox API negotiation. The previous two pre-reset requests each
could wait a full mailbox timeout after an established PF disappeared,
holding the iflib context lock for about two seconds before the reset
handshake.

    [8 lines not shown]
DeltaFile
+226-25sys/dev/ixgbe/if_ixv.c
+6-0sys/dev/ixgbe/ixgbe.h
+232-252 files

FreeBSD/src dfbc676sys/dev/ixgbe ixgbe_phy.c

ixgbe: Recognize production X550 PHY IDs

According to Linux 5f1c3589b0f0, the X550 PHY classifier still matches
an alpha silicon ID, while the shared definitions contain the two
production IDs.  This can leave production hardware on the generic
probing path and issue unnecessary PHY queries.

(cherry picked from commit 392f0af6685a06e89fecdc38cc2e910d2b84d738)
DeltaFile
+2-0sys/dev/ixgbe/ixgbe_phy.c
+2-01 files

FreeBSD/src dc670f1sys/dev/ixgbe if_ix.c

ixgbe: Preserve the full VF RSS domain in the shared RETA

The 82599 and X540 share the global RSS redirection table between the
PF and its VFs.  Programming that table from the PF queue count
prevents a VF from using queue indices absent from the PF layout.  A
one-queue PF consequently directs every flow for a two- or four-queue
VF to queue zero.

Program at least four queue indices while SR-IOV is active.  Each pool
PSRTYPE.RQPL field masks the shared table to the queue subset available
to that function, so the PF can continue using fewer queues.

(cherry picked from commit 8b668bc7e7c8b0a1bcb018360a4aafa445ff554f)
DeltaFile
+17-5sys/dev/ixgbe/if_ix.c
+17-51 files

FreeBSD/src 7316de4sys/dev/ixgbe ixgbe_x550.c ixgbe_type.h

ixgbe: Add 10GBase-BX BiDi SFP+ module support

10G-BX optics use paired wavelengths to carry 10 Gb/s Ethernet over a
single strand of single-mode fiber.  Their 10G compliance byte is
empty, so identify them from the SFF-8472 nominal signaling rate and
single-mode reach fields.

When an EEPROM also advertises 1G BASE-BX10, give the complete 10G
bitrate and reach signature precedence.  Otherwise retain FreeBSD's
permissive 1G-BX identification rather than requiring a nominal
1.3 GBd rate.

Relnotes:       yes

(cherry picked from commit f9ce33b0d8ef233063bd6c27bdba2580f97d9094)
DeltaFile
+56-5sys/dev/ixgbe/ixgbe_phy.c
+10-0sys/dev/ixgbe/if_ix.c
+7-0sys/dev/ixgbe/ixgbe_82599.c
+3-0sys/dev/ixgbe/ixgbe_type.h
+3-0sys/dev/ixgbe/ixgbe_phy.h
+2-0sys/dev/ixgbe/ixgbe_x550.c
+81-56 files

FreeBSD/src 7dd9e37sys/net if_media.h

net: Add ifmedia support for 10GBase-BX BiDi

10GBase-BX uses paired wavelengths to carry both directions over a
single strand of single-mode fiber.  The optics must be paired so that
the transmit and receive wavelengths cross over.

(cherry picked from commit 4220b52453c9701922955dcc1c1e1554d6a9f3ae)
DeltaFile
+3-0sys/net/if_media.h
+3-01 files

FreeBSD/src 66972c4share/man/man4 ix.4, sys/dev/ixgbe ixgbe_type.h if_ix.c

ixgbe: Expose EEE LPI event counters

X550-family devices provide clear-on-read counters for transmit and
receive Low Power Idle events.  Accumulate each register once in the
normal statistics poll and expose the monotonic totals below the eee
sysctl node.  Document the counters together with the existing EEE
control.

Obtained from:  Intel ix 3.4.39

(cherry picked from commit ff86fd4f36618dacf1628180034c312c70294276)
DeltaFile
+18-0sys/dev/ixgbe/if_ix.c
+7-1share/man/man4/ix.4
+2-0sys/dev/ixgbe/ixgbe_type.h
+27-13 files