From nobody Mon May 19 02:04:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b11Gc1hhnz5wGZx; Mon, 19 May 2025 02:04:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b11Gc15WMz3fwd; Mon, 19 May 2025 02:04:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747620296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zm9qExMcwSsfhdMdZvTOfBtNsUt3AP0dzpAVXM+0OBo=; b=aDbGPgA60D7Dir36CkES6OCZpZefEF2vCphUUVYwNIOQsVTAo/H9K1X1CjHAxe5i/roqfx tt9/KtY0ffQgIanh/VotEvK61eLuyj8ALZxji9rX0FBv/6MU47pDijtYKvQKY/+l8Vo6ie DtiRIFwFw2/t4PcqAmFAb5f3yufMU2ub2TQwcxykOhfPGP0gKZKloQ9lJx3+O4ahF9EVpA 2x31hwj345DI3mP5cJBrLiRzaJaTKlqsrYu85PplwR/k4h44oEDidc+fbcpRYWI46AF1r6 l8T+8xRgmpG+JW7BMXWrf8n4k/eibDQWk1Ucwdjrii+QVKOTsZrx8CkajUvi7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747620296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zm9qExMcwSsfhdMdZvTOfBtNsUt3AP0dzpAVXM+0OBo=; b=vM+mflWEjbGRui/4npvcTCzwTn3DoZeDGmG0cx9o0WTsZOxvbxHKK1qW2JPhvSYMao+5kL 3R7WlTtnalh1Cth783m5V7liPtp5Y/fpZxpc99rgUBem8bqdzmPhm7+DsC1he1oMOUEQjN AOP249p4C4jjOJMDkth3q0Dw1n53iUcSOq7OqkQTFdks+6Mfs0rvxFKv1rsOFL6VMzNKPZ cZCFBBRaktomEg7VInYJ8XjyEvFjIkz4Dro0wuDGvD0CkBnL1+835NB18rdOAmUzWsnOR4 Rq58h61f9TVS7TF+oBxjkDh35zrnYWlb5cJbIjLdcv21orOjOSzoNc5LPgd+3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747620296; a=rsa-sha256; cv=none; b=P4Y5d4Iauhk0hcswwbJOR13+LyA8jQRuLTG8kE75ORXqbvlWaRvNSHKclzttx5RKi3wZz2 HRPVhgVEQEoVkxEmivz0Of13rQRmIaFWmtA0TB2Tdm25aOI9Zr5FoT7/xbirxkOcvAuzFW gI5zHdKAvMmoXJR6YnhZMGN2tN18dDIjINl29sqkVhdQZ/Atodhxld6g8PyIMZb/HKotsd 4VNWH1+7lWTKGkOfUeZv9akwwZ0xVott2dwdJNk4lKHhaG1y0Mj0kMabsIa4oaU2nLtx74 RbKDgaD0/H5VoaxLu+68bdXxmzpu/TbgftTwmeREecYzC3+x0i5DXGD3IOPxVw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b11Gc0D2hzl9H; Mon, 19 May 2025 02:04:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J24twn085380; Mon, 19 May 2025 02:04:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J24t9E085377; Mon, 19 May 2025 02:04:55 GMT (envelope-from git) Date: Mon, 19 May 2025 02:04:55 GMT Message-Id: <202505190204.54J24t9E085377@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 802edf230793 - stable/14 - qat.4: Cleanup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 802edf23079388447659136805d97b95b0f90899 Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=802edf23079388447659136805d97b95b0f90899 commit 802edf23079388447659136805d97b95b0f90899 Author: Alexander Ziaee AuthorDate: 2025-05-16 17:19:00 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-19 02:03:56 +0000 qat.4: Cleanup + copyright symbols do not belong in Nd's (apropos results) + move hardware to HARDWARE for inclusion in the hw release notes + improve sysctls + lines which say nothing removed + links moved to see also + spacing and markup corrections MFC after: 3 days Reviewed by: markj, mhorne Differential Revision: https://reviews.freebsd.org/D50381 (cherry picked from commit c1d9b2c9b03cade19cb4f94d3e29fba7179ac11a) --- share/man/man4/qat.4 | 181 +++++++++++++++++++++++++-------------------------- 1 file changed, 89 insertions(+), 92 deletions(-) diff --git a/share/man/man4/qat.4 b/share/man/man4/qat.4 index 3d8c0cd32664..e7907c7c6331 100644 --- a/share/man/man4/qat.4 +++ b/share/man/man4/qat.4 @@ -1,11 +1,11 @@ .\" SPDX-License-Identifier: BSD-3-Clause .\" Copyright(c) 2007-2022 Intel Corporation -.Dd May 4, 2023 +.Dd May 16, 2025 .Dt QAT 4 .Os .Sh NAME .Nm qat -.Nd Intel (R) QuickAssist Technology (QAT) driver +.Nd Intel QuickAssist Technology driver .Sh SYNOPSIS To load the driver call: .Pp @@ -39,9 +39,20 @@ The driver supports cryptography and compression acceleration of the Intel (R) QuickAssist Technology (QAT) devices. .Pp +A complete API for offloading these operations is exposed in the kernel +and may be used by any other entity directly. +In addition to exposing a complete kernel API for +offloading cryptography and compression operations, the +.Nm +driver also integrates with +.Xr crypto 4 , +allowing offloading supported operations to Intel QuickAssist Technology +devices. +.Sh HARDWARE The .Nm -driver is intended for platforms that contain: +driver supports the following Intel QuickAssist Technology Engines: +.Pp .Bl -bullet -compact .It Intel (R) C62x Chipset @@ -57,78 +68,45 @@ Intel (R) Atom P5300 processor product family .It Intel (R) QAT 4xxx Series .El -.Pp -The -.Nm -driver supports cryptography and compression acceleration. -A complete API for offloading these operations is exposed in the kernel and may -be used by any other entity directly. -For details of usage and supported operations and algorithms refer to the -following documentation available from Intel Download Center -.Lk https://downloadcenter.intel.com : -.Bl -bullet -compact -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology API Programmer's Guide -.Re -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology Cryptographic API Reference Manual -.Re -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology Data Compression API Reference Manual -.Re -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology Performance Optimization Guide -.Re -.El -.Pp -In addition to exposing complete kernel API for offloading cryptography and -compression operations, the -.Nm -driver also integrates with -.Xr crypto 4 , -allowing offloading supported cryptography operations to Intel (R) QuickAssist -Technology (QAT) devices. -For details of usage and supported operations and algorithms refer to the -documentation mentioned above and -.Sx SEE ALSO -section. .Sh SYSCTL_VARIABLES -Following variables may be used to reconfigure the QAT device.\& -For configuration persistence those variables may be set before loading the driver, either via +The following +.Xr sysctl 8 +variables may be used to reconfigure the +.Nm +device. +For configuration persistence those variables may be set before loading +the driver, either via .Xr kenv 1 or .Xr loader.conf 5 . -The device specific configuration options are prefixed with -.Va dev.qat.X\&. -where X is the device number. -The specific device needs to be in "down" state before changing the configuration. +.Pp +The specific device needs to be in the "down" state +before changing the configuration. .Bl -tag -width indent -.It Va state -Show current state of the device. Override the device state. Possible values: "down", "up". - -NOTE: If the symmetric services are used for device the qat_ocf driver needs to be disabled prior the device -reconfiguration. -Following variable may be used to enable/disable the QAT cryptographic framework connectivity -.Va dev.qat_ocf.0.enable\&. +.It Va dev.qat.X.state +Show or set current state of the device. +Possible values: "down", "up". +.Pp +NOTE: If the symmetric services are used for device the +.Sy qat_ocf +driver needs to be disabled prior the device reconfiguration. +.It Va dev.qat_ocf.0.enable +Enable/disable the QAT cryptographic framework connectivity. Enabled by default. -.It Va cfg_services -Override the device services enabled: symmetric, asymmetric, data compression. +.It Va dev.qat.X.cfg_services +Override the device services enabled, may be one of: +symmetric, asymmetric, data compression. Possible values: "sym", "asym", "dc", "sym;dc", "asym;dc", "sym;asym". -Default services configured are "sym;asym" for even and "dc" for odd devices. -.It Va cfg_mode -Override the device mode configuration for kernel space and user space instances. +Default services configured +are "sym;asym" for even and "dc" for odd devices. +.It Va dev.qat.X.cfg_mode +Override the device mode configuration +for kernel space and user space instances. Possible values: "ks", "us", "ks;us". Default value "ks;us". -.It Va num_user_processes -Override the number of uio user space processes that can connect to the QAT device. +.It Va dev.qat.X.num_user_processes +Override the number of uio user space processes +that can connect to the QAT device. Default: 2 .El .Pp @@ -136,48 +114,67 @@ The following .Xr sysctl 8 variables are read-only: .Bl -tag -width indent -.It Va frequency +.It Va dev.qat.X.frequency QAT device frequency value. -.It Va mmp_version +.It Va dev.qat.X.mmp_version QAT MMP Library revision number. -.It Va hw_version +.It Va dev.qat.X.hw_version QAT hardware revision number. -.It Va fw_version +.It Va dev.qat.X.fw_version QAT firmware revision number. -.It Va dev_cfg +.It Va dev.qat.X.dev_cfg Summary of device specific configuration. -.It Va heartbeat -QAT device heartbeat status. Value '1' indicates that the device is operational. -Value '0' means that the device is not responsive. Device requires restart. -.It Va heartbeat_failed +.It Va dev.qat.X.heartbeat +QAT device heartbeat status. +Value '1' indicates that the device is operational. +Value '0' means that the device is not responsive. +Device requires restart. +.It Va dev.qat.X.heartbeat_failed Number of QAT heartbeat failures received. -.It Va heartbeat_sent +.It Va dev.qat.X.heartbeat_sent Number of QAT heartbeat requests sent. .El - -.Sh COMPATIBILITY -The -.Nm -driver replaced previous implementation introduced in -.Fx 13.0 . -Current version, in addition to -.Xr crypto 4 -integration, supports also data compression and exposes a complete API for -offloading data compression and cryptography operations. .Sh SEE ALSO .Xr crypto 4 , .Xr ipsec 4 , .Xr pci 4 , .Xr crypto 7 , .Xr crypto 9 +.Pp +For details of usage and supported operations and algorithms refer to +the following documentation available from Intel Download Center +.Lk https://downloadcenter.intel.com : +.Pp +.Bl -bullet -compact +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology API Programmer's Guide +.Re +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology Cryptographic API Reference Manual +.Re +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology Data Compression API Reference Manual +.Re +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology Performance Optimization Guide +.Re +.El .Sh HISTORY -This +A .Nm -driver was introduced in -.Fx 14.0 . -.Fx 13.0 included a different version of -.Nm -driver. +driver appeared in +.Fx 13.0 . +It was superseded in +.Fx 14.0 +by the upstream driver. .Sh AUTHORS The .Nm From nobody Mon May 19 02:45:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b12942k7Fz5wKYj; Mon, 19 May 2025 02:45:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b129429F8z47fC; Mon, 19 May 2025 02:45:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747622712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2dgZuJrS8S1ROIpQ44CekEv1MzBhERjTkJFRthafdo4=; b=VkZKbwHlaoeQeJPEnomrTtVfbzGqHmrg/wdG6/gC4vAazWnab9xLDgM741RaJGU3Hnpi2l pF88BjdFj0wfijckHAhn4SVAyapXipUJwMto4c//Nn+ZUzIm1qlCR+TWP50J8WItis3wNx 5CBAPnPEXcX0f3sPbuY9/AJGgBAW+rSLRCq3oWgShpYeeAVINEgDzvBNxt39941Ca1b+Xi HHdMoS683U5SjGXNv6JB5TZjby7w6kOomgCjS20dOhPuNyo5XNMkWlentBusg0E7Flv/1/ 6NmaisC9/dQLsdByOHw85SWEdIXHbQDR3ZYuD/d/EIxrc+LHxvvc2QbxlfGNhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747622712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2dgZuJrS8S1ROIpQ44CekEv1MzBhERjTkJFRthafdo4=; b=l5zW0YcfKdOEwNAY6Tx+yp8qJreM3GwaQTERonYMBNPU6cz+h7S3zCuQeoH8/Djcv1FGR4 s0NtSEQXToyTsoHG92ZMefSmfSnUzJ1BPwUF0RRru3lwUwHqhEsbc+UcSLmCypWuLqsUoN hzUZO/0ygoo9ySCt7xVVO7NgqqtXDjEmJPs4KAMWlML6P4TKEOj4+cR0Gq1TgvhF4phRNC unaW2sBqjI2gxILYRGmqpTEzbSwqiPjycHv0TD47N7ALsXrstACJBIT/d4rafG9K6awLXX pFIGq9qmB2HkJbiUeeAZKrOGcK1+VL5E9DtD55qNTib2GRZMbHA85L8ZrNWBIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747622712; a=rsa-sha256; cv=none; b=hYZrZ31jJGuS6yXMddiKRYkvFLdy3H+J/CN28b/PKI2Kf2gtZ2jfMx9BbEtBh/+JWYtDEY VEU7w1a8iD4owTE0SHwjhb6HO8XpnZ3qR/EL/Jsk1CRmw15IRdJeIdjzG8jqDRtOMIFlAz RmCi4AWMF5eY1BhS1HRPsgWOlEpYqbwKaxdz7VPNCJWZOOXpjFdE5kr8mA1oKqluB+hNgN A4GT9/ChYsWaJB/rtlHFyNSgiINdB2sOiK1H0cX+uHikmhBWgROklXnc6VskeryGsWDtNg dHdbZW50qdHOrp4s+wehRQki1ka3DdmD84XXQQJd3jmvQJoW/ll+h+rtAY80Ng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b12941DzrzmCF; Mon, 19 May 2025 02:45:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J2jC8Y059550; Mon, 19 May 2025 02:45:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J2jCJh059547; Mon, 19 May 2025 02:45:12 GMT (envelope-from git) Date: Mon, 19 May 2025 02:45:12 GMT Message-Id: <202505190245.54J2jCJh059547@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 33597164cd8b - stable/14 - sys/net: add a new ether_vlanid_t type List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 33597164cd8b9c28afa44be725e164c660489c03 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=33597164cd8b9c28afa44be725e164c660489c03 commit 33597164cd8b9c28afa44be725e164c660489c03 Author: Lexi Winter AuthorDate: 2025-04-15 16:13:23 +0000 Commit: Lexi Winter CommitDate: 2025-05-19 02:38:13 +0000 sys/net: add a new ether_vlanid_t type ether_vlanid_t is a type to represent a VLAN ID, for example inside a .1q tag. since this is specific to Ethernet, put it in net/ethernet.h. change bridge to use the new type instead of uint{16,32}_t. Reviewed by: adrian, kp Differential Revision: https://reviews.freebsd.org/D49836 (cherry picked from commit 96f830456fd449c4cb5a7df8a2f6c3c96993b43e) --- sys/net/ethernet.h | 5 +++++ sys/net/if_bridge.c | 28 ++++++++++++++++------------ sys/net/if_bridgevar.h | 2 +- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/sys/net/ethernet.h b/sys/net/ethernet.h index e7313e78c5bb..bb4c241db95a 100644 --- a/sys/net/ethernet.h +++ b/sys/net/ethernet.h @@ -81,6 +81,11 @@ struct ether_addr { (((addr)[0] | (addr)[1] | (addr)[2] | \ (addr)[3] | (addr)[4] | (addr)[5]) == 0x00) +/* + * This is the type of the VLAN ID inside the tag, not the tag itself. + */ +typedef uint16_t ether_vlanid_t; + /* * 802.1q Virtual LAN header. */ diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 79561bc4c9cd..3e562aae9056 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -263,7 +263,7 @@ struct bridge_rtnode { unsigned long brt_expire; /* expiration time */ uint8_t brt_flags; /* address flags */ uint8_t brt_addr[ETHER_ADDR_LEN]; - uint16_t brt_vlan; /* vlan id */ + ether_vlanid_t brt_vlan; /* vlan id */ struct vnet *brt_vnet; struct epoch_context brt_epoch_ctx; }; @@ -339,21 +339,21 @@ static void bridge_broadcast(struct bridge_softc *, struct ifnet *, static void bridge_span(struct bridge_softc *, struct mbuf *); static int bridge_rtupdate(struct bridge_softc *, const uint8_t *, - uint16_t, struct bridge_iflist *, int, uint8_t); + ether_vlanid_t, struct bridge_iflist *, int, uint8_t); static struct ifnet *bridge_rtlookup(struct bridge_softc *, const uint8_t *, - uint16_t); + ether_vlanid_t); static void bridge_rttrim(struct bridge_softc *); static void bridge_rtage(struct bridge_softc *); static void bridge_rtflush(struct bridge_softc *, int); static int bridge_rtdaddr(struct bridge_softc *, const uint8_t *, - uint16_t); + ether_vlanid_t); static void bridge_rtable_init(struct bridge_softc *); static void bridge_rtable_fini(struct bridge_softc *); static int bridge_rtnode_addr_cmp(const uint8_t *, const uint8_t *); static struct bridge_rtnode *bridge_rtnode_lookup(struct bridge_softc *, - const uint8_t *, uint16_t); + const uint8_t *, ether_vlanid_t); static int bridge_rtnode_insert(struct bridge_softc *, struct bridge_rtnode *); static void bridge_rtnode_destroy(struct bridge_softc *, @@ -2177,7 +2177,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa, struct ether_header *eh; struct ifnet *bifp, *dst_if; struct bridge_softc *sc; - uint16_t vlan; + ether_vlanid_t vlan; NET_EPOCH_ASSERT(); @@ -2508,7 +2508,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) struct ifnet *bifp; struct ether_header *eh; struct mbuf *mc, *mc2; - uint16_t vlan; + ether_vlanid_t vlan; int error; NET_EPOCH_ASSERT(); @@ -2873,8 +2873,9 @@ bridge_span(struct bridge_softc *sc, struct mbuf *m) * Add a bridge routing entry. */ static int -bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, uint16_t vlan, - struct bridge_iflist *bif, int setflags, uint8_t flags) +bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, + ether_vlanid_t vlan, struct bridge_iflist *bif, + int setflags, uint8_t flags) { struct bridge_rtnode *brt; struct bridge_iflist *obif; @@ -2981,7 +2982,8 @@ bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, uint16_t vlan, * Lookup the destination interface for an address. */ static struct ifnet * -bridge_rtlookup(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtlookup(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; @@ -3092,7 +3094,8 @@ bridge_rtflush(struct bridge_softc *sc, int full) * Remove an address from the table. */ static int -bridge_rtdaddr(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtdaddr(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; int found = 0; @@ -3221,7 +3224,8 @@ bridge_rtnode_addr_cmp(const uint8_t *a, const uint8_t *b) * vlan id or if zero then just return the first match. */ static struct bridge_rtnode * -bridge_rtnode_lookup(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtnode_lookup(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; uint32_t hash; diff --git a/sys/net/if_bridgevar.h b/sys/net/if_bridgevar.h index 01ac96e8d5b0..27815cd37c83 100644 --- a/sys/net/if_bridgevar.h +++ b/sys/net/if_bridgevar.h @@ -185,7 +185,7 @@ struct ifbareq { unsigned long ifba_expire; /* address expire time */ uint8_t ifba_flags; /* address flags */ uint8_t ifba_dst[ETHER_ADDR_LEN];/* destination address */ - uint16_t ifba_vlan; /* vlan id */ + ether_vlanid_t ifba_vlan; /* vlan id */ }; #define IFBAF_TYPEMASK 0x03 /* address type mask */ From nobody Mon May 19 02:54:35 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b12Mw3V2kz5wKqb; Mon, 19 May 2025 02:54:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b12Mw0l2Mz4G3G; Mon, 19 May 2025 02:54:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747623276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zzhZqsY0f0OYTcKMUqLPPz1MXrSSs6yrtVK63aVmeLg=; b=ap6twl1gEwt8VxD/yVeJIAdXru2nQfR0Ro4LFjbNlTdoIoOIGs5xK4tM6TzdjVRLez0KhJ 426Bgl/PGoznYeTLkz6NubXm7d95C5xcis5Ka6KoY9T73a+O5UblNNrbNbgqLjsJdPQUBv 58jCqouci3i0fgmF3BMlFoLg89Y8YvhB8v+yJ0IxFl5+tAGzKH0s0GtoetmI4W28KEw1tl in73uIOm/qIqtY9CK1Kc2fQI63Nd5VEKyTsbB16Xjl189QZY7YAvZ07UzgpoMR5QJ0JEKq wVPlFnsbB+8g/kGZzNvE2ILtTx1Wj4vPjHCd7YMtbLOpLIfASqmzRS3VGGIz3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747623276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zzhZqsY0f0OYTcKMUqLPPz1MXrSSs6yrtVK63aVmeLg=; b=Uws6dYWPWNryjWgvpNeijRpFYATV2zXXexoJj9LnM8gt8chblYOoyIjSu9NAWdLR/sSeZ6 90vz9p97zFdblD6vMZ+B6LW6bE07QJYA8+7aG7U5XitGlzO6WIywkmNuTQ9unh2JwXUw5S UOPDIz6/tOU14OctjeX7sdTc7lhudAL70nP/jBdP/IRNYDOjAu8RXFuJ8ZDxMdmjQD84iu nBQpUKFhUPqoyRHMtMVivV3dLEVnQVofzyvTyrjH6upJYSNd4ldmpZb1UCAu93Ssa0eEj9 AhqFRPhMG+vbaEcEiR5KcmfNhmXSwvudslqePtcboMU89/mQCGsX86/e8sR76w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747623276; a=rsa-sha256; cv=none; b=PDPKp5g+GhuV5jXeIdvCy+vWhPkO1g6nFim68+2gk4A77auwYjadqANtdnglkjhdOKSxWd 1yRhqefdVIBAzxk2+FWFktbOYEYUnMd2HIF1IhUqS1rem+v4u0hgxaTWPSuHEjHkqo2IAm Okwa9ZZcd4mkKibF6AsZc4b1h7/ETVPjFSL06JPxWSwus1r0zLpKPfhy3u/PosmT5BOAdL fkvLkjaqDR22mJOQ3ScAwpZCJGom6JlUDmlqt59piILj+qevcxWPi+maFH9cuE/9g24zvE taiTFN01YKrBoTk9tQuGY0HhjNZjY9Pc6f/yH46tvVm158OdTbF6Xwc2IiEM+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b12Mw05nKzmZ0; Mon, 19 May 2025 02:54:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J2sZPk077780; Mon, 19 May 2025 02:54:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J2sZkd077777; Mon, 19 May 2025 02:54:35 GMT (envelope-from git) Date: Mon, 19 May 2025 02:54:35 GMT Message-Id: <202505190254.54J2sZkd077777@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 9523a569fc02 - stable/13 - sys/net: add a new ether_vlanid_t type List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9523a569fc02cf7d61e30016d2eb5e562981fe57 Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=9523a569fc02cf7d61e30016d2eb5e562981fe57 commit 9523a569fc02cf7d61e30016d2eb5e562981fe57 Author: Lexi Winter AuthorDate: 2025-04-15 16:13:23 +0000 Commit: Lexi Winter CommitDate: 2025-05-19 02:49:20 +0000 sys/net: add a new ether_vlanid_t type ether_vlanid_t is a type to represent a VLAN ID, for example inside a .1q tag. since this is specific to Ethernet, put it in net/ethernet.h. change bridge to use the new type instead of uint{16,32}_t. Reviewed by: adrian, kp Differential Revision: https://reviews.freebsd.org/D49836 (cherry picked from commit 96f830456fd449c4cb5a7df8a2f6c3c96993b43e) --- sys/net/ethernet.h | 5 +++++ sys/net/if_bridge.c | 28 ++++++++++++++++------------ sys/net/if_bridgevar.h | 2 +- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/sys/net/ethernet.h b/sys/net/ethernet.h index 6a16f6f92b57..8822602d33e4 100644 --- a/sys/net/ethernet.h +++ b/sys/net/ethernet.h @@ -78,6 +78,11 @@ struct ether_addr { (((addr)[0] | (addr)[1] | (addr)[2] | \ (addr)[3] | (addr)[4] | (addr)[5]) == 0x00) +/* + * This is the type of the VLAN ID inside the tag, not the tag itself. + */ +typedef uint16_t ether_vlanid_t; + /* * 802.1q Virtual LAN header. */ diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index dd506d558c99..b385772bdf73 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -270,7 +270,7 @@ struct bridge_rtnode { unsigned long brt_expire; /* expiration time */ uint8_t brt_flags; /* address flags */ uint8_t brt_addr[ETHER_ADDR_LEN]; - uint16_t brt_vlan; /* vlan id */ + ether_vlanid_t brt_vlan; /* vlan id */ struct vnet *brt_vnet; struct epoch_context brt_epoch_ctx; }; @@ -343,21 +343,21 @@ static void bridge_broadcast(struct bridge_softc *, struct ifnet *, static void bridge_span(struct bridge_softc *, struct mbuf *); static int bridge_rtupdate(struct bridge_softc *, const uint8_t *, - uint16_t, struct bridge_iflist *, int, uint8_t); + ether_vlanid_t, struct bridge_iflist *, int, uint8_t); static struct ifnet *bridge_rtlookup(struct bridge_softc *, const uint8_t *, - uint16_t); + ether_vlanid_t); static void bridge_rttrim(struct bridge_softc *); static void bridge_rtage(struct bridge_softc *); static void bridge_rtflush(struct bridge_softc *, int); static int bridge_rtdaddr(struct bridge_softc *, const uint8_t *, - uint16_t); + ether_vlanid_t); static void bridge_rtable_init(struct bridge_softc *); static void bridge_rtable_fini(struct bridge_softc *); static int bridge_rtnode_addr_cmp(const uint8_t *, const uint8_t *); static struct bridge_rtnode *bridge_rtnode_lookup(struct bridge_softc *, - const uint8_t *, uint16_t); + const uint8_t *, ether_vlanid_t); static int bridge_rtnode_insert(struct bridge_softc *, struct bridge_rtnode *); static void bridge_rtnode_destroy(struct bridge_softc *, @@ -2147,7 +2147,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa, struct ether_header *eh; struct ifnet *bifp, *dst_if; struct bridge_softc *sc; - uint16_t vlan; + ether_vlanid_t vlan; NET_EPOCH_ASSERT(); @@ -2464,7 +2464,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) struct ifnet *bifp; struct ether_header *eh; struct mbuf *mc, *mc2; - uint16_t vlan; + ether_vlanid_t vlan; int error; NET_EPOCH_ASSERT(); @@ -2761,8 +2761,9 @@ bridge_span(struct bridge_softc *sc, struct mbuf *m) * Add a bridge routing entry. */ static int -bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, uint16_t vlan, - struct bridge_iflist *bif, int setflags, uint8_t flags) +bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, + ether_vlanid_t vlan, struct bridge_iflist *bif, + int setflags, uint8_t flags) { struct bridge_rtnode *brt; struct bridge_iflist *obif; @@ -2873,7 +2874,8 @@ bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, uint16_t vlan, * Lookup the destination interface for an address. */ static struct ifnet * -bridge_rtlookup(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtlookup(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; @@ -2984,7 +2986,8 @@ bridge_rtflush(struct bridge_softc *sc, int full) * Remove an address from the table. */ static int -bridge_rtdaddr(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtdaddr(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; int found = 0; @@ -3113,7 +3116,8 @@ bridge_rtnode_addr_cmp(const uint8_t *a, const uint8_t *b) * vlan id or if zero then just return the first match. */ static struct bridge_rtnode * -bridge_rtnode_lookup(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtnode_lookup(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; uint32_t hash; diff --git a/sys/net/if_bridgevar.h b/sys/net/if_bridgevar.h index 3b96a997f052..8f1de6793340 100644 --- a/sys/net/if_bridgevar.h +++ b/sys/net/if_bridgevar.h @@ -181,7 +181,7 @@ struct ifbareq { unsigned long ifba_expire; /* address expire time */ uint8_t ifba_flags; /* address flags */ uint8_t ifba_dst[ETHER_ADDR_LEN];/* destination address */ - uint16_t ifba_vlan; /* vlan id */ + ether_vlanid_t ifba_vlan; /* vlan id */ }; #define IFBAF_TYPEMASK 0x03 /* address type mask */ From nobody Mon May 19 04:30:23 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b14VR5dhdz5wRtF; Mon, 19 May 2025 04:30:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b14VR3NWnz3v2Q; Mon, 19 May 2025 04:30:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747629023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DYO50RzQwrXGaBBDZXRGd3GxftNlL9Mio71SXboFGdg=; b=vx5zk5FYSATV1Q/Kz0kAWuw+cam1CeoyVmTDLg/p/LFyWSYJ/OAtqOZjwxvqU8cpHv3upf IOOumVnU9YFbfuXfWAi2QKXfhg1bRUdMpuvlXguivBexKbj1BDfhPZJZ99ocGRUkdJ4HD9 FeydJIFI3Rbt5kjMq4FcIw0+GeMT1KC0EAplRaANFYc1sBoIyGHJROzpymOszxady07DsR ycdQtRqq+m9D4QIeFxjgfYqnEb7PsI0CFtkJ+1SXYq9+aqSx3+UT64RJaobEw/1wN5943l yyHtkIb69fwJ+bj7YWqHQhQ9wP3a8PkXEZbOs3kTJ9UDRZoBe4Xe8EBgIw+FkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747629023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DYO50RzQwrXGaBBDZXRGd3GxftNlL9Mio71SXboFGdg=; b=T74otjhAY7IBy53y/6H7tF4pmSLRj8zQPGJ6BmhAVI+A9TdxVhlUwfVKdZCdcnFJZMxhDn EiQvNRNyQXkfKkT9bZGwuU+e7KDR4cIOdsK/24nQnhkZoLPvDOUoEmejfj/7yFVkDUtKHO FsTiO9b7wpZvU+Ndn1j3n4U+akuKazDbNQ3Q7GsVoHlnxYBiRFUfQeJUjv0MbYh8ekie9R oUGdQv+6LczHhp9EXPGLz6XHx0QZFwrx068zBWJ1dwYJxtA/NGwqCjyBKM8GoeyGs3khPs wg3uKgDdmeSlYMomDKbDy2AT5jjr2RFH+qVwwW7Y9yA2ukXjW0CSelIXVPeAiA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747629023; a=rsa-sha256; cv=none; b=u2uFQiJIQbQXOu3WWZzcin6w9MLMy9HzDUh+rxdOOfhVRww2DeL1Cf0TF38t0LeKVRfFGx ApMnHAp10VSnAciZIRJHN5f/tcMp9JyF3Ql+EfUgQjV+xKDKTMUcxmPPE4TAIObnyaZWC1 htGoag0V9fzqAE20vv0mRjIst14O4/WbkNXIryL4KR6uAAgAtCIPiW12lVj1ZkWeckQhKB RNc/xiu7GpYxIH8Qi/ExGdu0TDa0QFM1UheKXlgqqsyeLEaeYAko1Lzlq/myVL/P3U5O4T prXEr21ORE2AA4SRwjTcfjDAThl8L8vtw6NobuBdrhzkFZ8/eycP5usW5AJ18A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b14VR1dNJzptx; Mon, 19 May 2025 04:30:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J4UN76059576; Mon, 19 May 2025 04:30:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J4UNKh059573; Mon, 19 May 2025 04:30:23 GMT (envelope-from git) Date: Mon, 19 May 2025 04:30:23 GMT Message-Id: <202505190430.54J4UNKh059573@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: cf47e6d4e14a - stable/14 - sys/cdefs.h: add __nodiscard annotation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cf47e6d4e14ab97d42317cb653926a0b6f9a21e9 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=cf47e6d4e14ab97d42317cb653926a0b6f9a21e9 commit cf47e6d4e14ab97d42317cb653926a0b6f9a21e9 Author: Lexi Winter AuthorDate: 2025-05-09 21:28:14 +0000 Commit: Lexi Winter CommitDate: 2025-05-19 03:04:26 +0000 sys/cdefs.h: add __nodiscard annotation __nodiscard adds the [[nodiscard]] attribute to a function, type or constructor in C or C++, causing a value so marked to issue a compiler warning if it is discarded (i.e., not used or assigned) other than by casting it to void. this replaces the existing __result_use_or_ignore_check, which has a similar purpose but different semantics. since __nodiscard provides more functionality (at least in GCC) and __result_use_or_ignore_check only had a single user, remove __result_use_or_ignore_check. [[nodiscard]] has been supported in C++ since C++17, but only in C since C23; however, both LLVM and GCC implement it even in older language versions, so it should always be available with a relatively modern compiler. for Clang, [[nodiscard]] in C is only available since LLVM 17, but we can fall back to __attribute__((__warn_unused_result__)) which has the same semantics and provides support back to (at least) LLVM 11. GCC supports [[nodiscard]] in both C and C++ since at least GCC 11. for GCC, we can't provide a fallback as the semantics of its warn_unused_result are different, but since __result_use_or_ignore_check isn't defined for GCC anyway, we don't lose anything here. MFC after: 2 weeks Reviewed by: des, emaste Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50217 (cherry picked from commit 7e0c5e0128c43bbae78190911aead8e1d9475ba5) --- sys/sys/cdefs.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index dc5221343dc3..209acc842839 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -393,6 +393,44 @@ #endif #endif +/* + * nodiscard attribute added in C++17 and C23, but supported by both LLVM and + * GCC in earlier language versions, so we use __has_c{,pp}_attribute to test + * for it. + * + * __nodiscard may be used on a function: + * __nodiscard int f(); + * + * or on a struct, union or enum: + * struct __nodiscard S{}; + * struct S f(); + * + * or in C++, on an object constructor. + */ + +#if defined(__cplusplus) && defined(__has_cpp_attribute) +#if __has_cpp_attribute(nodiscard) +#define __nodiscard [[nodiscard]] +#endif +#elif defined(__STDC_VERSION__) && defined(__has_c_attribute) +#if __has_c_attribute(__nodiscard__) +#define __nodiscard [[__nodiscard__]] +#endif +#endif + +#ifndef __nodiscard +/* + * LLVM 16 and earlier don't support [[nodiscard]] in C, but they do support + * __warn_unused_result__ with the same semantics, so fall back to that. + * We can't do this for GCC because the semantics are different. + */ +#ifdef __clang__ +#define __nodiscard __attribute__((__warn_unused_result__)) +#else +#define __nodiscard +#endif +#endif + /* * We use `__restrict' as a way to define the `restrict' type qualifier * without disturbing older software that is unaware of C99 keywords. From nobody Mon May 19 08:24:20 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b19hN6H8Vz5wks4; Mon, 19 May 2025 08:24:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b19hN1vXHz3ntb; Mon, 19 May 2025 08:24:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747643060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uCKkS71WVND73aNS1o9aeH7JNidkvlGUMAPd08aVfPg=; b=XrND96+QHS6+JogMWyJo8NczwAgB27vD1+TyDeoj3w5sC8TzfKxHg+szWotkLYF2tos7WI AIncN/fCnkt+lbktwrFRZb6YIC+aZPxY3bTnSWo686qGh2o6BRR/zUqT+7IBwT1MRKWgI6 mO8vrGhrN57szn0iXEr3GBJ8vhM26Ots1Yq3N+NJpLUEFZYjuYDqZS1sYRYQSZg53e+BRh MM+6iyljvgD0XycoHFPn+uT5oQS8fKSarfOX9veu9bwQfZU92w0wOLkNMbuoSicENFp5WM /W1p5OG6P1cH0ZAFcn6q20TsQhuFqUCRiO/jSd69+ghqSCBBFa9bgFdBW5u2qQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747643060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uCKkS71WVND73aNS1o9aeH7JNidkvlGUMAPd08aVfPg=; b=drfMrlAKZeFu6qMv+KbCvZai1hAjeM5QrMPX3BmMeGVaksOwY9kEX7bZrQKWOh+QEixaPW zjq8vzNZ5HR+Z13/rGeCPNjJwV6SlfOMQmUMnpqmLc4Gpow8EMbBz0aszZMRvRYVKRWq77 e5TOJ8fXwkLduw+RX8ONC1aV2lJ8ZwC6PfpQTYviRl3jOfI1RhguREEFqEffZ6GUhWGV4k GBLfzXU1Uwn1H1XXbQrwa5jitdnZAXdztMC54B24oRc2a1xtG4KfymvzGMTflaUwju61Y6 fzetmJTOfc+iuxqYM8sA25e1GjPBA+Dy1QN8veGc8AfxKjkCNmx8gaGwEmy9Pw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747643060; a=rsa-sha256; cv=none; b=FGL5inAlmCs2OVDIHdWxHqCKADPyPQCvr8tbmBSnGIByGNmIQOg7aZudTHGCUT6qqYXF33 m1cQRDijM0750DdKriuFrwYiwOuShW315DCPPn3vV/rs17Doo3fWjGDdvjZZdqDQhcZjcN UX3wImPQ4RYBoV9EOLCewhkHon9v51SP2WwQA1I6P5otAmr2bXg2MZ3a97NBsusJJTJHNW EU3b0qQtatHjl2pTFUspMGyjzjafFAgzi2jC/Xuau3nNbdV3RfdgriO7sOweKCnKEaCNH7 qO4tJj4p2dA0/mkFGr1Io0uExbQUaf8y1IVTgzjQXtZ1tcT1k8hORXmIfA20+g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b19hN16bJzwpT; Mon, 19 May 2025 08:24:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J8OKNa098036; Mon, 19 May 2025 08:24:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J8OKWF098033; Mon, 19 May 2025 08:24:20 GMT (envelope-from git) Date: Mon, 19 May 2025 08:24:20 GMT Message-Id: <202505190824.54J8OKWF098033@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Roger Pau =?utf-8?Q?Monn=C3=A9?= Subject: git: 7dc0a9fa76a8 - stable/14 - xen: improve man (4) page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: royger X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7dc0a9fa76a8df6dfaf26ff36a11aa9fe060a201 Auto-Submitted: auto-generated The branch stable/14 has been updated by royger: URL: https://cgit.FreeBSD.org/src/commit/?id=7dc0a9fa76a8df6dfaf26ff36a11aa9fe060a201 commit 7dc0a9fa76a8df6dfaf26ff36a11aa9fe060a201 Author: Roger Pau Monné AuthorDate: 2024-01-09 09:26:06 +0000 Commit: Roger Pau Monné CommitDate: 2025-05-19 08:23:04 +0000 xen: improve man (4) page Update the xen(4) man page to reflect the current support status. Reported by: kevans Reviewed by: bcr kevans imp Differential revision: https://reviews.freebsd.org/D43373 (cherry picked from commit 82126ef92fdb3c13a67ad44d33c0fe6ea479c01a) --- share/man/man4/xen.4 | 74 +++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/share/man/man4/xen.4 b/share/man/man4/xen.4 index 6660ab3c268b..15312866dae6 100644 --- a/share/man/man4/xen.4 +++ b/share/man/man4/xen.4 @@ -26,19 +26,19 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 30, 2015 +.Dd January 8, 2024 .Dt XEN 4 .Os .Sh NAME .Nm xen -.Nd Xen Hypervisor Guest (DomU) Support +.Nd Xen Hypervisor Support .Sh SYNOPSIS -To compile hardware-assisted virtualization (HVM) Xen guest support with -para-virtualized drivers into an amd64 or i386 kernel, -place the following lines in your kernel configuration file: -.Bd -ragged -offset indent -.Cd "options XENHVM" -.Cd "device xenpci" +FreeBSD supports running both as a Xen guest and host on amd64 hardware. +Guest support is limited to HVM and PVH modes, while host support is limited to +PVH mode only. +.Pp +Xen support is built by default in the i386 and amd64 GENERIC kernels; note +however that host mode is only available on amd64. .Ed .Sh DESCRIPTION The Xen Hypervisor allows multiple virtual machines to be run on a single @@ -52,20 +52,18 @@ to access resources such as virtual network interfaces and disk devices. .Pp With later instruction set extensions from AMD and Intel to support fully virtualizable instructions, unmodified virtual memory systems can also be -supported; this is referred to as hardware-assisted virtualization (HVM). +supported; this is referred to as hardware-assisted virtualization (HVM and PVH). HVM configurations may either rely on transparently emulated hardware peripherals, or para-virtualized drivers, which are aware of virtualization, and hence able to optimize certain behaviors to improve performance or semantics. +PVH configurations rely on para-virtualized drivers exclusively for IO. .Pp .Fx -supports hardware-assisted virtualization (HVM) on both i386 and amd64 -kernels. -.Pp Para-virtualized device drivers are required in order to support certain functionality, such as processing management requests, returning idle physical memory pages to the hypervisor, etc. -.Ss Xen DomU device drivers +.Ss Xen device drivers These para-virtualized drivers are supported: .Bl -hang -offset indent -width blkfront .It Nm balloon @@ -87,6 +85,10 @@ suspend, crash, and halt requests. Expose Xen events via the .Pa /dev/xen/evtchn special device. +.It Nm gntdev +Allow access to the grant table interface via the +.Pa /dev/xen/gntdev +special device. .It Nm netback Export local network interfaces to other Xen domains where they can be imported via @@ -94,35 +96,30 @@ imported via .It Nm netfront Import network interfaces from other Xen domains as local network interfaces, which may be used for IPv4, IPv6, etc. -.It Nm pcifront -Allow physical PCI devices to be passed through into a PV domain. +.It Nm privcmd +Allow issuing hypercalls via the +.Pa /dev/xen/privcmd +special device. +.It Nm timer +Implementation of a one-shot high resolution per-CPU timer using the hypercall +interface. +.It Nm acpi cpu +When running as a host forwards power management related information from ACPI +to the hypervisor for better performance management. .It Nm xenpci Represents the Xen PCI device, an emulated PCI device that is exposed to HVM domains. This device allows detection of the Xen hypervisor, and provides interrupt and shared memory services required to interact with the hypervisor. +.It Nm xenstore +Information storage space shared between domains. .El -.Ss Performance considerations -In general, PV drivers will perform better than emulated hardware, and are -the recommended configuration for HVM installations. -.Pp -Using a hypervisor introduces a second layer of scheduling that may limit the -effectiveness of certain -.Fx -scheduling optimisations. -Among these is adaptive locking, which is no longer able to determine whether -a thread holding a lock is in execution. -It is recommended that adaptive locking be disabled when using Xen: -.Bd -unfilled -offset indent -.Cd "options NO_ADAPTIVE_MUTEXES" -.Cd "options NO_ADAPTIVE_RWLOCKS" -.Cd "options NO_ADAPTIVE_SX" -.Ed .Sh HISTORY Support for .Nm first appeared in .Fx 8.1 . +Support for host mode was added in 11.0 . .Sh AUTHORS .An -nosplit .Fx @@ -133,15 +130,10 @@ and Further refinements were made by .An Justin Gibbs Aq Mt gibbs@FreeBSD.org , .An Adrian Chadd Aq Mt adrian@FreeBSD.org , +.An Colin Percival Aq Mt cperciva@FreeBSD.org , and -.An Colin Percival Aq Mt cperciva@FreeBSD.org . +.An Roger Pau Monné Aq Mt royger@FreeBSD.org . This manual page was written by -.An Robert Watson Aq Mt rwatson@FreeBSD.org . -.Sh BUGS -.Fx -is only able to run as a Xen guest (DomU) and not as a Xen host (Dom0). -.Pp -As of this release, Xen PV DomU support is not heavily tested; instability -has been reported during VM migration of PV kernels. -.Pp -Certain PV driver features, such as the balloon driver, are under-exercised. +.An Robert Watson Aq Mt rwatson@FreeBSD.org , +and +.An Roger Pau Monné Aq Mt royger@FreeBSD.org . From nobody Mon May 19 08:27:45 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b19mK5b4Jz5wkxR; Mon, 19 May 2025 08:27:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b19mK4zbnz3qLy; Mon, 19 May 2025 08:27:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747643265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+tmxkSrDCGqysm0BFT/CLiKLm4Jm1ZM8Zg5FcHsHza8=; b=opliJPt7Yf4L9OCxwY6/nQFG8s8PBHuSmYSg0EYjfs7KQ+yEnD/k04UT5BUt1GgLROGVtE 5ytI6i+McITxDQY3wDjc41AGcOrylhkX75TPmaLTWgUyKDTZbC5uJSzFXjR2wb9SXNGBjf bIFKDofsDffiiaQ1JE8K5QKFtoK6LoMBIp6xVqLuBcG8FGkMapFUqgQS1w/JQ3M9YrX5Yx GwhyGBWl6RAHDxPzjdPeD2Td0xakQ60SP3dgL36TrQoh1qkA6UiCoSAMD7LkHo15g8AdI+ 4SKGc0m4tjVbhNuaRvC9sL3nrqRk1336fzY6mTFuSPcV2VyVMS9abGX+Q0qrug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747643265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+tmxkSrDCGqysm0BFT/CLiKLm4Jm1ZM8Zg5FcHsHza8=; b=Nw8gppjTLOjkWwrGYqMz4Sbww/XnyWuQFW9PcI/KM6hfQPV+vCO8ibM9Q1fjh8HF9lzxV+ i+aiBM/0TJ/eHGQelZONxNpnToadJJam9stC/Q3SE5+co0ajicE7Hgbnm9T8OVvPoolh0G 9JplZFjw8pCeMtvfvy2BahMLfHPKQbKK2HPdK1RkbBKfy9vRMsB10ThAXVVeORQnqpeaFo 4zihYqAOdwER5N6v9lAE8I+/HTSxWGujfcV/qsWLEAokRVszN2W1zKAqBvs32YAkxa/NS5 o5K0F/G+NaUbJQk5JIN/3jKo+FDbgXPywpgNcETbEdohLRJ6XCfhWHjpY/2qMw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747643265; a=rsa-sha256; cv=none; b=nJcRjdqisjPTcu01dqBxwgZQlvdpc/PtOnhOawLVUjWbEDqdIbdE7JW+huC28QPlGOew0t bYEDASURY2RrlEqh9TET5Wl501i8aTmiPJPj3QLSP5joB/6/wdMbp8SUCP6TFhkN17hz3T Osz7KqDJJVK9107j38GBEtmmlkp59vDfAsin/HBmZ6TO2XkAfZMRuAfR/dxq56u8hgLRnb PJ++9iNWET2RCK7DhhwaS8nbDc98NW0bL6S9L9WtTFxXK/pl+Xh/gbmxhGqL1VRPhDFdWL 1P9Uurtsm8PVFJ4YxH4N6AKealHpWWDttf56iT9nCFoPBC6aBv1OmhMHeW8Xlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b19mK41KyzwpV; Mon, 19 May 2025 08:27:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J8Rjlc099188; Mon, 19 May 2025 08:27:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J8RjFK099185; Mon, 19 May 2025 08:27:45 GMT (envelope-from git) Date: Mon, 19 May 2025 08:27:45 GMT Message-Id: <202505190827.54J8RjFK099185@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Roger Pau =?utf-8?Q?Monn=C3=A9?= Subject: git: ca7778575215 - stable/13 - xen: improve man (4) page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: royger X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ca7778575215a740ed7575203e75e99dc0bd8a1a Auto-Submitted: auto-generated The branch stable/13 has been updated by royger: URL: https://cgit.FreeBSD.org/src/commit/?id=ca7778575215a740ed7575203e75e99dc0bd8a1a commit ca7778575215a740ed7575203e75e99dc0bd8a1a Author: Roger Pau Monné AuthorDate: 2024-01-09 09:26:06 +0000 Commit: Roger Pau Monné CommitDate: 2025-05-19 08:25:08 +0000 xen: improve man (4) page Update the xen(4) man page to reflect the current support status. Reported by: kevans Reviewed by: bcr kevans imp Differential revision: https://reviews.freebsd.org/D43373 (cherry picked from commit 82126ef92fdb3c13a67ad44d33c0fe6ea479c01a) --- share/man/man4/xen.4 | 74 +++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/share/man/man4/xen.4 b/share/man/man4/xen.4 index 6660ab3c268b..15312866dae6 100644 --- a/share/man/man4/xen.4 +++ b/share/man/man4/xen.4 @@ -26,19 +26,19 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 30, 2015 +.Dd January 8, 2024 .Dt XEN 4 .Os .Sh NAME .Nm xen -.Nd Xen Hypervisor Guest (DomU) Support +.Nd Xen Hypervisor Support .Sh SYNOPSIS -To compile hardware-assisted virtualization (HVM) Xen guest support with -para-virtualized drivers into an amd64 or i386 kernel, -place the following lines in your kernel configuration file: -.Bd -ragged -offset indent -.Cd "options XENHVM" -.Cd "device xenpci" +FreeBSD supports running both as a Xen guest and host on amd64 hardware. +Guest support is limited to HVM and PVH modes, while host support is limited to +PVH mode only. +.Pp +Xen support is built by default in the i386 and amd64 GENERIC kernels; note +however that host mode is only available on amd64. .Ed .Sh DESCRIPTION The Xen Hypervisor allows multiple virtual machines to be run on a single @@ -52,20 +52,18 @@ to access resources such as virtual network interfaces and disk devices. .Pp With later instruction set extensions from AMD and Intel to support fully virtualizable instructions, unmodified virtual memory systems can also be -supported; this is referred to as hardware-assisted virtualization (HVM). +supported; this is referred to as hardware-assisted virtualization (HVM and PVH). HVM configurations may either rely on transparently emulated hardware peripherals, or para-virtualized drivers, which are aware of virtualization, and hence able to optimize certain behaviors to improve performance or semantics. +PVH configurations rely on para-virtualized drivers exclusively for IO. .Pp .Fx -supports hardware-assisted virtualization (HVM) on both i386 and amd64 -kernels. -.Pp Para-virtualized device drivers are required in order to support certain functionality, such as processing management requests, returning idle physical memory pages to the hypervisor, etc. -.Ss Xen DomU device drivers +.Ss Xen device drivers These para-virtualized drivers are supported: .Bl -hang -offset indent -width blkfront .It Nm balloon @@ -87,6 +85,10 @@ suspend, crash, and halt requests. Expose Xen events via the .Pa /dev/xen/evtchn special device. +.It Nm gntdev +Allow access to the grant table interface via the +.Pa /dev/xen/gntdev +special device. .It Nm netback Export local network interfaces to other Xen domains where they can be imported via @@ -94,35 +96,30 @@ imported via .It Nm netfront Import network interfaces from other Xen domains as local network interfaces, which may be used for IPv4, IPv6, etc. -.It Nm pcifront -Allow physical PCI devices to be passed through into a PV domain. +.It Nm privcmd +Allow issuing hypercalls via the +.Pa /dev/xen/privcmd +special device. +.It Nm timer +Implementation of a one-shot high resolution per-CPU timer using the hypercall +interface. +.It Nm acpi cpu +When running as a host forwards power management related information from ACPI +to the hypervisor for better performance management. .It Nm xenpci Represents the Xen PCI device, an emulated PCI device that is exposed to HVM domains. This device allows detection of the Xen hypervisor, and provides interrupt and shared memory services required to interact with the hypervisor. +.It Nm xenstore +Information storage space shared between domains. .El -.Ss Performance considerations -In general, PV drivers will perform better than emulated hardware, and are -the recommended configuration for HVM installations. -.Pp -Using a hypervisor introduces a second layer of scheduling that may limit the -effectiveness of certain -.Fx -scheduling optimisations. -Among these is adaptive locking, which is no longer able to determine whether -a thread holding a lock is in execution. -It is recommended that adaptive locking be disabled when using Xen: -.Bd -unfilled -offset indent -.Cd "options NO_ADAPTIVE_MUTEXES" -.Cd "options NO_ADAPTIVE_RWLOCKS" -.Cd "options NO_ADAPTIVE_SX" -.Ed .Sh HISTORY Support for .Nm first appeared in .Fx 8.1 . +Support for host mode was added in 11.0 . .Sh AUTHORS .An -nosplit .Fx @@ -133,15 +130,10 @@ and Further refinements were made by .An Justin Gibbs Aq Mt gibbs@FreeBSD.org , .An Adrian Chadd Aq Mt adrian@FreeBSD.org , +.An Colin Percival Aq Mt cperciva@FreeBSD.org , and -.An Colin Percival Aq Mt cperciva@FreeBSD.org . +.An Roger Pau Monné Aq Mt royger@FreeBSD.org . This manual page was written by -.An Robert Watson Aq Mt rwatson@FreeBSD.org . -.Sh BUGS -.Fx -is only able to run as a Xen guest (DomU) and not as a Xen host (Dom0). -.Pp -As of this release, Xen PV DomU support is not heavily tested; instability -has been reported during VM migration of PV kernels. -.Pp -Certain PV driver features, such as the balloon driver, are under-exercised. +.An Robert Watson Aq Mt rwatson@FreeBSD.org , +and +.An Roger Pau Monné Aq Mt royger@FreeBSD.org . From nobody Mon May 19 08:51:26 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1BHf5dP7z5wmSd; Mon, 19 May 2025 08:51:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1BHf5C15z41bn; Mon, 19 May 2025 08:51:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747644686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=igYd0dW0nkB0za3IoA94I2e/DHc3wBOMU8XATZ80iS8=; b=AfJ77l2Qusdr9JdcM06OBZoRgk50sZuz+QWMaIrdJ5T2tl6OnN5xUSlNxm8ELDKwsK7RLA ZUmHVZYqDVyrUgdMmti42pG2g4g6HxTUdWOtD4yfQjuSkBum+MTAqPLnkovOiw1wjqfwPB /2nNBBz0flGS96Jrlh6+AuPjnW/tjEihT6Ag7Hl9/sHq6HiOkcNHfRAIj3Bwimt+P+RQje vbK7jNRoWMy93KOu9qn9yALjQtHO0BqO0oyHQnchhzcWE2PiPQjL/Du+6D6NH9KOZ/74h7 d0pS0uSmPP3UVUUVtDcYuuPuA2kXArY68K7YaXbqKwTKWuKgnbZlHNtQIEKgdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747644686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=igYd0dW0nkB0za3IoA94I2e/DHc3wBOMU8XATZ80iS8=; b=uuocsb/EvVMqN07H+Qj8SZJm1AZqHeY1BHrwwYlqhsjBp1foutgQTnEQtb02qr6ZxRFhbH +JoxjZ5zbhGQpEBJoj8my9XE3htxXatA8auvIzKQK3ZhOOSmf5fA1Jvr+NTmc0L/44Ry9W juSFZ332NTWs4hvVnuZ5wia2RagnkJLf47GwaQdkLOS4meRCUno39eYy42cZIV7pMGql15 Z5zl5ha66Ar6AJ/RI9aFZpHhF0n/wEfI8ZnG7V847hpxtCDj6s34p0Czcg56DKwKVXgL1G sb5ctyGeHXgZvb3ppIsGn/X3AzJyKHDIPGGqr8qJhxO05+Mr2Cok70q8Rwycvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747644686; a=rsa-sha256; cv=none; b=r8pldy4zNBZEbHcg7YFStf+nuVb6jvGgX3yzpfjtQXioVZ9jFqbeFUxfHikx/Hz5PwUNKD M3c8rRIK7DUYYnBIQcned9qv3S2RYOJhdKFqLvyMjF5gXR1dFDdJumZeSnKMIPSJuzK/D8 qpzBspNF0t5mvePSXv9ge4S2+RlC3m3VFVEFSRn2tHNyLNMQJHcks7UOiwFBjcEei4ryNB yBdZefEw7vUWy2aQwrboRjghg6/91gLtaZaRmFut8PVTPMKEL3yVJf/AIV1tjtf73ro2BJ zOWRjwUCUYE05C3QCnMUGHCTd94mT2NEWX776qWro2fLV1quQ/6G/M/7x5qRbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1BHf4hPDzxbJ; Mon, 19 May 2025 08:51:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J8pQtg047878; Mon, 19 May 2025 08:51:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J8pQgN047875; Mon, 19 May 2025 08:51:26 GMT (envelope-from git) Date: Mon, 19 May 2025 08:51:26 GMT Message-Id: <202505190851.54J8pQgN047875@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 4ae64bd33f24 - stable/14 - iwlwifi.4: Update modes for recent 802.11ac List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4ae64bd33f24cff90ff75efe67176a6df1c3af62 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4ae64bd33f24cff90ff75efe67176a6df1c3af62 commit 4ae64bd33f24cff90ff75efe67176a6df1c3af62 Author: Bjoern A. Zeeb AuthorDate: 2025-04-21 00:34:15 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-05-19 08:51:01 +0000 iwlwifi.4: Update modes for recent 802.11ac By: ziaee Reported by: Pat Maddox Reviewed by: bz (previous version), emaste, mhorne Differential Revision: https://reviews.freebsd.org/D49937 iwlwifi: update man pages for generations, firmware. and 11n/11ac Put Intel's iwlwifi better in context to iwm, iwx and iwn. Document the important tunables so users know where to go. Document the port/package for firmware where firmware is now maintained. Adjust wording and table for the firmware and a flavor column. Update History sections for 11n/11ac support as well as firmware module removal from base. Sponsored by: The FreeBSD Foundation Reviewed by: ziaee, emaste (comments) Differential Revision: https://reviews.freebsd.org/D50319 (cherry picked from commit c33945a112c84795c7bd87a8e94d0cf322ef5000) (cherry picked from commit a7e183c0c9a5579cdaa3e2ff9597e5e3d41dbdb4) --- share/man/man4/iwlwifi.4 | 96 ++- share/man/man4/iwlwififw.4 | 2029 ++++++++++++++++++++++---------------------- 2 files changed, 1106 insertions(+), 1019 deletions(-) diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4 index 04317c22936f..3da4e68ad805 100644 --- a/share/man/man4/iwlwifi.4 +++ b/share/man/man4/iwlwifi.4 @@ -1,7 +1,7 @@ -.\"- +.\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.\" Copyright (c) 2021-2024 The FreeBSD Foundation +.\" Copyright (c) 2021-2025 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. @@ -27,12 +27,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 10, 2024 +.Dd May 12, 2025 .Dt IWLWIFI 4 .Os .Sh NAME .Nm iwlwifi -.Nd Intel IEEE 802.11a/b/g/n/ac/ax wireless network driver +.Nd Intel IEEE 802.11a/b/g/n/ac/ax/be wireless network driver .Sh SYNOPSIS The driver will auto-load without any user interaction using .Xr devmatch 8 @@ -50,6 +50,9 @@ kld_list="${kld_list} if_iwlwifi" The driver should automatically load any .Xr iwlwififw 4 firmware needed for the particular chipset. +See section +.Sx "FILES" +below for how to install the firmware. .Pp It is discouraged to load the driver from .Xr loader 8 . @@ -59,12 +62,25 @@ The driver provides support for Intel Wireless network devices. .Pp .Nm -is derived from Intel's Linux iwlwifi driver, will be a successor to -.Xr iwm 4 , -and may supersede that driver in the future. -It still complements the +is derived from Intel's Linux iwlwifi driver. +The +.Xr iwm 4 +and +.Xr iwx 4 +drivers together are approximately equivalent to Intel's Linux iwlwifi/mvm +driver. +.Pp +In addition +.Nm +already supports Intel's Linux iwlwifi/mld chipsets. +.Pp +.Nm +still complements the .Xr iwn 4 -driver which supports older chipsets. +driver which supports older chipsets and would be equivalent to +Intel's Linux iwlwifi/dvm, which +.Nm +does not support. .Pp The driver uses the .\" No LinuxKPI man pages so no .Xr here. @@ -98,6 +114,15 @@ sub-driver with the following chipset generations: 22000 .It AX210 +.El +.Pp +The +.Nm +driver supports PCIe devices from the +.Sy mld +sub-driver with the following chipset generations: +.Pp +.Bl -bullet -compact .It BZ .It @@ -235,10 +260,53 @@ Intel(R) TBD Sc2 device Intel(R) TBD Sc2f device .\" -------------------------------------------------------------------- .El +.Sh LOADER TUNABLES +The +.Nm +driver supports the following +.Xr loader 8 +tunable and read-only +.Xr sysctl 8 +variables: +.Bl -tag -width "compat.linuxkpi.iwlwifi_disable_11ac" +.It Va compat.linuxkpi.iwlwifi_11n_disable +Turn off 802.11n support in the driver. +Default +.Ql 1 . +.It Va compat.linuxkpi.iwlwifi_disable_11ac +Turn off 802.11ac support in the driver. +Default +.Ql 1 . +.El +.Pp +The names of the tunables are derived from the Linux iwlwifi driver +module parameters and are mapped automatically by +.Sy linuxkpi . +They were not adjusted so that they stay consistent with upstream +Linux, e.g., for documentation available and problem investigations. +This left their names inconsistent between themselves and incosistent to +.Fx +style. +.Pp +The tunables are automatically adjusted by the firmware package for +chipsets which can enable 11n and 11ac. +In case of problems a user may want to override the provided values +in +.Pa /boot/loader.conf.local +with the above defaults. +.Sh FILES +The +.Nm +driver requires firmware from +.Pa ports/net/wifi-firmware-iwlwifi-kmod . +This firmware package will be installed automatically with +.Xr fwget 8 +if the appropriate hardware is detected at installation or runtime. .Sh SEE ALSO .Xr iwlwififw 4 , .Xr iwm 4 , .Xr iwn 4 , +.Xr iwx 4 , .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , @@ -249,12 +317,14 @@ The .Nm driver first appeared in .Fx 13.1 . +802.11n and 802.11ac support for the 22000 and later chipsets first appeared in +.Fx 14.3 . .Sh BUGS Certainly. .Pp While .Nm -supports 802.11a/b/g/n/ac/ax modes, -the compatibility code currently only supports 802.11a/b/g modes. -Support for 802.11n/ac/ax is yet to come. -802.11ax and 6Ghz support are planned. +supports 802.11a/b/g/n/ac/ax/be modes, +the compatibility code currently only supports 802.11a/b/g/n/ac modes. +802.11n/ac is only available on the 22000 and later chipset generations. +802.11ax/be and 6Ghz support are planned. diff --git a/share/man/man4/iwlwififw.4 b/share/man/man4/iwlwififw.4 index 491a634e70b5..45ee0e757c07 100644 --- a/share/man/man4/iwlwififw.4 +++ b/share/man/man4/iwlwififw.4 @@ -1,5 +1,7 @@ -.\"- -.\" Copyright (c) 2021-2024 The FreeBSD Foundation +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2021-2025 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. @@ -25,12 +27,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 12, 2024 -.Dt iwlwififw 4 +.Dd May 12, 2025 +.Dt IWLWIFIFW 4 .Os .Sh NAME .Nm iwlwififw -.Nd Firmware modules for Intel iwlwifi wireless network driver +.Nd Firmware for Intel iwlwifi wireless network driver .Sh SYNOPSIS The .Xr iwlwifi 4 @@ -38,1512 +40,1522 @@ driver should auto-load any firmware needed. It is discouraged to load the driver or firmware manually from .Xr loader 8 . .Sh DESCRIPTION -Multiple modules provide access to firmware for the various chipset -models supported by the +Firmware files are available from +.Xr ports 7 +for the various chipset models supported +by the .Xr iwlwifi 4 driver. +Modern chipsets often require a +.Pa .ucode +and an accompanying +.Pa .pnvm +file. .Pp One can use .Xr fwget 8 to install the correct firmware package. .Pp -.Bl -column -compact "Vendor" "Device" "Subv. " "Subd. " "Firmware-Prefix" +The list is provided as a reference as to with file prefix is needed for +a specific card as far as it can be determined and the port flavor. +.Pp +.Bl -column -compact "Vendor" "Device" "Subv. " "Subd. " "Flavor" "Firmware-Prefix" .It Ar Name -.It Ar Vendor Ta Ar Device Ta Ar Subv. Ta Ar Subd. Ta Ar Firmware-Prefix -.% --------------------------------------------------------------------- -.% This list is manually generated from a sysctl and post-processing -.% by sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh generating the list. -.% Edits will be overwritten on next update. -.% --------------------------------------------------------------------- +.It Ar Vendor Ta Ar Device Ta Ar Subv. Ta Ar Subd. Ta Ar Flavor Ta Ar Firmware-Prefix +.\" --------------------------------------------------------------------- +.\" This list is manually generated from a sysctl and post-processing +.\" by sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh generating the list. +.\" Edits will be overwritten on next update. +.\" --------------------------------------------------------------------- .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4070 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4070 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4072 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4072 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4170 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4170 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c60 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c60 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c70 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c70 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4060 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4060 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x406a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x406a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4160 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4160 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4062 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4062 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4162 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4162 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4270 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4270 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4272 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4272 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4260 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4260 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x426a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x426a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4262 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4262 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4470 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4470 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4472 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4472 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4460 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4460 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x446a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x446a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4462 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4462 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4870 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4870 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x486e Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x486e Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a70 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a70 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6e Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6e Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6c Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6c Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4570 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4570 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4560 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4560 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4370 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4370 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4360 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4360 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5070 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5070 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5072 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5072 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5170 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5170 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5770 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5770 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4020 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4020 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x402a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x402a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4220 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4220 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4420 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4420 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc070 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc070 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc072 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc072 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc170 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc170 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc060 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc060 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc06a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc06a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc160 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc160 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc062 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc062 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc162 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc162 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc770 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc770 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc760 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc760 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc270 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc270 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc70 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc70 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc60 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc60 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc272 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc272 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc260 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc260 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc26a Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc26a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc262 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc262 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc470 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc470 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc472 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc472 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc460 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc460 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc462 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc462 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc570 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc570 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc560 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc560 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc370 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc370 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc360 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc360 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc020 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc020 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc02a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc02a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc220 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc220 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc420 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc420 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0070 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0070 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0072 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0072 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0170 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0170 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0172 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0172 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0060 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0060 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0062 Ta iwlwifi-3160 +.It Intel(R) Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0062 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x0270 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x0270 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x0272 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x0272 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0470 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0470 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0472 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0472 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x0370 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x0370 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8070 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8070 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8072 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8072 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8170 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8170 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8172 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8172 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8060 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8060 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8062 Ta iwlwifi-3160 +.It Intel(R) Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8062 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x8270 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x8270 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x8370 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x8370 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x8272 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x8272 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8470 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8470 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8570 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8570 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x1070 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x1070 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x1170 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x1170 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4010 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4010 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4012 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4012 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3166 Ta any Ta 0x4212 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3166 Ta any Ta 0x4212 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4410 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4410 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4510 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4510 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4110 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4110 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3166 Ta any Ta 0x4310 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3166 Ta any Ta 0x4310 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3166 Ta any Ta 0x4210 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3166 Ta any Ta 0x4210 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x8010 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x8010 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x8110 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x8110 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2010 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2010 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2110 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2110 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2050 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2050 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2150 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2150 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 000000 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 000000 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5010 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5010 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5110 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5110 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5100 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5100 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5310 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5310 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5302 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5302 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5210 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5210 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5c10 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5c10 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5012 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5012 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5412 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5412 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5410 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5410 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5510 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5510 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5400 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5400 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x1010 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x1010 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5000 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5000 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x500a Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x500a Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5200 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5200 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5002 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5002 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5102 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5102 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5202 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5202 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9010 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9010 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9012 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9012 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x900a Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x900a Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9110 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9110 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9112 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9112 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x9210 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x9210 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x9200 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x9200 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9510 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9510 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x9310 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x9310 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9410 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9410 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5020 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5020 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x502a Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x502a Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5420 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5420 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5090 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5090 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5190 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5190 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5590 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5590 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5290 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5290 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5490 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5490 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5f10 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5f10 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5212 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta *** 1775 LINES SKIPPED *** From nobody Mon May 19 09:30:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1C936YkGz5wpTP; Mon, 19 May 2025 09:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1C935G0Nz3K2D; Mon, 19 May 2025 09:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747647047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=blXlaVSOTta4wfhQiXLGV78od2IFfohzs7OHJqmXkxc=; b=xBY/nJmW7xLS2acDC5SEKRAu2DwoI5fUVxXlZKNrNVsoOUfQKuGrdQEnsKDjfz6VHzyeOu qbtfAdIEHnTuJyHKUITh3gI1BfEumhWUNgNk9OjWtJRxczZ//Az1g06U4wQWX260sD67tN I9PFwo+NsczG9HgNDLHwVq0bDA4TrVLA1kJ0jrh4a03Z/7i2oHgE6Bu5mICg58GXAHwqwT 6j+sLZZAq7Yd+e0lfQOpguUIlaBuoHvh63Dl7oWZtBI7ZHX4sIWsIMSrFCZ6ChJZ8QmBhv HDmR/+1xo5amvmNETr0qqPntrzfYAcxnY5ucUyWC2oueR5ex51zC90cc8wR10Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747647047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=blXlaVSOTta4wfhQiXLGV78od2IFfohzs7OHJqmXkxc=; b=oICvsD4sC137E72njxISmnuEDSfn22REJJ7g9X4fA4fxlxbDeT7r4VCZP5coKX8QwRqIrB M3ZzmlN5FbrxTGOLb/aFr0HnnL6SwqOllLvgaBFWrRC8Rs0vbR/Y8G8LFzAjnSILyieKyt AHO+b/46LRJMQQP+App7O+Ykbi3ihXUciCvhGF3spqzTxUP1LZ24UvFHaWEx8J7x4obRhq UPdqDZjDIBMoInN6V5+LxN7zDynpbCNK73liMpNiJ2Foa63F1gIEdPKjQva2U2leKoZSUm yvdxO3LOB9IhEpGzqPKszW0VuBsNTFQW6M3QV0v0v6Y4Yjk1TpdlfdtjHzOHSw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747647047; a=rsa-sha256; cv=none; b=yfRnZ5r4/igqNOhQrFEQreYXcxy6fS6aZAd2WWxP8VZGYGXW4A5BbCLmXONoC45EfTS1CN AHcahy+PasI2p0L2OKzUCYOilTQYUhk7r+BYszKwLmkr2/6A0O2i27KJ9lDrZonQ9zmwHq Z3fu+eQqQf6u36X3O6x7Wjd4S8gVMOOuoc6LRpgyZUh7ckmAUpZ73EgvOVuUFHQ915+EZl eZSvgGKzbziG23XIQH0Z1OROi/dGCDx19hIowvfhrNzNK2zUbT8wn6GTQ0ouoD+Qg/ZG7u A+E+svVV8St36xUYbOZSMGWEJD4KanhTFAcDdR3aWOeQkz/ObTMZ0KWavw/69Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1C934jzBzyJy; Mon, 19 May 2025 09:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J9Ulwo023119; Mon, 19 May 2025 09:30:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J9Ul0P023116; Mon, 19 May 2025 09:30:47 GMT (envelope-from git) Date: Mon, 19 May 2025 09:30:47 GMT Message-Id: <202505190930.54J9Ul0P023116@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 49d9f344f67e - stable/14 - ng_sample: fix style nits List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 49d9f344f67efcce5aebe033577907e8230237f0 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=49d9f344f67efcce5aebe033577907e8230237f0 commit 49d9f344f67efcce5aebe033577907e8230237f0 Author: Seyed Pouria Mousavizadeh Tehrani AuthorDate: 2025-05-16 16:19:56 +0000 Commit: Lexi Winter CommitDate: 2025-05-19 09:29:55 +0000 ng_sample: fix style nits MFC after: 3 days Reviewed by: ivy, kp, des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50343 (cherry picked from commit 95c414dd27c26285cdd6ed4288832b3db0ea6628) --- sys/netgraph/ng_sample.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/netgraph/ng_sample.c b/sys/netgraph/ng_sample.c index 54b7f2026fa1..06c6785e6103 100644 --- a/sys/netgraph/ng_sample.c +++ b/sys/netgraph/ng_sample.c @@ -271,7 +271,7 @@ ng_xxx_rcvmsg(node_p node, item_p item, hook_p lasthook) struct ngxxxstat *stats; NG_MKRESPONSE(resp, msg, sizeof(*stats), M_NOWAIT); - if (!resp) { + if (resp == NULL) { error = ENOMEM; break; } @@ -320,7 +320,7 @@ ng_xxx_rcvmsg(node_p node, item_p item, hook_p lasthook) * in the connect() method. */ static int -ng_xxx_rcvdata(hook_p hook, item_p item ) +ng_xxx_rcvdata(hook_p hook, item_p item) { const xxx_p xxxp = NG_NODE_PRIVATE(NG_HOOK_NODE(hook)); int chan = -2; From nobody Mon May 19 09:30:48 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1C951b9lz5wqFf; Mon, 19 May 2025 09:30:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1C945zmyz3K2G; Mon, 19 May 2025 09:30:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747647048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OTTJNygpler3+lvfmI53ALZpUW8/OhxBEbiyJrch3+I=; b=gce0LChZ9OWwsJGZ3pnFJKMwhUVyGyAmvTLdfsxTFWew+SZRWUPZ0VkAtNp5fvxmynTANN q3+WRxHb8xItMFlx7Sh3DOmzPJxc/08QzZ4vSaUe4Ihnc/SLO8D+I632HbM1gF6hZ250CF i+ygwnzS5DYWGVroXHa2U2o1HxQWG5xdROOxMw1hmrCo2wtSTx+FC8otVU7uJkBY8AVP/p lobUCQc2/PgEupr5GXz4zpnZpfMJsziKKl8iO23GNivaij7pqWiJZIsaiEJ7kLdy0GB5I2 FQbkAhkzFJ13jxN1a20V9yZHo+EONwsnu4NSsBfPhmnCCwgMHAbqFIdw+k2esQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747647048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OTTJNygpler3+lvfmI53ALZpUW8/OhxBEbiyJrch3+I=; b=nGJx5jNAqSJZiPYr/iPfzMAQMGDGioFCSpl1RwtUJT8jDcDKY0kEMdTgdvZghMeUNxyQwv 4d6FdDSgTXx9aT6Kyqn0Y8M/2b7dEWUeY5u36dJRfm3gSmUl/nExA6c8DqUBD2O41/0CU+ kEXF8+aUlAREfiHjrMeAg1AeK57qT0DF6/XYGrTXjYlVNxCEevM8CGrCXdCGRuxgPbAaCa sDt2Zy62/EuiGyFm2eAK6pb1gzhuNcVpJWX7hcoJEEVyWvlUy4QqB2jCQrm9am/M0uBNr/ wGIfDJOwA5eDeOJvKY7nZoEVRQZHMcxCc+YzxNsqGmQYR9+q4uvsmnlgwtDu5Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747647048; a=rsa-sha256; cv=none; b=lCYmiYXJD0rFQcoHsxcae7xdtahUPkDTBNnBLW3vYy1Zc055ZC7NBu2toPxyTC1nuf/Bpp oA2RbmQem3OKCX3cJrPwQX4hcGHFNnwKjFiBPa4+0oXeJpY0DjuVfI5pbaVtNRH2efv4Yk +amtTC6so+iT22Ua4mN5VSr6mXpmAJoUD8w/rLwais/U24nG7UYVXMV3qn3+IKklosY7rZ ovtVD5S4U67otODaM0DG8uQEfOdbOk754EI3eLSOVTWjZFyiSrRxynm93LwvuyyZnWirzS SHWQZc3hrHx3rpyY/OdOET6OyaHUdL9lKzPDbR4uYP/Ccodr/cdYzxcUHvzmDQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1C945b1wzyK0; Mon, 19 May 2025 09:30:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J9Um8X023152; Mon, 19 May 2025 09:30:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J9Umo8023149; Mon, 19 May 2025 09:30:48 GMT (envelope-from git) Date: Mon, 19 May 2025 09:30:48 GMT Message-Id: <202505190930.54J9Umo8023149@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: e5081477e6b3 - stable/14 - column(1): add tests and -l flag List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e5081477e6b3a7f9533c57b2bf68b6ee305614b2 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=e5081477e6b3a7f9533c57b2bf68b6ee305614b2 commit e5081477e6b3a7f9533c57b2bf68b6ee305614b2 Author: Lexi Winter AuthorDate: 2025-05-07 09:27:20 +0000 Commit: Lexi Winter CommitDate: 2025-05-19 09:29:55 +0000 column(1): add tests and -l flag column(1): add tests Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D49911 (cherry picked from commit 6f2b1b56ac3dd154bd98f5a7ea075abcb4356560) column(1): add -l flag the '-l ' flag limits the number of columns that column(1) will produce in -t mode. this is syntax-compatible with the same option in util-linux's column(1), but due to existing differences between the two implementations, it's not semantically compatible. as a side-effect, fix a pre-existing bug where empty fields could cause incorrect output: % echo ':' | column -ts: (null) while here, also fix a couple of minor existing issues. Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50290 (cherry picked from commit 313713b24c6d2a3061972c4f431515c4f1b01c77) --- etc/mtree/BSD.tests.dist | 2 + usr.bin/column/Makefile | 4 + usr.bin/column/column.1 | 11 ++- usr.bin/column/column.c | 45 +++++++--- usr.bin/column/tests/Makefile | 3 + usr.bin/column/tests/column.sh | 200 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 254 insertions(+), 11 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index a6b2eed725b8..2159b24978c0 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1041,6 +1041,8 @@ .. cmp .. + column + .. compress .. cpio diff --git a/usr.bin/column/Makefile b/usr.bin/column/Makefile index 1c304e2b3927..23933d9ef96f 100644 --- a/usr.bin/column/Makefile +++ b/usr.bin/column/Makefile @@ -1,5 +1,9 @@ # @(#)Makefile 8.1 (Berkeley) 6/6/93 +.include PROG= column +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests + .include diff --git a/usr.bin/column/column.1 b/usr.bin/column/column.1 index f9b05ccf2210..c9dff361cc9c 100644 --- a/usr.bin/column/column.1 +++ b/usr.bin/column/column.1 @@ -27,7 +27,7 @@ .\" .\" @(#)column.1 8.1 (Berkeley) 6/6/93 .\" -.Dd July 29, 2004 +.Dd May 13, 2025 .Dt COLUMN 1 .Os .Sh NAME @@ -37,6 +37,7 @@ .Nm .Op Fl tx .Op Fl c Ar columns +.Op Fl l Ar tblcols .Op Fl s Ar sep .Op Ar .Sh DESCRIPTION @@ -55,6 +56,14 @@ The options are as follows: Output is formatted for a display .Ar columns wide. +.It Fl l +When used with +.Fl t , +limit the table to +.Ar tblcols +columns in width. +The last column will contain the rest of the line, +including any delimiters. .It Fl s Specify a set of characters to be used to delimit columns for the .Fl t diff --git a/usr.bin/column/column.c b/usr.bin/column/column.c index a808113649bc..97fc83e6b589 100644 --- a/usr.bin/column/column.c +++ b/usr.bin/column/column.c @@ -67,6 +67,7 @@ static void usage(void); static int width(const wchar_t *); static int termwidth = 80; /* default terminal width */ +static int tblcols; /* number of table columns for -t */ static int entries; /* number of records */ static int eval; /* exit value */ @@ -81,7 +82,7 @@ main(int argc, char **argv) FILE *fp; int ch, tflag, xflag; char *p; - const char *src; + const char *errstr, *src; wchar_t *newsep; size_t seplen; @@ -94,17 +95,26 @@ main(int argc, char **argv) termwidth = win.ws_col; tflag = xflag = 0; - while ((ch = getopt(argc, argv, "c:s:tx")) != -1) + while ((ch = getopt(argc, argv, "c:l:s:tx")) != -1) switch(ch) { case 'c': - termwidth = atoi(optarg); + termwidth = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + errx(1, "invalid terminal width \"%s\": %s", + optarg, errstr); + break; + case 'l': + tblcols = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + errx(1, "invalid max width \"%s\": %s", + optarg, errstr); break; case 's': src = optarg; seplen = mbsrtowcs(NULL, &src, 0, NULL); if (seplen == (size_t)-1) err(1, "bad separator"); - newsep = malloc((seplen + 1) * sizeof(wchar_t)); + newsep = calloc(seplen + 1, sizeof(wchar_t)); if (newsep == NULL) err(1, NULL); mbsrtowcs(newsep, &src, seplen + 1, NULL); @@ -123,6 +133,9 @@ main(int argc, char **argv) argc -= optind; argv += optind; + if (tblcols && !tflag) + errx(1, "the -l flag cannot be used without the -t flag"); + if (!*argv) input(stdin); else for (; *argv; ++argv) @@ -230,7 +243,7 @@ maketbl(void) int *lens, maxcols; TBL *tbl; wchar_t **cols; - wchar_t *last; + wchar_t *s; if ((t = tbl = calloc(entries, sizeof(TBL))) == NULL) err(1, NULL); @@ -239,9 +252,11 @@ maketbl(void) if ((lens = calloc(maxcols, sizeof(int))) == NULL) err(1, NULL); for (cnt = 0, lp = list; cnt < entries; ++cnt, ++lp, ++t) { - for (coloff = 0, p = *lp; - (cols[coloff] = wcstok(p, separator, &last)); - p = NULL) + for (p = *lp; wcschr(separator, *p); ++p) + /* nothing */ ; + for (coloff = 0; *p;) { + cols[coloff] = p; + if (++coloff == maxcols) { if (!(cols = realloc(cols, ((u_int)maxcols + DEFCOLS) * sizeof(wchar_t *))) || @@ -252,6 +267,16 @@ maketbl(void) 0, DEFCOLS * sizeof(int)); maxcols += DEFCOLS; } + + if ((!tblcols || coloff < tblcols) && + (s = wcspbrk(p, separator))) { + *s++ = L'\0'; + while (*s && wcschr(separator, *s)) + ++s; + p = s; + } else + break; + } if ((t->list = calloc(coloff, sizeof(*t->list))) == NULL) err(1, NULL); if ((t->len = calloc(coloff, sizeof(int))) == NULL) @@ -332,8 +357,8 @@ width(const wchar_t *wcs) static void usage(void) { - (void)fprintf(stderr, - "usage: column [-tx] [-c columns] [-s sep] [file ...]\n"); + "usage: column [-tx] [-c columns] [-l tblcols]" + " [-s sep] [file ...]\n"); exit(1); } diff --git a/usr.bin/column/tests/Makefile b/usr.bin/column/tests/Makefile new file mode 100644 index 000000000000..40a7767f0dc0 --- /dev/null +++ b/usr.bin/column/tests/Makefile @@ -0,0 +1,3 @@ +ATF_TESTS_SH= column + +.include diff --git a/usr.bin/column/tests/column.sh b/usr.bin/column/tests/column.sh new file mode 100644 index 000000000000..283dc88bff1a --- /dev/null +++ b/usr.bin/column/tests/column.sh @@ -0,0 +1,200 @@ +# SPDX-License-Identifier: ISC +# +# Copyright (c) 2025 Lexi Winter +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +atf_test_case "basic" +basic_head() +{ + atf_set descr "Basic column(1) with default options" +} + +basic_body() +{ + cat >input.1 <input.2 <input.3 <expected <input.1 <input.2 <input.3 <expected <input.1 <input.2 <input.3 <expected <input <expected <input <expected < To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Corvin =?utf-8?Q?K=C3=B6hne?= Subject: git: e9fe7b08eb2e - stable/14 - sys/intpm: fix SMBus Read Block List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e9fe7b08eb2e33112187250795dc3cb0881bf71a Auto-Submitted: auto-generated The branch stable/14 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=e9fe7b08eb2e33112187250795dc3cb0881bf71a commit e9fe7b08eb2e33112187250795dc3cb0881bf71a Author: Corvin Köhne AuthorDate: 2025-05-05 09:23:18 +0000 Commit: Corvin Köhne CommitDate: 2025-05-19 12:53:00 +0000 sys/intpm: fix SMBus Read Block The Read Block function missed saving the data into the preallocated buffer. This causes it to return some garbage when called. Reviewed by: avg MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Pull Request: https://github.com/freebsd/freebsd-src/pull/1691 (cherry picked from commit 691833ad3776c17ba3267049ac36bc3461c66799) --- sys/dev/intpm/intpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/intpm/intpm.c b/sys/dev/intpm/intpm.c index 92fd4dcebb03..bcc7ac06e975 100644 --- a/sys/dev/intpm/intpm.c +++ b/sys/dev/intpm/intpm.c @@ -859,7 +859,7 @@ intsmb_bread(device_t dev, u_char slave, char cmd, u_char *count, char *buf) if (nread != 0 && nread <= SMBBLOCKTRANS_MAX) { *count = nread; for (i = 0; i < nread; i++) - bus_read_1(sc->io_res, PIIX4_SMBBLKDAT); + buf[i] = bus_read_1(sc->io_res, PIIX4_SMBBLKDAT); } else error = SMB_EBUSERR; } From nobody Mon May 19 17:01:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1P9R4qjVz5w7WX; Mon, 19 May 2025 17:01:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1P9R43pGz3ZKQ; Mon, 19 May 2025 17:01:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747674107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0dWxOZOkEZXRdGxhmcAbj6gssLmy4RmMb6pT54hauLU=; b=Lm5DhDyLbQvMftM354qNS0u0r3IB5lAlphR4W5dC8vcOXuI3XsbCFAWGw+GO6wLAj+soE+ ZGn+HI7/XGFJynPvcxxWqekuRswBHRUJtBEW4qdVPrUl5fr7M8zUK6yJNN7lDyg5ze061h 6kDXk9s9jTKSeoNZPeEqQmvFi2aaQ62MJjpLYcWM8tR21LJsPlJpvtf5S9L4oo59PnMU4d FFAgZ0nCObaUG7dWOUvgLbLOI/nlljjjR/xuYYqfhzTYF8uv40zTJdnh9gX6fvSiW4gDxK NQX6FlfNDlSRgpCmviuMmFf9CBCbqGlVTPjE6Zfjtw80oXOcM2c6dO6YRZrl7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747674107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0dWxOZOkEZXRdGxhmcAbj6gssLmy4RmMb6pT54hauLU=; b=W82MoLR9MAlou42m/cZwzj1vDk5HTDi6H/ng362dJ5qsiDZ6EXcLPfvp8FNNgraviaKOWW GCGPk/VIx/jUp+7VHB3nYUUyFV1/pnqJ/UDfsEI2dBNyHIEDjp/29Mfqv5NfTt2ssrRt59 6jpkVk4QjjcZntTUiIQU9N1QdLjkPoFuzvcFQp1dK11Ki7WJgvKqXMrn2njtQ0yNg2NiTC 28w29mOh5QrspeGmVUjbETyLFVBuHWj/Bcr6R1E25tqvWXEM6s/UcW4VtgQBCJ5S55omUV 1GuauGh5JIy421uOZxbRKkrsQ2ntPTSeKhSJDe3a7fTcrxcACooChZ+iqRnb0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747674107; a=rsa-sha256; cv=none; b=FoBlS45+N19igpm2/5IDpcwocJ+xpwfLG/60H0PNkj7wKANTk1nXfBsRucShrAk1Doo8Q4 zOlQ4cARN1OUHkJUpBpCfpU2f4zn1ZZ0r+yeT9FLfnEgQSQwqf3E88O4VDtpYaK9wEYZSo BAAx07VX46CVMw7XTm946N9bSf7wqgoOMzOGQ+D7jJtvH/aMt8rIEB2pxLcTYtDBCRNsJu goiL1imDWugSpHrxIps3ZpjXnv/geebRtokkDf9lKSyRoEp+5K7EgvmH82T/yN0TUU3b8Z XvaQuJnwSpc/LWu0Gk1cegOB5R6oxQueD/IlIGG0W6u5UEPaaxvlAJtWfLIe+g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1P9R3gLbz1Bk7; Mon, 19 May 2025 17:01:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54JH1lin074022; Mon, 19 May 2025 17:01:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54JH1lPu074019; Mon, 19 May 2025 17:01:47 GMT (envelope-from git) Date: Mon, 19 May 2025 17:01:47 GMT Message-Id: <202505191701.54JH1lPu074019@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: a7277b98b86a - releng/14.3 - xen: improve man (4) page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: a7277b98b86a93132c515b15f4c1716c25034f6d Auto-Submitted: auto-generated The branch releng/14.3 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=a7277b98b86a93132c515b15f4c1716c25034f6d commit a7277b98b86a93132c515b15f4c1716c25034f6d Author: Roger Pau Monné AuthorDate: 2024-01-09 09:26:06 +0000 Commit: Colin Percival CommitDate: 2025-05-19 17:01:30 +0000 xen: improve man (4) page Update the xen(4) man page to reflect the current support status. Approved by: re (cperciva) Reported by: kevans Reviewed by: bcr kevans imp Differential revision: https://reviews.freebsd.org/D43373 (cherry picked from commit 82126ef92fdb3c13a67ad44d33c0fe6ea479c01a) (cherry picked from commit 7dc0a9fa76a8df6dfaf26ff36a11aa9fe060a201) --- share/man/man4/xen.4 | 74 +++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/share/man/man4/xen.4 b/share/man/man4/xen.4 index 6660ab3c268b..15312866dae6 100644 --- a/share/man/man4/xen.4 +++ b/share/man/man4/xen.4 @@ -26,19 +26,19 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 30, 2015 +.Dd January 8, 2024 .Dt XEN 4 .Os .Sh NAME .Nm xen -.Nd Xen Hypervisor Guest (DomU) Support +.Nd Xen Hypervisor Support .Sh SYNOPSIS -To compile hardware-assisted virtualization (HVM) Xen guest support with -para-virtualized drivers into an amd64 or i386 kernel, -place the following lines in your kernel configuration file: -.Bd -ragged -offset indent -.Cd "options XENHVM" -.Cd "device xenpci" +FreeBSD supports running both as a Xen guest and host on amd64 hardware. +Guest support is limited to HVM and PVH modes, while host support is limited to +PVH mode only. +.Pp +Xen support is built by default in the i386 and amd64 GENERIC kernels; note +however that host mode is only available on amd64. .Ed .Sh DESCRIPTION The Xen Hypervisor allows multiple virtual machines to be run on a single @@ -52,20 +52,18 @@ to access resources such as virtual network interfaces and disk devices. .Pp With later instruction set extensions from AMD and Intel to support fully virtualizable instructions, unmodified virtual memory systems can also be -supported; this is referred to as hardware-assisted virtualization (HVM). +supported; this is referred to as hardware-assisted virtualization (HVM and PVH). HVM configurations may either rely on transparently emulated hardware peripherals, or para-virtualized drivers, which are aware of virtualization, and hence able to optimize certain behaviors to improve performance or semantics. +PVH configurations rely on para-virtualized drivers exclusively for IO. .Pp .Fx -supports hardware-assisted virtualization (HVM) on both i386 and amd64 -kernels. -.Pp Para-virtualized device drivers are required in order to support certain functionality, such as processing management requests, returning idle physical memory pages to the hypervisor, etc. -.Ss Xen DomU device drivers +.Ss Xen device drivers These para-virtualized drivers are supported: .Bl -hang -offset indent -width blkfront .It Nm balloon @@ -87,6 +85,10 @@ suspend, crash, and halt requests. Expose Xen events via the .Pa /dev/xen/evtchn special device. +.It Nm gntdev +Allow access to the grant table interface via the +.Pa /dev/xen/gntdev +special device. .It Nm netback Export local network interfaces to other Xen domains where they can be imported via @@ -94,35 +96,30 @@ imported via .It Nm netfront Import network interfaces from other Xen domains as local network interfaces, which may be used for IPv4, IPv6, etc. -.It Nm pcifront -Allow physical PCI devices to be passed through into a PV domain. +.It Nm privcmd +Allow issuing hypercalls via the +.Pa /dev/xen/privcmd +special device. +.It Nm timer +Implementation of a one-shot high resolution per-CPU timer using the hypercall +interface. +.It Nm acpi cpu +When running as a host forwards power management related information from ACPI +to the hypervisor for better performance management. .It Nm xenpci Represents the Xen PCI device, an emulated PCI device that is exposed to HVM domains. This device allows detection of the Xen hypervisor, and provides interrupt and shared memory services required to interact with the hypervisor. +.It Nm xenstore +Information storage space shared between domains. .El -.Ss Performance considerations -In general, PV drivers will perform better than emulated hardware, and are -the recommended configuration for HVM installations. -.Pp -Using a hypervisor introduces a second layer of scheduling that may limit the -effectiveness of certain -.Fx -scheduling optimisations. -Among these is adaptive locking, which is no longer able to determine whether -a thread holding a lock is in execution. -It is recommended that adaptive locking be disabled when using Xen: -.Bd -unfilled -offset indent -.Cd "options NO_ADAPTIVE_MUTEXES" -.Cd "options NO_ADAPTIVE_RWLOCKS" -.Cd "options NO_ADAPTIVE_SX" -.Ed .Sh HISTORY Support for .Nm first appeared in .Fx 8.1 . +Support for host mode was added in 11.0 . .Sh AUTHORS .An -nosplit .Fx @@ -133,15 +130,10 @@ and Further refinements were made by .An Justin Gibbs Aq Mt gibbs@FreeBSD.org , .An Adrian Chadd Aq Mt adrian@FreeBSD.org , +.An Colin Percival Aq Mt cperciva@FreeBSD.org , and -.An Colin Percival Aq Mt cperciva@FreeBSD.org . +.An Roger Pau Monné Aq Mt royger@FreeBSD.org . This manual page was written by -.An Robert Watson Aq Mt rwatson@FreeBSD.org . -.Sh BUGS -.Fx -is only able to run as a Xen guest (DomU) and not as a Xen host (Dom0). -.Pp -As of this release, Xen PV DomU support is not heavily tested; instability -has been reported during VM migration of PV kernels. -.Pp -Certain PV driver features, such as the balloon driver, are under-exercised. +.An Robert Watson Aq Mt rwatson@FreeBSD.org , +and +.An Roger Pau Monné Aq Mt royger@FreeBSD.org . From nobody Mon May 19 19:29:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1SS2040wz5wJY1; Mon, 19 May 2025 19:29:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1SS15NKlz3d91; Mon, 19 May 2025 19:29:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747682977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HCV0EEa5Qk4EK14s4p62bNs5qPXHGTcaG5/6ZrmZIok=; b=Cb0QaTJJj4mcuRDyNrM711yrLKQjt9pfLIN6QvlwMwXAadIBVZD/4PywvWcPAtgWhpb6Ir VpWYU5XkcJVLM69nZk8cBpVSXJqeAgJcvDIrTHusP4Hbhy2R4UQIpbURZPBUJXfcQ9fthv VsMWOLKJkDfIH9NTSL0AkmyCY+XRNkVHXbPuho8KT3jbY3Rl6PV/V35t0RThIK1guiG7u1 YW6y79i+Z39y3v6pHguozuz0bxnEY6hO2mltgrTGpjvYDMPgoFPXE/tlkwGqJc4E56hmv7 +OS3goM6Yq3/i6QzpypbnLYoVbsg7afWSglUPlCCmSQskSi/GW6KQgPxaGfZxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747682977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HCV0EEa5Qk4EK14s4p62bNs5qPXHGTcaG5/6ZrmZIok=; b=Sh3SD/oL5TFsjhV8RLGcH0NtmEnxK7e0aSJMkb0aWJKtY4a/T+4RyroCbGCLIQrxALO4dl 2scd2eTHPoPWR0l9jWR3YUhc8Ov8fcAhqy4Ch0QVhbhVNDk4WckDmcswoXTmWxPA0+NVlB ZOJU8plose1Jp2RfTDnpxB/0DXq/NFBpB1xfFFqYfr6XP7EzITeZGxsOYg2hds5T9iiwsO VGNa7SnqchLyDq4HEFMefbBharoXt/5stfqfHhE9dkgI6XU9MedMVjfm4xoj9k2GMzzLKS Isu5hKvRniHwd81izW568JAX8wV/F1jWZZkWBbLy5yUk2OPrnbhwqEEBI1+KUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747682977; a=rsa-sha256; cv=none; b=NK5KsvrcO4puPdn4XFrI/0946NgSL6JtUSW1yTZXHVA9H4zw7F4gVnUTth1eE5gcDssDEJ SGDAULVy0fscHhe6w1z5lmQLjtVh0vd2nmWeniIFkHgzjn3EJS8tQ83WgXUuL1iGQL8k21 5Rh2RGOLQaG8ZHBOmDtU1jdQJ8dRqklAs28iwAoN5Qu8vC0fwH8YjLdal/gj4/inlvNmmB vXQDqjnEX5/YR7dMHuQnfpkBc+pBZYqIUcx8lek65FOK8eDuydkxzU8jQD6W9r9C48dICy zGwpwlpXSAuQ9gAcR7LXJ+mc7HtAOFMBY970ipHSewPk0qTODfjKc7fSm1bceg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1SS143xYz2Pb; Mon, 19 May 2025 19:29:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54JJTbAM039929; Mon, 19 May 2025 19:29:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54JJTbx6039926; Mon, 19 May 2025 19:29:37 GMT (envelope-from git) Date: Mon, 19 May 2025 19:29:37 GMT Message-Id: <202505191929.54JJTbx6039926@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 361a8fdefac7 - releng/14.3 - iwlwifi.4: Update modes for recent 802.11ac List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 361a8fdefac70e0e5ff19473c952e5d0c0ff274f Auto-Submitted: auto-generated The branch releng/14.3 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=361a8fdefac70e0e5ff19473c952e5d0c0ff274f commit 361a8fdefac70e0e5ff19473c952e5d0c0ff274f Author: Bjoern A. Zeeb AuthorDate: 2025-04-21 00:34:15 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-05-19 19:28:40 +0000 iwlwifi.4: Update modes for recent 802.11ac By: ziaee Reported by: Pat Maddox Reviewed by: bz (previous version), emaste, mhorne Differential Revision: https://reviews.freebsd.org/D49937 iwlwifi: update man pages for generations, firmware. and 11n/11ac Put Intel's iwlwifi better in context to iwm, iwx and iwn. Document the important tunables so users know where to go. Document the port/package for firmware where firmware is now maintained. Adjust wording and table for the firmware and a flavor column. Update History sections for 11n/11ac support as well as firmware module removal from base. Sponsored by: The FreeBSD Foundation Reviewed by: ziaee, emaste (comments) Differential Revision: https://reviews.freebsd.org/D50319 Approved by: re (cperciva) (cherry picked from commit c33945a112c84795c7bd87a8e94d0cf322ef5000) (cherry picked from commit a7e183c0c9a5579cdaa3e2ff9597e5e3d41dbdb4) (cherry picked from commit 4ae64bd33f24cff90ff75efe67176a6df1c3af62) --- share/man/man4/iwlwifi.4 | 96 ++- share/man/man4/iwlwififw.4 | 2029 ++++++++++++++++++++++---------------------- 2 files changed, 1106 insertions(+), 1019 deletions(-) diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4 index 04317c22936f..3da4e68ad805 100644 --- a/share/man/man4/iwlwifi.4 +++ b/share/man/man4/iwlwifi.4 @@ -1,7 +1,7 @@ -.\"- +.\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.\" Copyright (c) 2021-2024 The FreeBSD Foundation +.\" Copyright (c) 2021-2025 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. @@ -27,12 +27,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 10, 2024 +.Dd May 12, 2025 .Dt IWLWIFI 4 .Os .Sh NAME .Nm iwlwifi -.Nd Intel IEEE 802.11a/b/g/n/ac/ax wireless network driver +.Nd Intel IEEE 802.11a/b/g/n/ac/ax/be wireless network driver .Sh SYNOPSIS The driver will auto-load without any user interaction using .Xr devmatch 8 @@ -50,6 +50,9 @@ kld_list="${kld_list} if_iwlwifi" The driver should automatically load any .Xr iwlwififw 4 firmware needed for the particular chipset. +See section +.Sx "FILES" +below for how to install the firmware. .Pp It is discouraged to load the driver from .Xr loader 8 . @@ -59,12 +62,25 @@ The driver provides support for Intel Wireless network devices. .Pp .Nm -is derived from Intel's Linux iwlwifi driver, will be a successor to -.Xr iwm 4 , -and may supersede that driver in the future. -It still complements the +is derived from Intel's Linux iwlwifi driver. +The +.Xr iwm 4 +and +.Xr iwx 4 +drivers together are approximately equivalent to Intel's Linux iwlwifi/mvm +driver. +.Pp +In addition +.Nm +already supports Intel's Linux iwlwifi/mld chipsets. +.Pp +.Nm +still complements the .Xr iwn 4 -driver which supports older chipsets. +driver which supports older chipsets and would be equivalent to +Intel's Linux iwlwifi/dvm, which +.Nm +does not support. .Pp The driver uses the .\" No LinuxKPI man pages so no .Xr here. @@ -98,6 +114,15 @@ sub-driver with the following chipset generations: 22000 .It AX210 +.El +.Pp +The +.Nm +driver supports PCIe devices from the +.Sy mld +sub-driver with the following chipset generations: +.Pp +.Bl -bullet -compact .It BZ .It @@ -235,10 +260,53 @@ Intel(R) TBD Sc2 device Intel(R) TBD Sc2f device .\" -------------------------------------------------------------------- .El +.Sh LOADER TUNABLES +The +.Nm +driver supports the following +.Xr loader 8 +tunable and read-only +.Xr sysctl 8 +variables: +.Bl -tag -width "compat.linuxkpi.iwlwifi_disable_11ac" +.It Va compat.linuxkpi.iwlwifi_11n_disable +Turn off 802.11n support in the driver. +Default +.Ql 1 . +.It Va compat.linuxkpi.iwlwifi_disable_11ac +Turn off 802.11ac support in the driver. +Default +.Ql 1 . +.El +.Pp +The names of the tunables are derived from the Linux iwlwifi driver +module parameters and are mapped automatically by +.Sy linuxkpi . +They were not adjusted so that they stay consistent with upstream +Linux, e.g., for documentation available and problem investigations. +This left their names inconsistent between themselves and incosistent to +.Fx +style. +.Pp +The tunables are automatically adjusted by the firmware package for +chipsets which can enable 11n and 11ac. +In case of problems a user may want to override the provided values +in +.Pa /boot/loader.conf.local +with the above defaults. +.Sh FILES +The +.Nm +driver requires firmware from +.Pa ports/net/wifi-firmware-iwlwifi-kmod . +This firmware package will be installed automatically with +.Xr fwget 8 +if the appropriate hardware is detected at installation or runtime. .Sh SEE ALSO .Xr iwlwififw 4 , .Xr iwm 4 , .Xr iwn 4 , +.Xr iwx 4 , .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , @@ -249,12 +317,14 @@ The .Nm driver first appeared in .Fx 13.1 . +802.11n and 802.11ac support for the 22000 and later chipsets first appeared in +.Fx 14.3 . .Sh BUGS Certainly. .Pp While .Nm -supports 802.11a/b/g/n/ac/ax modes, -the compatibility code currently only supports 802.11a/b/g modes. -Support for 802.11n/ac/ax is yet to come. -802.11ax and 6Ghz support are planned. +supports 802.11a/b/g/n/ac/ax/be modes, +the compatibility code currently only supports 802.11a/b/g/n/ac modes. +802.11n/ac is only available on the 22000 and later chipset generations. +802.11ax/be and 6Ghz support are planned. diff --git a/share/man/man4/iwlwififw.4 b/share/man/man4/iwlwififw.4 index 491a634e70b5..45ee0e757c07 100644 --- a/share/man/man4/iwlwififw.4 +++ b/share/man/man4/iwlwififw.4 @@ -1,5 +1,7 @@ -.\"- -.\" Copyright (c) 2021-2024 The FreeBSD Foundation +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2021-2025 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. @@ -25,12 +27,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 12, 2024 -.Dt iwlwififw 4 +.Dd May 12, 2025 +.Dt IWLWIFIFW 4 .Os .Sh NAME .Nm iwlwififw -.Nd Firmware modules for Intel iwlwifi wireless network driver +.Nd Firmware for Intel iwlwifi wireless network driver .Sh SYNOPSIS The .Xr iwlwifi 4 @@ -38,1512 +40,1522 @@ driver should auto-load any firmware needed. It is discouraged to load the driver or firmware manually from .Xr loader 8 . .Sh DESCRIPTION -Multiple modules provide access to firmware for the various chipset -models supported by the +Firmware files are available from +.Xr ports 7 +for the various chipset models supported +by the .Xr iwlwifi 4 driver. +Modern chipsets often require a +.Pa .ucode +and an accompanying +.Pa .pnvm +file. .Pp One can use .Xr fwget 8 to install the correct firmware package. .Pp -.Bl -column -compact "Vendor" "Device" "Subv. " "Subd. " "Firmware-Prefix" +The list is provided as a reference as to with file prefix is needed for +a specific card as far as it can be determined and the port flavor. +.Pp +.Bl -column -compact "Vendor" "Device" "Subv. " "Subd. " "Flavor" "Firmware-Prefix" .It Ar Name -.It Ar Vendor Ta Ar Device Ta Ar Subv. Ta Ar Subd. Ta Ar Firmware-Prefix -.% --------------------------------------------------------------------- -.% This list is manually generated from a sysctl and post-processing -.% by sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh generating the list. -.% Edits will be overwritten on next update. -.% --------------------------------------------------------------------- +.It Ar Vendor Ta Ar Device Ta Ar Subv. Ta Ar Subd. Ta Ar Flavor Ta Ar Firmware-Prefix +.\" --------------------------------------------------------------------- +.\" This list is manually generated from a sysctl and post-processing +.\" by sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh generating the list. +.\" Edits will be overwritten on next update. +.\" --------------------------------------------------------------------- .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4070 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4070 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4072 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4072 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4170 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4170 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c60 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c60 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c70 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4c70 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4060 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4060 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x406a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x406a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4160 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4160 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4062 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4062 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4162 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4162 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4270 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4270 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4272 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4272 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4260 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4260 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x426a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x426a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4262 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4262 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4470 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4470 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4472 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4472 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4460 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4460 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x446a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x446a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4462 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4462 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4870 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4870 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x486e Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x486e Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a70 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a70 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6e Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6e Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6c Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4a6c Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4570 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4570 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4560 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4560 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4370 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4370 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4360 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4360 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5070 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5070 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5072 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5072 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5170 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5170 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x5770 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x5770 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4020 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4020 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x402a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x402a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0x4220 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0x4220 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0x4420 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0x4420 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc070 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc070 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc072 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc072 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc170 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc170 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc060 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc060 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc06a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc06a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc160 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc160 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc062 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc062 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc162 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc162 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc770 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc770 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc760 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc760 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc270 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc270 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc70 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc70 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc60 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xcc60 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc272 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc272 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc260 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc260 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc26a Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc26a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc262 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc262 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc470 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc470 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc472 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc472 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc460 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc460 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc462 Ta iwlwifi-7260 +.It Intel(R) Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc462 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc570 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc570 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc560 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc560 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc370 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless AC 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc370 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc360 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc360 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc020 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc020 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc02a Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc02a Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b2 Ta any Ta 0xc220 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b2 Ta any Ta 0xc220 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless N 7260 -.It 0x8086 Ta 0x08b1 Ta any Ta 0xc420 Ta iwlwifi-7260 +.It Intel(R) Dual Band Wireless N 7260 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b1 Ta any Ta 0xc420 Ta 7000 Ta iwlwifi-7260 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0070 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0070 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0072 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0072 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0170 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0170 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0172 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0172 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0060 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0060 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0062 Ta iwlwifi-3160 +.It Intel(R) Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0062 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x0270 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x0270 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x0272 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x0272 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0470 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0470 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x0472 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x0472 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x0370 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x0370 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8070 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8070 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8072 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8072 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8170 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8170 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8172 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8172 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8060 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8060 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Wireless N 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8062 Ta iwlwifi-3160 +.It Intel(R) Wireless N 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8062 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x8270 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x8270 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x8370 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x8370 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b4 Ta any Ta 0x8272 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b4 Ta any Ta 0x8272 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8470 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8470 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x8570 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x8570 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x1070 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x1070 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3160 -.It 0x8086 Ta 0x08b3 Ta any Ta 0x1170 Ta iwlwifi-3160 +.It Intel(R) Dual Band Wireless AC 3160 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x08b3 Ta any Ta 0x1170 Ta 7000 Ta iwlwifi-3160 .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4010 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4010 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4012 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4012 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3166 Ta any Ta 0x4212 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3166 Ta any Ta 0x4212 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4410 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4410 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4510 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4510 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x4110 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x4110 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3166 Ta any Ta 0x4310 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3166 Ta any Ta 0x4310 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3166 Ta any Ta 0x4210 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3166 Ta any Ta 0x4210 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x8010 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x8010 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3165 -.It 0x8086 Ta 0x3165 Ta any Ta 0x8110 Ta iwlwifi-7265D +.It Intel(R) Dual Band Wireless AC 3165 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x3165 Ta any Ta 0x8110 Ta 7000 Ta iwlwifi-7265D .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2010 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2010 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2110 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2110 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2050 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2050 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 0x2150 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 0x2150 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 3168 -.It 0x8086 Ta 0x24fb Ta any Ta 000000 Ta iwlwifi-3168 +.It Intel(R) Dual Band Wireless AC 3168 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x24fb Ta any Ta 000000 Ta 7000 Ta iwlwifi-3168 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5010 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5010 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5110 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5110 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5100 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5100 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5310 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5310 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5302 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5302 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5210 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5210 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5c10 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5c10 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5012 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5012 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5412 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5412 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5410 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5410 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5510 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5510 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5400 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5400 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x1010 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x1010 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5000 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5000 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x500a Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x500a Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5200 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5200 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5002 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5002 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5102 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5102 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Wireless N 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5202 Ta iwlwifi-7265 +.It Intel(R) Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5202 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9010 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9010 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9012 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9012 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x900a Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x900a Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9110 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9110 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9112 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9112 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x9210 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x9210 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x9200 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x9200 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9510 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9510 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x9310 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x9310 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x9410 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x9410 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5020 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5020 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x502a Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x502a Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless N 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5420 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless N 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5420 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5090 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5090 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5190 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5190 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5590 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5590 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095b Ta any Ta 0x5290 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095b Ta any Ta 0x5290 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5490 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5490 Ta 7000 Ta iwlwifi-7265 .It "" -.It Intel(R) Dual Band Wireless AC 7265 -.It 0x8086 Ta 0x095a Ta any Ta 0x5f10 Ta iwlwifi-7265 +.It Intel(R) Dual Band Wireless AC 7265 Ta Ta Ta Ta Ta +.It 0x8086 Ta 0x095a Ta any Ta 0x5f10 Ta 7000 Ta iwlwifi-7265 .It "" *** 1778 LINES SKIPPED *** From nobody Tue May 20 09:08:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1pd14vDxz5w54g; Tue, 20 May 2025 09:08:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1pd12vjmz43XN; Tue, 20 May 2025 09:08:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732117; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mq3rXbjkA/g788ToV+bG4/Cb0ww7gWnzNhHjP/J4twU=; b=SQXqPbtNs005W/onyRgu55VmfCZVEwTQcEQ8GzqjceLpimFIs5GFDuRRQLJ/aepF6VU3Hi FJZMEo0dT2ml0PkuVZpwWxiXKNzJsw8B50WFZ60p+lnC9t4MHuw5NuD2SatZaI/LHFLhya f35YxFnU6TQg9GQKDbfChqVEKNO6cRdhKOy7O+uaCyJbw82CDn4vlAyBIe0udmSCsvqoyD FWS+3qvarkSHi1fZi2gIu7Uqki5CvFOHvbdB0ZvsN8E2rrE/yIQ3wz0gmn4JQ2zQZnUxga LqvoFUj0YfnV1OC38FJDvHhRTVf3nARwOnPDxAk1PKErYsaUYWzvzJoTB29cMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732117; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mq3rXbjkA/g788ToV+bG4/Cb0ww7gWnzNhHjP/J4twU=; b=tVV/rXtYK8/twIWfO+EVj7kLTp8RHRrpQBkdKIpkC1/8AgvRVctOSqNjoDQ8Y2fHjqYphK x45HHYTmeEsYI8jQuDtYufn28iI7N43FCu2w1a87/lnzmZAfMkdmouLyIHeaCFcLF79THl Z/nRg6aro48KsAernhpFfKlPNFaHmH7yfY4+ES28UIdhZUzwuKHsD33BzcgHSswYPw2+Ay 7MBu/YD5pal+lHOe8o0YBxWvmfCZdxVd5lN4aeKuEZtrwYbRc9439HS2cu5s6TQCR7r7n+ ur7c5G1bFwdOUvBPFXnF3NK+Tlbbox58M+MxcE49mvZk3QtQtGOspOjcO3O49Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747732117; a=rsa-sha256; cv=none; b=lbUo4hFzHbdCAqEMqZs86y31+Wdl5AFwtp58F5ICaGrDgLDE8qU3NTVnhZWkxuWS78xU+1 UWeRpt349y0MPlYGinrWY546P9RQ8NnVV0mF914a2tZBJc8UquwEfClibPriNJ53vwa7Ow W1DN8wk+cguUKjRK/u65go0gZQExccEqHe/SfDsfjtJDpDI0++mUCHQ3LG4n6aIPu9obp3 UE6TX6C6Y9Z2qFE0BGJwRLMePFsApmjGdSvx4dw5C1FBv651hD7HV9b+FAgou6mv8iBpwv 9ctx+mmTm6dc9UswiS/c7G+UqH6re+atue2s803u/A36R9Wl1d0XwK0xu93yeg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1pd12RcyzkZ7; Tue, 20 May 2025 09:08:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54K98bkr000780; Tue, 20 May 2025 09:08:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54K98btR000777; Tue, 20 May 2025 09:08:37 GMT (envelope-from git) Date: Tue, 20 May 2025 09:08:37 GMT Message-Id: <202505200908.54K98btR000777@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: ce6b7a5919da - stable/14 - vfs: vn_alloc(): Stop always calling vn_alloc_hard() and direct reclaiming List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ce6b7a5919da518715d6163baa42035d6d2c1bd0 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=ce6b7a5919da518715d6163baa42035d6d2c1bd0 commit ce6b7a5919da518715d6163baa42035d6d2c1bd0 Author: Olivier Certner AuthorDate: 2025-05-13 13:47:42 +0000 Commit: Olivier Certner CommitDate: 2025-05-20 09:05:27 +0000 vfs: vn_alloc(): Stop always calling vn_alloc_hard() and direct reclaiming Commit ab05a1cf321aca0f intended to revert commit 8733bc277a383cf5 ("vfs: don't provoke recycling non-free vnodes without a good reason"), but due to intervening changes in commit 054f45e026d898bd ("vfs: further speed up continuous free vnode recycle"), it also had to revert part of it. In particular, while removing the whole 'if (vn_alloc_cyclecount != 0)' block, it inadvertantly removed the code block resetting 'vn_alloc_cyclecount' to 0 and skipping direct vnode reclamation (done further below through vnlru_free_locked_direct()), which had been outside the 'if' before the intervening commit. Removing this block instead of reinstating it in practice causes 'vn_alloc_cyclecount' to (almost) never be 0, making vn_alloc() always call vn_alloc_hard(), which takes the 'vnode_list_mtx' mutex. In other words, this disables the fast path. [The reverted commit, which introduced the 'if (vn_alloc_cyclecount != 0)' guarding this block, actually never executed it because it also had the bug that 'vn_alloc_cyclecount' would always stay at 0, hiding its usefulness.] Additionally, not skipping direct vnode reclamation even when there are less vnodes than 'kern.maxvnodes' not only causes unnecessary contention but also plain livelocks as vnlru_free_locked_direct() does not itself check whether there are actually "free" (not referenced) vnodes to be deallocated, and will blindly browse all the vnode list until it finds one (which it may not, or only a few ones at the end). As the fast path was disabled, all threads in the system would soon be competing for the vnode list lock, outpacing the vnlru process that could never actually recycle vnodes in a more agressive manner (i.e., even if they have a non-zero hold count). And we could more easily get into this situation, as each vnode allocation was reducing the count of "free" vnodes, even if entirely new vnodes could be allocated instead. This part was mitigated by the vnlru process (before the tipping point described above), which explains why the mechanism would not always livelock. Not skipping direct vnode reclamation was arguably a bug introduced by the intervening commit (054f45e026d898bd), but was mitigated by vn_alloc_hard() not being called in the fast path. The revert commit, by disabling the fast path, made it significantly annoying (to the point of getting a few livelocks a week in some of my workloads). Restore the reset of 'vn_alloc_cyclecount' to 0 and skip direct reclamation when the current number of vnodes is below the 'kern.maxvnodes' limit, indicating we can start allocating a new 'struct vnode' right away. While here, fix the comparison with the limit when 'bumped' is true. Reviewed by: kib (older version), avg Tested by: avg, olce Fixes: ab05a1cf321aca0f (revert of "vfs: don't provoke recycling non-free vnodes without a good reason") Fixes: 054f45e026d898bd ("vfs: further speed up continuous free vnode recycle") MFC after: 5 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50338 (cherry picked from commit d90c9c24e2c3701949c47061b5ad198eedeebfb9) --- sys/kern/vfs_subr.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 009d305b8c1f..a640bede85b9 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1964,11 +1964,24 @@ vn_alloc_hard(struct mount *mp, u_long rnumvnodes, bool bumped) mtx_lock(&vnode_list_mtx); + /* + * Reload 'numvnodes', as since we acquired the lock, it may have + * changed significantly if we waited, and 'rnumvnodes' above was only + * actually passed if 'bumped' is true (else it is 0). + */ + rnumvnodes = atomic_load_long(&numvnodes); + if (rnumvnodes + !bumped < desiredvnodes) { + vn_alloc_cyclecount = 0; + mtx_unlock(&vnode_list_mtx); + goto alloc; + } + rfreevnodes = vnlru_read_freevnodes(); if (vn_alloc_cyclecount++ >= rfreevnodes) { vn_alloc_cyclecount = 0; vstir = true; } + /* * Grow the vnode cache if it will not be above its target max * after growing. Otherwise, if the free list is nonempty, try From nobody Tue May 20 09:08:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1pd24lh2z5w4c3; Tue, 20 May 2025 09:08:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1pd241tPz43cH; Tue, 20 May 2025 09:08:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732118; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7/12tAPEYj8k5ZLBO5mbS+8MePBEFiyNDEi/SD4qFWM=; b=bR20VYgeo/OoMboz1EgQnKnuzn7HO5EQAn0fBxa00Sw+q7+1pyGmYIJUGRpcaz3rLC1xuA xcZ4+ZfFrhBF3pKUV79VWefxrquwebNlG3jI3LW+RoWLnIiYcjX+VqQFhCpGY+a1Bo/mEc N5ARdGEs3axMp9j926mk3/GuPHCb4tLe65MZYQRy6+81FFBM5u3GQbdra0geJtAvzR+Kg8 pXBUN6JVZJEXQbjXyw7P0hp2ARC4kqsYVrX4QkV2BuYaJPv4x30nHMhjBOeW7TlD6ta8MX +tv1qUBKCDRzN+R2ZKLls+XqrmrB64pO90sIWCvkxRd5gSiy2AGgtE/vaE58KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732118; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7/12tAPEYj8k5ZLBO5mbS+8MePBEFiyNDEi/SD4qFWM=; b=LXJ5O1aV1dWxqf6c7QjWS09P9wHJPrVfEhz7SOQlFNRFqi7IEl/FcXmOOsFoort5PevJ5Y bzMR5TCLbJY1oq1hFu9cTKCgMibjDSlvZ047ztfZC8XDgT5zmI/LxnKRlnKsCRnK3RQvMQ PGFy/gKp53gqqRgQjCTQpq1di+OvVWAEek07xBig3bOmQXI75qDx/t/x4QTDYHmwCv0nsR PWzlguu0xO/hOKGwAK+8wQbecVin2S0RI7ax1r1WjTmaCOZAAijppTNkHWUPbGB2aRw536 uPFVz7VDUMqbVNFMGL2QBGWzvxsrmi6q2Y8rQ3lydIgVDRYW2CZXK1g6hixYfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747732118; a=rsa-sha256; cv=none; b=A75bhPeoULabzGBq55siXfFGP7oajpnQtSgMWV4pCcq3YUGBH7YYxFPGUHauO16pwkt1Ii XmsicXw9US+L7GUqaZPah1hfHCn9m/pf2Bs7bhpJMiF8Nzca4onNs//nCP5yo0I4f7gUyO 16Q09OB6Pk6hRf5CWMC58yQrEQfd5KNKEJ3YjY+Q2Vrocz51Z0GcuNqbYEm4gf5apZcwok QwuuIgaXpKW0zuXb5RmSIdnkHUdgHoZAAvTrcl160prat4rHgxJEp0o3nnyVmZMzciKCGn OihP3ShhCaj+ybj52Jg0kvhXiDB83/EVcmPJpa4+rCsES0YHcMp2mUv5mRLDFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1pd23LhSzkZ8; Tue, 20 May 2025 09:08:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54K98ccw000814; Tue, 20 May 2025 09:08:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54K98cSs000811; Tue, 20 May 2025 09:08:38 GMT (envelope-from git) Date: Tue, 20 May 2025 09:08:38 GMT Message-Id: <202505200908.54K98cSs000811@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: e7d4e52eafb0 - stable/14 - Compute 'maxproc'/'maxfiles' from memory amount; Expand/fix comments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e7d4e52eafb016707ef3dd3b778d76db280c06a4 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=e7d4e52eafb016707ef3dd3b778d76db280c06a4 commit e7d4e52eafb016707ef3dd3b778d76db280c06a4 Author: Olivier Certner AuthorDate: 2025-05-02 12:47:32 +0000 Commit: Olivier Certner CommitDate: 2025-05-20 09:05:33 +0000 Compute 'maxproc'/'maxfiles' from memory amount; Expand/fix comments Change the formulae so that 'maxproc' and 'maxfiles' are computed based on the physical memory amount, and not the corresponding number of pages. Make sure that the practical results are unchanged for all architectures (which is possible since all have 4096 as their PAGE_SIZE). Despite this, we do this change to make it clearer how many units of these values are computed per MB, which is easier on readers. Change the comments accordingly and expand them to indicate which parts of the computations are actually not used by default. In passing, fix the comments about default values and limits for 'maxfiles' (they were off). No functional change (intended). MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50124 (cherry picked from commit 73f9251c0b52ac0bfb2f2baff27493d6bae216f6) --- sys/kern/subr_param.c | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/sys/kern/subr_param.c b/sys/kern/subr_param.c index 67dc10213a70..36009a5c1be1 100644 --- a/sys/kern/subr_param.c +++ b/sys/kern/subr_param.c @@ -70,13 +70,14 @@ # define HZ_VM HZ # endif #endif +/* See the comments in init_param2() for these. */ #define NPROC (20 + 16 * maxusers) -#ifndef NBUF -#define NBUF 0 -#endif #ifndef MAXFILES #define MAXFILES (40 + 32 * maxusers) #endif +#ifndef NBUF +#define NBUF 0 +#endif static int sysctl_kern_vm_guest(SYSCTL_HANDLER_ARGS); @@ -276,13 +277,14 @@ init_param1(void) void init_param2(long physpages) { + long maxproc_clamp, maxfiles_clamp; TSENTER(); /* Base parameters */ maxusers = MAXUSERS; TUNABLE_INT_FETCH("kern.maxusers", &maxusers); if (maxusers == 0) { - maxusers = physpages / (2 * 1024 * 1024 / PAGE_SIZE); + maxusers = pgtok(physpages) / (2 * 1024); if (maxusers < 32) maxusers = 32; #ifdef VM_MAX_AUTOTUNE_MAXUSERS @@ -291,35 +293,43 @@ init_param2(long physpages) #endif /* * Scales down the function in which maxusers grows once - * we hit 384. + * we hit 384 (16MB to get a new "user"). */ if (maxusers > 384) maxusers = 384 + ((maxusers - 384) / 8); } /* - * The following can be overridden after boot via sysctl. Note: - * unless overridden, these macros are ultimately based on maxusers. - * Limit maxproc so that kmap entries cannot be exhausted by - * processes. + * The following can be overridden after boot via sysctl. Note: unless + * overridden, these macros are ultimately based on 'maxusers'. Limit + * maxproc so that kmap entries cannot be exhausted by processes. The + * default for 'maxproc' linearly scales as 16 times 'maxusers' (so, + * linearly with 8 processes per MB up to 768MB, then 1 process per MB; + * overridable by a tunable), and is then clamped at 21 + 1/3 processes + * per MB (which never happens by default as long as physical memory is + * > ~1.5MB). */ maxproc = NPROC; TUNABLE_INT_FETCH("kern.maxproc", &maxproc); - if (maxproc > (physpages / 12)) - maxproc = physpages / 12; + maxproc_clamp = pgtok(physpages) / (3 * 1024 / 64); + if (maxproc > maxproc_clamp) + maxproc = maxproc_clamp; if (maxproc > pid_max) maxproc = pid_max; maxprocperuid = (maxproc * 9) / 10; /* - * The default limit for maxfiles is 1/12 of the number of - * physical page but not less than 16 times maxusers. - * At most it can be 1/6 the number of physical pages. + * 'maxfiles' by default is set to 32 files per MB (overridable by + * a tunable), and is then clamped at 64 files per MB (which thus never + * happens by default). (The default MAXFILES is for all practical + * purposes not used, as it gives a lower value than 32 files per MB as + * soon as there is more than ~2.5MB of memory.) */ - maxfiles = imax(MAXFILES, physpages / 8); + maxfiles = imax(MAXFILES, pgtok(physpages) / (1024 / 32)); TUNABLE_INT_FETCH("kern.maxfiles", &maxfiles); - if (maxfiles > (physpages / 4)) - maxfiles = physpages / 4; + maxfiles_clamp = pgtok(physpages) / (1024 / 64); + if (maxfiles > maxfiles_clamp) + maxfiles = maxfiles_clamp; maxfilesperproc = (maxfiles / 10) * 9; TUNABLE_INT_FETCH("kern.maxfilesperproc", &maxfilesperproc); From nobody Tue May 20 09:08:39 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1pd40Xhfz5w4c4; Tue, 20 May 2025 09:08:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1pd35Wtbz43FY; Tue, 20 May 2025 09:08:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732119; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T5VRxaU7V5oLehxlEn33++Z0ozgAih6LckM6BdiO40w=; b=UpFoCB9TQXUmGDEvc7FMJSciK2cOY5igmbHgsOagtkRsuq/XX90eGrbjAAjhDI3zzihIkT x9tHyUYfwfJkfqsxT/x8b/lYx48oIh5vUPf6wByZohcDu3H8ogMTdDmt6l2yGoTnCUIIeJ Nj36HBJmUvCkrSD0XShYETe7DjgJNrqD3GbgB1qPjaBiL8rQNabrbxXq2NdH2jrQjo66wS Y4DE6f1/aUcJDEldPWvwQl2A2bSIgSEW/TAV6afD3/QYxib0P8EwnbxLzoVhwxdlOlUgJA 9U2K+65u6jaMq5r4kf/kqDzL7q2w/gH6U1l8soC2Ijg8hUkszFg6tJkT799h5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732119; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T5VRxaU7V5oLehxlEn33++Z0ozgAih6LckM6BdiO40w=; b=je4BLPfJa9stZBYyV8N5uu57nMw14RVrs1JBdBX3CnOlzwFzR4DyAPsq44EXjSAZ23pk6p riEKkvpfpLpcjX4IU8L9og8NRWY1c55rEoCtZ2QXrxt10qCLDAPhs4cplmVlvy4GJQxbtJ 7XhLi7Bp0MeIsS/amfmHn4UfYQEizMrudiDIFfmA6mL6KCre7x77d14apFHgqfcvv7Xvqf hFygWO9kt85s3NgwKNSbILgyktwEs7d4/RQwU1Lm4qhR26xEgTtG5raPwyr3r0wgd8j2D1 rPNXS4MRrPMNLQoO5xXfmRtKazeGvv3flAcTQaJfP0kVIOXyutDEg6vLN49TZg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747732119; a=rsa-sha256; cv=none; b=QPsBkQivkX+maez3SDFC9Tl0T1O0JkVcRQCG5ejhWNjgo76A73WuAATrf7hvHFYOpGZrEu Y3fOB4RjyCejpGI58539oKRRuJdjZBmbbtlVq+7xCwBPMMWH0qWuiD2go1ZDSb7K4HcMEd HrmbTwSrmwGngH9lB3UVGWw57OwtKE5E54mZqYThQcZhXHZ8mwwqA5scTCG8UZp1wDMNX3 bJ1QbVcFYni6yXwzD0hT7v32YYnqHLaz4QPOVqkSsbDtR1tYzKIOPd39cFrp5lo8ovwue0 +TxIguMBG/7hZsNhg6sgX7ZU9nCXqTFTdkkzIpZC+WP8gl6sGtR/lO+osNYheQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1pd343nFzkHY; Tue, 20 May 2025 09:08:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54K98dvY000848; Tue, 20 May 2025 09:08:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54K98d13000845; Tue, 20 May 2025 09:08:39 GMT (envelope-from git) Date: Tue, 20 May 2025 09:08:39 GMT Message-Id: <202505200908.54K98d13000845@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 5b07152f3ec3 - stable/14 - vfs: vntblinit(): Rework comments on the computation of 'kern.maxvnodes' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5b07152f3ec3eea78958796b45594c5bd96c0bfb Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=5b07152f3ec3eea78958796b45594c5bd96c0bfb commit 5b07152f3ec3eea78958796b45594c5bd96c0bfb Author: Olivier Certner AuthorDate: 2025-05-12 11:20:01 +0000 Commit: Olivier Certner CommitDate: 2025-05-20 09:05:33 +0000 vfs: vntblinit(): Rework comments on the computation of 'kern.maxvnodes' Remove the parts that describe what is already in the code formula. Add hints about which of 'physvnodes'/'virtvnodes' takes precedence, and when 'desiredvnodes' becomes smaller than 'maxfiles'. These were both computed analytically and verified experimentally. Reviewed by: kib (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50310 (cherry picked from commit bf8890c84bacd8b1acebb2cb9a0944b1bb102b68) --- sys/kern/vfs_subr.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index a640bede85b9..62ae987a3084 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -722,15 +722,15 @@ vntblinit(void *dummy __unused) int cpu, physvnodes, virtvnodes; /* - * Desiredvnodes is a function of the physical memory size and the - * kernel's heap size. Generally speaking, it scales with the - * physical memory size. The ratio of desiredvnodes to the physical - * memory size is 1:16 until desiredvnodes exceeds 98,304. - * Thereafter, the - * marginal ratio of desiredvnodes to the physical memory size is - * 1:64. However, desiredvnodes is limited by the kernel's heap - * size. The memory required by desiredvnodes vnodes and vm objects - * must not exceed 1/10th of the kernel's heap size. + * 'desiredvnodes' is the minimum of a function of the physical memory + * size and another of the kernel heap size (UMA limit, a portion of the + * KVA). + * + * Currently, on 64-bit platforms, 'desiredvnodes' is set to + * 'virtvnodes' up to a physical memory cutoff of ~1674MB, after which + * 'physvnodes' applies instead. With the current automatic tuning for + * 'maxfiles' (32 files/MB), 'desiredvnodes' becomes smaller than it at + * ~5136MB. */ physvnodes = maxproc + pgtok(vm_cnt.v_page_count) / 64 + 3 * min(98304 * 16, pgtok(vm_cnt.v_page_count)) / 64; From nobody Tue May 20 09:08:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b1pd50rCKz5w54h; Tue, 20 May 2025 09:08:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b1pd45shdz43Fm; Tue, 20 May 2025 09:08:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732120; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TRpKQkhSSMx0M7cYOtbQE9XBa9jHQjsXjhKwv8ueEv4=; b=CMbdCb8nenVUjoC8YCOC7oyewGbSjZas7DL69IVYsmZL4yT7WF1jIJdx3SoN7bZV/Rb1Iw jPQ8JNg1lOsh4itZ9ZuPt3SUJzqJ3XmizJaDkSFmJTW53CfhT5fk8RZfzDQ2zrEmkVWzx3 saLTYxlqreduhGo/dubNKaxOIFSRjzJzgSQ9ti0TDLj+jPwDTBejluA+s4gvQbIAOGln7O MqeHcwNGz8w7QhR2Flh9HO3431CWN2AhDwTsz3p/a3ZOVF2pYAkVVMX22igDx+8zG2ow12 XY/0GW9uLTqikuOeeph8xwFG7yyM9p5ZVTk+apHvYbnySVFriKmJsA0KkS8mjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747732120; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TRpKQkhSSMx0M7cYOtbQE9XBa9jHQjsXjhKwv8ueEv4=; b=K0pEftR7J5cdBJIragvboCXq8GDeSThFjoj2+U4ZfPNo+eNWSzmMLWvtbmFN5Q3ZYWXWYb rrd1MyIGX0gUBMNBXjgSVX6yGaNItBWyTdVSGIp15VV2wFHjTEpKQJxqsjQ4BijSWPAfsb aL7apvZRi+eqJONi69k7qQvj6zazIEUlrBzQ3+bsbD5rukAfa9S1W+OVSPLVsyVTgvu+uo D2/6dFMqS+BD2uGU/KyJUMWm895MHiXazz/j7IXi+j/7HkzonDwgvjHjckjAvg9HnppAXy Tav1Z2PxkFRQWT0ltNTYGqkidcVAPv/jfvLCBTijmpj6d8o6PjoxZchRyfcvlA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747732120; a=rsa-sha256; cv=none; b=bFiNIRaXDp6UJ5ixtNJ57e12ihb2qQEAVsgx0C7nj6eIU2ZVUMM1kYLtEDAntd+zeJjH1f fqkuZPQsjplJbWXjpHMkpiEGoh76K4PxTcxFcmBHurvDlHozjSv9QJt0hyXPXROrnN8nJ7 HaLz1ReemcoSDQNkTJGgQiyK7djnxCIla8GVqumH0JC20WIombD2pPqJZhujXwdikSFfEx KfAlidq+hhuA4F1wmOrPIw7OECFureWd/spBbboygJYGxlEIavb1n0UnmvhHmP0JRe0FjT HeiDDJBmtChSGxCTKJ/iDwuhvoRY5TaZi2UWfHgW0jG20k9EToz3SFHls/JuFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b1pd453cpzkHZ; Tue, 20 May 2025 09:08:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54K98eVS000887; Tue, 20 May 2025 09:08:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54K98eXU000883; Tue, 20 May 2025 09:08:40 GMT (envelope-from git) Date: Tue, 20 May 2025 09:08:40 GMT Message-Id: <202505200908.54K98eXU000883@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: a6b05a35ce3c - stable/14 - vfs: vntblinit(): Raise default 'kern.maxvnodes' higher than 'kern.maxfiles' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a6b05a35ce3c516cadfca49c310dffaabbe40440 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=a6b05a35ce3c516cadfca49c310dffaabbe40440 commit a6b05a35ce3c516cadfca49c310dffaabbe40440 Author: Olivier Certner AuthorDate: 2025-05-12 12:19:56 +0000 Commit: Olivier Certner CommitDate: 2025-05-20 09:05:33 +0000 vfs: vntblinit(): Raise default 'kern.maxvnodes' higher than 'kern.maxfiles' Having 'kern.maxvnodes' higher than 'kern.maxfiles' mitigates a scenario where some processes can eat up all vnodes in the system, causing a deadlock, as long as the kernel itself does not create too many vnodes without creating some file descriptor in some process' FD table. A very small percentage (~0.6%) of excess vnodes at infinity, coupled with a large difference near the origin, should cover basic cases more than enough. Note however that this measure can be defeated, e.g., by using nullfs mounts with non-trivial file hierarchies. MFC after: 5 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50314 (cherry picked from commit e9baf472a6d228a16be19a11150d41cff29affe8) --- sys/kern/vfs_subr.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 62ae987a3084..7ff6ac5f5b44 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -727,13 +727,12 @@ vntblinit(void *dummy __unused) * KVA). * * Currently, on 64-bit platforms, 'desiredvnodes' is set to - * 'virtvnodes' up to a physical memory cutoff of ~1674MB, after which + * 'virtvnodes' up to a physical memory cutoff of ~1722MB, after which * 'physvnodes' applies instead. With the current automatic tuning for - * 'maxfiles' (32 files/MB), 'desiredvnodes' becomes smaller than it at - * ~5136MB. + * 'maxfiles' (32 files/MB), 'desiredvnodes' is always greater than it. */ - physvnodes = maxproc + pgtok(vm_cnt.v_page_count) / 64 + - 3 * min(98304 * 16, pgtok(vm_cnt.v_page_count)) / 64; + physvnodes = maxproc + pgtok(vm_cnt.v_page_count) / 32 + + min(98304 * 16, pgtok(vm_cnt.v_page_count)) / 32; virtvnodes = vm_kmem_size / (10 * (sizeof(struct vm_object) + sizeof(struct vnode) + NC_SZ * ncsizefactor + NFS_NCLNODE_SZ)); desiredvnodes = min(physvnodes, virtvnodes); From nobody Tue May 20 21:52:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b27Zx25qBz5w3PV; Tue, 20 May 2025 21:52:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b27Zx1JwRz3X33; Tue, 20 May 2025 21:52:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Os1tiwZjVLo9s2DveUmuCzNmPkXiSmbirk8pYk2zWIY=; b=QNV6QeMQf/gVHzDqc6n8qi626Mcpub0OolAs61JrXOtxQF32FEtIlyNmIqO9cd07yVcBQz RFPDxIWzatuPp8YAl+IzEyUQFTtyyRq9Puren85KJGXJ9iFt5qhc11UOcujAB54u4oVrhY sIi0Niqgx/kr3O+X2RY898o1RngVJeNugC+ahNAaLm6XPiAqlFY+A3+eKZDu1x1O2dplgg F8Wz2/EY9v9llrbxG7ZDB8hPVSTssFZ6ttH6lgsOrnF3EKO5vf5SRdpkesa6gmiMhgdXT2 twsIzKfMctDUqJ2vvFWL3E2Lov6i+Qgp/JSzKRTFZwlcseMCP/4HcXYVJydJAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Os1tiwZjVLo9s2DveUmuCzNmPkXiSmbirk8pYk2zWIY=; b=p4DN17O2daQNVhK9oVNhCtQDR1/Lv8N1qZIme+W4uQpK4LnNOZ9/n7r2YkUyRUYeidrTBC a8WAH9XToml1SB2S1Mf0wfIIELYBVYqHzA/5BwYFx0MFVPNFktQtxou0emQjCowpqjCDBB 14mlFu6SxUKGLV18Rz4maAT5h7ynUDXZzTmcob1Wme67fibKyvk+CkwN5pSqYJg3/LdVfZ VKOKhslkPd7G7+qZN2mAdIc1sni4NS6XJzYynBLHO/mbcnSxrhfRT2dRUtf66K0vUMlaQr xvqSyg0EPOCnfvzTYoH44RyQtefD9pfMhFALWRFAJSQLLswU3uu9cJjuOBxjkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747777977; a=rsa-sha256; cv=none; b=N+b2R0kkuAEuGG7qC49Cvhu7wmoAW6Ok70Bqdrjh2pkYjSvFxxi25Ay7Fd52H0dBluWs3L RLbUK2scVABv/RUEaeTkhiTmo35hMJY2X6G1USBiXNKVtrdsklO5nPXaeWbpgvKVCXNlZZ W6IQLDo86gOGTLnwpsbZgg2pg1TfzS4iV3Sq6hDksYUzESMpe7teTyXitZhoirR+BFTam2 KHV7H7Mp8foDVjxQG/dUEYrFhkJ1tDLuTmvLZz4Al1FEuyIr16ZcNEhnhPEU4+nYlnjgQn au0/gLNieiGoaTdJgbP2/6HLJy7N/23DfKuAZqiNr+ITOfLxt97ydJT2nh7r6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b27Zx0gcRz16Rq; Tue, 20 May 2025 21:52:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54KLqunq039709; Tue, 20 May 2025 21:52:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54KLqulA039706; Tue, 20 May 2025 21:52:56 GMT (envelope-from git) Date: Tue, 20 May 2025 21:52:56 GMT Message-Id: <202505202152.54KLqulA039706@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 2f8ba2e5b93e - stable/14 - libc tests: add tests for link_addr(3) and link_ntoa(3) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2f8ba2e5b93eec8b51e6bf18a8e480ee5e1769cf Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=2f8ba2e5b93eec8b51e6bf18a8e480ee5e1769cf commit 2f8ba2e5b93eec8b51e6bf18a8e480ee5e1769cf Author: Lexi Winter AuthorDate: 2025-05-05 17:25:03 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 21:49:34 +0000 libc tests: add tests for link_addr(3) and link_ntoa(3) for now, since link_addr() has no way to indicate an error, these are only positive tests which check the outcome of valid inputs. Reviewed by: ngie, des, adrian Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50062 (cherry picked from commit 757e973fb2112ea442aa8990d991f406d407b6f7) link_addr_test: use , not is the correct header; this fixes the GCC build. while here, sort the headers. Fixes: 757e973fb211 ("libc tests: add tests for link_addr(3) and link_ntoa(3)") Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50189 (cherry picked from commit bbffdfef3bf04b2f89027cb20e2019fdc74c4b1b) --- lib/libc/tests/net/Makefile | 3 + lib/libc/tests/net/link_addr_test.cc | 271 +++++++++++++++++++++++++++++++++++ 2 files changed, 274 insertions(+) diff --git a/lib/libc/tests/net/Makefile b/lib/libc/tests/net/Makefile index 6e90f22b98f5..d939edeeb00d 100644 --- a/lib/libc/tests/net/Makefile +++ b/lib/libc/tests/net/Makefile @@ -4,6 +4,9 @@ PACKAGE= tests ATF_TESTS_C+= ether_test ATF_TESTS_C+= eui64_aton_test ATF_TESTS_C+= eui64_ntoa_test +ATF_TESTS_CXX+= link_addr_test + +CXXSTD.link_addr_test= c++20 CFLAGS+= -I${.CURDIR} diff --git a/lib/libc/tests/net/link_addr_test.cc b/lib/libc/tests/net/link_addr_test.cc new file mode 100644 index 000000000000..6b9f5a841ef7 --- /dev/null +++ b/lib/libc/tests/net/link_addr_test.cc @@ -0,0 +1,271 @@ +/* + * Copyright (c) 2025 Lexi Winter + * + * SPDX-License-Identifier: ISC + */ + +/* + * Tests for link_addr() and link_ntoa(). + * + * link_addr converts a string representing an (optionally null) interface name + * followed by an Ethernet address into a sockaddr_dl. The expected format is + * "[ifname]:lladdr". This means if ifname is not specified, the leading colon + * is still required. + * + * link_ntoa does the inverse of link_addr, returning a string representation + * of the address. + * + * Note that the output format of link_ntoa is not valid input for link_addr + * since the leading colon may be omitted. This is by design. + */ + +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include + +using namespace std::literals; + +/* + * Define operator== and operator<< for ether_addr so we can use them in + * ATF_EXPECT_EQ expressions. + */ + +bool +operator==(ether_addr a, ether_addr b) +{ + return (std::ranges::equal(a.octet, b.octet)); +} + +std::ostream & +operator<<(std::ostream &s, ether_addr a) +{ + for (unsigned i = 0; i < ETHER_ADDR_LEN; ++i) { + if (i > 0) + s << ":"; + + s << std::format("{:02x}", static_cast(a.octet[i])); + } + + return (s); +} + +/* + * Create a sockaddr_dl from a string using link_addr(), and ensure the + * returned struct looks valid. + */ +sockaddr_dl +make_linkaddr(const std::string &addr) +{ + auto sdl = sockaddr_dl{}; + + sdl.sdl_len = sizeof(sdl); + ::link_addr(addr.c_str(), &sdl); + + ATF_REQUIRE_EQ(AF_LINK, static_cast(sdl.sdl_family)); + ATF_REQUIRE_EQ(true, sdl.sdl_len > 0); + ATF_REQUIRE_EQ(true, sdl.sdl_nlen >= 0); + + return (sdl); +} + +/* + * Return the data stored in a sockaddr_dl as a span. + */ +std::span +data(const sockaddr_dl &sdl) +{ + // sdl_len is the entire structure, but we only want the length of the + // data area. + auto dlen = sdl.sdl_len - offsetof(sockaddr_dl, sdl_data); + return {&sdl.sdl_data[0], dlen}; +} + +/* + * Return the interface name stored in a sockaddr_dl as a string. + */ +std::string_view +ifname(const sockaddr_dl &sdl) +{ + auto name = data(sdl).subspan(0, sdl.sdl_nlen); + return {name.begin(), name.end()}; +} + +/* + * Return the Ethernet address stored in a sockaddr_dl as an ether_addr. + */ +ether_addr +addr(const sockaddr_dl &sdl) +{ + ether_addr ret{}; + ATF_REQUIRE_EQ(ETHER_ADDR_LEN, sdl.sdl_alen); + std::ranges::copy(data(sdl).subspan(sdl.sdl_nlen, ETHER_ADDR_LEN), + &ret.octet[0]); + return (ret); +} + +/* + * Return the link address stored in a sockaddr_dl as a span of octets. + */ +std::span +lladdr(const sockaddr_dl &sdl) +{ + auto data = reinterpret_cast(LLADDR(&sdl)); + return {data, data + sdl.sdl_alen}; +} + + +/* + * Some sample addresses we use for testing. Include at least one address for + * each format we want to support. + */ + +struct test_address { + std::string input; /* value passed to link_addr */ + std::string ntoa; /* expected return from link_ntoa */ + ether_addr addr{}; /* expected return from link_addr */ +}; + +std::vector test_addresses{ + // No delimiter + {"001122334455"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Colon delimiter + {"00:11:22:33:44:55"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Dash delimiter + {"00-11-22-33-44-55"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Period delimiter (link_ntoa format) + {"00.11.22.33.44.55"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Period delimiter (Cisco format) + {"0011.2233.4455"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // An addresses without leading zeroes. + {"0:1:02:30:4:55"s, "0.1.2.30.4.55", + ether_addr{0x00, 0x01, 0x02, 0x30, 0x04, 0x55}}, + + // An address with some uppercase letters. + {"AA:B:cC:Dd:e0:1f"s, "aa.b.cc.dd.e0.1f", + ether_addr{0xaa, 0x0b, 0xcc, 0xdd, 0xe0, 0x1f}}, + + // Addresses composed only of letters, to make sure they're not + // confused with an interface name. + + {"aabbccddeeff"s, "aa.bb.cc.dd.ee.ff", + ether_addr{0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}, + + {"aa:bb:cc:dd:ee:ff"s, "aa.bb.cc.dd.ee.ff", + ether_addr{0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}, +}; + +/* + * Test without an interface name. + */ +ATF_TEST_CASE_WITHOUT_HEAD(basic) +ATF_TEST_CASE_BODY(basic) +{ + for (const auto &ta : test_addresses) { + // This does basic tests on the returned value. + auto sdl = make_linkaddr(":" + ta.input); + + // Check the ifname and address. + ATF_REQUIRE_EQ(""s, ifname(sdl)); + ATF_REQUIRE_EQ(ETHER_ADDR_LEN, static_cast(sdl.sdl_alen)); + ATF_REQUIRE_EQ(ta.addr, addr(sdl)); + + // Check link_ntoa returns the expected value. + auto ntoa = std::string(::link_ntoa(&sdl)); + ATF_REQUIRE_EQ(ta.ntoa, ntoa); + } + +} + +/* + * Test with an interface name. + */ +ATF_TEST_CASE_WITHOUT_HEAD(ifname) +ATF_TEST_CASE_BODY(ifname) +{ + for (const auto &ta : test_addresses) { + auto sdl = make_linkaddr("ix0:" + ta.input); + + ATF_REQUIRE_EQ("ix0", ifname(sdl)); + ATF_REQUIRE_EQ(ETHER_ADDR_LEN, static_cast(sdl.sdl_alen)); + ATF_REQUIRE_EQ(ta.addr, addr(sdl)); + + auto ntoa = std::string(::link_ntoa(&sdl)); + ATF_REQUIRE_EQ("ix0:" + ta.ntoa, ntoa); + } + +} + +/* + * Test some non-Ethernet addresses. + */ +ATF_TEST_CASE_WITHOUT_HEAD(nonether) +ATF_TEST_CASE_BODY(nonether) +{ + sockaddr_dl sdl; + + /* A short address */ + sdl = make_linkaddr(":1:23:cc"); + ATF_REQUIRE_EQ("", ifname(sdl)); + ATF_REQUIRE_EQ("1.23.cc"s, ::link_ntoa(&sdl)); + ATF_REQUIRE_EQ(3, sdl.sdl_alen); + ATF_REQUIRE_EQ(true, + std::ranges::equal(std::vector{0x01u, 0x23u, 0xccu}, lladdr(sdl))); + + /* A long address */ + sdl = make_linkaddr(":1:23:cc:a:b:c:d:e:f"); + ATF_REQUIRE_EQ("", ifname(sdl)); + ATF_REQUIRE_EQ("1.23.cc.a.b.c.d.e.f"s, ::link_ntoa(&sdl)); + ATF_REQUIRE_EQ(9, sdl.sdl_alen); + ATF_REQUIRE_EQ(true, std::ranges::equal( + std::vector{0x01u, 0x23u, 0xccu, 0xau, 0xbu, 0xcu, 0xdu, 0xeu, 0xfu}, + lladdr(sdl))); +} + +/* + * Test an extremely long address which would overflow link_ntoa's internal + * buffer. It should handle this by truncating the output. + * (Test for SA-16:37.libc / CVE-2016-6559.) + */ +ATF_TEST_CASE_WITHOUT_HEAD(overlong) +ATF_TEST_CASE_BODY(overlong) +{ + auto sdl = make_linkaddr( + ":01.02.03.04.05.06.07.08.09.0a.0b.0c.0d.0e.0f." + "11.12.13.14.15.16.17.18.19.1a.1b.1c.1d.1e.1f." + "22.22.23.24.25.26.27.28.29.2a.2b.2c.2d.2e.2f"); + + ATF_REQUIRE_EQ( + "1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.11.12.13.14.15.16.17.18.19.1a.1b."s, + ::link_ntoa(&sdl)); +} + +ATF_INIT_TEST_CASES(tcs) +{ + ATF_ADD_TEST_CASE(tcs, basic); + ATF_ADD_TEST_CASE(tcs, ifname); + ATF_ADD_TEST_CASE(tcs, nonether); + ATF_ADD_TEST_CASE(tcs, overlong); +} From nobody Tue May 20 21:52:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b27Zy3DKSz5w38P; Tue, 20 May 2025 21:52:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b27Zy1mSkz3Ws8; Tue, 20 May 2025 21:52:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VQVosGq5QLX7BsiqwLDOVX1845RSx6hwBpvykOcE17g=; b=VVmfHupXu6OedFVNxN1zB2B3F1PGLOsabTU6DG86fHFQdhYE4R31aEU3tD4b2U/jkNHDVa MLnNwTAeaFro0OxbauiIzhY0A0frxdiHUUJLRzqsghYVwwfS1FsNu9rymAcD2pa+85Gher GRLAY02rP55mYFyQEeAuH34+oGuMtO9kVVYv500eBQ1T0uy0wtViTkXlXyV+v44intGBRf 2Vlg7i4aJcc6fUnDA6DlD58NoKEoXzzg/LWniN4FohynrC7OIjIpVNSVGGU4W2hkEWOEEL jKb012L5iuKImv95f3/tqxfEOg3a0hsYh3nqe2J4n8mlMYoir7CR/0NFVLp8Ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VQVosGq5QLX7BsiqwLDOVX1845RSx6hwBpvykOcE17g=; b=cSCwuLKv8XkUSrYM7V/VAuUr7fhkY2nKCr+2fsUbkxJMdvAI4KBNQKV8hesYwooX/13t/f RTz3unj1i60wiRf+JddJCOx4AOWC6TZxWogSZKCZObs4re9Ad+93plnvLe4Ub+p32VY5JS lN0Fi27yOGZJST2vEOnz8RErSfQEFHeqg2HLuhASKT3HJubg5D2nB3cQaOumYSb210ztAa XRDAWQUPIBWiuTCOwmtEQzHkXZlSZXPNVO0IPyjwTlBYrNCmQTMPXDHb+eAeVDlwWhzzZL 8kGi+cfKkhl4MbnFyl87ZdhacTqnrZLdKpnZVABBLgFIiiO+w5K8Nnu4U4kGgQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747777978; a=rsa-sha256; cv=none; b=C5cHLK0j3ukqc53AeJVY9JLWR0MlmeYnvSj/XhGFH9PFZzFk5N3ymiUS6vptKWRSg1Ck7p ahCFc3ydaKJ9HWFwOokyzPJlawRCVeVhrhjlRp3zSp8a+lelCRm74uB1fJaCA5bI9zL12g GWGYJrc/NeMXTPbSUZ95KcbENTztgMIe9W6kbvvk6x10N6PDx7taMruS5HRxDlZsFNV2/I SD8p7imR+yTnIyn12aIaT6n+zzjTpe+yUWHEkMp7zaIsMBPI+60O1K0Z1La7C/og4KSY8m UyAy+P2u44asqrOhm3XmtmStNHKBJQOoWb/WmGyHtPnaohPwPSG0UHJ4dHT6Kg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b27Zy1FWrz16Rr; Tue, 20 May 2025 21:52:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54KLqwxu039743; Tue, 20 May 2025 21:52:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54KLqwmw039740; Tue, 20 May 2025 21:52:58 GMT (envelope-from git) Date: Tue, 20 May 2025 21:52:58 GMT Message-Id: <202505202152.54KLqwmw039740@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 02a07676c382 - stable/14 - libc: add link_ntoa_r() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 02a07676c382836917b711d2b523b49b9a879183 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=02a07676c382836917b711d2b523b49b9a879183 commit 02a07676c382836917b711d2b523b49b9a879183 Author: Lexi Winter AuthorDate: 2025-05-07 09:34:08 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 21:49:52 +0000 libc: add link_ntoa_r() this is a re-entrant version of link_ntoa. use an in-out parameter for the buffer size, so the user requires at most two calls to determine the needed size. reimplement link_ntoa using link_ntoa_r with a static buffer. Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50202 (cherry picked from commit da509c29089ab169b667ebdf82aa903987ba9c6d) --- lib/libc/net/Makefile.inc | 7 ++- lib/libc/net/Symbol.map | 4 ++ lib/libc/net/linkaddr.3 | 45 +++++++++++++- lib/libc/net/linkaddr.c | 110 ++++++++++++++++++++++++++-------- lib/libc/tests/net/link_addr_test.cc | 111 +++++++++++++++++++++++++++++++++++ sys/net/if_dl.h | 1 + 6 files changed, 249 insertions(+), 29 deletions(-) diff --git a/lib/libc/net/Makefile.inc b/lib/libc/net/Makefile.inc index ea5ddf875151..18ca2c3b8df1 100644 --- a/lib/libc/net/Makefile.inc +++ b/lib/libc/net/Makefile.inc @@ -108,8 +108,11 @@ MLINKS+=inet6_opt_init.3 inet6_opt_append.3 \ inet6_rthdr_space.3 inet6_rthdr_lasthop.3 \ inet6_rthdr_space.3 inet6_rthdr_reverse.3 \ inet6_rthdr_space.3 inet6_rthdr_segments.3 -MLINKS+=linkaddr.3 link_addr.3 linkaddr.3 link_ntoa.3 -MLINKS+=rcmd.3 iruserok.3 rcmd.3 iruserok_sa.3 \ +MLINKS+=linkaddr.3 link_addr.3 \ + linkaddr.3 link_ntoa.3 \ + linkaddr.3 link_ntoa_r.3 +MLINKS+=rcmd.3 iruserok.3 \ + rcmd.3 iruserok_sa.3 \ rcmd.3 rcmd_af.3 \ rcmd.3 rresvport.3 rcmd.3 rresvport_af.3 \ rcmd.3 ruserok.3 diff --git a/lib/libc/net/Symbol.map b/lib/libc/net/Symbol.map index 4831868c0e55..784f83a90bb9 100644 --- a/lib/libc/net/Symbol.map +++ b/lib/libc/net/Symbol.map @@ -149,6 +149,10 @@ FBSD_1.3 { sctp_sendv; }; +FBSD_1.8 { + link_ntoa_r; +}; + FBSDprivate_1.0 { _nsdispatch; _nsyyerror; /* generated from nslexer.l */ diff --git a/lib/libc/net/linkaddr.3 b/lib/libc/net/linkaddr.3 index 6c2fb6ccfdc3..c91a50c9b5b9 100644 --- a/lib/libc/net/linkaddr.3 +++ b/lib/libc/net/linkaddr.3 @@ -30,12 +30,13 @@ .\" .\" From: @(#)linkaddr.3 8.1 (Berkeley) 7/28/93 .\" -.Dd February 28, 2007 +.Dd May 7, 2025 .Dt LINK_ADDR 3 .Os .Sh NAME .Nm link_addr , -.Nm link_ntoa +.Nm link_ntoa , +.Nm link_ntoa_r .Nd elementary address specification routines for link level access .Sh LIBRARY .Lb libc @@ -47,12 +48,15 @@ .Fn link_addr "const char *addr" "struct sockaddr_dl *sdl" .Ft char * .Fn link_ntoa "const struct sockaddr_dl *sdl" +.Ft int +.Fn link_ntoa_r "const struct sockaddr_dl *sdl" "char *obuf" "size_t *buflen" .Sh DESCRIPTION The routine .Fn link_addr interprets character strings representing link-level addresses, returning binary information suitable for use in system calls. +.Pp The routine .Fn link_ntoa takes @@ -62,9 +66,34 @@ address and returns an string representing some of the information present, including the link level address itself, and the interface name or number, if present. +The returned string is stored in a static buffer. This facility is experimental and is still subject to change. .Pp +The routine +.Fn link_ntoa_r +behaves like +.Fn link_ntoa , +except the string is placed in the provided buffer instead of a static +buffer. +The caller should initialize +.Fa buflen +to the number of bytes available in +.Fa obuf . +On return, +.Fa buflen +is set to the actual number of bytes required for the output buffer, +including the NUL terminator. +If +.Fa obuf +is NULL, then +.Fa buflen +is set as described, but nothing is written. +This may be used to determine the required length of the buffer before +calling +.Fn link_ntoa_r +a second time. +.Pp For .Fn link_addr , the string @@ -96,6 +125,14 @@ The .Fn link_ntoa function always returns a null terminated string. +.Pp +The +.Fn link_ntoa_r +function returns 0 on success, or -1 if the provided buffer was not +large enough; in the latter case, the contents of the buffer are +indeterminate, but a trailing NUL will always be written if the buffer +was at least one byte in size. +.Pp The .Fn link_addr function @@ -111,6 +148,10 @@ and .Fn link_ntoa functions appeared in .Bx 4.3 Reno . +The +.Fn link_ntoa_r +function appeared in +.Fx 15.0 . .Sh BUGS The returned values for link_ntoa reside in a static memory area. diff --git a/lib/libc/net/linkaddr.c b/lib/libc/net/linkaddr.c index 5cff503331db..47ec378d5fd8 100644 --- a/lib/libc/net/linkaddr.c +++ b/lib/libc/net/linkaddr.c @@ -34,8 +34,12 @@ static char sccsid[] = "@(#)linkaddr.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include #include + #include #include + +#include +#include #include /* States*/ @@ -116,53 +120,109 @@ link_addr(const char *addr, struct sockaddr_dl *sdl) return; } -static const char hexlist[] = "0123456789abcdef"; - char * link_ntoa(const struct sockaddr_dl *sdl) { static char obuf[64]; + size_t buflen; _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small"); + + /* + * Ignoring the return value of link_ntoa_r() is safe here because it + * always writes the terminating NUL. This preserves the traditional + * behaviour of link_ntoa(). + */ + buflen = sizeof(obuf); + (void)link_ntoa_r(sdl, obuf, &buflen); + return obuf; +} + +int +link_ntoa_r(const struct sockaddr_dl *sdl, char *obuf, size_t *buflen) +{ + static const char hexlist[] = "0123456789abcdef"; char *out; const u_char *in, *inlim; int namelen, i, rem; + size_t needed; - namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; + assert(sdl); + assert(buflen); + /* obuf may be null */ + needed = 1; /* 1 for the NUL */ out = obuf; - rem = sizeof(obuf); + if (obuf) + rem = *buflen; + else + rem = 0; + +/* + * Check if at least n bytes are available in the output buffer, plus 1 for the + * trailing NUL. If not, set rem = 0 so we stop writing. + * Either way, increment needed by the amount we would have written. + */ +#define CHECK(n) do { \ + if ((SIZE_MAX - (n)) >= needed) \ + needed += (n); \ + if (rem >= ((n) + 1)) \ + rem -= (n); \ + else \ + rem = 0; \ + } while (0) + +/* + * Write the char c to the output buffer, unless the buffer is full. + * Note that if obuf is NULL, rem is always zero. + */ +#define OUT(c) do { \ + if (rem > 0) \ + *out++ = (c); \ + } while (0) + + namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; if (namelen > 0) { - bcopy(sdl->sdl_data, out, namelen); - out += namelen; - rem -= namelen; + CHECK(namelen); + if (rem > 0) { + bcopy(sdl->sdl_data, out, namelen); + out += namelen; + } + if (sdl->sdl_alen > 0) { - *out++ = ':'; - rem--; + CHECK(1); + OUT(':'); } } - in = (const u_char *)sdl->sdl_data + sdl->sdl_nlen; + in = (const u_char *)LLADDR(sdl); inlim = in + sdl->sdl_alen; - while (in < inlim && rem > 1) { - if (in != (const u_char *)sdl->sdl_data + sdl->sdl_nlen) { - *out++ = '.'; - rem--; + while (in < inlim) { + if (in != (const u_char *)LLADDR(sdl)) { + CHECK(1); + OUT('.'); } i = *in++; if (i > 0xf) { - if (rem < 3) - break; - *out++ = hexlist[i >> 4]; - *out++ = hexlist[i & 0xf]; - rem -= 2; + CHECK(2); + OUT(hexlist[i >> 4]); + OUT(hexlist[i & 0xf]); } else { - if (rem < 2) - break; - *out++ = hexlist[i]; - rem--; + CHECK(1); + OUT(hexlist[i]); } } - *out = 0; - return (obuf); + +#undef CHECK +#undef OUT + + /* + * We always leave enough room for the NUL if possible, but the user + * might have passed a NULL or zero-length buffer. + */ + if (out && *buflen) + *out = '\0'; + + *buflen = needed; + return ((rem > 0) ? 0 : -1); } diff --git a/lib/libc/tests/net/link_addr_test.cc b/lib/libc/tests/net/link_addr_test.cc index 6b9f5a841ef7..ea8f64c6723b 100644 --- a/lib/libc/tests/net/link_addr_test.cc +++ b/lib/libc/tests/net/link_addr_test.cc @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -262,10 +263,120 @@ ATF_TEST_CASE_BODY(overlong) ::link_ntoa(&sdl)); } +/* + * Test link_ntoa_r, the re-entrant version of link_ntoa(). + */ +ATF_TEST_CASE_WITHOUT_HEAD(link_ntoa_r) +ATF_TEST_CASE_BODY(link_ntoa_r) +{ + static constexpr char garbage = 0x41; + std::vector buf; + sockaddr_dl sdl; + size_t len; + int ret; + + // Return the contents of buf as a string, using the NUL terminator to + // determine length. This is to ensure we're using the return value in + // the same way C code would, but we do a bit more verification to + // elicit a test failure rather than a SEGV if it's broken. + auto bufstr = [&buf]() -> std::string_view { + // Find the NUL. + auto end = std::ranges::find(buf, '\0'); + ATF_REQUIRE(end != buf.end()); + + // Intentionally chopping the NUL off. + return {begin(buf), end}; + }; + + // Resize the buffer and set the contents to a known garbage value, so + // we don't accidentally have a NUL in the right place when link_ntoa_r + // didn't put it there. + auto resetbuf = [&buf, &len](std::size_t size) { + len = size; + buf.resize(len); + std::ranges::fill(buf, garbage); + }; + + // Test a short address with a large buffer. + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(64); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ(10, len); + ATF_REQUIRE_EQ("ix0:1.2.3"s, bufstr()); + + // Test a buffer which is exactly the right size. + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(10); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ(10, len); + ATF_REQUIRE_EQ("ix0:1.2.3"sv, bufstr()); + + // Test various short buffers, using a table of buffer length and the + // output we expect. All of these should produce valid but truncated + // strings, with a trailing NUL and with buflen set correctly. + + auto buftests = std::vector>{ + {1u, ""sv}, + {2u, ""sv}, + {3u, ""sv}, + {4u, "ix0"sv}, + {5u, "ix0:"sv}, + {6u, "ix0:1"sv}, + {7u, "ix0:1."sv}, + {8u, "ix0:1.2"sv}, + {9u, "ix0:1.2."sv}, + }; + + for (auto const &[buflen, expected] : buftests) { + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(buflen); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + ATF_REQUIRE_EQ(expected, bufstr()); + } + + // Test a NULL buffer, which should just set buflen. + sdl = make_linkaddr("ix0:1.2.3"); + len = 0; + ret = ::link_ntoa_r(&sdl, NULL, &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + + // A NULL buffer with a non-zero length should also be accepted. + sdl = make_linkaddr("ix0:1.2.3"); + len = 64; + ret = ::link_ntoa_r(&sdl, NULL, &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + + // Test a non-NULL buffer, but with a length of zero. + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(1); + len = 0; + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + // Check we really didn't write anything. + ATF_REQUIRE_EQ(garbage, buf[0]); + + // Test a buffer which would be truncated in the middle of a two-digit + // hex octet, which should not write the truncated octet at all. + sdl = make_linkaddr("ix0:1.22.3"); + resetbuf(8); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(11, len); + ATF_REQUIRE_EQ("ix0:1."sv, bufstr()); +} + ATF_INIT_TEST_CASES(tcs) { ATF_ADD_TEST_CASE(tcs, basic); ATF_ADD_TEST_CASE(tcs, ifname); ATF_ADD_TEST_CASE(tcs, nonether); ATF_ADD_TEST_CASE(tcs, overlong); + ATF_ADD_TEST_CASE(tcs, link_ntoa_r); } diff --git a/sys/net/if_dl.h b/sys/net/if_dl.h index 31579efdeda4..80a5f452f024 100644 --- a/sys/net/if_dl.h +++ b/sys/net/if_dl.h @@ -87,6 +87,7 @@ struct sockaddr_dl *link_init_sdl(struct ifnet *, struct sockaddr *, u_char); __BEGIN_DECLS void link_addr(const char *, struct sockaddr_dl *); char *link_ntoa(const struct sockaddr_dl *); +int link_ntoa_r(const struct sockaddr_dl *, char *, size_t *); __END_DECLS #endif /* !_KERNEL */ From nobody Tue May 20 21:52:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b27Zz5FsNz5w34p; Tue, 20 May 2025 21:52:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b27Zz2cbKz3XH9; Tue, 20 May 2025 21:52:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777979; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7K7dj5EO0OwK3oQGPJkvsFTuTY0EyBwBzrP2T3dqUwI=; b=YIIJZdqEZwOxlQu7x6olk0Xg3suAhcarxTV/UNGnnlhaApuBcxYcfobx5HuB1cAHWZBYHn tAfoxagUrNH95HpOMlAn+8jlBSzCVdKl14tBOoHf1Ahdb+Km1TSruI1dDysUYIzmawrI8T spUIrYcUoByMlNUrlSeOqHdMZVEtAf4dSgXHA9URxi/7Qghl+BTiMsdphkkRyXS7TsueFk tru8SWGp6sGkxb1mcJ02EdAiqLMHMt3KgPDWEEAA34VXp0hCj7cBEZBG/6YW2UoiYtZMyv LhPJoFtZWCvI8rn6XlteHWJrosaYuW5kt6K60Z0VAG/KjGSkV9l8wvPBdOg/AQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777979; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7K7dj5EO0OwK3oQGPJkvsFTuTY0EyBwBzrP2T3dqUwI=; b=Yqn3WkRsbA5sl8cEOWiBLtvvQ5B0Iy7zEsMkprC7OpeJzEDghUmQX2jQ+5PDjXWvo7nEd5 DOG95S4DfjkJZ524WkBLwBCNE3sw+ViNO1Ei6iKWdJBAMDvPHg1Hgq/jVLu9ViIUKTOAi9 Isi5G1LbcEG8a4dtP6zxdBQVnrR9P/mi1I/kyEHEc2ahyfYOIgPsJSiJqUZezeZ1Ymn0+v 03MQChy80cQ7nm+3xg06EB7soyzcctDg6qF8/EtiD9EP95zx8GW0O2PyOVSyrsUUnU7uc0 GursIZZmFqcLpCbo6II5dLGEaXA3fBGVGdda3vH2bp+GtTTBFWTACgpAOkEbhA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747777979; a=rsa-sha256; cv=none; b=BbHMOnYiV+kyCRuUFsZQusW6zRtM+5wFUGv0R8rr0yVd+whqfjxGo3JV+33OJmGpTK5ZSb TQGKEJcdOsN4uvjzyfpNVFvWVyLxCYSuBS7iQoMY5sZnSowXDoRvdGXJOjn8FXQkfPuB7q 38Qf2MNxwqNySphjBY7OA11YpXibc6s2wXuYKsDrJ+96Qq2C5rTOG+sRlU5+bZIqZxTzO7 6aRa3WpJ3QPpH8cLCnDbqmcQgBHdWqirpHcWXi1QgtJdVv8bl3ajhizCe/g6/uPjwAqZQa px0UzZeZO5DvexkkNp7NpDRWFvDpzgjtvHGq+f/7YAna3mE8Jr1PcwAb2VdWmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b27Zz2C3Gz16Rs; Tue, 20 May 2025 21:52:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54KLqxT1039777; Tue, 20 May 2025 21:52:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54KLqxqf039774; Tue, 20 May 2025 21:52:59 GMT (envelope-from git) Date: Tue, 20 May 2025 21:52:59 GMT Message-Id: <202505202152.54KLqxqf039774@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 904876790cc5 - stable/14 - net/if_dl.h: add param names in prototypes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 904876790cc5cf86cdce3a2ca11541bae244d73b Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=904876790cc5cf86cdce3a2ca11541bae244d73b commit 904876790cc5cf86cdce3a2ca11541bae244d73b Author: Lexi Winter AuthorDate: 2025-05-09 21:34:16 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 21:49:52 +0000 net/if_dl.h: add param names in prototypes previously these _KERNEL functions were inconsistent, with some having parameter names and some not. fix this by giving them all names, per style(9). Reviewed by: thj, des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50219 (cherry picked from commit 8c7d193e3cbe3d1c9a7f7869f1748bebefabaccf) --- sys/net/if_dl.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/net/if_dl.h b/sys/net/if_dl.h index 80a5f452f024..5338f3a228d5 100644 --- a/sys/net/if_dl.h +++ b/sys/net/if_dl.h @@ -76,9 +76,10 @@ struct sockaddr_dl { #ifdef _KERNEL struct ifnet; -struct sockaddr_dl *link_alloc_sdl(size_t, int); +struct sockaddr_dl *link_alloc_sdl(size_t size, int flags); void link_free_sdl(struct sockaddr *sa); -struct sockaddr_dl *link_init_sdl(struct ifnet *, struct sockaddr *, u_char); +struct sockaddr_dl *link_init_sdl(struct ifnet *ifp, struct sockaddr *paddr, + u_char iftypes); #else /* !_KERNEL */ From nobody Tue May 20 21:53:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b27b06hJ8z5w34q; Tue, 20 May 2025 21:53:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b27b03VlXz3XHM; Tue, 20 May 2025 21:53:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777980; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HSzPBpNeLU7pUDzhqNtucP6Sr270EIBGi8u3K6uSaSQ=; b=cUOjQu7X1MnfKrKVrAhVVGTLRX4fXhKBSTxUS8drLgXCoRt677vA7t0Ahw0nfMuekYJq5r QtfIduWQNEe59jLVdIoP3WR1A7F9Sy8bo4z3UAkwjzku4vR5xuVVxE4afTm8HxqKl19tPx 94ZBg78KthA/n/VPyP6We3eYDYRUSdtIavDaSjxGSPPXNWN87fd5VjL1Wn3/2G6d/SBq00 HZheBLRRmakgS/6s/NQ6d8+P2tHDNThCSMNQIuE3T++3lO/5QfEGtdD5Wjob0eUA4cp2mL GKgz7LDjFjcHQre1cWPve6kUwYK/knAyOSryF6EWdgPC2Y+Do0ViEAzA4hD1eg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747777980; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HSzPBpNeLU7pUDzhqNtucP6Sr270EIBGi8u3K6uSaSQ=; b=uRaScD6UiP23Jpqzsw31Xuao12halKeZV2yKrh9ymCDOEmcxiVgooow+8q5FA9TmHOntQD eupZADJprSWseqiIjGok5dyO/Vzo5KDBOR0Z1yVEfRorc1Lcl1xoozdep1gFI68Sj28s3P NAdFs4UL4/w4Dw8wTMDEwRBwv4OSPRa2WV954cmYCQagN0SpgeS+7AV+/UUiaOPPf6n3SY WM8mOJTHPFrt4DxtmjKCYYshaTDNXvKhWxDcURarsIAyeETpjDP0sliFZqAm6FG/jqGgiW qKViO1Rec0idOOI8RsQYNjYwbfHZF6qDbFQ7fBt/OmvPnEI5754gT0CCwpJtHw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747777980; a=rsa-sha256; cv=none; b=lD5ZQW4I4ZlvR/Xt38QHfJbcf6TFbwNcaosWfc3lxAefb5TjkbnFb9y3hhBcn+3f0TKwRf LhtLxqmfMdnAi/xk4P2jxPsNxU42zQwnXgQzYB1SoPk6tGzDBPGFfu0z97iz33WTz9873x 3qo/M52ezcHo4e70nH1FN1wdYoh4sQ7BoAM+12+0sQhJO/8VzbtQWPCzcHBsU7twoTaZl8 S0qIeB8D7HbMX4oAZXEED0WbdTpRmwXMdBwJ5VXv5iu2Q5cRP0jpHg+ZuVU0gnsa4Wu4jx RlqLG0TYHjDR1ib6ghaLOMrjGmfFzi4JIvpGOGh2VSTZOwSgwXCodCq8bRg6kA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b27b02zKHz16Hx; Tue, 20 May 2025 21:53:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54KLr0jT039818; Tue, 20 May 2025 21:53:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54KLr0ww039815; Tue, 20 May 2025 21:53:00 GMT (envelope-from git) Date: Tue, 20 May 2025 21:53:00 GMT Message-Id: <202505202153.54KLr0ww039815@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 37303e96528e - stable/14 - link_addr: be more strict about address formats List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 37303e96528e3c4662a464cfc778ddaa5194a3d1 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=37303e96528e3c4662a464cfc778ddaa5194a3d1 commit 37303e96528e3c4662a464cfc778ddaa5194a3d1 Author: Lexi Winter AuthorDate: 2025-05-14 22:02:59 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 21:49:52 +0000 link_addr: be more strict about address formats instead of accepting any character as a delimiter, only accept ':', '.' and '-', and only permit a single delimiter in an address. this prevents accepting bizarre addresses like: ifconfig epair2a link 10.1.2.200/28 ... which is particularly problematic on an INET6-only system, in which case ifconfig defaults to the 'link' family, meaning that: ifconfig epair2a 10.1.2.200/28 ... changes the Ethernet address of the interface. bump __FreeBSD_version so link_addr() consumers can detect the change. Reviewed by: kp, des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D49936 (cherry picked from commit a1215090416b8afb346fb2ff5b38f25ba0134a3a) --- lib/libc/net/linkaddr.3 | 34 +++--- lib/libc/net/linkaddr.c | 198 +++++++++++++++++++++++------------ lib/libc/tests/net/link_addr_test.cc | 152 ++++++++++++++++++++++++++- sbin/ifconfig/af_link.c | 3 +- sys/net/if_dl.h | 2 +- sys/sys/param.h | 2 +- 6 files changed, 307 insertions(+), 84 deletions(-) diff --git a/lib/libc/net/linkaddr.3 b/lib/libc/net/linkaddr.3 index c91a50c9b5b9..ceb5c4a79e9a 100644 --- a/lib/libc/net/linkaddr.3 +++ b/lib/libc/net/linkaddr.3 @@ -30,7 +30,7 @@ .\" .\" From: @(#)linkaddr.3 8.1 (Berkeley) 7/28/93 .\" -.Dd May 7, 2025 +.Dd May 9, 2025 .Dt LINK_ADDR 3 .Os .Sh NAME @@ -44,7 +44,7 @@ .In sys/types.h .In sys/socket.h .In net/if_dl.h -.Ft void +.Ft int .Fn link_addr "const char *addr" "struct sockaddr_dl *sdl" .Ft char * .Fn link_ntoa "const struct sockaddr_dl *sdl" @@ -53,9 +53,19 @@ .Sh DESCRIPTION The routine .Fn link_addr -interprets character strings representing -link-level addresses, returning binary information suitable -for use in system calls. +parses a character string +.Fa addr +representing a link-level address, +and stores the resulting address in the structure pointed to by +.Fa sdl . +A link-level address consists of an optional interface name, followed by +a colon (which is required in all cases), followed by an address +consisting of either a string of hexadecimal digits, or a series of +hexadecimal octets separated by one of the characters +.Sq "." , +.Sq ":" , +or +.Sq - . .Pp The routine .Fn link_ntoa @@ -135,10 +145,11 @@ was at least one byte in size. .Pp The .Fn link_addr -function -has no return value. -(See -.Sx BUGS . ) +function returns 0 on success. +If the address did not appear to be a valid link-level address, -1 is +returned and +.Va errno +is set to indicate the error. .Sh SEE ALSO .Xr getnameinfo 3 .Sh HISTORY @@ -156,11 +167,6 @@ function appeared in The returned values for link_ntoa reside in a static memory area. .Pp -The function -.Fn link_addr -should diagnose improperly formed input, and there should be an unambiguous -way to recognize this. -.Pp If the .Va sdl_len field of the link socket address diff --git a/lib/libc/net/linkaddr.c b/lib/libc/net/linkaddr.c index 47ec378d5fd8..44986bd6aa99 100644 --- a/lib/libc/net/linkaddr.c +++ b/lib/libc/net/linkaddr.c @@ -39,87 +39,153 @@ static char sccsid[] = "@(#)linkaddr.c 8.1 (Berkeley) 6/4/93"; #include #include +#include #include #include -/* States*/ -#define NAMING 0 -#define GOTONE 1 -#define GOTTWO 2 -#define RESET 3 -/* Inputs */ -#define DIGIT (4*0) -#define END (4*1) -#define DELIM (4*2) -#define LETTER (4*3) - -void +int link_addr(const char *addr, struct sockaddr_dl *sdl) { char *cp = sdl->sdl_data; char *cplim = sdl->sdl_len + (char *)sdl; - int byte = 0, state = NAMING, new; + const char *nptr; + size_t newsize; + int error = 0; + char delim = 0; + /* Initialise the sdl to zero, except for sdl_len. */ bzero((char *)&sdl->sdl_family, sdl->sdl_len - 1); sdl->sdl_family = AF_LINK; - do { - state &= ~LETTER; - if ((*addr >= '0') && (*addr <= '9')) { - new = *addr - '0'; - } else if ((*addr >= 'a') && (*addr <= 'f')) { - new = *addr - 'a' + 10; - } else if ((*addr >= 'A') && (*addr <= 'F')) { - new = *addr - 'A' + 10; - } else if (*addr == 0) { - state |= END; - } else if (state == NAMING && - (((*addr >= 'A') && (*addr <= 'Z')) || - ((*addr >= 'a') && (*addr <= 'z')))) - state |= LETTER; - else - state |= DELIM; - addr++; - switch (state /* | INPUT */) { - case NAMING | DIGIT: - case NAMING | LETTER: - *cp++ = addr[-1]; - continue; - case NAMING | DELIM: - state = RESET; - sdl->sdl_nlen = cp - sdl->sdl_data; - continue; - case GOTTWO | DIGIT: - *cp++ = byte; - /* FALLTHROUGH */ - case RESET | DIGIT: - state = GOTONE; - byte = new; - continue; - case GOTONE | DIGIT: - state = GOTTWO; - byte = new + (byte << 4); - continue; - default: /* | DELIM */ - state = RESET; - *cp++ = byte; - byte = 0; - continue; - case GOTONE | END: - case GOTTWO | END: - *cp++ = byte; - /* FALLTHROUGH */ - case RESET | END: + + /* + * Everything up to the first ':' is the interface name. Usually the + * ':' should always be present even if there's no interface name, but + * since this interface was poorly specified in the past, accept a + * missing colon as meaning no interface name. + */ + if ((nptr = strchr(addr, ':')) != NULL) { + size_t namelen = nptr - addr; + + /* Ensure the sdl is large enough to store the name. */ + if (namelen > cplim - cp) { + errno = ENOSPC; + return (-1); + } + + memcpy(cp, addr, namelen); + cp += namelen; + sdl->sdl_nlen = namelen; + /* Skip the interface name and the colon. */ + addr += namelen + 1; + } + + /* + * The remainder of the string should be hex digits representing the + * address, with optional delimiters. Each two hex digits form one + * octet, but octet output can be forced using a delimiter, so we accept + * a long string of hex digits, or a mix of delimited and undelimited + * digits like "1122.3344.5566", or delimited one- or two-digit octets + * like "1.22.3". + * + * If anything fails at this point, exit the loop so we set sdl_alen and + * sdl_len based on whatever we did manage to parse. This preserves + * compatibility with the 4.3BSD version of link_addr, which had no way + * to indicate an error and would just return. + */ +#define DIGIT(c) \ + (((c) >= '0' && (c) <= '9') ? ((c) - '0') \ + : ((c) >= 'a' && (c) <= 'f') ? ((c) - 'a' + 10) \ + : ((c) >= 'A' && (c) <= 'F') ? ((c) - 'A' + 10) \ + : (-1)) +#define ISDELIM(c) (((c) == '.' || (c) == ':' || (c) == '-') && \ + (delim == 0 || delim == (c))) + + for (;;) { + int digit, digit2; + + /* + * Treat any leading delimiters as empty bytes. This supports + * the (somewhat obsolete) form of Ethernet addresses with empty + * octets, e.g. "1::3:4:5:6". + */ + while (ISDELIM(*addr) && cp < cplim) { + delim = *addr++; + *cp++ = 0; + } + + /* Did we reach the end of the string? */ + if (*addr == '\0') + break; + + /* + * If not, the next character must be a digit, so make sure we + * have room for at least one more octet. + */ + + if (cp >= cplim) { + error = ENOSPC; break; } - break; - } while (cp < cplim); + + if ((digit = DIGIT(*addr)) == -1) { + error = EINVAL; + break; + } + + ++addr; + + /* If the next character is another digit, consume it. */ + if ((digit2 = DIGIT(*addr)) != -1) { + digit = (digit << 4) | digit2; + ++addr; + } + + if (ISDELIM(*addr)) { + /* + * If the digit is followed by a delimiter, write it + * and consume the delimiter. + */ + delim = *addr++; + *cp++ = digit; + } else if (DIGIT(*addr) != -1) { + /* + * If two digits are followed by a third digit, treat + * the two digits we have as a single octet and + * continue. + */ + *cp++ = digit; + } else if (*addr == '\0') { + /* If the digit is followed by EOS, we're done. */ + *cp++ = digit; + break; + } else { + /* Otherwise, the input was invalid. */ + error = EINVAL; + break; + } + } +#undef DIGIT +#undef ISDELIM + + /* How many bytes did we write to the address? */ sdl->sdl_alen = cp - LLADDR(sdl); - new = cp - (char *)sdl; - if (new > sizeof(*sdl)) - sdl->sdl_len = new; - return; + + /* + * The user might have given us an sdl which is larger than sizeof(sdl); + * in that case, record the actual size of the new sdl. + */ + newsize = cp - (char *)sdl; + if (newsize > sizeof(*sdl)) + sdl->sdl_len = (u_char)newsize; + + if (error == 0) + return (0); + + errno = error; + return (-1); } + char * link_ntoa(const struct sockaddr_dl *sdl) { diff --git a/lib/libc/tests/net/link_addr_test.cc b/lib/libc/tests/net/link_addr_test.cc index ea8f64c6723b..b973b924dc13 100644 --- a/lib/libc/tests/net/link_addr_test.cc +++ b/lib/libc/tests/net/link_addr_test.cc @@ -71,10 +71,12 @@ sockaddr_dl make_linkaddr(const std::string &addr) { auto sdl = sockaddr_dl{}; + int ret; sdl.sdl_len = sizeof(sdl); - ::link_addr(addr.c_str(), &sdl); + ret = ::link_addr(addr.c_str(), &sdl); + ATF_REQUIRE_EQ(0, ret); ATF_REQUIRE_EQ(AF_LINK, static_cast(sdl.sdl_family)); ATF_REQUIRE_EQ(true, sdl.sdl_len > 0); ATF_REQUIRE_EQ(true, sdl.sdl_nlen >= 0); @@ -176,6 +178,10 @@ std::vector test_addresses{ {"aa:bb:cc:dd:ee:ff"s, "aa.bb.cc.dd.ee.ff", ether_addr{0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}, + + // Address with a blank octet; this is an old form of Ethernet address. + {"00:11::33:44:55"s, "0.11.0.33.44.55", + ether_addr{0x00, 0x11, 0x00, 0x33, 0x44, 0x55}}, }; /* @@ -219,6 +225,43 @@ ATF_TEST_CASE_BODY(ifname) } +/* + * Test with some invalid addresses. + */ +ATF_TEST_CASE_WITHOUT_HEAD(invalid) +ATF_TEST_CASE_BODY(invalid) +{ + auto const invalid_addresses = std::vector{ + // Invalid separator + ":1/2/3"s, + "ix0:1/2/3"s, + + // Multiple different separators + ":1.2-3"s, + "ix0:1.2-3"s, + + // An IP address + ":10.1.2.200/28"s, + "ix0:10.1.2.200/28"s, + + // Valid address followed by garbage + ":1.2.3xxx"s, + ":1.2.3.xxx"s, + "ix0:1.2.3xxx"s, + "ix0:1.2.3.xxx"s, + }; + + for (auto const &addr : invalid_addresses) { + int ret; + + auto sdl = sockaddr_dl{}; + sdl.sdl_len = sizeof(sdl); + + ret = link_addr(addr.c_str(), &sdl); + ATF_REQUIRE_EQ(-1, ret); + } +} + /* * Test some non-Ethernet addresses. */ @@ -245,6 +288,111 @@ ATF_TEST_CASE_BODY(nonether) lladdr(sdl))); } +/* + * Test link_addr behaviour with undersized buffers. + */ +ATF_TEST_CASE_WITHOUT_HEAD(smallbuf) +ATF_TEST_CASE_BODY(smallbuf) +{ + static constexpr auto garbage = std::byte{0xcc}; + auto buf = std::vector(); + sockaddr_dl *sdl; + int ret; + + /* + * Make an sdl with an sdl_data member of the appropriate size, and + * place it in buf. Ensure it's followed by a trailing byte of garbage + * so we can test that link_addr doesn't write past the end. + */ + auto mksdl = [&buf](std::size_t datalen) -> sockaddr_dl * { + auto actual_size = datalen + offsetof(sockaddr_dl, sdl_data); + + buf.resize(actual_size + 1); + std::ranges::fill(buf, garbage); + + auto *sdl = new(reinterpret_cast(&buf[0])) + sockaddr_dl; + sdl->sdl_len = actual_size; + return (sdl); + }; + + /* An sdl large enough to store the interface name */ + sdl = mksdl(3); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ(3, sdl->sdl_nlen); + ATF_REQUIRE_EQ("ix0", ifname(*sdl)); + ATF_REQUIRE_EQ(0, static_cast(sdl->sdl_alen)); + + /* + * For these tests, test both with and without an interface name, since + * that will overflow the buffer in different places. + */ + + /* An empty sdl. Nothing may grow on this cursed ground. */ + + sdl = mksdl(0); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ(0, sdl->sdl_nlen); + ATF_REQUIRE_EQ(0, static_cast(sdl->sdl_alen)); + + sdl = mksdl(0); + ret = link_addr(":1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ(0, sdl->sdl_nlen); + ATF_REQUIRE_EQ(0, static_cast(sdl->sdl_alen)); + + /* + * An sdl large enough to store the interface name and two octets of the + * address. + */ + + sdl = mksdl(5); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ("ix0", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02 }, lladdr(*sdl))); + + sdl = mksdl(2); + ret = link_addr(":1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ("", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02 }, lladdr(*sdl))); + + /* + * An sdl large enough to store the entire address. + */ + + sdl = mksdl(6); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ("ix0", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02, 0x03 }, lladdr(*sdl))); + + sdl = mksdl(3); + ret = link_addr(":1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ("", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02, 0x03 }, lladdr(*sdl))); +} + /* * Test an extremely long address which would overflow link_ntoa's internal * buffer. It should handle this by truncating the output. @@ -376,6 +524,8 @@ ATF_INIT_TEST_CASES(tcs) { ATF_ADD_TEST_CASE(tcs, basic); ATF_ADD_TEST_CASE(tcs, ifname); + ATF_ADD_TEST_CASE(tcs, smallbuf); + ATF_ADD_TEST_CASE(tcs, invalid); ATF_ADD_TEST_CASE(tcs, nonether); ATF_ADD_TEST_CASE(tcs, overlong); ATF_ADD_TEST_CASE(tcs, link_ntoa_r); diff --git a/sbin/ifconfig/af_link.c b/sbin/ifconfig/af_link.c index 6c23f7016806..be58a22c0e66 100644 --- a/sbin/ifconfig/af_link.c +++ b/sbin/ifconfig/af_link.c @@ -221,7 +221,8 @@ link_getaddr(const char *addr, int which) temp[0] = ':'; strcpy(temp + 1, addr); sdl.sdl_len = sizeof(sdl); - link_addr(temp, &sdl); + if (link_addr(temp, &sdl) == -1) + errx(1, "malformed link-level address"); free(temp); } if (sdl.sdl_alen > sizeof(sa->sa_data)) diff --git a/sys/net/if_dl.h b/sys/net/if_dl.h index 5338f3a228d5..411592a696df 100644 --- a/sys/net/if_dl.h +++ b/sys/net/if_dl.h @@ -86,7 +86,7 @@ struct sockaddr_dl *link_init_sdl(struct ifnet *ifp, struct sockaddr *paddr, #include __BEGIN_DECLS -void link_addr(const char *, struct sockaddr_dl *); +int link_addr(const char *, struct sockaddr_dl *); char *link_ntoa(const struct sockaddr_dl *); int link_ntoa_r(const struct sockaddr_dl *, char *, size_t *); __END_DECLS diff --git a/sys/sys/param.h b/sys/sys/param.h index 6d83f378d318..fc418aac90a5 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -75,7 +75,7 @@ * cannot include sys/param.h and should only be updated here. */ #undef __FreeBSD_version -#define __FreeBSD_version 1403500 +#define __FreeBSD_version 1403501 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From nobody Wed May 21 00:30:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2C4H0rJpz5wFQ8; Wed, 21 May 2025 00:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2C4G5tqvz3mXx; Wed, 21 May 2025 00:30:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dw6a0JcaoeKUiQ76xyrffUfyPlqrAwis6TlWW4NXgoQ=; b=k84f6OPFWBsynQfSougelTixyTM2tGqpBf3/ZOHUPLEZeF/d4V0/veu98F+5Tn4LLdxRKh /OZiczEckHqj5we+JtWICsNnDBxhsYazKi0YVGdMqfIhEozKPJc2ASXOZCarBr0eBYVOk6 huh7BU/ScvsABg5oNq/vTUg3IuvUZez5DUoh6/dmC990meq3knqKyWzCIIN6vkq0qTG0ns a5zAD1Z3XonSHSVqL2jWdi3H6+zMDoCB0yfCT66Ml05d7y6MEzTZz+6pVMC38D38hrgZqc 2tKrY372xt6rpjdQ4HnOWU+vkjSBAecPHFhuWX78qAiPvjRUuzi9hbODJ75Bng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dw6a0JcaoeKUiQ76xyrffUfyPlqrAwis6TlWW4NXgoQ=; b=Zziv0fqUcbHZisp2bJCpF0wggMBz4CrKz96fEh8GRlmsnzLaWsBb0rtq06Z4fCqPaDSUaa rtMJsWmzs3RpUiR5pYxzka2wlq2kQ6dnEpg+qge+5CGrjUxPTnd6ATqYs0HSpVwtDdfslv iHM19mHt0uhkESWsChIFgUNl103d2Ux5xBTaFu6tRzk+QyT8ckhMPDRXJ+3ABAYm1w5MVn 8HQdCDl5zv3iEJdlCI9eDFLiDG0yhXwJR/oEZA+Lph6RUb2ifwIeOah7jYUcWfR+iwerdB 9zmKDaQl0cRkfmEIIZpI2/+1rgw3cEZH2FmyQ2Y3+tI6WktpWoLSTzoXdMOZCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747787406; a=rsa-sha256; cv=none; b=afmhLWXmtM5r1yUuA3WQXQ0uaUKGxAj9DFZkGhUWad6a3crKdpLyoaVMDBbHUbKZZh9qVT /NkKZBVsHvrjIXoIedKYASERqkwa0yjIU8E84+q5xDh89eNi/+HA2AF7xWtrk8sE3BFzpK pGrRTSqS3qgRT9AhlOGY19qdGcYfgFikeUMNcy7tVFmANdEm1ZorKB2w6xzkIEjHTtHcpr jji90YExGK4xXbS5SgZBKAT31YQJ7nKj1Ic+D0uMdF/WPncYoP1kMhXz0yVhSXoxWqjqHa CtNcRWZXilNwnvOvgPHRRLWaMrV434xsvnWUs6/pfHjpFOEKAzUsVF6mBKUL7Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2C4G5VP3z19r6; Wed, 21 May 2025 00:30:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L0U6IN025799; Wed, 21 May 2025 00:30:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L0U6tF025794; Wed, 21 May 2025 00:30:06 GMT (envelope-from git) Date: Wed, 21 May 2025 00:30:06 GMT Message-Id: <202505210030.54L0U6tF025794@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 513df87288d0 - stable/13 - sys/cdefs.h: add __nodiscard annotation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 513df87288d0ac09cb378b40eeb1abd3ee79bee9 Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=513df87288d0ac09cb378b40eeb1abd3ee79bee9 commit 513df87288d0ac09cb378b40eeb1abd3ee79bee9 Author: Lexi Winter AuthorDate: 2025-05-09 21:28:14 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 21:03:29 +0000 sys/cdefs.h: add __nodiscard annotation __nodiscard adds the [[nodiscard]] attribute to a function, type or constructor in C or C++, causing a value so marked to issue a compiler warning if it is discarded (i.e., not used or assigned) other than by casting it to void. this replaces the existing __result_use_or_ignore_check, which has a similar purpose but different semantics. since __nodiscard provides more functionality (at least in GCC) and __result_use_or_ignore_check only had a single user, remove __result_use_or_ignore_check. [[nodiscard]] has been supported in C++ since C++17, but only in C since C23; however, both LLVM and GCC implement it even in older language versions, so it should always be available with a relatively modern compiler. for Clang, [[nodiscard]] in C is only available since LLVM 17, but we can fall back to __attribute__((__warn_unused_result__)) which has the same semantics and provides support back to (at least) LLVM 11. GCC supports [[nodiscard]] in both C and C++ since at least GCC 11. for GCC, we can't provide a fallback as the semantics of its warn_unused_result are different, but since __result_use_or_ignore_check isn't defined for GCC anyway, we don't lose anything here. MFC after: 2 weeks Reviewed by: des, emaste Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50217 (cherry picked from commit 7e0c5e0128c43bbae78190911aead8e1d9475ba5) --- sys/sys/cdefs.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index 080ae0912210..c549bfc3c2f3 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -394,6 +394,44 @@ #endif #endif +/* + * nodiscard attribute added in C++17 and C23, but supported by both LLVM and + * GCC in earlier language versions, so we use __has_c{,pp}_attribute to test + * for it. + * + * __nodiscard may be used on a function: + * __nodiscard int f(); + * + * or on a struct, union or enum: + * struct __nodiscard S{}; + * struct S f(); + * + * or in C++, on an object constructor. + */ + +#if defined(__cplusplus) && defined(__has_cpp_attribute) +#if __has_cpp_attribute(nodiscard) +#define __nodiscard [[nodiscard]] +#endif +#elif defined(__STDC_VERSION__) && defined(__has_c_attribute) +#if __has_c_attribute(__nodiscard__) +#define __nodiscard [[__nodiscard__]] +#endif +#endif + +#ifndef __nodiscard +/* + * LLVM 16 and earlier don't support [[nodiscard]] in C, but they do support + * __warn_unused_result__ with the same semantics, so fall back to that. + * We can't do this for GCC because the semantics are different. + */ +#ifdef __clang__ +#define __nodiscard __attribute__((__warn_unused_result__)) +#else +#define __nodiscard +#endif +#endif + /* * We use `__restrict' as a way to define the `restrict' type qualifier * without disturbing older software that is unaware of C99 keywords. From nobody Wed May 21 00:30:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2C4J0GN3z5wFdG; Wed, 21 May 2025 00:30:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2C4H6WCCz3mVL; Wed, 21 May 2025 00:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C4fSTnhz2Px6ed0fpxC349c3apTa1JMKhPqQT0MC6Eg=; b=XeJNK6F8MUjsmBhbPpMbocA80ZVlszstgrFXXPp7GPHyK+j1/VRozkAAKYOrMi5E9gfRZ3 HVNOi6AAD7oRx9SvcYA0RkelusUjpatwl4zzj5HikROPuGzjK6rBqRnI9LYHyGrkdURbcF 8exrqznJ4ehsI0ncsSzlMO4NmrO5VjcLcfER5EGWCxehmIwBIAv9sPcuV7ln5/j+MJEatF BxCKcsAkL4uzMYb6UX1dDaWibT7ZZiEo+CBBmegYs78T9DXRHoUXUL+oRbZZ71h1v68oBG y+EZZ8bixVMpP6D4ZU7iyDx5AuF7QEX9xqQKattC88kc7uMzBfNdvXEWE0sJxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C4fSTnhz2Px6ed0fpxC349c3apTa1JMKhPqQT0MC6Eg=; b=ouJrpPGUbVnd2E0JNbEl2/Ycs3RJvUINLtNcEp/I3Uq1+EW58ES1cf3MAnhJ2J3qscf1Bc YPS+6LEnkTWF0UamVnL31hLqPbUFLJ9FY31B7m4nc1nl9iEjpDg98s13Qc+h9WfZIdaZqL ZWypMcelrXsgv/ltRr5qPKJM15qwKu2uABhpumSiZ4M9HUyieGpzRZCmRNFTqczZRQiRTf y2jYc9QqdaXElwvOMcH9AmhkYO/kBfSyOd/Rvvhd5nZbh+3VJvPJL/5XX335XfWD7DUf4W +7sqJxuDxfWv+puRT0uN8YKfFLPWz/cdZN6bCHTCwmrjZpd+f4sKh0ryzUUHPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747787407; a=rsa-sha256; cv=none; b=dj4xNC2B/ifC/Yarcj7VacQMWRTByy5YH8MY/LHcWz6Jx3vyZUkm7BSRVf9fUo+xGSJsWL PIHVFZstkCaK5ZQogauE80QYNjUwZjt0sVFO1hO7GG4yH89U98o9Mx5x73XE+qzQ3CkNg7 7jySITS1A8RFEaPaPO5tReMgLrKEL1Gv59wHnB3Gb30vPHZZZbn0KJEIJdqXoH2vKEkYfk iOKzPm5zVrJ8DG7y9Mtulxo6QYG2aGL0YFLTWxcyNWnHvAdnfL4EsAePEr4/vDbLVsiDiO to6IQ5hn4xiu72WWvibayimYPIEevH7mgIzL4WDryp9fAMtQKqMDr8KTvQ+87Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2C4H5zx9z19r7; Wed, 21 May 2025 00:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L0U7Sc026062; Wed, 21 May 2025 00:30:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L0U7tr026057; Wed, 21 May 2025 00:30:07 GMT (envelope-from git) Date: Wed, 21 May 2025 00:30:07 GMT Message-Id: <202505210030.54L0U7tr026057@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 9f290050a6cd - stable/13 - ng_sample: fix style nits List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9f290050a6cda849783d4d58e8f9a3307dc3792e Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=9f290050a6cda849783d4d58e8f9a3307dc3792e commit 9f290050a6cda849783d4d58e8f9a3307dc3792e Author: Seyed Pouria Mousavizadeh Tehrani AuthorDate: 2025-05-16 16:19:56 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 21:03:29 +0000 ng_sample: fix style nits MFC after: 3 days Reviewed by: ivy, kp, des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50343 (cherry picked from commit 95c414dd27c26285cdd6ed4288832b3db0ea6628) --- sys/netgraph/ng_sample.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/netgraph/ng_sample.c b/sys/netgraph/ng_sample.c index 54b7f2026fa1..06c6785e6103 100644 --- a/sys/netgraph/ng_sample.c +++ b/sys/netgraph/ng_sample.c @@ -271,7 +271,7 @@ ng_xxx_rcvmsg(node_p node, item_p item, hook_p lasthook) struct ngxxxstat *stats; NG_MKRESPONSE(resp, msg, sizeof(*stats), M_NOWAIT); - if (!resp) { + if (resp == NULL) { error = ENOMEM; break; } @@ -320,7 +320,7 @@ ng_xxx_rcvmsg(node_p node, item_p item, hook_p lasthook) * in the connect() method. */ static int -ng_xxx_rcvdata(hook_p hook, item_p item ) +ng_xxx_rcvdata(hook_p hook, item_p item) { const xxx_p xxxp = NG_NODE_PRIVATE(NG_HOOK_NODE(hook)); int chan = -2; From nobody Wed May 21 00:30:08 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2C4K3b65z5wFbq; Wed, 21 May 2025 00:30:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2C4J74nKz3mbb; Wed, 21 May 2025 00:30:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YwszrmKP09VSu6NpmUOoFVSM4lRXGCcEskUteUHf3S8=; b=NukmVt5oyHp7+rPSTynqSxkPQivubf7PwEqFPw/PwSAKsWChlpGqGLmlDLmRacq9dV+yOR K3TDiD9L/HoUs4hlIe1I1/cl1U2b5Uf2xCL0p+rWbTQ3cA11aB2NpGs/dRibXdLeh4hLo2 cNZ/QHgFBrPczb7Xea6hBdwn11jeSBPRDnOYZ5IBQ5Xyu8tC/aaX1gxU0hF+chl5LEb/bn I4u5e2uK1ef9VsZ96UM5MocAvNRbMfvIWqbyTaSePurE17wXb1FPygkrgH3WjGVcYxHE0Y Oe4vaN16cWm5sBU9xO/a9rrIAz8lVWlwMUjP3of45UntPXAKXTuWaLYjib5aZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YwszrmKP09VSu6NpmUOoFVSM4lRXGCcEskUteUHf3S8=; b=nQtqViandkAN6enwjlLU32aygkoKDnSBwVYZpidQ/8f+3FTZW0jVIowUx0vEY1U8/eOfd2 uiBY5wF3TEiTSsP7zwCyE0RY4EgaPYzbomSZevhJs6WVwJrqinnj6ry4N/qcUvWqKVkFr2 ESAEiFdm3rJM6BeKCsCvGc6yicVL7G9EIAbQM4RShD3ehYTdBoYXpDu0P5yPffhAkGmJ0L gVM/8GVH+D+aqDd+rA4EgqJ83afZgsKh5sQ9K9L07i9ntSThmuMg73BJaL9eRX+0e7pMPv CWY0CdxEkULNcShu38LugI3Rf0Lc2zkxAv02ylggmJgZRiXRFqYIeU0M6h+e1g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747787409; a=rsa-sha256; cv=none; b=lSDR24X/Aij43zxVs1XZRqt1+NVB9OxDUDbBfrqQ64jDM/MSituwLqOMnM0G2hhOPX6Yxg NdWp5tYsqJRaURBQxQY8vPhNNi2pR9SJv2kpSaEvl6M9QQz1+sFqWBHmrcCkhaQt2F07ab NJbGw66ScAKK4QqaVFNuZXYpqyNIlRP0MuRp5QqAjEnIPcOs4R0VN0bhbwsttMCZia91Gi In3yIHMb3INHGDxGAtXBlE2+COqYE1ke/h/kk0r5TjyETu/Ed+DxXnVIINl20YZD5cDRtq K1YfOJD4sEjmwACRqf45XhCrnJ8YMnz2pSbHIi+g4rXOuon++BkhI6KJWf/5WA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2C4J6VmXz1BS1; Wed, 21 May 2025 00:30:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L0U8Gg026332; Wed, 21 May 2025 00:30:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L0U8tf026327; Wed, 21 May 2025 00:30:08 GMT (envelope-from git) Date: Wed, 21 May 2025 00:30:08 GMT Message-Id: <202505210030.54L0U8tf026327@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: c82e2174150a - stable/13 - column(1): add tests and -l flag List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c82e2174150a47cdc5bfa61e6383cfc6343c5389 Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=c82e2174150a47cdc5bfa61e6383cfc6343c5389 commit c82e2174150a47cdc5bfa61e6383cfc6343c5389 Author: Lexi Winter AuthorDate: 2025-05-07 09:27:20 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 21:03:29 +0000 column(1): add tests and -l flag column(1): add tests Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D49911 (cherry picked from commit 6f2b1b56ac3dd154bd98f5a7ea075abcb4356560) column(1): add -l flag the '-l ' flag limits the number of columns that column(1) will produce in -t mode. this is syntax-compatible with the same option in util-linux's column(1), but due to existing differences between the two implementations, it's not semantically compatible. as a side-effect, fix a pre-existing bug where empty fields could cause incorrect output: % echo ':' | column -ts: (null) while here, also fix a couple of minor existing issues. Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50290 (cherry picked from commit 313713b24c6d2a3061972c4f431515c4f1b01c77) --- etc/mtree/BSD.tests.dist | 2 + usr.bin/column/Makefile | 4 + usr.bin/column/column.1 | 11 ++- usr.bin/column/column.c | 45 +++++++--- usr.bin/column/tests/Makefile | 3 + usr.bin/column/tests/column.sh | 200 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 254 insertions(+), 11 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 4315fe9657c9..fa5c9e910049 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1009,6 +1009,8 @@ .. cmp .. + column + .. compress .. cpio diff --git a/usr.bin/column/Makefile b/usr.bin/column/Makefile index 1c304e2b3927..23933d9ef96f 100644 --- a/usr.bin/column/Makefile +++ b/usr.bin/column/Makefile @@ -1,5 +1,9 @@ # @(#)Makefile 8.1 (Berkeley) 6/6/93 +.include PROG= column +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests + .include diff --git a/usr.bin/column/column.1 b/usr.bin/column/column.1 index f9b05ccf2210..c9dff361cc9c 100644 --- a/usr.bin/column/column.1 +++ b/usr.bin/column/column.1 @@ -27,7 +27,7 @@ .\" .\" @(#)column.1 8.1 (Berkeley) 6/6/93 .\" -.Dd July 29, 2004 +.Dd May 13, 2025 .Dt COLUMN 1 .Os .Sh NAME @@ -37,6 +37,7 @@ .Nm .Op Fl tx .Op Fl c Ar columns +.Op Fl l Ar tblcols .Op Fl s Ar sep .Op Ar .Sh DESCRIPTION @@ -55,6 +56,14 @@ The options are as follows: Output is formatted for a display .Ar columns wide. +.It Fl l +When used with +.Fl t , +limit the table to +.Ar tblcols +columns in width. +The last column will contain the rest of the line, +including any delimiters. .It Fl s Specify a set of characters to be used to delimit columns for the .Fl t diff --git a/usr.bin/column/column.c b/usr.bin/column/column.c index a808113649bc..97fc83e6b589 100644 --- a/usr.bin/column/column.c +++ b/usr.bin/column/column.c @@ -67,6 +67,7 @@ static void usage(void); static int width(const wchar_t *); static int termwidth = 80; /* default terminal width */ +static int tblcols; /* number of table columns for -t */ static int entries; /* number of records */ static int eval; /* exit value */ @@ -81,7 +82,7 @@ main(int argc, char **argv) FILE *fp; int ch, tflag, xflag; char *p; - const char *src; + const char *errstr, *src; wchar_t *newsep; size_t seplen; @@ -94,17 +95,26 @@ main(int argc, char **argv) termwidth = win.ws_col; tflag = xflag = 0; - while ((ch = getopt(argc, argv, "c:s:tx")) != -1) + while ((ch = getopt(argc, argv, "c:l:s:tx")) != -1) switch(ch) { case 'c': - termwidth = atoi(optarg); + termwidth = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + errx(1, "invalid terminal width \"%s\": %s", + optarg, errstr); + break; + case 'l': + tblcols = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + errx(1, "invalid max width \"%s\": %s", + optarg, errstr); break; case 's': src = optarg; seplen = mbsrtowcs(NULL, &src, 0, NULL); if (seplen == (size_t)-1) err(1, "bad separator"); - newsep = malloc((seplen + 1) * sizeof(wchar_t)); + newsep = calloc(seplen + 1, sizeof(wchar_t)); if (newsep == NULL) err(1, NULL); mbsrtowcs(newsep, &src, seplen + 1, NULL); @@ -123,6 +133,9 @@ main(int argc, char **argv) argc -= optind; argv += optind; + if (tblcols && !tflag) + errx(1, "the -l flag cannot be used without the -t flag"); + if (!*argv) input(stdin); else for (; *argv; ++argv) @@ -230,7 +243,7 @@ maketbl(void) int *lens, maxcols; TBL *tbl; wchar_t **cols; - wchar_t *last; + wchar_t *s; if ((t = tbl = calloc(entries, sizeof(TBL))) == NULL) err(1, NULL); @@ -239,9 +252,11 @@ maketbl(void) if ((lens = calloc(maxcols, sizeof(int))) == NULL) err(1, NULL); for (cnt = 0, lp = list; cnt < entries; ++cnt, ++lp, ++t) { - for (coloff = 0, p = *lp; - (cols[coloff] = wcstok(p, separator, &last)); - p = NULL) + for (p = *lp; wcschr(separator, *p); ++p) + /* nothing */ ; + for (coloff = 0; *p;) { + cols[coloff] = p; + if (++coloff == maxcols) { if (!(cols = realloc(cols, ((u_int)maxcols + DEFCOLS) * sizeof(wchar_t *))) || @@ -252,6 +267,16 @@ maketbl(void) 0, DEFCOLS * sizeof(int)); maxcols += DEFCOLS; } + + if ((!tblcols || coloff < tblcols) && + (s = wcspbrk(p, separator))) { + *s++ = L'\0'; + while (*s && wcschr(separator, *s)) + ++s; + p = s; + } else + break; + } if ((t->list = calloc(coloff, sizeof(*t->list))) == NULL) err(1, NULL); if ((t->len = calloc(coloff, sizeof(int))) == NULL) @@ -332,8 +357,8 @@ width(const wchar_t *wcs) static void usage(void) { - (void)fprintf(stderr, - "usage: column [-tx] [-c columns] [-s sep] [file ...]\n"); + "usage: column [-tx] [-c columns] [-l tblcols]" + " [-s sep] [file ...]\n"); exit(1); } diff --git a/usr.bin/column/tests/Makefile b/usr.bin/column/tests/Makefile new file mode 100644 index 000000000000..40a7767f0dc0 --- /dev/null +++ b/usr.bin/column/tests/Makefile @@ -0,0 +1,3 @@ +ATF_TESTS_SH= column + +.include diff --git a/usr.bin/column/tests/column.sh b/usr.bin/column/tests/column.sh new file mode 100644 index 000000000000..283dc88bff1a --- /dev/null +++ b/usr.bin/column/tests/column.sh @@ -0,0 +1,200 @@ +# SPDX-License-Identifier: ISC +# +# Copyright (c) 2025 Lexi Winter +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +atf_test_case "basic" +basic_head() +{ + atf_set descr "Basic column(1) with default options" +} + +basic_body() +{ + cat >input.1 <input.2 <input.3 <expected <input.1 <input.2 <input.3 <expected <input.1 <input.2 <input.3 <expected <input <expected <input <expected < To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 55f0de279306 - stable/13 - libc tests: add tests for link_addr(3) and link_ntoa(3) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 55f0de27930678dbd0b5d6e627e5dd5eee3d11f8 Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=55f0de27930678dbd0b5d6e627e5dd5eee3d11f8 commit 55f0de27930678dbd0b5d6e627e5dd5eee3d11f8 Author: Lexi Winter AuthorDate: 2025-05-05 17:25:03 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 22:11:46 +0000 libc tests: add tests for link_addr(3) and link_ntoa(3) for now, since link_addr() has no way to indicate an error, these are only positive tests which check the outcome of valid inputs. Reviewed by: ngie, des, adrian Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50062 (cherry picked from commit 757e973fb2112ea442aa8990d991f406d407b6f7) link_addr_test: use , not is the correct header; this fixes the GCC build. while here, sort the headers. Fixes: 757e973fb211 ("libc tests: add tests for link_addr(3) and link_ntoa(3)") Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50189 (cherry picked from commit bbffdfef3bf04b2f89027cb20e2019fdc74c4b1b) --- lib/libc/tests/net/Makefile | 3 + lib/libc/tests/net/link_addr_test.cc | 271 +++++++++++++++++++++++++++++++++++ 2 files changed, 274 insertions(+) diff --git a/lib/libc/tests/net/Makefile b/lib/libc/tests/net/Makefile index 6e90f22b98f5..d939edeeb00d 100644 --- a/lib/libc/tests/net/Makefile +++ b/lib/libc/tests/net/Makefile @@ -4,6 +4,9 @@ PACKAGE= tests ATF_TESTS_C+= ether_test ATF_TESTS_C+= eui64_aton_test ATF_TESTS_C+= eui64_ntoa_test +ATF_TESTS_CXX+= link_addr_test + +CXXSTD.link_addr_test= c++20 CFLAGS+= -I${.CURDIR} diff --git a/lib/libc/tests/net/link_addr_test.cc b/lib/libc/tests/net/link_addr_test.cc new file mode 100644 index 000000000000..6b9f5a841ef7 --- /dev/null +++ b/lib/libc/tests/net/link_addr_test.cc @@ -0,0 +1,271 @@ +/* + * Copyright (c) 2025 Lexi Winter + * + * SPDX-License-Identifier: ISC + */ + +/* + * Tests for link_addr() and link_ntoa(). + * + * link_addr converts a string representing an (optionally null) interface name + * followed by an Ethernet address into a sockaddr_dl. The expected format is + * "[ifname]:lladdr". This means if ifname is not specified, the leading colon + * is still required. + * + * link_ntoa does the inverse of link_addr, returning a string representation + * of the address. + * + * Note that the output format of link_ntoa is not valid input for link_addr + * since the leading colon may be omitted. This is by design. + */ + +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include + +using namespace std::literals; + +/* + * Define operator== and operator<< for ether_addr so we can use them in + * ATF_EXPECT_EQ expressions. + */ + +bool +operator==(ether_addr a, ether_addr b) +{ + return (std::ranges::equal(a.octet, b.octet)); +} + +std::ostream & +operator<<(std::ostream &s, ether_addr a) +{ + for (unsigned i = 0; i < ETHER_ADDR_LEN; ++i) { + if (i > 0) + s << ":"; + + s << std::format("{:02x}", static_cast(a.octet[i])); + } + + return (s); +} + +/* + * Create a sockaddr_dl from a string using link_addr(), and ensure the + * returned struct looks valid. + */ +sockaddr_dl +make_linkaddr(const std::string &addr) +{ + auto sdl = sockaddr_dl{}; + + sdl.sdl_len = sizeof(sdl); + ::link_addr(addr.c_str(), &sdl); + + ATF_REQUIRE_EQ(AF_LINK, static_cast(sdl.sdl_family)); + ATF_REQUIRE_EQ(true, sdl.sdl_len > 0); + ATF_REQUIRE_EQ(true, sdl.sdl_nlen >= 0); + + return (sdl); +} + +/* + * Return the data stored in a sockaddr_dl as a span. + */ +std::span +data(const sockaddr_dl &sdl) +{ + // sdl_len is the entire structure, but we only want the length of the + // data area. + auto dlen = sdl.sdl_len - offsetof(sockaddr_dl, sdl_data); + return {&sdl.sdl_data[0], dlen}; +} + +/* + * Return the interface name stored in a sockaddr_dl as a string. + */ +std::string_view +ifname(const sockaddr_dl &sdl) +{ + auto name = data(sdl).subspan(0, sdl.sdl_nlen); + return {name.begin(), name.end()}; +} + +/* + * Return the Ethernet address stored in a sockaddr_dl as an ether_addr. + */ +ether_addr +addr(const sockaddr_dl &sdl) +{ + ether_addr ret{}; + ATF_REQUIRE_EQ(ETHER_ADDR_LEN, sdl.sdl_alen); + std::ranges::copy(data(sdl).subspan(sdl.sdl_nlen, ETHER_ADDR_LEN), + &ret.octet[0]); + return (ret); +} + +/* + * Return the link address stored in a sockaddr_dl as a span of octets. + */ +std::span +lladdr(const sockaddr_dl &sdl) +{ + auto data = reinterpret_cast(LLADDR(&sdl)); + return {data, data + sdl.sdl_alen}; +} + + +/* + * Some sample addresses we use for testing. Include at least one address for + * each format we want to support. + */ + +struct test_address { + std::string input; /* value passed to link_addr */ + std::string ntoa; /* expected return from link_ntoa */ + ether_addr addr{}; /* expected return from link_addr */ +}; + +std::vector test_addresses{ + // No delimiter + {"001122334455"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Colon delimiter + {"00:11:22:33:44:55"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Dash delimiter + {"00-11-22-33-44-55"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Period delimiter (link_ntoa format) + {"00.11.22.33.44.55"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // Period delimiter (Cisco format) + {"0011.2233.4455"s, "0.11.22.33.44.55", + ether_addr{0x00, 0x11, 0x22, 0x33, 0x44, 0x55}}, + + // An addresses without leading zeroes. + {"0:1:02:30:4:55"s, "0.1.2.30.4.55", + ether_addr{0x00, 0x01, 0x02, 0x30, 0x04, 0x55}}, + + // An address with some uppercase letters. + {"AA:B:cC:Dd:e0:1f"s, "aa.b.cc.dd.e0.1f", + ether_addr{0xaa, 0x0b, 0xcc, 0xdd, 0xe0, 0x1f}}, + + // Addresses composed only of letters, to make sure they're not + // confused with an interface name. + + {"aabbccddeeff"s, "aa.bb.cc.dd.ee.ff", + ether_addr{0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}, + + {"aa:bb:cc:dd:ee:ff"s, "aa.bb.cc.dd.ee.ff", + ether_addr{0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}, +}; + +/* + * Test without an interface name. + */ +ATF_TEST_CASE_WITHOUT_HEAD(basic) +ATF_TEST_CASE_BODY(basic) +{ + for (const auto &ta : test_addresses) { + // This does basic tests on the returned value. + auto sdl = make_linkaddr(":" + ta.input); + + // Check the ifname and address. + ATF_REQUIRE_EQ(""s, ifname(sdl)); + ATF_REQUIRE_EQ(ETHER_ADDR_LEN, static_cast(sdl.sdl_alen)); + ATF_REQUIRE_EQ(ta.addr, addr(sdl)); + + // Check link_ntoa returns the expected value. + auto ntoa = std::string(::link_ntoa(&sdl)); + ATF_REQUIRE_EQ(ta.ntoa, ntoa); + } + +} + +/* + * Test with an interface name. + */ +ATF_TEST_CASE_WITHOUT_HEAD(ifname) +ATF_TEST_CASE_BODY(ifname) +{ + for (const auto &ta : test_addresses) { + auto sdl = make_linkaddr("ix0:" + ta.input); + + ATF_REQUIRE_EQ("ix0", ifname(sdl)); + ATF_REQUIRE_EQ(ETHER_ADDR_LEN, static_cast(sdl.sdl_alen)); + ATF_REQUIRE_EQ(ta.addr, addr(sdl)); + + auto ntoa = std::string(::link_ntoa(&sdl)); + ATF_REQUIRE_EQ("ix0:" + ta.ntoa, ntoa); + } + +} + +/* + * Test some non-Ethernet addresses. + */ +ATF_TEST_CASE_WITHOUT_HEAD(nonether) +ATF_TEST_CASE_BODY(nonether) +{ + sockaddr_dl sdl; + + /* A short address */ + sdl = make_linkaddr(":1:23:cc"); + ATF_REQUIRE_EQ("", ifname(sdl)); + ATF_REQUIRE_EQ("1.23.cc"s, ::link_ntoa(&sdl)); + ATF_REQUIRE_EQ(3, sdl.sdl_alen); + ATF_REQUIRE_EQ(true, + std::ranges::equal(std::vector{0x01u, 0x23u, 0xccu}, lladdr(sdl))); + + /* A long address */ + sdl = make_linkaddr(":1:23:cc:a:b:c:d:e:f"); + ATF_REQUIRE_EQ("", ifname(sdl)); + ATF_REQUIRE_EQ("1.23.cc.a.b.c.d.e.f"s, ::link_ntoa(&sdl)); + ATF_REQUIRE_EQ(9, sdl.sdl_alen); + ATF_REQUIRE_EQ(true, std::ranges::equal( + std::vector{0x01u, 0x23u, 0xccu, 0xau, 0xbu, 0xcu, 0xdu, 0xeu, 0xfu}, + lladdr(sdl))); +} + +/* + * Test an extremely long address which would overflow link_ntoa's internal + * buffer. It should handle this by truncating the output. + * (Test for SA-16:37.libc / CVE-2016-6559.) + */ +ATF_TEST_CASE_WITHOUT_HEAD(overlong) +ATF_TEST_CASE_BODY(overlong) +{ + auto sdl = make_linkaddr( + ":01.02.03.04.05.06.07.08.09.0a.0b.0c.0d.0e.0f." + "11.12.13.14.15.16.17.18.19.1a.1b.1c.1d.1e.1f." + "22.22.23.24.25.26.27.28.29.2a.2b.2c.2d.2e.2f"); + + ATF_REQUIRE_EQ( + "1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.11.12.13.14.15.16.17.18.19.1a.1b."s, + ::link_ntoa(&sdl)); +} + +ATF_INIT_TEST_CASES(tcs) +{ + ATF_ADD_TEST_CASE(tcs, basic); + ATF_ADD_TEST_CASE(tcs, ifname); + ATF_ADD_TEST_CASE(tcs, nonether); + ATF_ADD_TEST_CASE(tcs, overlong); +} From nobody Wed May 21 00:30:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2C4M3hW3z5wFSh; Wed, 21 May 2025 00:30:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2C4M1bXbz3mhh; Wed, 21 May 2025 00:30:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2IFkg154ESkT2nKUmUdgtFpQLwA9qDdzlEM+Vg9Qso0=; b=GeJapXVIqX+1zpyAkgHX6zpZAFZ+lU3RmfsTeZ1HKmosWdpDzWeOPM0jwKMM4WOta/ti/9 oAE5ffLNj5xVb7AUcORXfWPzuX5HPmToU/WJCVWwh8pGV1m232KL2BNAWowl2rMOg1O6dQ wnT/Zy+juPvjiWoxC2N7eQRcbeXGJ803uMSBlUKRczDj8WrJSqD1yteZVtzz8t2wneobIs F0vXXxgRp78gtyRJgg903lofm98lkJnp9/zOhB2m8oFivK3onHs9q04rx21HAOMJG/LF1d s7WzeVSpibW9KdCPwzYuqcxtgkbod5NnsQR4unbzB8D8I56Azi1imm5eM44PLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2IFkg154ESkT2nKUmUdgtFpQLwA9qDdzlEM+Vg9Qso0=; b=ftLsg3OnXJULmDKRz6WzftiE9VK0CVAjy375Ja+KphH3SsvHJrXXjtyxW8HHuhy+ZbnLvk An2we5vlTvYPREtK50XLaoKydZ6I5cFERUZ6bDaa7Ws8CnRMVNX2zowyiJq6mK0S+cMfFj Fty4AE024HWJX9e4ieoXPcVeeIo3fVWIZ6l6+LuwQyIAILgZbqd9y6JaOFYtozmQaCSA6k 6iSEEEpBbYC30qA/448+p0YwuxY/CM85XenTRNlgKxm1feRAp7QFMUdRjR7rfUaA3KLj5p aDFiKYqQVO/BzDSioKT9gpfWBvWjHUGj+cFy5lEONPhjfJhIyxMz0sAAusfjWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747787411; a=rsa-sha256; cv=none; b=v8VohavOKBSLFwB+z7vAIaAmrqHIZC63nfLQotwm0+fQ4ydExskJtUD0zIQHChFn6PRC40 LBynjdh8tE4akmfYhP75HjB2RQVZvfxAh/JJ0HSfhrCFx7vIosbR4eZ954dY+3bo2+JN4C fvRMxVG+hXsH+w9llsL6t/oyqV3tmeAQDYl/dlHAsmXSXg0hsnOHYeSuOOZsba/mXLSEwU ltE8VkC/KoYBL5JRF9IzZlvM9WiDt6WGIwIDnMYXpCWUXZYZNItE3vUxaMVz9Kq31jKfXZ HkdAq3nYtx4KkMzhjRCihLCoMQT1ojSkr/YtL9Vgb92kpgdAbNBXxmpRnj88fQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2C4M0WGlz19r9; Wed, 21 May 2025 00:30:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L0UAJr027487; Wed, 21 May 2025 00:30:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L0UA9t027478; Wed, 21 May 2025 00:30:10 GMT (envelope-from git) Date: Wed, 21 May 2025 00:30:10 GMT Message-Id: <202505210030.54L0UA9t027478@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 838c75f8699f - stable/13 - libc: add link_ntoa_r() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 838c75f8699fbbb54dd4ab545632bbe950b37d8c Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=838c75f8699fbbb54dd4ab545632bbe950b37d8c commit 838c75f8699fbbb54dd4ab545632bbe950b37d8c Author: Lexi Winter AuthorDate: 2025-05-07 09:34:08 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 22:11:52 +0000 libc: add link_ntoa_r() this is a re-entrant version of link_ntoa. use an in-out parameter for the buffer size, so the user requires at most two calls to determine the needed size. reimplement link_ntoa using link_ntoa_r with a static buffer. Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50202 (cherry picked from commit da509c29089ab169b667ebdf82aa903987ba9c6d) --- lib/libc/net/Makefile.inc | 7 ++- lib/libc/net/Symbol.map | 4 ++ lib/libc/net/linkaddr.3 | 45 +++++++++++++- lib/libc/net/linkaddr.c | 110 ++++++++++++++++++++++++++-------- lib/libc/tests/net/link_addr_test.cc | 111 +++++++++++++++++++++++++++++++++++ sys/net/if_dl.h | 1 + 6 files changed, 249 insertions(+), 29 deletions(-) diff --git a/lib/libc/net/Makefile.inc b/lib/libc/net/Makefile.inc index 42a089f97d74..e0dc44eb7e23 100644 --- a/lib/libc/net/Makefile.inc +++ b/lib/libc/net/Makefile.inc @@ -106,8 +106,11 @@ MLINKS+=inet6_opt_init.3 inet6_opt_append.3 \ inet6_rthdr_space.3 inet6_rthdr_lasthop.3 \ inet6_rthdr_space.3 inet6_rthdr_reverse.3 \ inet6_rthdr_space.3 inet6_rthdr_segments.3 -MLINKS+=linkaddr.3 link_addr.3 linkaddr.3 link_ntoa.3 -MLINKS+=rcmd.3 iruserok.3 rcmd.3 iruserok_sa.3 \ +MLINKS+=linkaddr.3 link_addr.3 \ + linkaddr.3 link_ntoa.3 \ + linkaddr.3 link_ntoa_r.3 +MLINKS+=rcmd.3 iruserok.3 \ + rcmd.3 iruserok_sa.3 \ rcmd.3 rcmd_af.3 \ rcmd.3 rresvport.3 rcmd.3 rresvport_af.3 \ rcmd.3 ruserok.3 diff --git a/lib/libc/net/Symbol.map b/lib/libc/net/Symbol.map index b2ecd4f08735..093987d8c5af 100644 --- a/lib/libc/net/Symbol.map +++ b/lib/libc/net/Symbol.map @@ -148,6 +148,10 @@ FBSD_1.3 { sctp_sendv; }; +FBSD_1.8 { + link_ntoa_r; +}; + FBSDprivate_1.0 { _nsdispatch; _nsyyerror; /* generated from nslexer.l */ diff --git a/lib/libc/net/linkaddr.3 b/lib/libc/net/linkaddr.3 index 6c2fb6ccfdc3..c91a50c9b5b9 100644 --- a/lib/libc/net/linkaddr.3 +++ b/lib/libc/net/linkaddr.3 @@ -30,12 +30,13 @@ .\" .\" From: @(#)linkaddr.3 8.1 (Berkeley) 7/28/93 .\" -.Dd February 28, 2007 +.Dd May 7, 2025 .Dt LINK_ADDR 3 .Os .Sh NAME .Nm link_addr , -.Nm link_ntoa +.Nm link_ntoa , +.Nm link_ntoa_r .Nd elementary address specification routines for link level access .Sh LIBRARY .Lb libc @@ -47,12 +48,15 @@ .Fn link_addr "const char *addr" "struct sockaddr_dl *sdl" .Ft char * .Fn link_ntoa "const struct sockaddr_dl *sdl" +.Ft int +.Fn link_ntoa_r "const struct sockaddr_dl *sdl" "char *obuf" "size_t *buflen" .Sh DESCRIPTION The routine .Fn link_addr interprets character strings representing link-level addresses, returning binary information suitable for use in system calls. +.Pp The routine .Fn link_ntoa takes @@ -62,9 +66,34 @@ address and returns an string representing some of the information present, including the link level address itself, and the interface name or number, if present. +The returned string is stored in a static buffer. This facility is experimental and is still subject to change. .Pp +The routine +.Fn link_ntoa_r +behaves like +.Fn link_ntoa , +except the string is placed in the provided buffer instead of a static +buffer. +The caller should initialize +.Fa buflen +to the number of bytes available in +.Fa obuf . +On return, +.Fa buflen +is set to the actual number of bytes required for the output buffer, +including the NUL terminator. +If +.Fa obuf +is NULL, then +.Fa buflen +is set as described, but nothing is written. +This may be used to determine the required length of the buffer before +calling +.Fn link_ntoa_r +a second time. +.Pp For .Fn link_addr , the string @@ -96,6 +125,14 @@ The .Fn link_ntoa function always returns a null terminated string. +.Pp +The +.Fn link_ntoa_r +function returns 0 on success, or -1 if the provided buffer was not +large enough; in the latter case, the contents of the buffer are +indeterminate, but a trailing NUL will always be written if the buffer +was at least one byte in size. +.Pp The .Fn link_addr function @@ -111,6 +148,10 @@ and .Fn link_ntoa functions appeared in .Bx 4.3 Reno . +The +.Fn link_ntoa_r +function appeared in +.Fx 15.0 . .Sh BUGS The returned values for link_ntoa reside in a static memory area. diff --git a/lib/libc/net/linkaddr.c b/lib/libc/net/linkaddr.c index df1b7b94276e..d67d2599b2b7 100644 --- a/lib/libc/net/linkaddr.c +++ b/lib/libc/net/linkaddr.c @@ -35,8 +35,12 @@ static char sccsid[] = "@(#)linkaddr.c 8.1 (Berkeley) 6/4/93"; #include #include #include + #include #include + +#include +#include #include /* States*/ @@ -117,53 +121,109 @@ link_addr(const char *addr, struct sockaddr_dl *sdl) return; } -static const char hexlist[] = "0123456789abcdef"; - char * link_ntoa(const struct sockaddr_dl *sdl) { static char obuf[64]; + size_t buflen; _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small"); + + /* + * Ignoring the return value of link_ntoa_r() is safe here because it + * always writes the terminating NUL. This preserves the traditional + * behaviour of link_ntoa(). + */ + buflen = sizeof(obuf); + (void)link_ntoa_r(sdl, obuf, &buflen); + return obuf; +} + +int +link_ntoa_r(const struct sockaddr_dl *sdl, char *obuf, size_t *buflen) +{ + static const char hexlist[] = "0123456789abcdef"; char *out; const u_char *in, *inlim; int namelen, i, rem; + size_t needed; - namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; + assert(sdl); + assert(buflen); + /* obuf may be null */ + needed = 1; /* 1 for the NUL */ out = obuf; - rem = sizeof(obuf); + if (obuf) + rem = *buflen; + else + rem = 0; + +/* + * Check if at least n bytes are available in the output buffer, plus 1 for the + * trailing NUL. If not, set rem = 0 so we stop writing. + * Either way, increment needed by the amount we would have written. + */ +#define CHECK(n) do { \ + if ((SIZE_MAX - (n)) >= needed) \ + needed += (n); \ + if (rem >= ((n) + 1)) \ + rem -= (n); \ + else \ + rem = 0; \ + } while (0) + +/* + * Write the char c to the output buffer, unless the buffer is full. + * Note that if obuf is NULL, rem is always zero. + */ +#define OUT(c) do { \ + if (rem > 0) \ + *out++ = (c); \ + } while (0) + + namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; if (namelen > 0) { - bcopy(sdl->sdl_data, out, namelen); - out += namelen; - rem -= namelen; + CHECK(namelen); + if (rem > 0) { + bcopy(sdl->sdl_data, out, namelen); + out += namelen; + } + if (sdl->sdl_alen > 0) { - *out++ = ':'; - rem--; + CHECK(1); + OUT(':'); } } - in = (const u_char *)sdl->sdl_data + sdl->sdl_nlen; + in = (const u_char *)LLADDR(sdl); inlim = in + sdl->sdl_alen; - while (in < inlim && rem > 1) { - if (in != (const u_char *)sdl->sdl_data + sdl->sdl_nlen) { - *out++ = '.'; - rem--; + while (in < inlim) { + if (in != (const u_char *)LLADDR(sdl)) { + CHECK(1); + OUT('.'); } i = *in++; if (i > 0xf) { - if (rem < 3) - break; - *out++ = hexlist[i >> 4]; - *out++ = hexlist[i & 0xf]; - rem -= 2; + CHECK(2); + OUT(hexlist[i >> 4]); + OUT(hexlist[i & 0xf]); } else { - if (rem < 2) - break; - *out++ = hexlist[i]; - rem--; + CHECK(1); + OUT(hexlist[i]); } } - *out = 0; - return (obuf); + +#undef CHECK +#undef OUT + + /* + * We always leave enough room for the NUL if possible, but the user + * might have passed a NULL or zero-length buffer. + */ + if (out && *buflen) + *out = '\0'; + + *buflen = needed; + return ((rem > 0) ? 0 : -1); } diff --git a/lib/libc/tests/net/link_addr_test.cc b/lib/libc/tests/net/link_addr_test.cc index 6b9f5a841ef7..ea8f64c6723b 100644 --- a/lib/libc/tests/net/link_addr_test.cc +++ b/lib/libc/tests/net/link_addr_test.cc @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -262,10 +263,120 @@ ATF_TEST_CASE_BODY(overlong) ::link_ntoa(&sdl)); } +/* + * Test link_ntoa_r, the re-entrant version of link_ntoa(). + */ +ATF_TEST_CASE_WITHOUT_HEAD(link_ntoa_r) +ATF_TEST_CASE_BODY(link_ntoa_r) +{ + static constexpr char garbage = 0x41; + std::vector buf; + sockaddr_dl sdl; + size_t len; + int ret; + + // Return the contents of buf as a string, using the NUL terminator to + // determine length. This is to ensure we're using the return value in + // the same way C code would, but we do a bit more verification to + // elicit a test failure rather than a SEGV if it's broken. + auto bufstr = [&buf]() -> std::string_view { + // Find the NUL. + auto end = std::ranges::find(buf, '\0'); + ATF_REQUIRE(end != buf.end()); + + // Intentionally chopping the NUL off. + return {begin(buf), end}; + }; + + // Resize the buffer and set the contents to a known garbage value, so + // we don't accidentally have a NUL in the right place when link_ntoa_r + // didn't put it there. + auto resetbuf = [&buf, &len](std::size_t size) { + len = size; + buf.resize(len); + std::ranges::fill(buf, garbage); + }; + + // Test a short address with a large buffer. + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(64); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ(10, len); + ATF_REQUIRE_EQ("ix0:1.2.3"s, bufstr()); + + // Test a buffer which is exactly the right size. + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(10); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ(10, len); + ATF_REQUIRE_EQ("ix0:1.2.3"sv, bufstr()); + + // Test various short buffers, using a table of buffer length and the + // output we expect. All of these should produce valid but truncated + // strings, with a trailing NUL and with buflen set correctly. + + auto buftests = std::vector>{ + {1u, ""sv}, + {2u, ""sv}, + {3u, ""sv}, + {4u, "ix0"sv}, + {5u, "ix0:"sv}, + {6u, "ix0:1"sv}, + {7u, "ix0:1."sv}, + {8u, "ix0:1.2"sv}, + {9u, "ix0:1.2."sv}, + }; + + for (auto const &[buflen, expected] : buftests) { + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(buflen); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + ATF_REQUIRE_EQ(expected, bufstr()); + } + + // Test a NULL buffer, which should just set buflen. + sdl = make_linkaddr("ix0:1.2.3"); + len = 0; + ret = ::link_ntoa_r(&sdl, NULL, &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + + // A NULL buffer with a non-zero length should also be accepted. + sdl = make_linkaddr("ix0:1.2.3"); + len = 64; + ret = ::link_ntoa_r(&sdl, NULL, &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + + // Test a non-NULL buffer, but with a length of zero. + sdl = make_linkaddr("ix0:1.2.3"); + resetbuf(1); + len = 0; + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(10, len); + // Check we really didn't write anything. + ATF_REQUIRE_EQ(garbage, buf[0]); + + // Test a buffer which would be truncated in the middle of a two-digit + // hex octet, which should not write the truncated octet at all. + sdl = make_linkaddr("ix0:1.22.3"); + resetbuf(8); + ret = ::link_ntoa_r(&sdl, &buf[0], &len); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(11, len); + ATF_REQUIRE_EQ("ix0:1."sv, bufstr()); +} + ATF_INIT_TEST_CASES(tcs) { ATF_ADD_TEST_CASE(tcs, basic); ATF_ADD_TEST_CASE(tcs, ifname); ATF_ADD_TEST_CASE(tcs, nonether); ATF_ADD_TEST_CASE(tcs, overlong); + ATF_ADD_TEST_CASE(tcs, link_ntoa_r); } diff --git a/sys/net/if_dl.h b/sys/net/if_dl.h index ee9ace3803f0..bdbefa39ade1 100644 --- a/sys/net/if_dl.h +++ b/sys/net/if_dl.h @@ -87,6 +87,7 @@ struct sockaddr_dl *link_init_sdl(struct ifnet *, struct sockaddr *, u_char); __BEGIN_DECLS void link_addr(const char *, struct sockaddr_dl *); char *link_ntoa(const struct sockaddr_dl *); +int link_ntoa_r(const struct sockaddr_dl *, char *, size_t *); __END_DECLS #endif /* !_KERNEL */ From nobody Wed May 21 00:30:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2C4N2bVqz5wFQD; Wed, 21 May 2025 00:30:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2C4N1D4Fz3mj1; Wed, 21 May 2025 00:30:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787412; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TsmP15/FRb91+mt1/VTEdQH2oAXFHOCuS7fIWfIUino=; b=UrD8dXc86DsOPvheRMn+WlhqJ2UrkEDlVxUAHUlZDILECYzM5pBKZm+c/1OnHzLX+QeU57 gc6HOZT+BKLV7Eojcv0+8XTKXSUxgfYLDCRzcwefbpirPJvXaq9N9WoIh0eg476BDBqHQv qxMrWNAuDcBt/2uHb3/d6YMeugqi0YPdcb512nKfkFAr9Rd6973yLn1Negl+C6HgXNZTWI zAfBue94m8D8SFdaAK90Wwi8m3GhlVKohyawL76n07FDIoQ1h/Q2/S1v/Z6njpNfW2Seqq qdcDAIo1fIDzHznbsV28tz9B3lNQSD354OLelhWGZt8BAlT6YIWg034mEfkVMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787412; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TsmP15/FRb91+mt1/VTEdQH2oAXFHOCuS7fIWfIUino=; b=LnTXGmNmtf1KdtUQu3B1lh+6vxiSdlaYRr0C4MDGnqT0RTAwRF8XQhPcHBGU9pwAsack0Q LUaahZ25EeQLn35KOWhxxS12fEBJzklPfcB/7wq/XzT3D0CTc+gMEEsnUwrUfeDTFSQBFG YG/J/qEiGnNQxthOxneMhPaotITfHZM1YSOdFWaziHqtxCnAmK+LOYO8q9poDyGWSIAZfj 3JwPfSU/h+62fl1KrbZZpMGRmTvIZgvANYQff2AlAkxR7lc8n2JH/SAOR0c8VtCiiT0l8y 3/MiY3XHGe0wYvouVQG1RreYv3TbsGcg4mmacPEl0LwhL4pVetlZpEUQECrwbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747787412; a=rsa-sha256; cv=none; b=pMUky5GBqzWeSx/jU9owv726xTktEOMTlv92I6DSSvFwvbKg3MqgXQpg+bJWtscxXJ7M66 +LzPTeRhR7gShwfppeO3bNU3SJ5/4rKFj+6kI17L6VhvG33Txx4BmAlA8XL65f5EpxbTnP SJUq1JVB2UeDiqQdBVHbGt4sL5Ixknko1epVQwiIxmfV5n8soNF0C7n/ayxfBcArPO7WdB dyILttlpiQWeXG92t8pU+Jhwy0+MCk3tr/AjvH7iuWmnRdyXJFmMkTK6oiQc0EMP75/HRa kGTIawTY5LmDkY8JE83VCFmtdgK+u19xEjErXNO+9Te0D4+PuNTcywQ5+L0zEg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2C4N0n7pz1B9L; Wed, 21 May 2025 00:30:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L0UCBb028129; Wed, 21 May 2025 00:30:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L0UCwJ028121; Wed, 21 May 2025 00:30:12 GMT (envelope-from git) Date: Wed, 21 May 2025 00:30:12 GMT Message-Id: <202505210030.54L0UCwJ028121@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 054468aa45d0 - stable/13 - net/if_dl.h: add param names in prototypes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 054468aa45d0327f85832a7b3c13c083de0537fc Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=054468aa45d0327f85832a7b3c13c083de0537fc commit 054468aa45d0327f85832a7b3c13c083de0537fc Author: Lexi Winter AuthorDate: 2025-05-09 21:34:16 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 22:11:59 +0000 net/if_dl.h: add param names in prototypes previously these _KERNEL functions were inconsistent, with some having parameter names and some not. fix this by giving them all names, per style(9). Reviewed by: thj, des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50219 (cherry picked from commit 8c7d193e3cbe3d1c9a7f7869f1748bebefabaccf) --- sys/net/if_dl.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/net/if_dl.h b/sys/net/if_dl.h index bdbefa39ade1..2c1e9bd9dd87 100644 --- a/sys/net/if_dl.h +++ b/sys/net/if_dl.h @@ -76,9 +76,10 @@ struct sockaddr_dl { #ifdef _KERNEL struct ifnet; -struct sockaddr_dl *link_alloc_sdl(size_t, int); +struct sockaddr_dl *link_alloc_sdl(size_t size, int flags); void link_free_sdl(struct sockaddr *sa); -struct sockaddr_dl *link_init_sdl(struct ifnet *, struct sockaddr *, u_char); +struct sockaddr_dl *link_init_sdl(struct ifnet *ifp, struct sockaddr *paddr, + u_char iftypes); #else /* !_KERNEL */ From nobody Wed May 21 00:30:13 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2C4P55dyz5wFdZ; Wed, 21 May 2025 00:30:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2C4P2ST2z3mW5; Wed, 21 May 2025 00:30:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NNdmRWIXoGdS5KwipJ3rgAN0lTFrmJXvGeucmwryNTE=; b=TWsHoBYCDrKjVBrhCaK20gWa0E7Jfjn7388fhNvyZ21IU4hVPPR9k8+M6sTeGMgg2cMlwy wXrLlitx2t96unhLUoMdnNXpkctpN18lik0rXgC9ThbQcMX7YI0aOvxwfgdO0aFAO1l8PX bSgaTDPWOrr8B7FF3dhIv6E3GD8m8fZHzBK9dncy5/c29gbEYrVJkRjiLHDf29fKqNigsr n9Z0paBP/sVDVvRrTMa/mrK/XeeTACCgejOk6M6ZNJEwbROScwWjcL3V+ymHZ0QHAHWy28 BCv3QwoBuUkLxuoSB+P5JC3TnHhyDMjC04VIzBGHaQY+O0Or3g9d1Hn/aHJY/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747787413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NNdmRWIXoGdS5KwipJ3rgAN0lTFrmJXvGeucmwryNTE=; b=FXtzHsMiXGBi1KfuIYzpXDcyQhek9yc69eiG0X09JsNbZarbJmd8YJWMCG2P0peLyZulWc 8/8WZ0o9OJVmAQ9FX2TpoyPo1/WYNxb4NVpALypBGKkjX/rQRYOI7a1jh2IP7suqqr5nl6 lWzzDn1dEOIUFlxrC28JZokaWLMR4I0yDGIZNt4YBKrKOKyJ9MFZE6vRh+IViLOYkSvCeK RRkpDolMiqoKgA3mdC/4I1y6vG0rZDHucFmqQHijENFeurj/DBMXcuvjy8/8LNDS1L9BiA +da3kvgxXPXx5a7XXIkspp57XLprLIOtBRNSFvUStmrq8eDaURLtqOrqy3yVRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747787413; a=rsa-sha256; cv=none; b=bMrgBayReUNGSXgPl8sPaOKJYi4sbAg1+BCzljaNNScimkojOEV3SnbrkD8nFe31YhLfUd wyrjmzbK7yMMMHH2lNeqYPATsLLdMTYZv3FY1FtSsdn1CmmVNJyH5sLQN0vKMaJg92mFCB ijkDo0/IXAYu5WJoq/SHZ8+Atbd5MSA/23lEQ4KeMNHEWaevSIXHeDaXQ8SFrtrc7zZXz9 VsWPcL41IE1kWPrth7bNgulxEm6sOAXlLJl2W0Lp3kL/p7Bh/JdXmfXvuWrJ8E8pMSACh7 L/F1Km8vzBNYiM5Vu+WUut1tJnjzI1qVtFwfjK/7hRU0YHJNhRzY64rmlvGIGQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2C4P1hp7z1B1y; Wed, 21 May 2025 00:30:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L0UDja028788; Wed, 21 May 2025 00:30:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L0UDps028783; Wed, 21 May 2025 00:30:13 GMT (envelope-from git) Date: Wed, 21 May 2025 00:30:13 GMT Message-Id: <202505210030.54L0UDps028783@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 3214a7958563 - stable/13 - link_addr: be more strict about address formats List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3214a7958563e02df3c53c26f090ce958ce8eda0 Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=3214a7958563e02df3c53c26f090ce958ce8eda0 commit 3214a7958563e02df3c53c26f090ce958ce8eda0 Author: Lexi Winter AuthorDate: 2025-05-14 22:02:59 +0000 Commit: Lexi Winter CommitDate: 2025-05-20 23:17:06 +0000 link_addr: be more strict about address formats instead of accepting any character as a delimiter, only accept ':', '.' and '-', and only permit a single delimiter in an address. this prevents accepting bizarre addresses like: ifconfig epair2a link 10.1.2.200/28 ... which is particularly problematic on an INET6-only system, in which case ifconfig defaults to the 'link' family, meaning that: ifconfig epair2a 10.1.2.200/28 ... changes the Ethernet address of the interface. bump __FreeBSD_version so link_addr() consumers can detect the change. Reviewed by: kp, des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D49936 (cherry picked from commit a1215090416b8afb346fb2ff5b38f25ba0134a3a) --- lib/libc/net/linkaddr.3 | 34 +++--- lib/libc/net/linkaddr.c | 198 +++++++++++++++++++++++------------ lib/libc/tests/net/link_addr_test.cc | 152 ++++++++++++++++++++++++++- sbin/ifconfig/af_link.c | 3 +- sys/net/if_dl.h | 2 +- sys/sys/param.h | 2 +- 6 files changed, 307 insertions(+), 84 deletions(-) diff --git a/lib/libc/net/linkaddr.3 b/lib/libc/net/linkaddr.3 index c91a50c9b5b9..ceb5c4a79e9a 100644 --- a/lib/libc/net/linkaddr.3 +++ b/lib/libc/net/linkaddr.3 @@ -30,7 +30,7 @@ .\" .\" From: @(#)linkaddr.3 8.1 (Berkeley) 7/28/93 .\" -.Dd May 7, 2025 +.Dd May 9, 2025 .Dt LINK_ADDR 3 .Os .Sh NAME @@ -44,7 +44,7 @@ .In sys/types.h .In sys/socket.h .In net/if_dl.h -.Ft void +.Ft int .Fn link_addr "const char *addr" "struct sockaddr_dl *sdl" .Ft char * .Fn link_ntoa "const struct sockaddr_dl *sdl" @@ -53,9 +53,19 @@ .Sh DESCRIPTION The routine .Fn link_addr -interprets character strings representing -link-level addresses, returning binary information suitable -for use in system calls. +parses a character string +.Fa addr +representing a link-level address, +and stores the resulting address in the structure pointed to by +.Fa sdl . +A link-level address consists of an optional interface name, followed by +a colon (which is required in all cases), followed by an address +consisting of either a string of hexadecimal digits, or a series of +hexadecimal octets separated by one of the characters +.Sq "." , +.Sq ":" , +or +.Sq - . .Pp The routine .Fn link_ntoa @@ -135,10 +145,11 @@ was at least one byte in size. .Pp The .Fn link_addr -function -has no return value. -(See -.Sx BUGS . ) +function returns 0 on success. +If the address did not appear to be a valid link-level address, -1 is +returned and +.Va errno +is set to indicate the error. .Sh SEE ALSO .Xr getnameinfo 3 .Sh HISTORY @@ -156,11 +167,6 @@ function appeared in The returned values for link_ntoa reside in a static memory area. .Pp -The function -.Fn link_addr -should diagnose improperly formed input, and there should be an unambiguous -way to recognize this. -.Pp If the .Va sdl_len field of the link socket address diff --git a/lib/libc/net/linkaddr.c b/lib/libc/net/linkaddr.c index d67d2599b2b7..c20f989143eb 100644 --- a/lib/libc/net/linkaddr.c +++ b/lib/libc/net/linkaddr.c @@ -40,87 +40,153 @@ static char sccsid[] = "@(#)linkaddr.c 8.1 (Berkeley) 6/4/93"; #include #include +#include #include #include -/* States*/ -#define NAMING 0 -#define GOTONE 1 -#define GOTTWO 2 -#define RESET 3 -/* Inputs */ -#define DIGIT (4*0) -#define END (4*1) -#define DELIM (4*2) -#define LETTER (4*3) - -void +int link_addr(const char *addr, struct sockaddr_dl *sdl) { char *cp = sdl->sdl_data; char *cplim = sdl->sdl_len + (char *)sdl; - int byte = 0, state = NAMING, new; + const char *nptr; + size_t newsize; + int error = 0; + char delim = 0; + /* Initialise the sdl to zero, except for sdl_len. */ bzero((char *)&sdl->sdl_family, sdl->sdl_len - 1); sdl->sdl_family = AF_LINK; - do { - state &= ~LETTER; - if ((*addr >= '0') && (*addr <= '9')) { - new = *addr - '0'; - } else if ((*addr >= 'a') && (*addr <= 'f')) { - new = *addr - 'a' + 10; - } else if ((*addr >= 'A') && (*addr <= 'F')) { - new = *addr - 'A' + 10; - } else if (*addr == 0) { - state |= END; - } else if (state == NAMING && - (((*addr >= 'A') && (*addr <= 'Z')) || - ((*addr >= 'a') && (*addr <= 'z')))) - state |= LETTER; - else - state |= DELIM; - addr++; - switch (state /* | INPUT */) { - case NAMING | DIGIT: - case NAMING | LETTER: - *cp++ = addr[-1]; - continue; - case NAMING | DELIM: - state = RESET; - sdl->sdl_nlen = cp - sdl->sdl_data; - continue; - case GOTTWO | DIGIT: - *cp++ = byte; - /* FALLTHROUGH */ - case RESET | DIGIT: - state = GOTONE; - byte = new; - continue; - case GOTONE | DIGIT: - state = GOTTWO; - byte = new + (byte << 4); - continue; - default: /* | DELIM */ - state = RESET; - *cp++ = byte; - byte = 0; - continue; - case GOTONE | END: - case GOTTWO | END: - *cp++ = byte; - /* FALLTHROUGH */ - case RESET | END: + + /* + * Everything up to the first ':' is the interface name. Usually the + * ':' should always be present even if there's no interface name, but + * since this interface was poorly specified in the past, accept a + * missing colon as meaning no interface name. + */ + if ((nptr = strchr(addr, ':')) != NULL) { + size_t namelen = nptr - addr; + + /* Ensure the sdl is large enough to store the name. */ + if (namelen > cplim - cp) { + errno = ENOSPC; + return (-1); + } + + memcpy(cp, addr, namelen); + cp += namelen; + sdl->sdl_nlen = namelen; + /* Skip the interface name and the colon. */ + addr += namelen + 1; + } + + /* + * The remainder of the string should be hex digits representing the + * address, with optional delimiters. Each two hex digits form one + * octet, but octet output can be forced using a delimiter, so we accept + * a long string of hex digits, or a mix of delimited and undelimited + * digits like "1122.3344.5566", or delimited one- or two-digit octets + * like "1.22.3". + * + * If anything fails at this point, exit the loop so we set sdl_alen and + * sdl_len based on whatever we did manage to parse. This preserves + * compatibility with the 4.3BSD version of link_addr, which had no way + * to indicate an error and would just return. + */ +#define DIGIT(c) \ + (((c) >= '0' && (c) <= '9') ? ((c) - '0') \ + : ((c) >= 'a' && (c) <= 'f') ? ((c) - 'a' + 10) \ + : ((c) >= 'A' && (c) <= 'F') ? ((c) - 'A' + 10) \ + : (-1)) +#define ISDELIM(c) (((c) == '.' || (c) == ':' || (c) == '-') && \ + (delim == 0 || delim == (c))) + + for (;;) { + int digit, digit2; + + /* + * Treat any leading delimiters as empty bytes. This supports + * the (somewhat obsolete) form of Ethernet addresses with empty + * octets, e.g. "1::3:4:5:6". + */ + while (ISDELIM(*addr) && cp < cplim) { + delim = *addr++; + *cp++ = 0; + } + + /* Did we reach the end of the string? */ + if (*addr == '\0') + break; + + /* + * If not, the next character must be a digit, so make sure we + * have room for at least one more octet. + */ + + if (cp >= cplim) { + error = ENOSPC; break; } - break; - } while (cp < cplim); + + if ((digit = DIGIT(*addr)) == -1) { + error = EINVAL; + break; + } + + ++addr; + + /* If the next character is another digit, consume it. */ + if ((digit2 = DIGIT(*addr)) != -1) { + digit = (digit << 4) | digit2; + ++addr; + } + + if (ISDELIM(*addr)) { + /* + * If the digit is followed by a delimiter, write it + * and consume the delimiter. + */ + delim = *addr++; + *cp++ = digit; + } else if (DIGIT(*addr) != -1) { + /* + * If two digits are followed by a third digit, treat + * the two digits we have as a single octet and + * continue. + */ + *cp++ = digit; + } else if (*addr == '\0') { + /* If the digit is followed by EOS, we're done. */ + *cp++ = digit; + break; + } else { + /* Otherwise, the input was invalid. */ + error = EINVAL; + break; + } + } +#undef DIGIT +#undef ISDELIM + + /* How many bytes did we write to the address? */ sdl->sdl_alen = cp - LLADDR(sdl); - new = cp - (char *)sdl; - if (new > sizeof(*sdl)) - sdl->sdl_len = new; - return; + + /* + * The user might have given us an sdl which is larger than sizeof(sdl); + * in that case, record the actual size of the new sdl. + */ + newsize = cp - (char *)sdl; + if (newsize > sizeof(*sdl)) + sdl->sdl_len = (u_char)newsize; + + if (error == 0) + return (0); + + errno = error; + return (-1); } + char * link_ntoa(const struct sockaddr_dl *sdl) { diff --git a/lib/libc/tests/net/link_addr_test.cc b/lib/libc/tests/net/link_addr_test.cc index ea8f64c6723b..b973b924dc13 100644 --- a/lib/libc/tests/net/link_addr_test.cc +++ b/lib/libc/tests/net/link_addr_test.cc @@ -71,10 +71,12 @@ sockaddr_dl make_linkaddr(const std::string &addr) { auto sdl = sockaddr_dl{}; + int ret; sdl.sdl_len = sizeof(sdl); - ::link_addr(addr.c_str(), &sdl); + ret = ::link_addr(addr.c_str(), &sdl); + ATF_REQUIRE_EQ(0, ret); ATF_REQUIRE_EQ(AF_LINK, static_cast(sdl.sdl_family)); ATF_REQUIRE_EQ(true, sdl.sdl_len > 0); ATF_REQUIRE_EQ(true, sdl.sdl_nlen >= 0); @@ -176,6 +178,10 @@ std::vector test_addresses{ {"aa:bb:cc:dd:ee:ff"s, "aa.bb.cc.dd.ee.ff", ether_addr{0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}, + + // Address with a blank octet; this is an old form of Ethernet address. + {"00:11::33:44:55"s, "0.11.0.33.44.55", + ether_addr{0x00, 0x11, 0x00, 0x33, 0x44, 0x55}}, }; /* @@ -219,6 +225,43 @@ ATF_TEST_CASE_BODY(ifname) } +/* + * Test with some invalid addresses. + */ +ATF_TEST_CASE_WITHOUT_HEAD(invalid) +ATF_TEST_CASE_BODY(invalid) +{ + auto const invalid_addresses = std::vector{ + // Invalid separator + ":1/2/3"s, + "ix0:1/2/3"s, + + // Multiple different separators + ":1.2-3"s, + "ix0:1.2-3"s, + + // An IP address + ":10.1.2.200/28"s, + "ix0:10.1.2.200/28"s, + + // Valid address followed by garbage + ":1.2.3xxx"s, + ":1.2.3.xxx"s, + "ix0:1.2.3xxx"s, + "ix0:1.2.3.xxx"s, + }; + + for (auto const &addr : invalid_addresses) { + int ret; + + auto sdl = sockaddr_dl{}; + sdl.sdl_len = sizeof(sdl); + + ret = link_addr(addr.c_str(), &sdl); + ATF_REQUIRE_EQ(-1, ret); + } +} + /* * Test some non-Ethernet addresses. */ @@ -245,6 +288,111 @@ ATF_TEST_CASE_BODY(nonether) lladdr(sdl))); } +/* + * Test link_addr behaviour with undersized buffers. + */ +ATF_TEST_CASE_WITHOUT_HEAD(smallbuf) +ATF_TEST_CASE_BODY(smallbuf) +{ + static constexpr auto garbage = std::byte{0xcc}; + auto buf = std::vector(); + sockaddr_dl *sdl; + int ret; + + /* + * Make an sdl with an sdl_data member of the appropriate size, and + * place it in buf. Ensure it's followed by a trailing byte of garbage + * so we can test that link_addr doesn't write past the end. + */ + auto mksdl = [&buf](std::size_t datalen) -> sockaddr_dl * { + auto actual_size = datalen + offsetof(sockaddr_dl, sdl_data); + + buf.resize(actual_size + 1); + std::ranges::fill(buf, garbage); + + auto *sdl = new(reinterpret_cast(&buf[0])) + sockaddr_dl; + sdl->sdl_len = actual_size; + return (sdl); + }; + + /* An sdl large enough to store the interface name */ + sdl = mksdl(3); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ(3, sdl->sdl_nlen); + ATF_REQUIRE_EQ("ix0", ifname(*sdl)); + ATF_REQUIRE_EQ(0, static_cast(sdl->sdl_alen)); + + /* + * For these tests, test both with and without an interface name, since + * that will overflow the buffer in different places. + */ + + /* An empty sdl. Nothing may grow on this cursed ground. */ + + sdl = mksdl(0); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ(0, sdl->sdl_nlen); + ATF_REQUIRE_EQ(0, static_cast(sdl->sdl_alen)); + + sdl = mksdl(0); + ret = link_addr(":1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ(0, sdl->sdl_nlen); + ATF_REQUIRE_EQ(0, static_cast(sdl->sdl_alen)); + + /* + * An sdl large enough to store the interface name and two octets of the + * address. + */ + + sdl = mksdl(5); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ("ix0", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02 }, lladdr(*sdl))); + + sdl = mksdl(2); + ret = link_addr(":1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(-1, ret); + ATF_REQUIRE_EQ(ENOSPC, errno); + ATF_REQUIRE_EQ("", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02 }, lladdr(*sdl))); + + /* + * An sdl large enough to store the entire address. + */ + + sdl = mksdl(6); + ret = link_addr("ix0:1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ("ix0", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02, 0x03 }, lladdr(*sdl))); + + sdl = mksdl(3); + ret = link_addr(":1.2.3", sdl); + ATF_REQUIRE(*rbegin(buf) == garbage); + ATF_REQUIRE_EQ(0, ret); + ATF_REQUIRE_EQ("", ifname(*sdl)); + ATF_REQUIRE(std::ranges::equal( + std::vector{ 0x01, 0x02, 0x03 }, lladdr(*sdl))); +} + /* * Test an extremely long address which would overflow link_ntoa's internal * buffer. It should handle this by truncating the output. @@ -376,6 +524,8 @@ ATF_INIT_TEST_CASES(tcs) { ATF_ADD_TEST_CASE(tcs, basic); ATF_ADD_TEST_CASE(tcs, ifname); + ATF_ADD_TEST_CASE(tcs, smallbuf); + ATF_ADD_TEST_CASE(tcs, invalid); ATF_ADD_TEST_CASE(tcs, nonether); ATF_ADD_TEST_CASE(tcs, overlong); ATF_ADD_TEST_CASE(tcs, link_ntoa_r); diff --git a/sbin/ifconfig/af_link.c b/sbin/ifconfig/af_link.c index cd5422c5541c..990226abd435 100644 --- a/sbin/ifconfig/af_link.c +++ b/sbin/ifconfig/af_link.c @@ -153,7 +153,8 @@ link_getaddr(const char *addr, int which) temp[0] = ':'; strcpy(temp + 1, addr); sdl.sdl_len = sizeof(sdl); - link_addr(temp, &sdl); + if (link_addr(temp, &sdl) == -1) + errx(1, "malformed link-level address"); free(temp); } if (sdl.sdl_alen > sizeof(sa->sa_data)) diff --git a/sys/net/if_dl.h b/sys/net/if_dl.h index 2c1e9bd9dd87..082ea63f3ff3 100644 --- a/sys/net/if_dl.h +++ b/sys/net/if_dl.h @@ -86,7 +86,7 @@ struct sockaddr_dl *link_init_sdl(struct ifnet *ifp, struct sockaddr *paddr, #include __BEGIN_DECLS -void link_addr(const char *, struct sockaddr_dl *); +int link_addr(const char *, struct sockaddr_dl *); char *link_ntoa(const struct sockaddr_dl *); int link_ntoa_r(const struct sockaddr_dl *, char *, size_t *); __END_DECLS diff --git a/sys/sys/param.h b/sys/sys/param.h index 119af606d1d5..c3da339aa15d 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -59,7 +59,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1305501 /* Master, propagated to newvers */ +#define __FreeBSD_version 1305502 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From nobody Wed May 21 03:40:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2HHm3Hrfz5wjRS; Wed, 21 May 2025 03:40:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2HHm0nw6z43WS; Wed, 21 May 2025 03:40:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798820; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q1jP0DEnJrx736QJivkJADFzK1TYOl5uKyvQ3LJqU/k=; b=ResAnhLhtDmmu6O3I1KnrZ0yYie7lUXK5cL+sCXxWE0YY9qBhfc1pG6NkFjXpK9YaYXSIY n2132ktl2Njw4C+GrXGSNp8QZEntj8MZQ0tUegRHc09A9TTl2GS41Hm1mbQPbi43fjO0cH CJSE38+8f4u17Kvd93jWxwBOPa+OXMGUCEB+sMDbk0fBAO+UuKrVNNmCiLC6Y+EuaVg5l7 IqkCmmSLAa+9ufsOmBTcU/IpMGPUb6lVWKdS3kPpLU73Aj5+2Y/Jed4vpvVy8qxwYGYDTt f8QPVA/1AFVgzQIwGZfwSjf24ZFvBVw83vdkkF1g7/AJ/Odvfyd1SHXiD+lldg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798820; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q1jP0DEnJrx736QJivkJADFzK1TYOl5uKyvQ3LJqU/k=; b=fQzOW+Dp9+lSfV3Rb828KFrRFFUTPiI/cqlFkf9joZHry1Tpjg3pqbFVQhLwJLA4JX6nl8 G0ElvjvzLSJZCC3Pc31NBgx/vi3Jl0q4MrP5qiJn7H/RuloFVWlC1e3TscUBV6BtpPQ3vz 5ecudN8Kg4M/GosPK6ypsfMFxy6xTbYQyiIUqa/KvyY7jRIDyrRR4kLHSypOhPgnRjeekr Wv3U9HUOiOiHM1ZbWvUCzWZHkCwwyWcf0yG0b/aN4Fdq7aOpku0ZVuIGG6I4j4t95/ihMj vRoqXsFkplfpBNJz40Ck3PcbtNDx+VwwTdC4M/nO7cVtj3tQTHFJ0OuDNdwY/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747798820; a=rsa-sha256; cv=none; b=v2AkFv6Oze6rrZbwb2YdqrpOJdUDvx7nZu/wuO6Ni4gXyTPOSqP6OKUIkNqJPXj2fIwWEz iULRME+GTuOynhfBcLAd1SISrqGeWgpBoVcHvNtdrkcFZioF41xXNdmGN7765ISAFwDt7R cOUfCDHJQtl1j21kodmuBBcqNVSdSWvaSfPkaWBgnOGX9KcZBK1NO+nAJc5dmfJdjnVF5k 83E7IfXMTqDZ7OTr6lYqaQWhUoatAgqxxyZQvtULplQMOLt5SqdlSEHpTk/Xrq0xK7UH/2 kth6WgYQkevt6qvxbUVixVnfEwg7rLiVz7V8OAyka8CLa60MLDa4A0KLy7UfaA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2HHm0GR6z3Qp; Wed, 21 May 2025 03:40:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L3eJPC088439; Wed, 21 May 2025 03:40:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L3eJE1088436; Wed, 21 May 2025 03:40:19 GMT (envelope-from git) Date: Wed, 21 May 2025 03:40:19 GMT Message-Id: <202505210340.54L3eJE1088436@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 22fc5d7b222c - stable/14 - in6_control_ioctl: correctly report errors from SIOCAIFADDR_IN6 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 22fc5d7b222c815fe1a6c81780efd230c749ed1d Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=22fc5d7b222c815fe1a6c81780efd230c749ed1d commit 22fc5d7b222c815fe1a6c81780efd230c749ed1d Author: Lexi Winter AuthorDate: 2025-04-07 12:40:07 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 02:55:42 +0000 in6_control_ioctl: correctly report errors from SIOCAIFADDR_IN6 we have to use 'goto out' here rather than 'break' because otherwise error is set to 0, which means the error is not propagated back to the caller. Reviewed by: kp (cherry picked from commit 1408670c90ae38fd51ea6aaabe46757bc880608e) --- sys/netinet6/in6.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 54b9d598b961..326153b1d2f6 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -589,7 +589,7 @@ in6_control_ioctl(u_long cmd, void *data, #endif error = in6_addifaddr(ifp, ifra, ia); ia = NULL; - break; + goto out; case SIOCDIFADDR_IN6: in6_purgeifaddr(ia); From nobody Wed May 21 03:40:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2HHn3Tcyz5wjWK; Wed, 21 May 2025 03:40:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2HHn1XT4z43m2; Wed, 21 May 2025 03:40:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KZ2jXptxu3qYp0E1ya3V8KPPa0Ov1TZ7jd7Nn4+sVcM=; b=G0z91b/NDe5QnlaGJjuZ5u6WR50yVkN78WyyFuKIytnmgqIsmeKJfP3Q2AtFOQCWDy/Qmk RCDJsk5XcEEYFK+1mUtA1jr35P+nq9w51pvm1+/hgRAav5wvDFGAMRYOpv9HrTZQULzSJI YVcCb7MIaaKHMVAJvS7Q1X/93idqdbHfdYzTFak4/xGd5es0Oe+Os70SwmKL4A355BOa2q 4hqGSvYL4swjziYo/4B8CwkcxonULhMHBp4BR1IIFKN9kZt8Diz0e8CtINtLJqYBiQM4g0 id7wRlE9+mE2yGQoPAhpVHukjxHeIBV1VtDGmD1cv2B2F5nF5ZD0wXIog7m3VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KZ2jXptxu3qYp0E1ya3V8KPPa0Ov1TZ7jd7Nn4+sVcM=; b=ul3IDdvM9RCZlFMNClhV2Z17AoDPfvFZNwxFd0XbyJSMdD2vs40e2sOchfRq/Wh2DKDT5Z CGe0TZpCXR3WjDfllUX+2BiDxqGIY2k7MtsbNKBWbthcwlCavl5dU82V8jJIw/zbB5ffMq KJQp03aWY8T7UiEBTWS3Ua7QjKkszArALEkoeyUaFLtLDAihahdWkuQvdcCDGSBDvBn8Pw Hykf9r5tB/fVTmYF7Op+bh7j+5JmaT9/q78P7tSD+gpFsT6M6+uJ1RQBYV6/uLH/GXu6Su B1ZugPMMaLM45fvV//9+Y9aI4QYCXTUmf+RmZGXtVfS8O4mw5OpTeHfRVjzKJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747798821; a=rsa-sha256; cv=none; b=vHCV/JgaV9oDlErIeCv6FyvoPli3En3VH5BV+ekXBJdTqwEhycjqhlKozZ4tblgbFHHRmY i4TbGBz/MolkDpNmp071Qj17hFLoRBS68jMzexy7noJpTNP50pqRGYBoqJXIRVrxDeGaVz ++5Ec5McplBTTdC5VlcKXatLFCPml5CjBpmsi9lpGQjmZWVvxGl0eLxJB6s4XlFPXNrTnW GiVqZhdeucqR+ZTXvieikSHsNWRFU+XPCzXIaZIw/C6GhVnJacRhPPioxeV+eUybses/DI e4W9HULlwfeCAfNFmwGWWhPDFaOvZOqRVNNi1YvwsqhA5QUWfqPrXWd0avANdA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2HHn18ZWz30m; Wed, 21 May 2025 03:40:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L3eL7t088475; Wed, 21 May 2025 03:40:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L3eLgK088472; Wed, 21 May 2025 03:40:21 GMT (envelope-from git) Date: Wed, 21 May 2025 03:40:21 GMT Message-Id: <202505210340.54L3eLgK088472@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: b8771c2c9a5f - stable/14 - netinet6 tests: add a test for SIOCAIFADDRing an invalid IPv6 address List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b8771c2c9a5f6fda7ea3d101d6378e10f9c5fcc0 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=b8771c2c9a5f6fda7ea3d101d6378e10f9c5fcc0 commit b8771c2c9a5f6fda7ea3d101d6378e10f9c5fcc0 Author: Lexi Winter AuthorDate: 2025-04-07 16:47:23 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 02:55:42 +0000 netinet6 tests: add a test for SIOCAIFADDRing an invalid IPv6 address Reviewed by: kp (cherry picked from commit 50725e585de77c20f7c96b836dd68ba954756ce7) --- tests/sys/netinet6/Makefile | 5 ++++- tests/sys/netinet6/addr6.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/tests/sys/netinet6/Makefile b/tests/sys/netinet6/Makefile index 6af0d13c5f03..d06e8069a7fd 100644 --- a/tests/sys/netinet6/Makefile +++ b/tests/sys/netinet6/Makefile @@ -15,7 +15,8 @@ ATF_TESTS_SH= exthdr \ lpm6 \ fibs6 \ ndp \ - proxy_ndp + proxy_ndp \ + addr6 TEST_METADATA.divert+= execenv="jail" \ execenv_jail_params="vnet allow.raw_sockets" @@ -34,6 +35,8 @@ TEST_METADATA.redirect+= execenv="jail" \ execenv_jail_params="vnet allow.raw_sockets" TEST_METADATA.scapyi386+= execenv="jail" \ execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.addr6+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" ${PACKAGE}FILES+= exthdr.py \ mld.py \ diff --git a/tests/sys/netinet6/addr6.sh b/tests/sys/netinet6/addr6.sh new file mode 100755 index 000000000000..38e4bb152240 --- /dev/null +++ b/tests/sys/netinet6/addr6.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env atf-sh +#- +# SPDX-License-Identifier: ISC +# +# Copyright (c) 2025 Lexi Winter. +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +. $(atf_get_srcdir)/../common/vnet.subr + +atf_test_case "addr6_invalid_addr" "cleanup" +addr6_invalid_addr_head() +{ + atf_set descr "adding an invalid IPv6 address returns an error" + atf_set require.user root +} + +addr6_invalid_addr_body() +{ + vnet_init + + ep=$(vnet_mkepair) + atf_check -s exit:0 ifconfig ${ep}a inet6 2001:db8::1/128 + atf_check -s exit:1 -e ignore ifconfig ${ep}a inet6 2001:db8::1/127 alias +} + +addr6_invalid_addr_cleanup() +{ + vnet_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "addr6_invalid_addr" +} From nobody Wed May 21 03:40:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2HHp5W1Xz5wjh4; Wed, 21 May 2025 03:40:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2HHp3rXVz43Wj; Wed, 21 May 2025 03:40:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jitpSsIDbrEM4QMrcXSiuhd+cXp50QCcGPhfVMRV66Y=; b=p1IA8bvgzMlhGrcFRYfXcI7bCXiixfjDgSt7+zm6TZ4kTGx3h9T18e/Src/b5FnzkDY2dX sXVa5MnzX8PB3wTyCppW0CuPCxdq0upBjxh9yN8u4HOxeMDIZQqHu+Dm6PT7hgeNmTCHkx H8aRn6DQbVLsLbJx5BY2qrr9mThPxgAa+UWiiIWQlitnULa7N0PCWnyoryTwf9Q+gkyqdY 5Al+L5bJzaVabOj7JGQmQxPbgM377WldYpP1Qg7ezCNMB8zIEiyGj1bx5+3bD7DSEg0Q97 FkkHD7zgKdL7BpGdA8Dw9oEDS5hKhlC2d1rdHs6XHHyaccuDK2PRGNVFqt7gng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jitpSsIDbrEM4QMrcXSiuhd+cXp50QCcGPhfVMRV66Y=; b=e+GFalUWdzT++yZld14tp96hrmneDmMzEYj8NxQ/cKd6F+v1r/20NQJ1ea+bbfFdmRVRam E3dx3fRc4wtyMP2W3PbBhd1guazdcn0QhoFmUZIvzWqhG8rxs2A8m0yrvjNOGTRZVNIRGb qQVi6nuH8tqp1/MeFvjXyI2SC4mO7gIiKn88WLGjOjOMvbfDwhtKCt1ZPS847HSb8I3A00 oiTTewszDPnpvyJ+90vWDNMb3kFGjjmoN9JOIBMp9u0Ls860pMi5OTaoQD+JKwth3i8/g7 Nev9NYXXXbdDwdJzePrENlIzC/SN2IwVatSK6SCVzFjdaP8AK9gnfzyXpN0ueg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747798822; a=rsa-sha256; cv=none; b=BMSc+SEUHJhP9/mKQdPeoqU39cjGNNLiTX1zKZoD4NkLDlF+8P3yQr6s1tfiW6NZRj07nt +mFBfKU4f3AUyVmoo1Bf/8xdC3yofDlP/qztAwBTfgRVWxYcD79566QpSH60p7wrt6hV0o 8Qk5ALdk2iBk68q9Y7aWUu2dkvR6xpvfokUZ0qP7+mGDcVO9vbGr4hLXrePjhgceQjFGE0 GCTQh/hJMUKhzXQkjICBG++JRcIy3S1zxLMrpofeFk2mTJpgjZ7Ni4JDPDjgdR6kWqUaG7 q4u6WXFpausixheFE7xoHDqNf5WT0Un6g8X4JVFn1T7CKQ2u9o1XregGG/NWoA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2HHp2D7Fz3FB; Wed, 21 May 2025 03:40:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L3eMQX088511; Wed, 21 May 2025 03:40:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L3eMKO088508; Wed, 21 May 2025 03:40:22 GMT (envelope-from git) Date: Wed, 21 May 2025 03:40:22 GMT Message-Id: <202505210340.54L3eMKO088508@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: ff1980d569c8 - stable/14 - bridge: allow IP addresses on members to be disabled List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ff1980d569c8167d38cda5f2713664866d9802bc Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=ff1980d569c8167d38cda5f2713664866d9802bc commit ff1980d569c8167d38cda5f2713664866d9802bc Author: Lexi Winter AuthorDate: 2025-05-05 21:44:44 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 02:55:42 +0000 bridge: allow IP addresses on members to be disabled add a new sysctl, net.link.bridge.member_ifaddrs, which defaults to 1. if it is set to 1, bridge behaviour is unchanged. if it is set to 0: - an interface which has AF_INET6 or AF_INET addresses assigned cannot be added to a bridge. - an interface in a bridge cannot have an AF_INET6 or AF_INET address assigned to it. - the bridge will no longer consider the lladdrs on bridge members to be local addresses, i.e. frames sent to member lladdrs will not be processed by the host. update bridge.4 to document this behaviour, as well as the existing recommendation that IP addresses should not be configured on bridge members anyway, even if it currently partially works. in testing, setting this to 0 on a bridge with 50 member interfaces improved throughput by 22% (4.61Gb/s -> 5.67Gb/s) across two member epairs due to eliding the bridge member list walk in GRAB_OUR_PACKETS. Reviewed by: kp, des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D49995 (cherry picked from commit 0a1294f6c610948d7447ae276df74a6d5269b62e) --- share/man/man4/bridge.4 | 15 +++++++- sys/net/if_bridge.c | 61 +++++++++++++++++++++++++++----- sys/net/if_bridgevar.h | 1 + sys/net/if_ethersubr.c | 1 + sys/netinet/in.c | 8 +++++ sys/netinet6/in6.c | 8 +++++ tests/sys/net/if_bridge_test.sh | 78 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 162 insertions(+), 10 deletions(-) diff --git a/share/man/man4/bridge.4 b/share/man/man4/bridge.4 index b741ec0b73c8..2c3bfd6aedfa 100644 --- a/share/man/man4/bridge.4 +++ b/share/man/man4/bridge.4 @@ -36,7 +36,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd April 10, 2024 +.Dd May 5, 2025 .Dt IF_BRIDGE 4 .Os .Sh NAME @@ -158,6 +158,19 @@ This can be used to multiplex the input of two or more interfaces into a single stream. This is useful for reconstructing the traffic for network taps that transmit the RX/TX signals out through two separate interfaces. +.Pp +To allow the host to communicate with bridge members, IP addresses +should be assigned to the +.Nm +interface itself, not to the bridge's member interfaces. +Assigning IP addresses to bridge member interfaces is unsupported, but +for backward compatibility, it is permitted if the +.Xr sysctl 8 +variable +.Va net.link.bridge.member_ifaddrs +is set to 1, which is the default. +In a future release, this sysctl may be set to 0 by default, or may be +removed entirely. .Sh IPV6 SUPPORT .Nm supports the diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 3e562aae9056..b4e4c5fb2f4c 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -331,6 +331,7 @@ static void bridge_rtdelete(struct bridge_softc *, struct ifnet *ifp, int); static void bridge_forward(struct bridge_softc *, struct bridge_iflist *, struct mbuf *m); +static bool bridge_member_ifaddrs(void); static void bridge_timer(void *); @@ -497,6 +498,19 @@ SYSCTL_BOOL(_net_link_bridge, OID_AUTO, log_mac_flap, CTLFLAG_RW | CTLFLAG_VNET, &VNET_NAME(log_mac_flap), true, "Log MAC address port flapping"); +/* allow IP addresses on bridge members */ +VNET_DEFINE_STATIC(bool, member_ifaddrs) = true; +#define V_member_ifaddrs VNET(member_ifaddrs) +SYSCTL_BOOL(_net_link_bridge, OID_AUTO, member_ifaddrs, + CTLFLAG_RW | CTLFLAG_VNET, &VNET_NAME(member_ifaddrs), true, + "Allow layer 3 addresses on bridge members"); + +static bool +bridge_member_ifaddrs(void) +{ + return (V_member_ifaddrs); +} + VNET_DEFINE_STATIC(int, log_interval) = 5; VNET_DEFINE_STATIC(int, log_count) = 0; VNET_DEFINE_STATIC(struct timeval, log_last) = { 0 }; @@ -658,6 +672,7 @@ bridge_modevent(module_t mod, int type, void *data) switch (type) { case MOD_LOAD: bridge_dn_p = bridge_dummynet; + bridge_member_ifaddrs_p = bridge_member_ifaddrs; bridge_detach_cookie = EVENTHANDLER_REGISTER( ifnet_departure_event, bridge_ifdetach, NULL, EVENTHANDLER_PRI_ANY); @@ -666,6 +681,7 @@ bridge_modevent(module_t mod, int type, void *data) EVENTHANDLER_DEREGISTER(ifnet_departure_event, bridge_detach_cookie); bridge_dn_p = NULL; + bridge_member_ifaddrs_p = NULL; break; default: return (EOPNOTSUPP); @@ -1273,6 +1289,25 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) return (EINVAL); } + /* + * If member_ifaddrs is disabled, do not allow an interface with + * assigned IP addresses to be added to a bridge. + */ + if (!V_member_ifaddrs) { + struct ifaddr *ifa; + + CK_STAILQ_FOREACH(ifa, &ifs->if_addrhead, ifa_link) { +#ifdef INET + if (ifa->ifa_addr->sa_family == AF_INET) + return (EINVAL); +#endif +#ifdef INET6 + if (ifa->ifa_addr->sa_family == AF_INET6) + return (EINVAL); +#endif + } + } + #ifdef INET6 /* * Two valid inet6 addresses with link-local scope must not be @@ -2699,17 +2734,25 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) do { GRAB_OUR_PACKETS(bifp) } while (0); /* - * Give a chance for ifp at first priority. This will help when the - * packet comes through the interface like VLAN's with the same MACs - * on several interfaces from the same bridge. This also will save - * some CPU cycles in case the destination interface and the input - * interface (eq ifp) are the same. + * We only need to check members interfaces if member_ifaddrs is + * enabled; otherwise we should have never traffic destined for a + * member's lladdr. */ - do { GRAB_OUR_PACKETS(ifp) } while (0); - /* Now check the all bridge members. */ - CK_LIST_FOREACH(bif2, &sc->sc_iflist, bif_next) { - GRAB_OUR_PACKETS(bif2->bif_ifp) + if (V_member_ifaddrs) { + /* + * Give a chance for ifp at first priority. This will help when + * the packet comes through the interface like VLAN's with the + * same MACs on several interfaces from the same bridge. This + * also will save some CPU cycles in case the destination + * interface and the input interface (eq ifp) are the same. + */ + do { GRAB_OUR_PACKETS(ifp) } while (0); + + /* Now check the all bridge members. */ + CK_LIST_FOREACH(bif2, &sc->sc_iflist, bif_next) { + GRAB_OUR_PACKETS(bif2->bif_ifp) + } } #undef CARP_CHECK_WE_ARE_DST diff --git a/sys/net/if_bridgevar.h b/sys/net/if_bridgevar.h index 27815cd37c83..4eed6ec07ade 100644 --- a/sys/net/if_bridgevar.h +++ b/sys/net/if_bridgevar.h @@ -320,5 +320,6 @@ struct ifbpstpconf { } while (0) extern void (*bridge_dn_p)(struct mbuf *, struct ifnet *); +extern bool (*bridge_member_ifaddrs_p)(void); #endif /* _KERNEL */ diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index 4d82bb0cfdca..9210f1378666 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -112,6 +112,7 @@ void (*vlan_input_p)(struct ifnet *, struct mbuf *); /* if_bridge(4) support */ void (*bridge_dn_p)(struct mbuf *, struct ifnet *); +bool (*bridge_member_ifaddrs_p)(void); /* if_lagg(4) support */ struct mbuf *(*lagg_input_ethernet_p)(struct ifnet *, struct mbuf *); diff --git a/sys/netinet/in.c b/sys/netinet/in.c index bafd1b549848..21555a0714b6 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -59,6 +59,7 @@ #include #include #include +#include #include #include #include @@ -499,6 +500,13 @@ in_aifaddr_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp, struct ucred *cred return (error); #endif + /* + * Check if bridge wants to allow adding addrs to member interfaces. + */ + if (ifp->if_bridge && bridge_member_ifaddrs_p && + !bridge_member_ifaddrs_p()) + return (EINVAL); + /* * See whether address already exist. */ diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 326153b1d2f6..60497ae29852 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -88,6 +88,7 @@ #include #include #include +#include #include #include #include @@ -1236,6 +1237,13 @@ in6_addifaddr(struct ifnet *ifp, struct in6_aliasreq *ifra, struct in6_ifaddr *i int carp_attached = 0; int error; + /* Check if this interface is a bridge member */ + if (ifp->if_bridge && bridge_member_ifaddrs_p && + !bridge_member_ifaddrs_p()) { + error = EINVAL; + goto out; + } + /* * first, make or update the interface address structure, * and link it to the list. diff --git a/tests/sys/net/if_bridge_test.sh b/tests/sys/net/if_bridge_test.sh index 66656be1d84f..715c8810f11d 100755 --- a/tests/sys/net/if_bridge_test.sh +++ b/tests/sys/net/if_bridge_test.sh @@ -703,6 +703,82 @@ many_bridge_members_cleanup() vnet_cleanup } +atf_test_case "member_ifaddrs_enabled" "cleanup" +member_ifaddrs_enabled_head() +{ + atf_set descr 'bridge with member_ifaddrs=1' + atf_set require.user root +} + +member_ifaddrs_enabled_body() +{ + vnet_init + vnet_init_bridge + + ep=$(vnet_mkepair) + ifconfig ${ep}a inet 192.0.2.1/24 up + + vnet_mkjail one ${ep}b + jexec one sysctl net.link.bridge.member_ifaddrs=1 + jexec one ifconfig ${ep}b inet 192.0.2.2/24 up + jexec one ifconfig bridge0 create addm ${ep}b + + atf_check -s exit:0 -o ignore ping -c3 -t1 192.0.2.2 +} + +member_ifaddrs_enabled_cleanup() +{ + vnet_cleanup +} + +atf_test_case "member_ifaddrs_disabled" "cleanup" +member_ifaddrs_disabled_head() +{ + atf_set descr 'bridge with member_ifaddrs=0' + atf_set require.user root +} + +member_ifaddrs_disabled_body() +{ + vnet_init + vnet_init_bridge + + vnet_mkjail one + jexec one sysctl net.link.bridge.member_ifaddrs=0 + + bridge=$(jexec one ifconfig bridge create) + + # adding an interface with an IPv4 address + ep=$(jexec one ifconfig epair create) + jexec one ifconfig ${ep} 192.0.2.1/32 + atf_check -s exit:1 -e ignore jexec one ifconfig ${bridge} addm ${ep} + + # adding an interface with an IPv6 address + ep=$(jexec one ifconfig epair create) + jexec one ifconfig ${ep} inet6 2001:db8::1/128 + atf_check -s exit:1 -e ignore jexec one ifconfig ${bridge} addm ${ep} + + # adding an interface with an IPv6 link-local address + ep=$(jexec one ifconfig epair create) + jexec one ifconfig ${ep} inet6 -ifdisabled auto_linklocal up + atf_check -s exit:1 -e ignore jexec one ifconfig ${bridge} addm ${ep} + + # adding an IPv4 address to a member + ep=$(jexec one ifconfig epair create) + jexec one ifconfig ${bridge} addm ${ep} + atf_check -s exit:1 -e ignore jexec one ifconfig ${ep} inet 192.0.2.2/32 + + # adding an IPv6 address to a member + ep=$(jexec one ifconfig epair create) + jexec one ifconfig ${bridge} addm ${ep} + atf_check -s exit:1 -e ignore jexec one ifconfig ${ep} inet6 2001:db8::1/128 +} + +member_ifaddrs_disabled_cleanup() +{ + vnet_cleanup +} + atf_init_test_cases() { atf_add_test_case "bridge_transmit_ipv4_unicast" @@ -718,4 +794,6 @@ atf_init_test_cases() atf_add_test_case "mtu" atf_add_test_case "vlan" atf_add_test_case "many_bridge_members" + atf_add_test_case "member_ifaddrs_enabled" + atf_add_test_case "member_ifaddrs_disabled" } From nobody Wed May 21 03:40:23 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2HHr3l46z5wjJb; Wed, 21 May 2025 03:40:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2HHq4Ff2z43Ny; Wed, 21 May 2025 03:40:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xHknzoHqGK2/7jHDCRzSNvwoLknrfvRVf4e7JhSHenQ=; b=smXmdxQAA0cMr5MwwwDXl84J6mF9nUpDX26fKyXSA2af7AZBJ07ZlNXI708jBPMWX1LQo/ qfNxKhnUgA7cNcL8XOtJExsPah3h3qx7ovVp4InDJMlFx7vOjQRXJAWT2PF4VZ2GAWHMH4 WciW/rbUtC1imzj/I8zsfT8GvDeZSA5J4lmSINwmDuZna6tuUmCNTHd1gRO4UBK/L4T5Yz DWW3B7OkDNC6nCVpAdCnQNBdiqxpDCqHjN+isQ2+bLi29Zp5Z4eW3Uyh2YgJjTWXSomER1 BdjEjou2qJ2pbIuRtVSPLMI/sqFNNHjBqeADqQn5mmJT03t70Ukewkylk1VFww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747798823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xHknzoHqGK2/7jHDCRzSNvwoLknrfvRVf4e7JhSHenQ=; b=HiJEgkwuujHzf/qsNbqqcrA9HqgxFbMjqIpDHcdCaSFV/OQQpQt7GwGdGlutT6QO4FYIy1 gWqTDS7zVU5lLK7DZ4wpxZY9DvTc5ejkL7YreMHwU+8ARlyH8HJGVaLsj/PUHoAK3JAdda rT12MPZCBAZ57AKD4zxkVd1toHPa2wHkQn17qYgkofVKd2aXVfrrKUPr8aHyVsQX1IkFb8 PBv5LqKIN3hTM+J6k2GcfxD+Li6LQphBx0Y3KuWcho8lGhpaVZzlIYtQjeP/2VRLXGwl7I ZIpcG1/irxDfBlWB5zsLx2kPoj7qxDuH+F7ahX/ZqDEMv7+8brpu6VlX+ndiyQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747798823; a=rsa-sha256; cv=none; b=fwyfLKx/I4cW8UV8eFO5Wo3TMf06S3pETueIyJuHm9gW2Y6uQ9FGRTp8PJjB8BV32jdre1 9Eg9EzlfSxfHLVpHchUfbMWWPGLnX+Wi6k95yQxN37bhpNtBfDeIM3QKxHGMPgIyYZOKA8 /xi6MJicML5GcrsphOCQTZPboXXn/9Lo/cIP/quicH5+fuA/uMyEjGeffDdaFKpm0w/usP GlYtBewLeIUMnhkIOACRjoyS+jGtxI+9pGssrx96/4+0c7Ffria5W3PZUrmtWpyOK6UUrQ lL+pnPLoWGlz1Ptan8Vw6Ql8pheLfaLiHPt6/We0/X4WMWGDKF9s6fDvQRWEwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2HHq2zjhz3Bq; Wed, 21 May 2025 03:40:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L3eNSS088547; Wed, 21 May 2025 03:40:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L3eNef088544; Wed, 21 May 2025 03:40:23 GMT (envelope-from git) Date: Wed, 21 May 2025 03:40:23 GMT Message-Id: <202505210340.54L3eNef088544@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 4b147fd312d5 - stable/14 - jail: add allow.routing jail permission List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4b147fd312d5b007bd15563fdaed74f5b9f74c56 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=4b147fd312d5b007bd15563fdaed74f5b9f74c56 commit 4b147fd312d5b007bd15563fdaed74f5b9f74c56 Author: Lexi Winter AuthorDate: 2025-05-11 02:01:25 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 02:55:42 +0000 jail: add allow.routing jail permission if allow.routing is set, the jail can modify the system routing table even if it's not a VNET jail. Reviewed by: kevans, des, adrian Approved by: kevans (mentor), des (mentor) Differential Revision: https://reviews.freebsd.org/D49843 (cherry picked from commit 3a53fe2cc4b7076003163376a7db65e432f6283e) --- sys/kern/kern_jail.c | 13 +++++++++++++ sys/netlink/route/rt.c | 2 ++ sys/sys/jail.h | 3 ++- usr.sbin/jail/jail.8 | 5 ++++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 99cf8f731c48..b14b3218ebb7 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -226,6 +226,7 @@ static struct bool_flags pr_flag_allow[NBBY * NBPW] = { #ifdef VIMAGE {"allow.nfsd", "allow.nonfsd", PR_ALLOW_NFSD}, #endif + {"allow.routing", "allow.norouting", PR_ALLOW_ROUTING}, }; static unsigned pr_allow_all = PR_ALLOW_ALL_STATIC; const size_t pr_flag_allow_size = sizeof(pr_flag_allow); @@ -4142,6 +4143,16 @@ prison_priv_check(struct ucred *cred, int priv) return (0); return (EPERM); + /* + * Conditionally allow privileged process in the jail to modify + * the routing table. + */ + case PRIV_NET_ROUTE: + if (cred->cr_prison->pr_allow & PR_ALLOW_ROUTING) + return (0); + else + return (EPERM); + default: /* * In all remaining cases, deny the privilege request. This @@ -4604,6 +4615,8 @@ SYSCTL_JAIL_PARAM(_allow, suser, CTLTYPE_INT | CTLFLAG_RW, SYSCTL_JAIL_PARAM(_allow, nfsd, CTLTYPE_INT | CTLFLAG_RW, "B", "Mountd/nfsd may run in the jail"); #endif +SYSCTL_JAIL_PARAM(_allow, routing, CTLTYPE_INT | CTLFLAG_RW, + "B", "Jail may modify routing table"); SYSCTL_JAIL_PARAM_SUBNODE(allow, mount, "Jail mount/unmount permission flags"); SYSCTL_JAIL_PARAM(_allow_mount, , CTLTYPE_INT | CTLFLAG_RW, diff --git a/sys/netlink/route/rt.c b/sys/netlink/route/rt.c index 7cd6e0045f01..7a6ba6ef27c5 100644 --- a/sys/netlink/route/rt.c +++ b/sys/netlink/route/rt.c @@ -1118,12 +1118,14 @@ static const struct rtnl_cmd_handler cmd_handlers[] = { .name = "RTM_DELROUTE", .cb = &rtnl_handle_delroute, .priv = PRIV_NET_ROUTE, + .flags = RTNL_F_ALLOW_NONVNET_JAIL, }, { .cmd = NL_RTM_NEWROUTE, .name = "RTM_NEWROUTE", .cb = &rtnl_handle_newroute, .priv = PRIV_NET_ROUTE, + .flags = RTNL_F_ALLOW_NONVNET_JAIL, } }; diff --git a/sys/sys/jail.h b/sys/sys/jail.h index 0b0ee9cdde0f..7fbb71ee31f8 100644 --- a/sys/sys/jail.h +++ b/sys/sys/jail.h @@ -253,7 +253,8 @@ struct prison_racct { #define PR_ALLOW_RESERVED_PORTS 0x00008000 #define PR_ALLOW_KMEM_ACCESS 0x00010000 /* reserved, not used yet */ #define PR_ALLOW_NFSD 0x00020000 -#define PR_ALLOW_ALL_STATIC 0x000387ff +#define PR_ALLOW_ROUTING 0x00040000 +#define PR_ALLOW_ALL_STATIC 0x000787ff /* * PR_ALLOW_DIFFERENCES determines which flags are able to be diff --git a/usr.sbin/jail/jail.8 b/usr.sbin/jail/jail.8 index 7fc5357adfd3..73014315012b 100644 --- a/usr.sbin/jail/jail.8 +++ b/usr.sbin/jail/jail.8 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 19, 2024 +.Dd May 11, 2025 .Dt JAIL 8 .Os .Sh NAME @@ -642,6 +642,9 @@ sysctl. The super-user will be disabled automatically if its parent system has it disabled. The super-user is enabled by default. +.It Va allow.routing +Allow privileged process in the non-VNET jail to modify the system routing +table. .El .El .Pp From nobody Wed May 21 06:44:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2MNc1PNjz5wwbg; Wed, 21 May 2025 06:44:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2MNc10pXz4NMM; Wed, 21 May 2025 06:44:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809888; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4DvKe9nJ1k5/UIEld1NMHAp3eHzwOJLfFFVYrdHvgDI=; b=Sl92vIFFljg19T148hrwU0ha3//89/u0bG4Kq60/OpCuiIEmxVOGPzoem6qXT38BKGfo2M a1rb7t3NukdQLDl5NV1J5dL82zBkrBMcmQnfUGEcnQOLpO1Gl/DPme3kl/3j5TsmLZsj3K kNBUDcU28Q2380Fm0pMwGXoHZwcJbE5XdiwR1GZ7CNUtW03cvlXZT66MtNWxrEE9knpGVV JMyzftBAHNzndjceD70pa1ys2h+pEYkpmfc8FhcWS1e/CPbi95GtEW7kRW+iZB94nh7Ilu txbwQzXDlYYdJewoWlF2oL133UsAw1e+y5qFi8DoL/tvow94cRYg/jVaZNX1MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809888; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4DvKe9nJ1k5/UIEld1NMHAp3eHzwOJLfFFVYrdHvgDI=; b=SeVeCzUQAvwUABQuAcwqAGzxCbGyXzusWrueSqnJhskZ/TXyvYZlTs0TOEVrS176tpJlWi 7pfK+att33B3JbUpvwg5Z0T95T4go8xi7LgqTz9CNUf+jJ4plSo5TW8vYCLqt8vqHfNtNc 8O9ybBdouy5EQzt7jBDPaS0gvxHc0zVl+DCFx/m1nxYORpVkDQBMSyuMoA7/JMkUsAfRkS 9/eRbgVplfAYYnA42Mfhk28TQ4b6NCOhcr6UD4iMyRjdFQwWiV/dPq5A95tQBmlNw86iUU W2Zy8ugP4pU2Tnojt2TVWfI7E/HVKOXJAosN+OYqwdfOCUoNhVQvlaYLKzJOjA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747809888; a=rsa-sha256; cv=none; b=kpPyA3zdjZ3GplH86vxPve6X1ddiSWsya6V4Mugehy2T5uti9KVoLM4Ht99iFNkOBTYnq7 g5NXHWio2T7Jds0d/vm96aFDsYuhvH2j+EvgUCcdgJ6cFOQhwlUxddv+LR8DR7akTbRZNv hwPEOWku4hiePw6EkE3SEudlc9Sy1w3aTtUJiYRHTBVVtBrD9uHmGrZuFYy8f43UuVcjCv CjuMvhOpKBg21gN8LVPFSM7pPRIzpLv609ii2/osomgeW/YrN8BhQAeOBRNV3DBzkMAYMc 7mkVJS0rg7kP3JmScRaTN2udOfySJgp+v6HU/RKHEPq2JysWx1gE9TwrYDjfcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2MNc0MNTz8Jk; Wed, 21 May 2025 06:44:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L6ildW034463; Wed, 21 May 2025 06:44:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L6iljo034460; Wed, 21 May 2025 06:44:47 GMT (envelope-from git) Date: Wed, 21 May 2025 06:44:47 GMT Message-Id: <202505210644.54L6iljo034460@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 4003f5d4c12e - stable/14 - traceroute: move from contrib to usr.sbin List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4003f5d4c12e0b753e2d8c34fbbcbd13ef4be257 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=4003f5d4c12e0b753e2d8c34fbbcbd13ef4be257 commit 4003f5d4c12e0b753e2d8c34fbbcbd13ef4be257 Author: Lexi Winter AuthorDate: 2024-02-03 13:10:09 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 06:27:42 +0000 traceroute: move from contrib to usr.sbin traceroute hasn't had a vendor import since 2002, while since then it's had several significant FreeBSD-specific commits. Since it's unlikely another vendor import will happen, and to make the merge of traceroute6 into traceroute easier, import traceroute into usr.sbin. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1100 (cherry picked from commit 9b7a920a12a9377b9c8227f72748ab32fbbb4822) --- contrib/traceroute/CHANGES | 148 --------------------- contrib/traceroute/FILES | 37 ------ contrib/traceroute/FREEBSD-upgrade | 38 ------ contrib/traceroute/INSTALL | 105 --------------- contrib/traceroute/README | 29 ---- contrib/traceroute/VERSION | 2 - contrib/traceroute/mean.awk | 12 -- contrib/traceroute/median.awk | 29 ---- contrib/traceroute/rip_output.c | 73 ---------- usr.sbin/traceroute/Makefile | 14 +- {contrib => usr.sbin}/traceroute/as.c | 0 {contrib => usr.sbin}/traceroute/as.h | 0 .../traceroute/findsaddr-socket.c | 0 {contrib => usr.sbin}/traceroute/findsaddr.h | 0 {contrib => usr.sbin}/traceroute/ifaddrlist.c | 0 {contrib => usr.sbin}/traceroute/ifaddrlist.h | 0 {contrib => usr.sbin}/traceroute/traceroute.8 | 0 {contrib => usr.sbin}/traceroute/traceroute.c | 3 - {contrib => usr.sbin}/traceroute/traceroute.h | 0 usr.sbin/traceroute6/Makefile | 5 +- 20 files changed, 3 insertions(+), 492 deletions(-) diff --git a/contrib/traceroute/CHANGES b/contrib/traceroute/CHANGES deleted file mode 100644 index 25ef7bedc43f..000000000000 --- a/contrib/traceroute/CHANGES +++ /dev/null @@ -1,148 +0,0 @@ -@(#) $Id: CHANGES,v 1.23 2000/12/14 06:53:11 leres Exp $ (LBL) - -v1.4 Wed Dec 13 22:50:35 PST 2000 - -- Add an option to use icmp echo instead of udp datagrams. - -- Add HPUX and Linux support. - -- Handle hex argument values as suggested by John Hawkinson - (jhawk@mit.edu) - -- Added flags to set the first ttl and to set the don't fragment bit. - -- Add a local autoconf macro to check for routines in libraries; the - autoconf version is broken (it only puts the library name in the - cache variable name). Thanks to John Hawkinson. - -- Add a local autoconf macro to check for types; the autoconf version - is broken (it uses grep instead of actually compiling a code fragment). - -- Attempt to detect "egcs" versions of gcc. - -- Fix problems caused by savestr(). - -- Detect when there are more interfaces than we can deal with. Thanks - to Guy Harris guy@netapp.com. - -- Accommodate changes made to FreeBSD 3.2-RELEASE network headers files. - -- The ip header offset needs to be byte swapped under Solaris on the - intel as well. Reported by John McDermott (jjm@jkintl.com) Also byte - ip length and offset for linux. - -- In wait_for_reply(), use passed socket instead of global one. Thanks - to Richard Kettlewell (richard.kettlewell@kewill.com) - -- Check for IFF_LOOPBACK as a define or an enum (concession to linux). - Reported by Robert Bihlmeyer (robbe@orcus.priv.at) - -- Increase size of SIOCGIFCONF buffer to accommodate systems with lots - of virtual interfaces. Ignore sun virtual interfaces. Suggested by - Ian Donaldson (iand@aone.com.au) - -- Always calculate icmp checksums when using -I. Reported by Soumen - (sbiswas@novell.com) - -- Documentation fix for description of -p. Thanks to Jeffrey C Honig - (jch@bsdi.com) - -- Enable ip checksums for Solaris 2.6 and higher (since they seem to - work correctly now). - -- Avoid problems when broken routers return 0.0.0.0 as their source - address. Thanks to John Hawkinson (jhawk@bbnplanet.com) - -- Canonicalize hostname if gethostname() doesn't return a domain. - -- Add -z flag (pause msecs) to allow optional pause between probes. - Suggested by Dave Morrison (drmorris@uplanet.com) - -- Fix max packet length test. - -- Use "/dev/null" instead of "." for file descriptor fodder. - Suggested by Tim Robbins (fyre@box3n.gumbynet.org) - -- Watch for a NULL argv[0]. Suggested by Tim Robbins. - -- Be careful with hostname legnths. - -- Print RFC1191 Path MTU Discovery value on "needfrag" unreachables. - -- Limit port size to 16 bits. Suggested by Tim Robbins. - -- Limit wait time to 24 hours. - -- Modified linux specific struct ipovly definition to avoid problems - with 64 bit systems. Problem reported by Uros Prestor - (uros@turbolinux.com) - -- Use kernel routing tables to determine correct source address. - Three styles are supported: bsd/socket, solaris/mib and linux. - -- Fix configure to recognize older versions of Solaris. - -v1.3.2 Thu Sep 26 18:06:16 PDT 1996 - -- Rewrite source routing code to eliminate a number of problems on - systems using raw ip options. Also pad options with a noop so gateway - addresses are aligned. - -- Don't call inet_ntoa() twice in the same printf(). Thanks to NetBSD - via Bill Fenner (fenner@parc.xerox.com) - -- Decode "administratively prohibited filter" icmp code and print - numeric value for unknown codes. Thanks to Bill Fenner. - -v1.3.1 Wed Sep 18 21:08:16 PDT 1996 - -- Some systems (e.g. AIX) need sys/select.h. Thanks to Brett Hogden - (hogden@rge.com) - -- Byte swap ip header length under Solaris. (This has no effect on the - sparc but is required on the i386.) - -- Made optional packet length control total size of packet. - -v1.3 Mon Sep 16 14:55:44 PDT 1996 - -- Overrun buffer security fixes. Thanks to Bill Fenner - (fenner@parc.xerox.com) - -- Wait for response packet relative to start of probe. Thanks to Bill - Fenner. - -- Fix bug that prevented changing the packet size. Thanks to Gregory - Decker (gdecker@nate.dcrt.nih.gov) - -- Add support for RAW_OPTIONS (e.g. 4.4 BSD systems such as BSD/OS and - FreeBSD) thanks to Jeffrey C Honig (jch@bsdi.com) - -- Remove ip header byte swap fix from v1.2; most kernels swap the ip - header length in the kernel (and it causes OSF3 to crash). - -- Fix to not exit when the number of probes is set to 1 (i.e. "-q 1") - -- Improve autoconf configuration. - -v1.2 Tue Oct 17 23:50:05 PDT 1995 - -- Convert to autoconf and ansify. - -- Byte swap ip header length for little endian machines. Fix thanks to - Y Badri (yb@greybox.demon.co.uk). - -v1.1 Thu Jun 15 02:32:55 PDT 1995 - -- Check for too many arguments. - -- Recode to make timing of packet's round trip more obvious and to - tighten up code. - -- Ifdef IP_OPTIONS code. - -- Display time in microseconds. - -v1.0 Tue Feb 28 23:50:05 PDT 1989 - -- Initial public release. diff --git a/contrib/traceroute/FILES b/contrib/traceroute/FILES deleted file mode 100644 index 7a585ba9cedc..000000000000 --- a/contrib/traceroute/FILES +++ /dev/null @@ -1,37 +0,0 @@ -CHANGES -FILES -INSTALL -Makefile.in -README -VERSION -aclocal.m4 -config.guess -config.sub -configure -configure.in -findsaddr-generic.c -findsaddr-linux.c -findsaddr-mib.c -findsaddr-socket.c -findsaddr.h -ifaddrlist.c -ifaddrlist.h -install-sh -lbl/gnuc.h -lbl/os-solaris2.h -lbl/os-sunos4.h -linux-include/netinet/in_systm.h -linux-include/netinet/ip.h -linux-include/netinet/ip_icmp.h -linux-include/netinet/ip_var.h -linux-include/netinet/udp.h -linux-include/netinet/udp_var.h -mean.awk -median.awk -mkdep -rip_output.c -strerror.c -traceroute.8 -traceroute.c -traceroute.h -usleep.c diff --git a/contrib/traceroute/FREEBSD-upgrade b/contrib/traceroute/FREEBSD-upgrade deleted file mode 100644 index bc4918eb146f..000000000000 --- a/contrib/traceroute/FREEBSD-upgrade +++ /dev/null @@ -1,38 +0,0 @@ -$FreeBSD$ - -This directory contains virgin copies of the original distribution files -on a "vendor" branch. Do not, under any circumstances, attempt to upgrade -the files in this directory via patches and a cvs commit. - -To upgrade to a newer version of traceroute, when it is available: - - 1. Unpack the new version into an empty directory. - [Do not make ANY changes to the files.] - - 2. Use the command: - cvs import -I linux-include \ - -m 'Virgin import of LBL traceroute v' \ - src/contrib/traceroute LBL v - - For example, to do the import of version 1.3.2, I might have typed: - cvs import -I linux-include \ - -m 'Virgin import of LBL traceroute v1.3.2' \ - src/contrib/traceroute LBL v1_3_2 - - 3. Follow the instructions printed out in step 2 to resolve any - conflicts between local FreeBSD changes and the newer version. - -Do not, under any circumstances, deviate from this procedure. - -To make local changes to traceroute, simply patch and commit to the main -branch (aka HEAD). Never make local changes on the LBL branch. - -All local changes should be submitted to "traceroute@ee.lbl.gov" for -inclusion in the next vendor release of traceroute. - -(The "SANE_PRECISION" patch has been submitted and rejected.) - -(The extensive modifications for TCP and GRE probes have not been -submitted.) - -fenner@freebsd.org - 30 Sep 1996 diff --git a/contrib/traceroute/INSTALL b/contrib/traceroute/INSTALL deleted file mode 100644 index 45d361dc4a0e..000000000000 --- a/contrib/traceroute/INSTALL +++ /dev/null @@ -1,105 +0,0 @@ -@(#) $Id: INSTALL,v 1.13 2000/11/23 20:07:29 leres Exp $ (LBL) - -Traceroute is known to build and run under SunOS 4.1.4 and Solaris 5.4. -If you are running a really old kernel, see the instructions under the -title "KERNEL MODIFICATIONS" further down. - -To build traceroute, first customize any paths in Makefile.in, then run -"./configure" (a shell script). The configure script will determine -your system attributes and generate an appropriate Makefile from -Makefile.in. Next run "make". If everything goes well you can su to -root and run "make install" and "make install-man". Note that traceroute -must be installed setuid to root or run as root. - -If configure fails for some reason and decide to submit a bug report to -traceroute@ee.lbl.gov, please include a copy of config.log. - -You will need an ANSI C compiler to build libpcap. The configure script -will abort if your compiler is not ANSI compliant. If this happens, use -the GNU C compiler, available via anonymous ftp: - - ftp://prep.ai.mit.edu/pub/gnu/gcc-*.tar.gz - -If you get the error message: - - traceroute: unknown protocol icmp - -it usually means you're missing the icmp line in /etc/protocols. - -If you are using Solaris 2.5.1 (and possibly higher), traceroute cannot -calculate checksums; configure automatically changes the default to -reflect this. The kernel updates the ip_id field with some unknown -value and the ip_off field with the IP_DF bit. Also, if the the udp -uh_sum field is non-zero, it gets updated with the value of the uh_ulen -field... This means that the icmp echo option (-I flag) is not as -useful. - -KERNEL MODIFICATIONS --------------------- -If yor have a really old system, it may be necessary to modify your -kernel before traceroute will work. If you want to hack on your kernel, -a modified version of the routine rip_output (normally found in the -file /sys/netinet/raw_ip.c) can be found in rip_output.c. This code may -or may not resemble the code in your kernel. It may offer you a place -to start but we make no promises. If you do hack your kernel, remember -to test everything that uses raw ip sockets (e.g., ping and -egpup/gated) & make sure they still work. We wish you the best of luck -and you're on your own. - -Some older kernels forward icmp packets that have a ttl of zero. If -your system has this bug, you might want to fix it while you're in the -kernel. (This bug appears in all releases of BSD up to but not -including 4.3tahoe. If your version of netinet/ip_icmp.c is any earlier -than 7.3 (April, '87), it has the bug.) The fix is just to add the -line: - - ip->ip_ttl = MAXTTL; - -after the line: - - ip->ip_src = t; - -(or anywhere before the call to icmp_send) in routine icmp_reflect. - -If you're running this on a pre-4.3bsd system (e.g., SunOS 3) that -strips ip headers from icmp messages, add -DARCHAIC to CFLAGS in the -Makefile. Also note that rip_output contains a conditional for a -4.2/4.3 change in the location of a raw socket's protocol number. I've -checked this under 4.3 & SunOS 3 but you should double-check your -system to make sure the appropriate branch of the #if is taken (check -the line that assigned to ip->ip_p in your system's original -rip_output). - - -FILES ------ -CHANGES - description of differences between releases -FILES - list of files exported as part of the distribution -INSTALL - this file -Makefile.in - compilation rules (input to the configure script) -README - description of distribution -VERSION - version of this release -aclocal.m4 - autoconf macros -config.guess - autoconf support -config.sub - autoconf support -configure - configure script (run this first) -configure.in - configure script source -findsaddr-generic.c - generic source address code -findsaddr-linux.c - linux source address code -findsaddr-socket.c - socket based soruce address code -findsaddr.h - source address prototypes -ifaddrlist.c - inet address routines -ifaddrlist.h - inet address prototypes -install-sh - BSD style install script -lbl/gnuc.h - gcc macros and defines -lbl/os-*.h - os dependent defines and prototypes -linux-include/* - network include files missing on Linux -mean.awk - awk script to print out the mean time along a route -median.awk - awk script to print out the median time along a route -mkdep - construct Makefile dependency list -rip_output.c - sample rip_output() from /sys/netinet/raw_ip.c -strerror.c - emulation routine -traceroute.8 - manual entry -traceroute.c - main program -traceroute.h - global prototypes -usleep.c - missing system call emulation diff --git a/contrib/traceroute/README b/contrib/traceroute/README deleted file mode 100644 index bd4df4cb8295..000000000000 --- a/contrib/traceroute/README +++ /dev/null @@ -1,29 +0,0 @@ -@(#) $Id: README,v 1.9 2000/09/16 05:32:01 leres Exp $ (LBL) - -TRACEROUTE 1.4 -Lawrence Berkeley National Laboratory -Network Research Group -traceroute@ee.lbl.gov -ftp://ftp.ee.lbl.gov/traceroute.tar.gz - -Traceroute is a system administrators utility to trace the route -ip packets from the current system take in getting to some -destination system. See the comments at the front of the -program for a description of its use. - -This program uses raw ip sockets and must be run as root (or installed -setuid to root). - -A couple of awk programs to massage the traceroute output are -included. "mean.awk" and "median.awk" compute the mean and median time -to each hop, respectively. I've found that something like - - traceroute -q 7 foo.somewhere >t - awk -f median.awk t | xgraph - -can give you a quick picture of the bad spots on a long path (median is -usually a better noise filter than mean). - -Problems, bugs, questions, desirable enhancements, source code -contributions, etc., should be sent to the email address -"traceroute@ee.lbl.gov". diff --git a/contrib/traceroute/VERSION b/contrib/traceroute/VERSION deleted file mode 100644 index 26e2f7609197..000000000000 --- a/contrib/traceroute/VERSION +++ /dev/null @@ -1,2 +0,0 @@ -1.4a12+FreeBSD -$FreeBSD$ diff --git a/contrib/traceroute/mean.awk b/contrib/traceroute/mean.awk deleted file mode 100644 index 2d5e37820694..000000000000 --- a/contrib/traceroute/mean.awk +++ /dev/null @@ -1,12 +0,0 @@ -/^ *[0-9]/ { - # print out the average time to each hop along a route. - tottime = 0; n = 0; - for (f = 5; f <= NF; ++f) { - if ($f == "ms") { - tottime += $(f - 1) - ++n - } - } - if (n > 0) - print $1, tottime/n, median -} diff --git a/contrib/traceroute/median.awk b/contrib/traceroute/median.awk deleted file mode 100644 index 5935bad4ff4b..000000000000 --- a/contrib/traceroute/median.awk +++ /dev/null @@ -1,29 +0,0 @@ -/^ *[0-9]/ { - # print out the median time to each hop along a route. - tottime = 0; n = 0; - for (f = 5; f <= NF; ++f) { - if ($f == "ms") { - ++n - time[n] = $(f - 1) - } - } - if (n > 0) { - # insertion sort the times to find the median - for (i = 2; i <= n; ++i) { - v = time[i]; j = i - 1; - while (time[j] > v) { - time[j+1] = time[j]; - j = j - 1; - if (j < 0) - break; - } - time[j+1] = v; - } - if (n > 1 && (n % 2) == 0) - median = (time[n/2] + time[(n/2) + 1]) / 2 - else - median = time[(n+1)/2] - - print $1, median - } -} diff --git a/contrib/traceroute/rip_output.c b/contrib/traceroute/rip_output.c deleted file mode 100644 index 0b092b1e8e2f..000000000000 --- a/contrib/traceroute/rip_output.c +++ /dev/null @@ -1,73 +0,0 @@ -/* A sample version of rip_output() from /sys/netinet/raw_ip.c */ - -rip_output(m, so) - register struct mbuf *m; - struct socket *so; -{ - register struct ip *ip; - int error; - struct rawcb *rp = sotorawcb(so); - struct sockaddr_in *sin; -#if BSD>=43 - short proto = rp->rcb_proto.sp_protocol; -#else - short proto = so->so_proto->pr_protocol; -#endif - /* - * if the protocol is IPPROTO_RAW, the user handed us a - * complete IP packet. Otherwise, allocate an mbuf for a - * header and fill it in as needed. - */ - if (proto != IPPROTO_RAW) { - /* - * Calculate data length and get an mbuf - * for IP header. - */ - int len = 0; - struct mbuf *m0; - - for (m0 = m; m; m = m->m_next) - len += m->m_len; - - m = m_get(M_DONTWAIT, MT_HEADER); - if (m == 0) { - m = m0; - error = ENOBUFS; - goto bad; - } - m->m_off = MMAXOFF - sizeof(struct ip); - m->m_len = sizeof(struct ip); - m->m_next = m0; - - ip = mtod(m, struct ip *); - ip->ip_tos = 0; - ip->ip_off = 0; - ip->ip_p = proto; - ip->ip_len = sizeof(struct ip) + len; - ip->ip_ttl = MAXTTL; - } else - ip = mtod(m, struct ip *); - - if (rp->rcb_flags & RAW_LADDR) { - sin = (struct sockaddr_in *)&rp->rcb_laddr; - if (sin->sin_family != AF_INET) { - error = EAFNOSUPPORT; - goto bad; - } - ip->ip_src.s_addr = sin->sin_addr.s_addr; - } else - ip->ip_src.s_addr = 0; - - ip->ip_dst = ((struct sockaddr_in *)&rp->rcb_faddr)->sin_addr; - -#if BSD>=43 - return (ip_output(m, rp->rcb_options, &rp->rcb_route, - (so->so_options & SO_DONTROUTE) | IP_ALLOWBROADCAST)); -#else - return (ip_output(m, (struct mbuf *)0, &rp->rcb_route, - (so->so_options & SO_DONTROUTE) | IP_ALLOWBROADCAST)); -#endif -bad: - m_freem(m); - return (error); -} diff --git a/usr.sbin/traceroute/Makefile b/usr.sbin/traceroute/Makefile index 8ea7ee22d19a..fd013be9ba9a 100644 --- a/usr.sbin/traceroute/Makefile +++ b/usr.sbin/traceroute/Makefile @@ -1,16 +1,12 @@ .include -TRACEROUTE_DISTDIR?= ${SRCTOP}/contrib/traceroute -.PATH: ${TRACEROUTE_DISTDIR} - PACKAGE= runtime PROG= traceroute MAN= traceroute.8 -SRCS= as.c version.c traceroute.c ifaddrlist.c findsaddr-udp.c +SRCS= as.c traceroute.c ifaddrlist.c findsaddr-udp.c BINOWN= root BINMODE=4555 -CLEANFILES= version.c CFLAGS+= -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SOCKIO_H=1 \ -DHAVE_NET_ROUTE_H=1 -DHAVE_NET_IF_DL_H=1 \ @@ -36,14 +32,6 @@ LIBADD+= cap_dns CFLAGS+=-DWITH_CASPER .endif -CFLAGS+= -I${TRACEROUTE_DISTDIR} - WARNS?= 3 -version.c: ${TRACEROUTE_DISTDIR}/VERSION - @rm -f ${.TARGET} - head -1 ${TRACEROUTE_DISTDIR}/VERSION | \ - sed -e 's/.*/char version[] = "&";/' \ - > ${.TARGET} - .include diff --git a/contrib/traceroute/as.c b/usr.sbin/traceroute/as.c similarity index 100% rename from contrib/traceroute/as.c rename to usr.sbin/traceroute/as.c diff --git a/contrib/traceroute/as.h b/usr.sbin/traceroute/as.h similarity index 100% rename from contrib/traceroute/as.h rename to usr.sbin/traceroute/as.h diff --git a/contrib/traceroute/findsaddr-socket.c b/usr.sbin/traceroute/findsaddr-socket.c similarity index 100% rename from contrib/traceroute/findsaddr-socket.c rename to usr.sbin/traceroute/findsaddr-socket.c diff --git a/contrib/traceroute/findsaddr.h b/usr.sbin/traceroute/findsaddr.h similarity index 100% rename from contrib/traceroute/findsaddr.h rename to usr.sbin/traceroute/findsaddr.h diff --git a/contrib/traceroute/ifaddrlist.c b/usr.sbin/traceroute/ifaddrlist.c similarity index 100% rename from contrib/traceroute/ifaddrlist.c rename to usr.sbin/traceroute/ifaddrlist.c diff --git a/contrib/traceroute/ifaddrlist.h b/usr.sbin/traceroute/ifaddrlist.h similarity index 100% rename from contrib/traceroute/ifaddrlist.h rename to usr.sbin/traceroute/ifaddrlist.h diff --git a/contrib/traceroute/traceroute.8 b/usr.sbin/traceroute/traceroute.8 similarity index 100% rename from contrib/traceroute/traceroute.8 rename to usr.sbin/traceroute/traceroute.8 diff --git a/contrib/traceroute/traceroute.c b/usr.sbin/traceroute/traceroute.c similarity index 99% rename from contrib/traceroute/traceroute.c rename to usr.sbin/traceroute/traceroute.c index 6f2350150bd8..abc96ce5b139 100644 --- a/contrib/traceroute/traceroute.c +++ b/usr.sbin/traceroute/traceroute.c @@ -2148,9 +2148,6 @@ pkt_compare(const u_char *a, int la, const u_char *b, int lb) { void usage(void) { - extern char version[]; - - Fprintf(stderr, "Version %s\n", version); Fprintf(stderr, "Usage: %s [-adDeEFInrSvx] [-f first_ttl] [-g gateway] [-i iface]\n" "\t[-m max_ttl] [-p port] [-P proto] [-q nqueries] [-s src_addr]\n" diff --git a/contrib/traceroute/traceroute.h b/usr.sbin/traceroute/traceroute.h similarity index 100% rename from contrib/traceroute/traceroute.h rename to usr.sbin/traceroute/traceroute.h diff --git a/usr.sbin/traceroute6/Makefile b/usr.sbin/traceroute6/Makefile index 5086b3c08706..3b979841a106 100644 --- a/usr.sbin/traceroute6/Makefile +++ b/usr.sbin/traceroute6/Makefile @@ -14,8 +14,7 @@ .include -TRACEROUTE_DISTDIR?= ${SRCTOP}/contrib/traceroute -.PATH: ${TRACEROUTE_DISTDIR} +.PATH: ${SRCTOP}/usr.sbin/traceroute PACKAGE= runtime PROG= traceroute6 @@ -25,7 +24,7 @@ BINOWN= root BINMODE= 4555 CFLAGS+= -DIPSEC -DHAVE_POLL -CFLAGS+= -I${.CURDIR} -I${TRACEROUTE_DISTDIR} -I. +CFLAGS+= -I${.CURDIR} -I${SRCTOP}/usr.sbin/traceroute -I. .if ${MK_CASPER} != "no" LIBADD+= casper From nobody Wed May 21 06:44:49 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2MNd3jjJz5wx6M; Wed, 21 May 2025 06:44:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2MNd1lpMz4N9g; Wed, 21 May 2025 06:44:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uzz/D/tGs+RNXn+65chBpsIaf2dgewW1O+ASU1H5Hl8=; b=aUG9GjfEY9Mx1vbQZBQJtSrAVum7USGKLJSu+Zrp1ApSyZNjqtrAQq6MUqESxvgE/FyqW8 9l2RiyujSU4GXOwt2RVrxpJTkyYLvS6Ogy7y2nckfd1cDU4HBlcjjQ8RU8qowG/yjFMEWx kxkNDdoRrmyUOpP4c5NsIfz44yDmnrGyTGVJ9iW6iQ7r44drP6wz6dCxI5KUch/cJ8QQ0V rfypwr0bGH32i/llFAcTZ5rv6j6C7ZdDxBkfGY5exRgofxQvp7K0V99ZbhLXiszpzjoPwO sHuWpgt5G4gZ697E5JVvoJYqJZ0QtsD7Iuc+wUGg3uONujZqcbSA2VkCLtPzsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uzz/D/tGs+RNXn+65chBpsIaf2dgewW1O+ASU1H5Hl8=; b=udw0vp4+TTdOlUSEwLibg9wPM7RhNkVtcifAtsB2xSGsI6cVQyCKRtdSdVWm1sj3qtmnpj LqcFyeEw2+5JFH8jtRD6CjGVoOspk10kDFLtnWD0pghyWJcLAPSytyNiF2EKcZmVLydlrv 9CkglfUDbYUMXTPvRzcZbpE3N3EI3CNsIaxNVXBYf2WCjdkBC5AB8OrZnrwV+aD0/Zf4Tg tKwlLyws/5AoAF+YMShRlovaCgBogwsSDWZvqnbOuhLCDHeqQW+kGnGfIsr9aOJ0SY+OLb gBsp0zxrsaBnyVj3FDbzFDbKFncEmjHNC5gxuG20P+RSux2sJrZV01VVCy0JMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747809889; a=rsa-sha256; cv=none; b=cFkrVgfOFybFo9ad2Y178AhS/TTt5+FiyDyXSdiC4HyLpRu9S3M6qnc1qhJGBKY/G02cwe qaopGwL/A1LE3obtos/BkP/WUhB3lfqJPKinLKpKm87vUPoD+A4G75Vx1QUEf/qpI+Ho1R hP+2fhQ3iaIGWm05aTLRKTY4Hcna1O55nHagFjVZkmeYGxK/fRaFOmG9qpNKOhxFFhRnQv nTa+12Q+0WaOUrb3WqeEmIp1A2Wy9/XWkAv9zMWZFmu3H+mEOPi20MHY7N7yyq8XNkI0yI f3v7cN9f9qVz8G9tYZCPS1Ag2jGMOgT1Db/GmNxQFd7vt5szVXmQhD2UrOSpyA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2MNd1J2hz8Jl; Wed, 21 May 2025 06:44:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L6inFH034496; Wed, 21 May 2025 06:44:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L6in67034493; Wed, 21 May 2025 06:44:49 GMT (envelope-from git) Date: Wed, 21 May 2025 06:44:49 GMT Message-Id: <202505210644.54L6in67034493@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 2ed058b54ee2 - stable/14 - traceroute: remove rcsid tags List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2ed058b54ee26820d5e59dddcf61c90f9c48e8ad Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=2ed058b54ee26820d5e59dddcf61c90f9c48e8ad commit 2ed058b54ee26820d5e59dddcf61c90f9c48e8ad Author: Lexi Winter AuthorDate: 2024-02-03 13:24:26 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 06:27:46 +0000 traceroute: remove rcsid tags Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1100 (cherry picked from commit 3f0b108924428ff91f2640de5f01df0d0bf45253) --- usr.sbin/traceroute/findsaddr-socket.c | 5 ----- usr.sbin/traceroute/ifaddrlist.c | 5 ----- usr.sbin/traceroute/traceroute.c | 12 ------------ 3 files changed, 22 deletions(-) diff --git a/usr.sbin/traceroute/findsaddr-socket.c b/usr.sbin/traceroute/findsaddr-socket.c index b1a2903f4636..8a25c4641349 100644 --- a/usr.sbin/traceroute/findsaddr-socket.c +++ b/usr.sbin/traceroute/findsaddr-socket.c @@ -35,11 +35,6 @@ /* XXX Yes this is WAY too complicated */ -#ifndef lint -static const char rcsid[] = - "@(#) $Id: findsaddr-socket.c,v 1.1 2000/11/23 20:17:12 leres Exp $ (LBL)"; -#endif - #include #include #include diff --git a/usr.sbin/traceroute/ifaddrlist.c b/usr.sbin/traceroute/ifaddrlist.c index f9a72b28d4a7..796986c9d5b4 100644 --- a/usr.sbin/traceroute/ifaddrlist.c +++ b/usr.sbin/traceroute/ifaddrlist.c @@ -31,11 +31,6 @@ * SUCH DAMAGE. */ -#ifndef lint -static const char rcsid[] = - "@(#) $Id: ifaddrlist.c,v 1.9 2000/11/23 20:01:55 leres Exp $ (LBL)"; -#endif - #include #include #include diff --git a/usr.sbin/traceroute/traceroute.c b/usr.sbin/traceroute/traceroute.c index abc96ce5b139..49c9e030fc1e 100644 --- a/usr.sbin/traceroute/traceroute.c +++ b/usr.sbin/traceroute/traceroute.c @@ -19,18 +19,6 @@ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -#ifndef lint -static const char copyright[] = - "@(#) Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000\n\ -The Regents of the University of California. All rights reserved.\n"; -#if 0 -static const char rcsid[] = - "@(#)$Id: traceroute.c,v 1.68 2000/12/14 08:04:33 leres Exp $ (LBL)"; -#endif -static const char rcsid[] = - "$FreeBSD$"; -#endif - /* * traceroute host - trace the route ip packets follow going to "host". * From nobody Wed May 21 06:44:50 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2MNf594Fz5wx10; Wed, 21 May 2025 06:44:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2MNf2f09z4NMN; Wed, 21 May 2025 06:44:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809890; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MFmG4VPx0lRlbxUnu8THBGh8hyD4Qcv7901qRkFxKCE=; b=Z3t6Ei/X+bNTw92M0OGeZSKr78vP7vX2+hmbJRNFxMpIEuE4lILsV9dMYt20vzURHUlTjc lxH4yInnZxi4P2qCbVYZyrsMiMBUtygKZ8y5FM5Hgepy/DYmYXXfwf7lVN1UBUPfD+OIhO htZlU4/FC/07sImElptUwNvp6MnxSW8wyAo7VPGvXIEZtvk6fFJyf+k6Dhf2DXnz+hVLmo 0NkCwgEfL6iQnFkIFCU4r5Gbvz2mOg4qgSO1Ebgsl28IMY8KCw0e3rHBt3An3zZuqmZGiI jFmRSZV1JXQ9JEkkaX/UyPQhvTJJmLm/v/cV+oQ+bvV8yY3UO4O4OIZMvdtQgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809890; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MFmG4VPx0lRlbxUnu8THBGh8hyD4Qcv7901qRkFxKCE=; b=f1rmAK0owQIAcoWwDSePHVKbaJxrOAztQqL2nD9DrD9xYl46NncoeZZytM7YsE2aNDwnC8 zgX1svzhMOg0t0W+yZGE5cizCPtML5SXYnXj9036kDVqw9j4Y1GrHti4RNNAawqB/JqqPB +eiRm054aQwm8b6dCBYrb9rbZpMy51qMCYGKRyy+Er7wKntDKbPqWXzaGxexPr3ArYS2xC ijyVKa6iY2Ea4T3Uj7oOHNbfUI+O+uXDPLnMGl9tblkZdVj2j6g/ln/ZkeWSYBekemsp85 KZ8iofzMsIFmHYpFTYJ8gtYBU3XzBRuOKsSgrZ8m2qw+TEWQewZp1RvOLtl3BQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747809890; a=rsa-sha256; cv=none; b=Pqm0lMQu/c8d6Sep/f1/SkCysSpfSQ3LVoinmyb6fVVUN4bK7/bSQ8gJBhPtk2huAXX2+I PTBxxBC3pZ2UhrnoRtcPWknAtIu0vrVkRGVMxX2cRqW7zhMUoUUQGdU0901id584Utl5e1 LB7zTwEUNjHKaZE5IZIfLGzIP/3ruO/WWU/H7kR4zHYtNWClwoJtg2vc2bf4fezckJKhlR gXC8EXTsGoNtW2vLHmq0wCCHNUTxl3vQ9JQmKadhO1ClwKzbJePJJZli6wdLyIsOLE315o WoqrCCGio3fovuKILVW4TVUAzmLMyxd1/Z2x77fmJKQC0qVGnDnjZt+NrmbstA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2MNf2Fg1z8MY; Wed, 21 May 2025 06:44:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L6iodK034530; Wed, 21 May 2025 06:44:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L6iogO034527; Wed, 21 May 2025 06:44:50 GMT (envelope-from git) Date: Wed, 21 May 2025 06:44:50 GMT Message-Id: <202505210644.54L6iogO034527@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 437569e7ac25 - stable/14 - traceroute: remove configuration #defines List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 437569e7ac254314d3b89372b461fd1bb4641ec3 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=437569e7ac254314d3b89372b461fd1bb4641ec3 commit 437569e7ac254314d3b89372b461fd1bb4641ec3 Author: Lexi Winter AuthorDate: 2024-02-03 13:19:03 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 06:27:46 +0000 traceroute: remove configuration #defines traceroute used a series of #defines to specify what features are available on the host platform. As traceroute is now in source, these are unnecessary and complicate the code, so remove them. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1100 (cherry picked from commit 6a6c5572c3411d3b4d5a423d3bb8d53026cb4355) --- usr.sbin/traceroute/Makefile | 6 --- usr.sbin/traceroute/findsaddr-socket.c | 30 --------------- usr.sbin/traceroute/ifaddrlist.c | 8 ---- usr.sbin/traceroute/traceroute.c | 67 ---------------------------------- 4 files changed, 111 deletions(-) diff --git a/usr.sbin/traceroute/Makefile b/usr.sbin/traceroute/Makefile index fd013be9ba9a..45a80174f5ab 100644 --- a/usr.sbin/traceroute/Makefile +++ b/usr.sbin/traceroute/Makefile @@ -8,12 +8,6 @@ SRCS= as.c traceroute.c ifaddrlist.c findsaddr-udp.c BINOWN= root BINMODE=4555 -CFLAGS+= -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SOCKIO_H=1 \ - -DHAVE_NET_ROUTE_H=1 -DHAVE_NET_IF_DL_H=1 \ - -DHAVE_STRERROR=1 -DHAVE_USLEEP=1 \ - -DHAVE_SYS_SYSCTL_H=1 -DBYTESWAP_IP_HDR=1 \ - -DHAVE_SETLINEBUF=1 -DHAVE_RAW_OPTIONS=1 \ - -DHAVE_SOCKADDR_SA_LEN=1 -DHAVE_ICMP_NEXTMTU=1 .if !defined(TRACEROUTE_NO_IPSEC) CFLAGS+= -DIPSEC .endif diff --git a/usr.sbin/traceroute/findsaddr-socket.c b/usr.sbin/traceroute/findsaddr-socket.c index 8a25c4641349..b73668146be6 100644 --- a/usr.sbin/traceroute/findsaddr-socket.c +++ b/usr.sbin/traceroute/findsaddr-socket.c @@ -39,9 +39,7 @@ #include #include #include -#ifdef HAVE_SYS_SOCKIO_H #include -#endif #include /* concession to AIX */ #if __STDC__ @@ -61,17 +59,11 @@ struct rtentry; #include #include "gnuc.h" -#ifdef HAVE_OS_PROTO_H #include "os-proto.h" -#endif #include "findsaddr.h" -#ifdef HAVE_SOCKADDR_SA_LEN #define SALEN(sa) ((sa)->sa_len) -#else -#define SALEN(sa) salen(sa) -#endif #ifndef roundup #define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* to any y */ @@ -89,10 +81,6 @@ static struct rtmsg rtmsg = { { 0 } }; -#ifndef HAVE_SOCKADDR_SA_LEN -static int salen(struct sockaddr *); -#endif - /* * Return the source address for the given destination address */ @@ -196,21 +184,3 @@ findsaddr(register const struct sockaddr_in *to, return ("failed!"); } - -#ifndef HAVE_SOCKADDR_SA_LEN -static int -salen(struct sockaddr *sa) -{ - switch (sa->sa_family) { - - case AF_INET: - return (sizeof(struct sockaddr_in)); - - case AF_LINK: - return (sizeof(struct sockaddr_dl)); - - default: - return (sizeof(struct sockaddr)); - } -} -#endif diff --git a/usr.sbin/traceroute/ifaddrlist.c b/usr.sbin/traceroute/ifaddrlist.c index 796986c9d5b4..b38d0c5f244a 100644 --- a/usr.sbin/traceroute/ifaddrlist.c +++ b/usr.sbin/traceroute/ifaddrlist.c @@ -35,9 +35,7 @@ #include #include #include -#ifdef HAVE_SYS_SOCKIO_H #include -#endif #include /* concession to AIX */ #if __STDC__ @@ -65,9 +63,7 @@ int ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf) { register int fd, nipaddr; -#ifdef HAVE_SOCKADDR_SA_LEN size_t n; -#endif register struct ifreq *ifrp, *ifend, *ifnext; register struct sockaddr_in *sin; register struct ifaddrlist *al; @@ -103,7 +99,6 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf) al = ifaddrlist; nipaddr = 0; for (; ifrp < ifend; ifrp = ifnext) { -#ifdef HAVE_SOCKADDR_SA_LEN n = ifrp->ifr_addr.sa_len + sizeof(ifrp->ifr_name); if (n < sizeof(*ifrp)) ifnext = ifrp + 1; @@ -111,9 +106,6 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf) ifnext = (struct ifreq *)((char *)ifrp + n); if (ifrp->ifr_addr.sa_family != AF_INET) continue; -#else - ifnext = ifrp + 1; -#endif /* * Need a template to preserve address info that is * used below to locate the next entry. (Otherwise, diff --git a/usr.sbin/traceroute/traceroute.c b/usr.sbin/traceroute/traceroute.c index 49c9e030fc1e..2f9358689c90 100644 --- a/usr.sbin/traceroute/traceroute.c +++ b/usr.sbin/traceroute/traceroute.c @@ -194,13 +194,9 @@ #include #include #include -#ifdef HAVE_SYS_SELECT_H #include -#endif #include -#ifdef HAVE_SYS_SYSCTL_H #include -#endif #include #include @@ -231,9 +227,7 @@ #include #include #include -#ifdef HAVE_MALLOC_H #include -#endif #include #include #include @@ -295,14 +289,6 @@ struct outdata { struct timeval tv; /* time packet left */ }; -#ifndef HAVE_ICMP_NEXTMTU -/* Path MTU Discovery (RFC1191) */ -struct my_pmtu { - u_short ipm_void; - u_short ipm_nextmtu; -}; -#endif - u_char packet[512]; /* last inbound (icmp) packet */ struct ip *outip; /* last output ip packet */ @@ -386,9 +372,6 @@ void tvsub(struct timeval *, struct timeval *); void usage(void); int wait_for_reply(int, struct sockaddr_in *, const struct timeval *); void pkt_compare(const u_char *, int, const u_char *, int); -#ifndef HAVE_USLEEP -int usleep(u_int); -#endif void udp_prep(struct outdata *); int udp_check(const u_char *, int); @@ -754,11 +737,7 @@ main(int argc, char **argv) usage(); } -#ifdef HAVE_SETLINEBUF setlinebuf(stdout); -#else - setvbuf(stdout, NULL, _IOLBF, 0); -#endif protlen = packlen - sizeof(*outip) - optlen; if ((proto->num == IPPROTO_SCTP) && (packlen & 3)) { @@ -781,16 +760,10 @@ main(int argc, char **argv) outip->ip_tos &= ~IPTOS_ECN_MASK; outip->ip_tos |= IPTOS_ECN_ECT1; } -#ifdef BYTESWAP_IP_HDR outip->ip_len = htons(packlen); outip->ip_off = htons(off); -#else - outip->ip_len = packlen; - outip->ip_off = off; -#endif outip->ip_p = proto->num; outp = (u_char *)(outip + 1); -#ifdef HAVE_RAW_OPTIONS if (lsrr > 0) { register u_char *optlist; @@ -812,7 +785,6 @@ main(int argc, char **argv) optlist[3] = IPOPT_MINOFF; memcpy(optlist + 4, gwlist + 1, i); } else -#endif outip->ip_dst = to->sin_addr; outip->ip_hl = (outp - (u_char *)outip) >> 2; @@ -848,39 +820,6 @@ main(int argc, char **argv) exit(1); } -#if defined(IP_OPTIONS) && !defined(HAVE_RAW_OPTIONS) - if (lsrr > 0) { - u_char optlist[MAX_IPOPTLEN]; - - cp = "ip"; - if ((pe = getprotobyname(cp)) == NULL) { - Fprintf(stderr, "%s: unknown protocol %s\n", prog, cp); - exit(1); - } - - /* final hop */ - gwlist[lsrr] = to->sin_addr.s_addr; - ++lsrr; - - /* force 4 byte alignment */ - optlist[0] = IPOPT_NOP; - /* loose source route option */ - optlist[1] = IPOPT_LSRR; - i = lsrr * sizeof(gwlist[0]); - optlist[2] = i + 3; - /* Pointer to LSRR addresses */ - optlist[3] = IPOPT_MINOFF; - memcpy(optlist + 4, gwlist, i); - - if ((setsockopt(sndsock, pe->p_proto, IP_OPTIONS, - (char *)optlist, i + sizeof(gwlist[0]))) < 0) { - Fprintf(stderr, "%s: IP_OPTIONS: %s\n", - prog, strerror(errno)); - exit(1); - } - } -#endif - #ifdef SO_SNDBUF if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&packlen, sizeof(packlen)) < 0) { @@ -1439,11 +1378,7 @@ packet_ok(register u_char *buf, int cc, register struct sockaddr_in *from, if (code != ICMP_UNREACH_NEEDFRAG) pmtu = 0; else { -#ifdef HAVE_ICMP_NEXTMTU pmtu = ntohs(icp->icmp_nextmtu); -#else - pmtu = ntohs(((struct my_pmtu *)&icp->icmp_void)->ipm_nextmtu); -#endif } if (type == ICMP_ECHOREPLY && proto->num == IPPROTO_ICMP @@ -2045,9 +1980,7 @@ setsin(register struct sockaddr_in *sin, register u_int32_t addr) { memset(sin, 0, sizeof(*sin)); -#ifdef HAVE_SOCKADDR_SA_LEN sin->sin_len = sizeof(*sin); -#endif sin->sin_family = AF_INET; sin->sin_addr.s_addr = addr; } From nobody Wed May 21 06:44:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2MNg5WmMz5wx20; Wed, 21 May 2025 06:44:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2MNg3bnHz4N9k; Wed, 21 May 2025 06:44:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809891; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bzcG8/ONo1JJ7c2x/W5wXdZ6d0djScChGUc/rF+OpkA=; b=mh0G3k+dnFKYbUSjtBpe6sWmhLkKW0s6c1rFmydqIYGRhAkx1Om6g3Uo1I4rrrXVFXOYKw w30K5B7XGIy57BrS4BXux4MJkDFsy9MaKvOkqSYtJEMq7jWKFS2Mdv/q48PX3Gp0H2BjdP 06yxnPjjp4k74cNpA1+23iPniuBq2qwjx10NW//tu5yNbm9y3wB82DpyvWkK/j6TR91ACo quwq+VGt+3KvKLN7u+cKNufOotlMAOkpB1HxGBiAaOmMXueBpcyJFeJjH05pOO1Qv/wwZr 6ZWr/JnPOVmWloRy5EM38en05ppnhh0MYgMm3Nwc/3Tq2/DLQRdtIYw2r5fZpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809891; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bzcG8/ONo1JJ7c2x/W5wXdZ6d0djScChGUc/rF+OpkA=; b=MEfL0a5dJePwD+fTDA+a2bXfKmvw3MT8DP1ZCCslnvbZkV9PTuCcsFkqefNBOCPuOq2xk+ lA1dbgtXdPeyenf+lePSwSI02mfCD40sB22CHpqZpcCuF6c6jn100KTItfnnBCBtWn+4IP p2X1BDe3WTKBdDrE7YDGvR9QaeWIh049mGczf76vIKltDeLL8c3fD7lb/49VDpnbBmL/lc ORULcBwlTQIgn5pbyQQrI3cTmf7PJknNJfYv6lflMfB5ZPAL+5to31LZA3tH43OKcGbFKf 2zZ8L7isqFlJb09okaSiebtbUXAKXMv2UhGDTkDov7oZINoXi9MCGVLYQkNULQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747809891; a=rsa-sha256; cv=none; b=TElzZEHMlhe/ezpdPGtgbrtT8J98AaJLx2RiAlrbIeloA2qcrFNdU+d1MldkhEEAtE/hDQ NpFuD3T6XNpH6qLAw9TCVXTBRmRSXghVsyl5BQmiEjNtziTDJXeAP7cwwyuw4GL4ogAE6V oyd5WRr5mQHQAv+9X2X4cJx5fhvji+xTKM9H8n5aVDLAtp78jz5d6kIumFzp4a8Y3V4dac 9gzxJPCUtwv0ulUk7PNx3Cwdue/zj+Hupgquw0m0yUDjofn3T9UjADEiF8v7ZN7tuatrR6 a/T9uGQtALhwp84Ybs4dJGDw/XvyhFwUkSFVJP4mLYRGgq0ZE/lGx0lQE5WGUw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2MNg2zZDz7mx; Wed, 21 May 2025 06:44:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L6ipLT034564; Wed, 21 May 2025 06:44:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L6ipMV034561; Wed, 21 May 2025 06:44:51 GMT (envelope-from git) Date: Wed, 21 May 2025 06:44:51 GMT Message-Id: <202505210644.54L6ipMV034561@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: dd60e309af24 - stable/14 - traceroute: add tests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dd60e309af24409f0f756b13814926ea7570ce17 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=dd60e309af24409f0f756b13814926ea7570ce17 commit dd60e309af24409f0f756b13814926ea7570ce17 Author: Lexi Winter AuthorDate: 2025-05-05 21:47:58 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 06:29:13 +0000 traceroute: add tests add some basic tests for traceroute. this covers most of the flags we can easily test; in some cases we use tcpdump to ensure the correct packets are actually being sent. to run the tests, we create three jails: one for the source host, one for the destination host, and one to route packets betweem them. this ensures we're actually testing traceroute across a routed network and not just sending probe packets to a directly connected host. no tests for traceroute6 are in this commit since the traceroute6 merge into traceroute is in progress elsewhere. Reviewed by: des, adrian Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D49838 (cherry picked from commit ff8200f9b8d464d6b4cbdeaaacdc2b78d339111b) traceroute tests: fix the test when SCTP is supported The SCTP test assumes a default system configuration where SCTP is not supported, so the probe packet returns an ICMP error which is displayed as a !P response. If SCTP is supported, then something else is returned instead (depending on exactly what probe we sent, but not an ICMP error) and the test fails. Since we already check the correct probes are sent using tcpdump, remove the match for the second hop entirely. Reported by: Jenkins Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D50336 (cherry picked from commit 4dbe268d2e7ad4f1172a174a3c55f0fdff3aaa99) --- etc/mtree/BSD.tests.dist | 2 + usr.sbin/traceroute/Makefile | 3 + usr.sbin/traceroute/tests/Makefile | 7 + usr.sbin/traceroute/tests/traceroute_test.sh | 874 +++++++++++++++++++++++++++ 4 files changed, 886 insertions(+) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 2159b24978c0..a909ea3714d3 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1217,6 +1217,8 @@ .. syslogd .. + traceroute + .. .. .. diff --git a/usr.sbin/traceroute/Makefile b/usr.sbin/traceroute/Makefile index 45a80174f5ab..b47e0e2bd55f 100644 --- a/usr.sbin/traceroute/Makefile +++ b/usr.sbin/traceroute/Makefile @@ -8,6 +8,9 @@ SRCS= as.c traceroute.c ifaddrlist.c findsaddr-udp.c BINOWN= root BINMODE=4555 +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .if !defined(TRACEROUTE_NO_IPSEC) CFLAGS+= -DIPSEC .endif diff --git a/usr.sbin/traceroute/tests/Makefile b/usr.sbin/traceroute/tests/Makefile new file mode 100644 index 000000000000..7c3d6f777582 --- /dev/null +++ b/usr.sbin/traceroute/tests/Makefile @@ -0,0 +1,7 @@ +ATF_TESTS_SH+= traceroute_test + +# Allow tests to run in parallel in their own jails +TEST_METADATA+= execenv="jail" +TEST_METADATA+= execenv_jail_params="vnet allow.raw_sockets" + +.include diff --git a/usr.sbin/traceroute/tests/traceroute_test.sh b/usr.sbin/traceroute/tests/traceroute_test.sh new file mode 100755 index 000000000000..268e0bd58b5b --- /dev/null +++ b/usr.sbin/traceroute/tests/traceroute_test.sh @@ -0,0 +1,874 @@ +# SPDX-License-Identifier: ISC +# +# Copyright (c) 2025 Lexi Winter +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +# We are missing tests for the following flags: +# +# -a (turn on ASN lookups) +# -A (specify ASN lookup server) +# -d (enable SO_DEBUG) +# -D (print the diff between our packet and the quote in the ICMP error) +# -E (detect ECN bleaching) +# -n (or rather, we enable -n by default and don't test without it) +# -S (print per-hop packet loss) +# -v (verbose output) +# -w (how long to wait for an error response) +# -x (toggle IP checksums) +# -z (how long to wait between each probe) + +. $(atf_get_srcdir)/../../sys/common/vnet.subr + +# These are the default flags we use for most test cases: +# - only send a single probe packet to reduce the risk of kernel ICMP +# rate-limiting breaking the test. +# - only trace up to 5 hops and only wait 1 second for a response so the test +# fails quicker if something goes wrong. +# - disable DNS resolution as we don't usually care about this. +TR_FLAGS="-w 1 -q 1 -m 5 -n" + +# The prefix our test networks are in. +TEST_PREFIX="192.0.2.0/24" + +# The IPv4 addresses of the first link net between trsrc and trrtr. +LINK_TRSRC_TRSRC="192.0.2.5" +LINK_TRSRC_TRRTR="192.0.2.6" +LINK_TRSRC_PREFIXLEN="30" + +# The IPv4 addresses of the second link net between trsrc and trrtr. +LINK_TRSRC2_TRSRC="192.0.2.13" +LINK_TRSRC2_TRRTR="192.0.2.14" +LINK_TRSRC2_PREFIXLEN="30" + +# The IPv4 addresses of the link net between trdst and trrtr. +LINK_TRDST_TRDST="192.0.2.9" +LINK_TRDST_TRRTR="192.0.2.10" +LINK_TRDST_PREFIXLEN="30" + +# This is an address inside $TEST_PREFIX which is not routed anywhere. +UNREACHABLE_ADDR="192.0.2.255" + +setup_network() +{ + # Create 3 jails: one to be the source host, one to be the router, + # and one to be the destination host. + + vnet_init + + # src jail + epsrc=$(vnet_mkepair) + epsrc2=$(vnet_mkepair) + vnet_mkjail trsrc ${epsrc}a ${epsrc2}a + + # dst jail + epdst=$(vnet_mkepair) + vnet_mkjail trdst ${epdst}a + + # router jail + vnet_mkjail trrtr ${epsrc}b ${epsrc2}b ${epdst}b + + # Configure IPv4 addresses and routes on each jail. + + # trsrc + jexec trsrc ifconfig ${epsrc}a inet \ + ${LINK_TRSRC_TRSRC}/${LINK_TRSRC_PREFIXLEN} + jexec trrtr ifconfig ${epsrc}b inet \ + ${LINK_TRSRC_TRRTR}/${LINK_TRSRC_PREFIXLEN} + jexec trsrc route add -inet ${TEST_PREFIX} ${LINK_TRSRC_TRRTR} + + # trsrc2 + jexec trsrc ifconfig ${epsrc2}a inet \ + ${LINK_TRSRC2_TRSRC}/${LINK_TRSRC2_PREFIXLEN} + jexec trrtr ifconfig ${epsrc2}b inet \ + ${LINK_TRSRC2_TRRTR}/${LINK_TRSRC2_PREFIXLEN} + + # trdst + jexec trdst ifconfig ${epdst}a inet \ + ${LINK_TRDST_TRDST}/${LINK_TRDST_PREFIXLEN} + jexec trrtr ifconfig ${epdst}b inet \ + ${LINK_TRDST_TRRTR}/${LINK_TRDST_PREFIXLEN} + jexec trdst route add -inet ${TEST_PREFIX} ${LINK_TRDST_TRRTR} + + # The router jail (only) needs IP forwarding enabled. + jexec trrtr sysctl net.inet.ip.forwarding=1 +} + +## +# +# start_tcpdump, stop_tcpdump: used to capture packets during the test so we +# can verify we actually sent the expected packets. + +start_tcpdump() +{ + # Run tcpdump on trrtr, either on the given interface or on + # ${epsrc}b, which is trsrc's default route interface. + + interface="$1" + if [ -z "$interface" ]; then + interface="${epsrc}b" + fi + + rm -f "${PWD}/traceroute.pcap" + + jexec trrtr daemon -p "${PWD}/tcpdump.pid" \ + tcpdump --immediate-mode -w "${PWD}/traceroute.pcap" -nv \ + -i $interface + + # Give tcpdump time to start + sleep 1 +} + +stop_tcpdump() +{ + # Sleep to give tcpdump a chance to finish flushing + jexec trrtr kill -USR2 $(cat "${PWD}/tcpdump.pid") + sleep 1 + jexec trrtr kill $(cat "${PWD}/tcpdump.pid") + + # Format the packet capture and merge continued lines (starting with + # whitespace) into a single line; this makes it easier to match in + # atf_check. Append a blank line since the N command exits on EOF. + (tcpdump -nv -r "${PWD}/traceroute.pcap"; echo) | \ + sed -E -e :a -e N -e 's/\n +/ /' -e ta -e P -e D \ + > tcpdump.output +} + +## +# test: ipv4_basic +# + +atf_test_case "ipv4_basic" "cleanup" +ipv4_basic_head() +{ + atf_set descr "Basic IPv4 traceroute across a router" + atf_set require.user root +} + +ipv4_basic_body() +{ + setup_network + + # Use a more detailed set of regexp here than the rest of the tests to + # make sure the basic output format is correct. + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST} \\(${LINK_TRDST_TRDST}\\), 5 hops max, 40 byte packets$" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR} [0-9.]+ ms$" \ + -o match:"^ 2 ${LINK_TRDST_TRDST} [0-9.]+ ms$" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS ${LINK_TRDST_TRDST} +} + +ipv4_basic_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_icmp +# + +atf_test_case "ipv4_icmp" "cleanup" +ipv4_icmp_head() +{ + atf_set descr "Basic IPv4 ICMP traceroute across a router" + atf_set require.user root +} + +ipv4_icmp_body() +{ + setup_network + + # -I and -Picmp should mean the same thing, so test both. + + for icmp_flag in -Picmp -I; do + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS $icmp_flag \ + ${LINK_TRDST_TRDST} + + stop_tcpdump + + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto ICMP.*\\).* ${LINK_TRSRC_TRSRC} > ${LINK_TRDST_TRDST}: ICMP echo request" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto ICMP.*\\).* ${LINK_TRSRC_TRSRC} > ${LINK_TRDST_TRDST}: ICMP echo request" \ + cat tcpdump.output + done +} + +ipv4_icmp_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_udp +# + +atf_test_case "ipv4_udp" "cleanup" +ipv4_udp_head() +{ + atf_set descr "IPv4 UDP traceroute" + atf_set require.user root +} + +ipv4_udp_body() +{ + setup_network + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS -Pudp ${LINK_TRDST_TRDST} + + stop_tcpdump + + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto UDP .*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: UDP" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto UDP .*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33436: UDP" \ + cat tcpdump.output + + # Test with -e, the destination port should not increment. + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS -Pudp -e -p 40000 ${LINK_TRDST_TRDST} + + stop_tcpdump + + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto UDP .*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40000: UDP" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto UDP .*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40000: UDP" \ + cat tcpdump.output +} + +ipv4_udp_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_sctp +# + +atf_test_case "ipv4_sctp" "cleanup" +ipv4_sctp_head() +{ + atf_set descr "IPv4 SCTP traceroute" + atf_set require.user root +} + +ipv4_sctp_body() +{ + setup_network + + # For the default packet size, we should sent a SHUTDOWN ACK packet. + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + jexec trsrc traceroute $TR_FLAGS -Psctp ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto SCTP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: sctp \(1\) \[SHUTDOWN ACK\]" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto SCTP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33436: sctp \(1\) \[SHUTDOWN ACK\]" \ + cat tcpdump.output + + # For a larger packet size we should send INIT packets. + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + jexec trsrc traceroute $TR_FLAGS -Psctp ${LINK_TRDST_TRDST} 128 + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto SCTP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: sctp \(1\) \[INIT\]" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto SCTP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33436: sctp \(1\) \[INIT\]" \ + cat tcpdump.output + + # Test with -e, the destination port should not increment. + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + jexec trsrc traceroute $TR_FLAGS -Psctp -e -p 40000 ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto SCTP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40000: sctp \(1\) \[SHUTDOWN ACK\]" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto SCTP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40000: sctp \(1\) \[SHUTDOWN ACK\]" \ + cat tcpdump.output +} + +ipv4_sctp_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_tcp +# + +atf_test_case "ipv4_tcp" "cleanup" +ipv4_tcp_head() +{ + atf_set descr "IPv4 TCP traceroute" + atf_set require.user root +} + +ipv4_tcp_body() +{ + setup_network + + start_tcpdump + + # We expect the second hop to be a failure since traceroute doesn't + # know how to capture the RST packet. + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 \\*" \ + jexec trsrc traceroute $TR_FLAGS -Ptcp ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto TCP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: Flags \[S\]" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto TCP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33436: Flags \[S\]" \ + cat tcpdump.output + + # Test with -e, the destination port should not increment. + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 \\*" \ + jexec trsrc traceroute $TR_FLAGS -Ptcp -e -p 40000 ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto TCP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40000: Flags \[S\]" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto TCP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40000: Flags \[S\]" \ + cat tcpdump.output +} + +ipv4_tcp_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_srcaddr +# + +atf_test_case "ipv4_srcaddr" "cleanup" +ipv4_srcaddr_head() +{ + atf_set descr "IPv4 traceroute with explicit source address" + atf_set require.user root +} + +ipv4_srcaddr_body() +{ + setup_network + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST} \\($LINK_TRDST_TRDST\\) from ${LINK_TRSRC2_TRSRC}" \ + -o match:"^ 1 ${LINK_TRSRC2_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS \ + -s ${LINK_TRSRC2_TRSRC} ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto UDP.*\\).* ${LINK_TRSRC2_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: UDP" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto UDP.*\\).* ${LINK_TRSRC2_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33436: UDP" \ + cat tcpdump.output +} + +ipv4_srcaddr_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_srcinterface +# + +atf_test_case "ipv4_srcinterface" "cleanup" +ipv4_srcinterface_head() +{ + atf_set descr "IPv4 traceroute with explicit source interface" + atf_set require.user root +} + +ipv4_srcinterface_body() +{ + setup_network + + start_tcpdump + + # Unlike -s, traceroute doesn't print 'from ...' when using -i. + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC2_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS \ + -i ${epsrc2}a ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto UDP.*\\).* ${LINK_TRSRC2_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: UDP" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto UDP.*\\).* ${LINK_TRSRC2_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33436: UDP" \ + cat tcpdump.output +} + +ipv4_srcinterface_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_maxhops +# + +atf_test_case "ipv4_maxhops" "cleanup" +ipv4_maxhops_head() +{ + atf_set descr "IPv4 traceroute with -m" + atf_set require.user root +} + +ipv4_maxhops_body() +{ + setup_network + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o not-match:"^ 2" \ + jexec trsrc traceroute -w1 -q1 -m1 ${LINK_TRDST_TRDST} +} + +ipv4_maxhops_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_unreachable +# + +atf_test_case "ipv4_unreachable" "cleanup" +ipv4_unreachable_head() +{ + atf_set descr "IPv4 traceroute to an unreachable destination" + atf_set require.user root +} + +ipv4_unreachable_body() +{ + setup_network + + atf_check -s exit:0 \ + -e match:"^traceroute to ${UNREACHABLE_ADDR}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRSRC_TRRTR} [0-9.]+ ms !H" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS $UNREACHABLE_ADDR +} + +ipv4_unreachable_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_hugepacket +# + +atf_test_case "ipv4_hugepacket" "cleanup" +ipv4_hugepacket_head() +{ + atf_set descr "IPv4 traceroute with a huge packet" + atf_set require.user root +} + +ipv4_hugepacket_body() +{ + setup_network + + # We expect this to fail since we specified -F (don't fragment) and the + # 2000-byte packet is too large to fit through our tiny epair. Make + # sure traceroute reports the error. + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST} \\(${LINK_TRDST_TRDST}\\), 5 hops max, 2000 byte packets$" \ + -o match:"^ 1 traceroute: wrote ${LINK_TRDST_TRDST} 2000 chars, ret=-1" \ + -e match:"^traceroute: sendto: Message too long" \ + jexec trsrc traceroute -F $TR_FLAGS ${LINK_TRDST_TRDST} 2000 +} + +ipv4_hugepacket_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_firsthop +# + +atf_test_case "ipv4_firsthop" "cleanup" +ipv4_firsthop_head() +{ + atf_set descr "IPv4 traceroute with one hop skipped" + atf_set require.user root +} + +ipv4_firsthop_body() +{ + setup_network + + # -f 2 means we skip the first hop. For backward compatibility, -M is + # the same as -f, so test that too. + + for flag in -f2 -M2; do + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 1" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $flag $TR_FLAGS ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o not-match:"^..:..:..\....... IP \\(tos 0x0, ttl 1, .*, proto UDP.*\\)" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto UDP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: UDP" \ + cat tcpdump.output + done +} + +ipv4_firsthop_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_nprobes +# + +atf_test_case "ipv4_nprobes" "cleanup" +ipv4_nprobes_head() +{ + atf_set descr "IPv4 traceroute with varying number of probes" + atf_set require.user root +} + +ipv4_nprobes_body() +{ + setup_network + + # By default we should send 3 probes. + atf_check -s exit:0 -e ignore \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR} \(${LINK_TRSRC_TRRTR}\)( [0-9.]+ ms){3}$" \ + jexec trsrc traceroute -w1 -m1 ${LINK_TRDST_TRDST} + + # Also test 1 and 2 (below the default) and 5 (above the default) + for nprobes in 1 2 5; do + atf_check -s exit:0 -e ignore \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR} \(${LINK_TRSRC_TRRTR}\)( [0-9.]+ ms){$nprobes}$" \ + jexec trsrc traceroute -q$nprobes -w1 -m1 ${LINK_TRDST_TRDST} + done +} + +ipv4_nprobes_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_baseport +# + +atf_test_case "ipv4_baseport" "cleanup" +ipv4_baseport_head() +{ + atf_set descr "IPv4 traceroute with non-default base port" + atf_set require.user root +} + +ipv4_baseport_body() +{ + setup_network + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS -p 40000 \ + ${LINK_TRDST_TRDST} + + stop_tcpdump + + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto UDP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40001: UDP" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto UDP.*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.40002: UDP" \ + cat tcpdump.output +} + +ipv4_baseport_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_gre +# + +atf_test_case "ipv4_gre" "cleanup" +ipv4_gre_head() +{ + atf_set descr "IPv4 GRE traceroute" + atf_set require.user root +} + +ipv4_gre_body() +{ + setup_network + + start_tcpdump + + # We expect the second hop to be a failure since the remote host will + # ignore the GRE packet. + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 \\*" \ + jexec trsrc traceroute $TR_FLAGS -Pgre ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto GRE .*\\).* ${LINK_TRSRC_TRSRC} > ${LINK_TRDST_TRDST}: GREv1" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto GRE .*\\).* ${LINK_TRSRC_TRSRC} > ${LINK_TRDST_TRDST}: GREv1" \ + cat tcpdump.output +} + +ipv4_gre_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_udplite +# + +atf_test_case "ipv4_udplite" "cleanup" +ipv4_udplite_head() +{ + atf_set descr "IPv4 UDP-Lite traceroute" + atf_set require.user root +} + +ipv4_udplite_body() +{ + setup_network + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS -Pudplite ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto unknown \(136\), .*\\).* ${LINK_TRSRC_TRSRC} > ${LINK_TRDST_TRDST}: ip-proto-136" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto unknown \(136\), .*\\).* ${LINK_TRSRC_TRSRC} > ${LINK_TRDST_TRDST}: ip-proto-136" \ + cat tcpdump.output +} + +ipv4_udplite_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_iptos +# + +atf_test_case "ipv4_iptos" "cleanup" +ipv4_iptos_head() +{ + atf_set descr "IPv4 traceroute with explicit ToS" + atf_set require.user root +} + +ipv4_iptos_body() +{ + setup_network + + start_tcpdump + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST}" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS -t 4 ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x4, ttl 1, .*, proto UDP .*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33435: UDP" \ + -o match:"IP \\(tos 0x4, ttl 2, .*, proto UDP .*\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRDST_TRDST}.33436: UDP" \ + cat tcpdump.output +} + +ipv4_iptos_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_srcroute +# + +atf_test_case "ipv4_srcroute" "cleanup" +ipv4_srcroute_head() +{ + atf_set descr "IPv4 traceroute with explicit source routing" + atf_set require.user root +} + +ipv4_srcroute_body() +{ + setup_network + jexec trsrc sysctl net.inet.ip.sourceroute=1 + jexec trsrc sysctl net.inet.ip.accept_sourceroute=1 + jexec trrtr sysctl net.inet.ip.sourceroute=1 + + start_tcpdump + + # As we don't enable source routing on trdst, we should get an ICMP + # source routing failed error (!S). + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 2 ${LINK_TRDST_TRDST} [0-9.]+ ms !S" \ + -o not-match:"^ 3" \ + jexec trsrc traceroute $TR_FLAGS \ + -g ${LINK_TRSRC_TRRTR} ${LINK_TRDST_TRDST} + + stop_tcpdump + atf_check -s exit:0 -e ignore \ + -o match:"IP \\(tos 0x0, ttl 1, .*, proto UDP .*, options \\(NOP,LSRR ${LINK_TRDST_TRDST}\\)\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRSRC_TRRTR}.33435: UDP" \ + -o match:"IP \\(tos 0x0, ttl 2, .*, proto UDP .*, options \\(NOP,LSRR ${LINK_TRDST_TRDST}\\)\\).* ${LINK_TRSRC_TRSRC}.[0-9]+ > ${LINK_TRSRC_TRRTR}.33436: UDP" \ + cat tcpdump.output +} + +ipv4_srcroute_cleanup() +{ + vnet_cleanup +} + +## +# test: ipv4_dontroute +# + +atf_test_case "ipv4_dontroute" "cleanup" +ipv4_dontroute_head() +{ + atf_set descr "IPv4 traceroute with -r" + atf_set require.user root +} + +ipv4_dontroute_body() +{ + setup_network + + # This one should work as trrtr is directly connected. + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRSRC_TRRTR}" \ + -o match:"^ 1 ${LINK_TRSRC_TRRTR} [0-9.]+ ms$" \ + -o not-match:"^ 2" \ + jexec trsrc traceroute -r $TR_FLAGS ${LINK_TRSRC_TRRTR} + + # This one should fail. + + atf_check -s exit:0 \ + -e match:"^traceroute to ${LINK_TRDST_TRDST}" \ + -o match:"^ 1 traceroute: wrote ${LINK_TRDST_TRDST} 40 chars, ret=-1" \ + jexec trsrc traceroute -r $TR_FLAGS ${LINK_TRDST_TRDST} +} + +ipv4_dontroute_cleanup() +{ + vnet_cleanup +} + +## +# test case declarations + +atf_init_test_cases() +{ + atf_add_test_case ipv4_basic + atf_add_test_case ipv4_udp + atf_add_test_case ipv4_icmp + atf_add_test_case ipv4_tcp + atf_add_test_case ipv4_sctp + atf_add_test_case ipv4_gre + atf_add_test_case ipv4_udplite + atf_add_test_case ipv4_srcaddr + atf_add_test_case ipv4_srcinterface + atf_add_test_case ipv4_maxhops + atf_add_test_case ipv4_unreachable + atf_add_test_case ipv4_hugepacket + atf_add_test_case ipv4_firsthop + atf_add_test_case ipv4_nprobes + atf_add_test_case ipv4_baseport + atf_add_test_case ipv4_iptos + atf_add_test_case ipv4_srcroute + atf_add_test_case ipv4_dontroute +} From nobody Wed May 21 06:44:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2MNj0vlGz5wx24; Wed, 21 May 2025 06:44:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2MNh5PQGz4NVG; Wed, 21 May 2025 06:44:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WSXJjPf403oOfr3d7m8Uo6m+YarDPdHI/2GhoDQcoQA=; b=GYHZkPLr/dhMLqb0Er4kB4oEEVh9U0A7LIx3snEXCoc2se1sGTQmy6uhXhvCN9PXc9VYMb rngjDIGSqgYBriWjQUSamah62STe46q69UzV0oIIshy8S5cWZUXgijnL4EI44LUHzQMbj3 nnGdGpc8PzFc7/SVHfhDuP6+oyaqA4X8NXxEYbuHVS/+OPHH3Wet61MBA0RICYocZJ7P9Q qmkXIt+j4QLtZAG03U2e/bmDED8pCsrr7bjn2WrqXw8l20rF1nYTJmcn6KjtgM9ZGzZpPr GI01lZixyGz34dCcJZez23Fml1h7pQi3OC5fzsceRT4dQfyJLB+auobfw3C+AA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747809892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WSXJjPf403oOfr3d7m8Uo6m+YarDPdHI/2GhoDQcoQA=; b=THtERWtHDeaJqmic7fxDPKaDRGN4hLCu+tae4UbAOmdMVWnUUgEroXtLbI7ko5DTSEwToH kUXxjbfYJLWYH+go8IUHqCV5Ad/ra1SZXDR8dfD7Pf3117MNP0ZbWwNHzJNg+cusYK/0Un dHIqH45sENSw/AuuZwOmtHZTVIw9DQiD9uqmrYg32HxfWxo3f2PNLabAmKGviUFs1gcrUO kdncgpJtKqHSdrRyvLSM6mkAaBm5BqbfrW9A1WCUGlDbF4WpD1RCfsGUcNAqy2LiwZb89b Tf5Rzeg7d78V42GXH4X9FhTCSkwV+VmmbUbe33/4JPutIKe3+WwxAV6pEvvNXw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747809892; a=rsa-sha256; cv=none; b=bg5nRbmx5kqvYlN5SAhf7TgXpizl63ZIyAXK5/LSh6iSm5C1pr+vXy8kKDzjCgzt0uUgxt SPGysKuul9Y2eanUGdSkn8ilbkS3M8afmPTiIXSGE7RrmRAdXnVwTG78qzaYvYMu3vIpuV p9vvOtU0lLW1zVZ63FzCCuni/B9QD8diFxNVvI6gNVrfuY2d/o8JPzMCdY5kNX7ThdkVVY 0mlydKktUgrdSuA0oH1rp/dGfwI7yytl7fnoQXIO+0SJgeyl0UalW5XfAyOPOipMuFvH6O 1y9Fv/aYcftsv1RpW1amORWGTfZXATnjLLjF4xozUhWeam/+7tGoG6FdXUoXqg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2MNh3wFsz7my; Wed, 21 May 2025 06:44:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54L6iqZr034603; Wed, 21 May 2025 06:44:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54L6iq4P034600; Wed, 21 May 2025 06:44:52 GMT (envelope-from git) Date: Wed, 21 May 2025 06:44:52 GMT Message-Id: <202505210644.54L6iq4P034600@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: a02915589dff - stable/14 - traceroute.8: improve the documentation of -P List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a02915589dffa4b2eb93a686e430b35f7cbb10cc Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=a02915589dffa4b2eb93a686e430b35f7cbb10cc commit a02915589dffa4b2eb93a686e430b35f7cbb10cc Author: Lexi Winter AuthorDate: 2025-05-14 16:05:02 +0000 Commit: Lexi Winter CommitDate: 2025-05-21 06:29:17 +0000 traceroute.8: improve the documentation of -P 1. -P didn't say what the argument is supposed to be; in the case of udplite(4), "-Pudp-lite" is not valid, one must use "-Pudplite". 2. be more explicit about what sort of packets we generate, particularly for -Psctp and -Pgre. Reviewed by: imp, tuexen, des Approved by: des (mentor) Pull Request: https://github.com/freebsd/freebsd-src/pull/1657 (cherry picked from commit 0829839fd0cd6046fbb5c0b6c6432b5ffe0d91e8) --- usr.sbin/traceroute/traceroute.8 | 64 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/usr.sbin/traceroute/traceroute.8 b/usr.sbin/traceroute/traceroute.8 index 21427ef6e97c..6b46ec05a1c9 100644 --- a/usr.sbin/traceroute/traceroute.8 +++ b/usr.sbin/traceroute/traceroute.8 @@ -16,7 +16,7 @@ .\" $Id: traceroute.8,v 1.19 2000/09/21 08:44:19 leres Exp $ .\" $FreeBSD$ .\" -.Dd October 25, 2023 +.Dd May 14, 2025 .Dt TRACEROUTE 8 .Os .Sh NAME @@ -148,6 +148,68 @@ at the destination host (so an ICMP PORT_UNREACHABLE message will be returned to terminate the route tracing). If something is listening on a port in the default range, this option can be used to pick an unused port range. +.It Fl P Ar proto +Use packets of specified IP protocol when sending probes. +The +.Ar proto +argument may be one of the following: +.Bl -tag -width Ar udplite +.It Ar udp +Use +.Xr udp 4 +packets. +This is the default. +.It Ar icmp +Use +.Xr icmp 4 +.Dq echo request +packets. +.It Ar udplite +Use +.Xr udplite 4 +packets. +.It Ar tcp +Use +.Xr tcp 4 +.Dq SYN +packets. +This will cause a successful traceroute to end with no response (i.e., a +.Dq * +response) since +.Nm +does not know how to detect the RST or SYN+ACK response from the +destination host. +.It Ar sctp +Use +.Xr sctp 4 +packets. +The +.Ar packetlen +argument must be a multiple of 4. +SCTP probes will be constructed as SCTP +.Dq INIT +chunks, unless the packet length is too small, in which case the probes +will be SCTP +.Dq SHUTDOWN-ACK +chunks followed by zero or one +.Dq PAD +chunks. +.It Ar gre +Use +.Xr gre 4 +packets. +The GRE packets will be constructed as if they contain a PPTP +(Point-to-Point Tunneling Protocol) payload. +.El +.Pp +Other protocols may also be specified, either by number or by name (see +.Xr protocols 5 ) , +though +.Nm +does not implement any special knowledge of their packet formats. +This option is useful for determining which router along a path may be blocking +packets based on IP protocol number. +But see BUGS below. .It Fl q Ar nprobes Set the number of probes per hop (default is 3, unless From nobody Wed May 21 10:08:28 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2Rvd1JZtz5x8Zs; Wed, 21 May 2025 10:08:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2Rvd0CJwz3DTh; Wed, 21 May 2025 10:08:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822109; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/u0GjZEWTs65rgvTAhatbvusOncvaMjh0ae7fpon0qc=; b=H58g1MYv48L3z9q87l0LRPac7UJQTRXxdnY/xpsQDNW6bxyY4Y0JLmK/oEuLCi2u5f+dNn cBsnJLit7PaNS2VI3EwF1WBWs6upc0E46bQP95NCSi3ApK3JtjWL32bZDw17PW+E/G6gIO OutkGcr0R4fqAbAWsDB9bJdokCrFBogwx6qhkXzRnNIjRGeHgUk8Vm3kTMN/EAO1Jv2/zg VksgvGTkGFLQwb/VG/N2nnnGRLmlmuKz3jgMfhkfQWRopWeJdmnj9/hqVGdybugBcR6oiu Q3iqD+lcoaR70Pyab5MaRVNXP8Yahg9tQtfHaoQbbQjcCgxwixq9FOUovyn05A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822109; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/u0GjZEWTs65rgvTAhatbvusOncvaMjh0ae7fpon0qc=; b=M0X3NOhvwrSnCG55j37bQLA9t3fFo/wLCQOkzTh1MgjI2laNvQv9VLtKFjXv+kpBxGtjOa zC3gmiqvuqBOP7Ki4jb8alWg9lKRCR5w+69gbVJdBVAl6fzNfNZmBVB/H8qSMzZgNvyh2m g4HPMWsnaFmcMoFVR+7rQJFvU+x5BYxBzkf+2+VxptmP+9IqAVB3vhAnAchwUCVo467969 5pE/gGZMLLZl3DSukBrFKEWqImbOghhgKVl8Ovwp5CQ2199JXHRckzVrsm0wZUNRkTNMpk lGBCVPAJ4ef8RztQdO684dxgpD1yHfcbpFITHiC9TLz2RPsdz0pyT4gizXn9+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747822109; a=rsa-sha256; cv=none; b=SgS9vcqfk/eN2LIgh5GM5LEA4nVr7DSid0P5uim7AngQpFDSQFVH4ssaoiB2f7QYA1wPP6 zjaO9xDQsRZw/sq9deyQ+8Y++f6KEQLjDHJgzo/iTnT5SHBzY8ESKD/XeffFOiO3vXLSf5 +cD6A4NtIN3HzSxC4NRRJYy8+R3drWiQmSh86Mn7i37D6lPnUxwnQv960v1F9nXFwS90mQ z6xjHPyzQJcDcJBQzp/bXulw4PkFQfOa9E1XQ1+JxSCU9qBxik3HJ2Da/9Pa9vAthUrVX7 25D1fwsshH59qloHBV5wsF+2TDuX6bb3Wh1RV9kqafTRj99LCWHnu3qFSY45qg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2Rvc6wH8zVS7; Wed, 21 May 2025 10:08:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LA8S9f011762; Wed, 21 May 2025 10:08:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LA8SYx011758; Wed, 21 May 2025 10:08:28 GMT (envelope-from git) Date: Wed, 21 May 2025 10:08:28 GMT Message-Id: <202505211008.54LA8SYx011758@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 7a9ea03e4bbf - releng/14.3 - vfs: vn_alloc(): Stop always calling vn_alloc_hard() and direct reclaiming List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 7a9ea03e4bbfee1b2192d9a5b4da89a53d3a2c14 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=7a9ea03e4bbfee1b2192d9a5b4da89a53d3a2c14 commit 7a9ea03e4bbfee1b2192d9a5b4da89a53d3a2c14 Author: Olivier Certner AuthorDate: 2025-05-13 13:47:42 +0000 Commit: Olivier Certner CommitDate: 2025-05-21 10:07:15 +0000 vfs: vn_alloc(): Stop always calling vn_alloc_hard() and direct reclaiming Commit ab05a1cf321aca0f intended to revert commit 8733bc277a383cf5 ("vfs: don't provoke recycling non-free vnodes without a good reason"), but due to intervening changes in commit 054f45e026d898bd ("vfs: further speed up continuous free vnode recycle"), it also had to revert part of it. In particular, while removing the whole 'if (vn_alloc_cyclecount != 0)' block, it inadvertantly removed the code block resetting 'vn_alloc_cyclecount' to 0 and skipping direct vnode reclamation (done further below through vnlru_free_locked_direct()), which had been outside the 'if' before the intervening commit. Removing this block instead of reinstating it in practice causes 'vn_alloc_cyclecount' to (almost) never be 0, making vn_alloc() always call vn_alloc_hard(), which takes the 'vnode_list_mtx' mutex. In other words, this disables the fast path. [The reverted commit, which introduced the 'if (vn_alloc_cyclecount != 0)' guarding this block, actually never executed it because it also had the bug that 'vn_alloc_cyclecount' would always stay at 0, hiding its usefulness.] Additionally, not skipping direct vnode reclamation even when there are less vnodes than 'kern.maxvnodes' not only causes unnecessary contention but also plain livelocks as vnlru_free_locked_direct() does not itself check whether there are actually "free" (not referenced) vnodes to be deallocated, and will blindly browse all the vnode list until it finds one (which it may not, or only a few ones at the end). As the fast path was disabled, all threads in the system would soon be competing for the vnode list lock, outpacing the vnlru process that could never actually recycle vnodes in a more agressive manner (i.e., even if they have a non-zero hold count). And we could more easily get into this situation, as each vnode allocation was reducing the count of "free" vnodes, even if entirely new vnodes could be allocated instead. This part was mitigated by the vnlru process (before the tipping point described above), which explains why the mechanism would not always livelock. Not skipping direct vnode reclamation was arguably a bug introduced by the intervening commit (054f45e026d898bd), but was mitigated by vn_alloc_hard() not being called in the fast path. The revert commit, by disabling the fast path, made it significantly annoying (to the point of getting a few livelocks a week in some of my workloads). Restore the reset of 'vn_alloc_cyclecount' to 0 and skip direct reclamation when the current number of vnodes is below the 'kern.maxvnodes' limit, indicating we can start allocating a new 'struct vnode' right away. While here, fix the comparison with the limit when 'bumped' is true. Reviewed by: kib (older version), avg Tested by: avg, olce Fixes: ab05a1cf321aca0f (revert of "vfs: don't provoke recycling non-free vnodes without a good reason") Fixes: 054f45e026d898bd ("vfs: further speed up continuous free vnode recycle") MFC after: 5 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50338 (cherry picked from commit d90c9c24e2c3701949c47061b5ad198eedeebfb9) (cherry picked from commit ce6b7a5919da518715d6163baa42035d6d2c1bd0) Approved by: re (cperciva) --- sys/kern/vfs_subr.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 009d305b8c1f..a640bede85b9 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1964,11 +1964,24 @@ vn_alloc_hard(struct mount *mp, u_long rnumvnodes, bool bumped) mtx_lock(&vnode_list_mtx); + /* + * Reload 'numvnodes', as since we acquired the lock, it may have + * changed significantly if we waited, and 'rnumvnodes' above was only + * actually passed if 'bumped' is true (else it is 0). + */ + rnumvnodes = atomic_load_long(&numvnodes); + if (rnumvnodes + !bumped < desiredvnodes) { + vn_alloc_cyclecount = 0; + mtx_unlock(&vnode_list_mtx); + goto alloc; + } + rfreevnodes = vnlru_read_freevnodes(); if (vn_alloc_cyclecount++ >= rfreevnodes) { vn_alloc_cyclecount = 0; vstir = true; } + /* * Grow the vnode cache if it will not be above its target max * after growing. Otherwise, if the free list is nonempty, try From nobody Wed May 21 10:08:30 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2Rvf2scfz5x8kM; Wed, 21 May 2025 10:08:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2Rvf17m9z3DTk; Wed, 21 May 2025 10:08:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AI0FRyVn83XWZDlW/O2BrG67fMCg+xpqoB91syUtV6s=; b=fOj2P9GYotf6Pbtv3bDWrK0kL9AyCO2I1ji24SEkj1428amnpYZLsKA304/0vLDMIKHVlB iiwbJbAwlFGUQYCVwA+LL1wNuOsJwuxQVgkX8IPd1ku9/OjVAqfauY320Kelp3GxjXqVU/ B1QbSePMvdkrXMY4NTuCySGlb65MlsdWSsPd/48v+wjrEVLHLjZHW+wlXzKC3h7DoVqD6z PWLPwx6e4mmkohFTOZj9k6+dqQmO//7nldFbFaSKlj8Mi9oKjmwDv79zACc8hHnkAmsk8u VzntbanCvS2kIwNnZahodPceXbN5VU3U6mUPvLwVAY6m6+vk0oI9zR59oZhrOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AI0FRyVn83XWZDlW/O2BrG67fMCg+xpqoB91syUtV6s=; b=SEL+tSGDVVFoK7/0LCJk71kGhMRLPIdDNBjLjHAfDIzk+gTgtEgXNDWypDJFOxO/+gfVfb i7+JeUV4FBjGt0p0g78u/jKyOq7xVLOafw/gllfPWO+rfD76IYtvH1l2LZTnvIRqRxICDX 3dBwb2duAWB/rHU82OSgD5QgLY0YAue8DN5gE3GWz7tIX4kVAG6Y0GbzS+b9ealJR3/6aU 4plXpJgWfB+gy4QW67fmHwoyq8lNFWQTud513nVbKgK2EOMYhzqxvGwXxkc8aQ+r/6jZHI g25jApnFtB0As0qwdmTQMm+pRSBXbg4Xx0SYr7/+j0gCEUv/G0sSaKnf3oxvSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747822110; a=rsa-sha256; cv=none; b=xuCQvoqb1TBEJgdtU5l7lPDTItTdoxTN6hvksCYp5UonftflFW3moaJv0r7OuUhZ5QeIaD edFXR3R6b/8RyFK5NWOW99Ba2RSeswKUSPRaXeUfnyXL+FeRFrqk2Lqlq3ZdGG+jJ+o3ng VuY6jU1O7Y3uc35RVfKiZWKaI1DCSbZZ08tNRAQsb+eSpGaN3hTKwgvrZikCT4CyC0UWa2 FRwcbDWfbgPVO5IEVEBAvG09z6OCphWAFa+Qh6qSvSJMrTiDbFB2ysVPlHb8H7luDDuyxv Lh1nSCUqlwNx4RQbey2A+GloHfuKcorB27HWxpHTbQcYXNoGwRUcBWY6x1usFg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2Rvf0kvGzVXp; Wed, 21 May 2025 10:08:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LA8UHD011797; Wed, 21 May 2025 10:08:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LA8U1v011794; Wed, 21 May 2025 10:08:30 GMT (envelope-from git) Date: Wed, 21 May 2025 10:08:30 GMT Message-Id: <202505211008.54LA8U1v011794@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: fbc73f17ba17 - releng/14.3 - Compute 'maxproc'/'maxfiles' from memory amount; Expand/fix comments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: fbc73f17ba172e74c5b5a1b0d85a53fbc61b2402 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=fbc73f17ba172e74c5b5a1b0d85a53fbc61b2402 commit fbc73f17ba172e74c5b5a1b0d85a53fbc61b2402 Author: Olivier Certner AuthorDate: 2025-05-02 12:47:32 +0000 Commit: Olivier Certner CommitDate: 2025-05-21 10:07:36 +0000 Compute 'maxproc'/'maxfiles' from memory amount; Expand/fix comments Change the formulae so that 'maxproc' and 'maxfiles' are computed based on the physical memory amount, and not the corresponding number of pages. Make sure that the practical results are unchanged for all architectures (which is possible since all have 4096 as their PAGE_SIZE). Despite this, we do this change to make it clearer how many units of these values are computed per MB, which is easier on readers. Change the comments accordingly and expand them to indicate which parts of the computations are actually not used by default. In passing, fix the comments about default values and limits for 'maxfiles' (they were off). No functional change (intended). MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50124 (cherry picked from commit 73f9251c0b52ac0bfb2f2baff27493d6bae216f6) (cherry picked from commit e7d4e52eafb016707ef3dd3b778d76db280c06a4) Approved by: re (cperciva) --- sys/kern/subr_param.c | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/sys/kern/subr_param.c b/sys/kern/subr_param.c index 67dc10213a70..36009a5c1be1 100644 --- a/sys/kern/subr_param.c +++ b/sys/kern/subr_param.c @@ -70,13 +70,14 @@ # define HZ_VM HZ # endif #endif +/* See the comments in init_param2() for these. */ #define NPROC (20 + 16 * maxusers) -#ifndef NBUF -#define NBUF 0 -#endif #ifndef MAXFILES #define MAXFILES (40 + 32 * maxusers) #endif +#ifndef NBUF +#define NBUF 0 +#endif static int sysctl_kern_vm_guest(SYSCTL_HANDLER_ARGS); @@ -276,13 +277,14 @@ init_param1(void) void init_param2(long physpages) { + long maxproc_clamp, maxfiles_clamp; TSENTER(); /* Base parameters */ maxusers = MAXUSERS; TUNABLE_INT_FETCH("kern.maxusers", &maxusers); if (maxusers == 0) { - maxusers = physpages / (2 * 1024 * 1024 / PAGE_SIZE); + maxusers = pgtok(physpages) / (2 * 1024); if (maxusers < 32) maxusers = 32; #ifdef VM_MAX_AUTOTUNE_MAXUSERS @@ -291,35 +293,43 @@ init_param2(long physpages) #endif /* * Scales down the function in which maxusers grows once - * we hit 384. + * we hit 384 (16MB to get a new "user"). */ if (maxusers > 384) maxusers = 384 + ((maxusers - 384) / 8); } /* - * The following can be overridden after boot via sysctl. Note: - * unless overridden, these macros are ultimately based on maxusers. - * Limit maxproc so that kmap entries cannot be exhausted by - * processes. + * The following can be overridden after boot via sysctl. Note: unless + * overridden, these macros are ultimately based on 'maxusers'. Limit + * maxproc so that kmap entries cannot be exhausted by processes. The + * default for 'maxproc' linearly scales as 16 times 'maxusers' (so, + * linearly with 8 processes per MB up to 768MB, then 1 process per MB; + * overridable by a tunable), and is then clamped at 21 + 1/3 processes + * per MB (which never happens by default as long as physical memory is + * > ~1.5MB). */ maxproc = NPROC; TUNABLE_INT_FETCH("kern.maxproc", &maxproc); - if (maxproc > (physpages / 12)) - maxproc = physpages / 12; + maxproc_clamp = pgtok(physpages) / (3 * 1024 / 64); + if (maxproc > maxproc_clamp) + maxproc = maxproc_clamp; if (maxproc > pid_max) maxproc = pid_max; maxprocperuid = (maxproc * 9) / 10; /* - * The default limit for maxfiles is 1/12 of the number of - * physical page but not less than 16 times maxusers. - * At most it can be 1/6 the number of physical pages. + * 'maxfiles' by default is set to 32 files per MB (overridable by + * a tunable), and is then clamped at 64 files per MB (which thus never + * happens by default). (The default MAXFILES is for all practical + * purposes not used, as it gives a lower value than 32 files per MB as + * soon as there is more than ~2.5MB of memory.) */ - maxfiles = imax(MAXFILES, physpages / 8); + maxfiles = imax(MAXFILES, pgtok(physpages) / (1024 / 32)); TUNABLE_INT_FETCH("kern.maxfiles", &maxfiles); - if (maxfiles > (physpages / 4)) - maxfiles = physpages / 4; + maxfiles_clamp = pgtok(physpages) / (1024 / 64); + if (maxfiles > maxfiles_clamp) + maxfiles = maxfiles_clamp; maxfilesperproc = (maxfiles / 10) * 9; TUNABLE_INT_FETCH("kern.maxfilesperproc", &maxfilesperproc); From nobody Wed May 21 10:08:31 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2Rvg3JzPz5x8pm; Wed, 21 May 2025 10:08:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2Rvg2B6lz3DRG; Wed, 21 May 2025 10:08:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822111; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DnZnrBzqVztaPyPox3uUVQc/ehHg+U0SanNf1xZdVRc=; b=MzznQ6BGYT5Zu2bxjaU9Jei+vUgFl/fBqsy7nyNOIPVUI/QMURO9znuNsXfqxzsD4HWt31 WI1pEvrDFZyLKgnhYkSNg37qJn1A7G7GzfrfthjXlXsqcw9ztLNhM8XXhw3TzoJySsO4zA fidJ490Z+/4jQNJuUcQhsCXBSbFiYMEIbzxVZMkhGi+l7qe8YWIs685J8kxQypZG6LmdxX cmgFquumr1g/ELuarZ804HC0XFV8XuNM6vsB9vLtdNZwpaQwRxKeMe7XI15VvbUfDs3ftj Gu0FEE93k1Qiv6A4ca29u9txaCMOno8oX4cmeVW2yLziAOpRrecJFeuXJ62cfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822111; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DnZnrBzqVztaPyPox3uUVQc/ehHg+U0SanNf1xZdVRc=; b=n7ihK2HUaOVTh+/XluajoanjTtdh4PfBGUNIyTEbgi1SHmdg7zDuzLXubRKy/cDGoUaeLb Tp9LDx0qZR+hpsX7s8mPFeQEJUc5RwfDrZouYCJd00AZN175O/F006zvRlIbPa05M4BjWU /bu+uNJXOtOSBChCU3LGbnzi+IxEj7KrIlUq68Ft9wISyGaefbrdafKzsMMcEWFkVcJ8SG 6aW6HrD+tBhiFiqbRQvHLBMLk3NgJjrMhaa0TmD9/fjwU4hucECp0QKRMDrTMrZVyLut2k LRFXA/gIfpR8CYshhCkFUYd8GZfxT3uNcnC1rL+JenBOepFMgX2qwDDjr79dlw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747822111; a=rsa-sha256; cv=none; b=w1zwmdAxyCYMJQtTmxR6H5apaXX1nRGV3Enm4ZmCi88/nRqQRmwXZDz0vnIM1LVN+QJ9gO kR7KMX0tMNTt/ab54RZF4+28sqUNs078I/AcTqmJyAT5RoCJZRLbRsHkY46V7ntVbXa/AJ ZkhChR7VVzb/5OqYFmyXO1hJ6kviV6dDIy9oBUyH2zDpoV7bJTmR5nS7YY9KWZrGTsVEFf KJxgG0nSYZAlflmZCl6rn1PMrAh/dHQtZ33d672ugt5wctDKNJ71J2Anq+YWgIQFywF1ez sFkz382p6ZqgZJq/TC7fYYeTPQaCbJdab0mKZCzjjR+8wUhDUqf5HnvdLoBF0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2Rvg1k7LzVY4; Wed, 21 May 2025 10:08:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LA8Vf3011830; Wed, 21 May 2025 10:08:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LA8VDS011827; Wed, 21 May 2025 10:08:31 GMT (envelope-from git) Date: Wed, 21 May 2025 10:08:31 GMT Message-Id: <202505211008.54LA8VDS011827@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 0b4d5c560abe - releng/14.3 - vfs: vntblinit(): Rework comments on the computation of 'kern.maxvnodes' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 0b4d5c560abe6848d70a488d7cf6ea7fa7897ade Auto-Submitted: auto-generated The branch releng/14.3 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=0b4d5c560abe6848d70a488d7cf6ea7fa7897ade commit 0b4d5c560abe6848d70a488d7cf6ea7fa7897ade Author: Olivier Certner AuthorDate: 2025-05-12 11:20:01 +0000 Commit: Olivier Certner CommitDate: 2025-05-21 10:07:45 +0000 vfs: vntblinit(): Rework comments on the computation of 'kern.maxvnodes' Remove the parts that describe what is already in the code formula. Add hints about which of 'physvnodes'/'virtvnodes' takes precedence, and when 'desiredvnodes' becomes smaller than 'maxfiles'. These were both computed analytically and verified experimentally. Reviewed by: kib (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50310 (cherry picked from commit bf8890c84bacd8b1acebb2cb9a0944b1bb102b68) (cherry picked from commit 5b07152f3ec3eea78958796b45594c5bd96c0bfb) Approved by: re (cperciva) --- sys/kern/vfs_subr.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index a640bede85b9..62ae987a3084 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -722,15 +722,15 @@ vntblinit(void *dummy __unused) int cpu, physvnodes, virtvnodes; /* - * Desiredvnodes is a function of the physical memory size and the - * kernel's heap size. Generally speaking, it scales with the - * physical memory size. The ratio of desiredvnodes to the physical - * memory size is 1:16 until desiredvnodes exceeds 98,304. - * Thereafter, the - * marginal ratio of desiredvnodes to the physical memory size is - * 1:64. However, desiredvnodes is limited by the kernel's heap - * size. The memory required by desiredvnodes vnodes and vm objects - * must not exceed 1/10th of the kernel's heap size. + * 'desiredvnodes' is the minimum of a function of the physical memory + * size and another of the kernel heap size (UMA limit, a portion of the + * KVA). + * + * Currently, on 64-bit platforms, 'desiredvnodes' is set to + * 'virtvnodes' up to a physical memory cutoff of ~1674MB, after which + * 'physvnodes' applies instead. With the current automatic tuning for + * 'maxfiles' (32 files/MB), 'desiredvnodes' becomes smaller than it at + * ~5136MB. */ physvnodes = maxproc + pgtok(vm_cnt.v_page_count) / 64 + 3 * min(98304 * 16, pgtok(vm_cnt.v_page_count)) / 64; From nobody Wed May 21 10:08:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2Rvh4Mb5z5x9B6; Wed, 21 May 2025 10:08:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2Rvh32ZLz3DZT; Wed, 21 May 2025 10:08:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822112; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rt+zudFvqoqt4kBX9fPWd0AIZu/QUiM6fgllP8BKEC8=; b=V42D4IgNRoV8KtNfrvataNNQlEt6o5J38Xg+sy4cLn8aUyB91eEKUoRbMB/m7mU/6J5RlK Gb8n7EofkQlS5zG2fad0qVviEREyIwCi8r2y3Qvv9P+i5Kxlym0HL2erocbWq+S+lJ1Kyo WbtjSPnK7VC5GyITOKrjENiD3GodhtISqEO3vmxNxZy+TFAQ5GtmoGfRsmv2nFZj8+EU0T WUMhCgpGRR7N7HhZNyr8Qv47FXIAJ7CnwRMPMXDYHYVa0VqPppGpaquzkmSLU9TpRXM7sy 5CX2G6dJTovyDwvhsjHqkOxVgev4mpE/hWoKZXNXZZeJw7Fq3Lk7fkgMxc3CEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747822112; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rt+zudFvqoqt4kBX9fPWd0AIZu/QUiM6fgllP8BKEC8=; b=PFKyXApUhHkKQfQPnoz0iUtjQl8mXTLExmW/gq2I/P0OHLlN6qpIqVFTtcBI8gxsJtvxWM JVnu8h/buBf/ncTMEF3EgL8O3ymoYCwMIZFNyIZTvjyv8awBsZPbURjz0gmvpjUpSKYOMd mXzPD+5EtGHtwZYm30/tV0L2c7w3rJCO/NGbxL3MMfG9DGTXVEPr7wx/sFGPbVoT4yPatW WhTJVfHeJZrFhFUR1M5QhuDA5pJCXgfYh9/oeCyuePDZ/70/soJkbzFMpqFMUAeAvaDNJu ODnXYNVF9z6Xzpu4MiYban2gnD7G7xm3vtJ1QH6dlmjxWxRqBCGBPFrOesVYww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747822112; a=rsa-sha256; cv=none; b=g6qFSX/62ZSiVBv3rD7glybRBpFVx68ivKbf18U0asdPINfJz/zNKSYBEMin2KYopTk7iP 2gc8DC9alPoELSulaQfvdwEDSD+saG157GOu+6/yPxYvCiyj15iJNtks9NAgM35RxcMCEB OaEEdvRRzZLGJOuROVLaieDnvC+I6UnMGcjj1cQNvud99PhATTjVw7SLKf2+fW9vWoE5Ib Ke4KdVsXSuuQ0zLprHeSAu7DDfT5aBPGAX9XrYFnPBk23o+/gX4LIIgPiUa1w+/R9biEvW 3LXDOa+Cw5haIxnU+fWyzPdLhBZD8+xESnUGEByAogPAsZhutetxuq5eTFqFgg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2Rvh2WLgzVQx; Wed, 21 May 2025 10:08:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LA8WHp011871; Wed, 21 May 2025 10:08:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LA8WPS011868; Wed, 21 May 2025 10:08:32 GMT (envelope-from git) Date: Wed, 21 May 2025 10:08:32 GMT Message-Id: <202505211008.54LA8WPS011868@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 6b6d6448feff - releng/14.3 - vfs: vntblinit(): Raise default 'kern.maxvnodes' higher than 'kern.maxfiles' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 6b6d6448feff482a8dc022d1992e7f602522d4fa Auto-Submitted: auto-generated The branch releng/14.3 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=6b6d6448feff482a8dc022d1992e7f602522d4fa commit 6b6d6448feff482a8dc022d1992e7f602522d4fa Author: Olivier Certner AuthorDate: 2025-05-12 12:19:56 +0000 Commit: Olivier Certner CommitDate: 2025-05-21 10:07:52 +0000 vfs: vntblinit(): Raise default 'kern.maxvnodes' higher than 'kern.maxfiles' Having 'kern.maxvnodes' higher than 'kern.maxfiles' mitigates a scenario where some processes can eat up all vnodes in the system, causing a deadlock, as long as the kernel itself does not create too many vnodes without creating some file descriptor in some process' FD table. A very small percentage (~0.6%) of excess vnodes at infinity, coupled with a large difference near the origin, should cover basic cases more than enough. Note however that this measure can be defeated, e.g., by using nullfs mounts with non-trivial file hierarchies. MFC after: 5 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50314 (cherry picked from commit e9baf472a6d228a16be19a11150d41cff29affe8) (cherry picked from commit a6b05a35ce3c516cadfca49c310dffaabbe40440) Approved by: re (cperciva) --- sys/kern/vfs_subr.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 62ae987a3084..7ff6ac5f5b44 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -727,13 +727,12 @@ vntblinit(void *dummy __unused) * KVA). * * Currently, on 64-bit platforms, 'desiredvnodes' is set to - * 'virtvnodes' up to a physical memory cutoff of ~1674MB, after which + * 'virtvnodes' up to a physical memory cutoff of ~1722MB, after which * 'physvnodes' applies instead. With the current automatic tuning for - * 'maxfiles' (32 files/MB), 'desiredvnodes' becomes smaller than it at - * ~5136MB. + * 'maxfiles' (32 files/MB), 'desiredvnodes' is always greater than it. */ - physvnodes = maxproc + pgtok(vm_cnt.v_page_count) / 64 + - 3 * min(98304 * 16, pgtok(vm_cnt.v_page_count)) / 64; + physvnodes = maxproc + pgtok(vm_cnt.v_page_count) / 32 + + min(98304 * 16, pgtok(vm_cnt.v_page_count)) / 32; virtvnodes = vm_kmem_size / (10 * (sizeof(struct vm_object) + sizeof(struct vnode) + NC_SZ * ncsizefactor + NFS_NCLNODE_SZ)); desiredvnodes = min(physvnodes, virtvnodes); From nobody Wed May 21 16:57:39 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2czl3LZnz5wCLQ; Wed, 21 May 2025 16:57:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2czl2vlLz3dC8; Wed, 21 May 2025 16:57:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747846659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vfKtJ3J1m+vhNANw5nKfokkENMUCXhL3LJhtJjTifXY=; b=sq8HC45GBKNnVAQwyVYrHMgVqY/UNFfr4RaSFVOYbW5eITPTnW/oj/wuz/7p+WVZIuLLE9 6s1LfS9NOCDfBf75cZgTooBOvyCGObWbI1wAU4M+VmcopxiiOk/4v/6mapkzhJRo5JlPZV 6lC6pnxZls8z4EnRjK+1SNrLYfILyJ+x0YIBfEih7k0UQZbd5iYPx0K7liEbE3116IL8gp Lv7ztLQRq9ZoL0icv+fhuJnWZPF/KUuC6lRSigT1nbpAQb9tz20ictU/e8M//EAoYyUwod yOuvyRGdZvY8SadPFTzg/y2orVw+eQNeyQkeFyvSklVq15A0yo6ucV1+WcoqrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747846659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vfKtJ3J1m+vhNANw5nKfokkENMUCXhL3LJhtJjTifXY=; b=LhLHwBpMr8HGI9j++xSsKNceESd0Bd5dtw+TkS9sGAEMXUaG8W7AeponC6E+IH8Od2F640 DIyObdKVHCt/9dgxc3uCISSDKbN+y+qEZKvS7h/BLuoqRW8L14rAUQaEJ4giIOPknkDBzA Oi9Su+m6GD3bAqEfsSdB+On2ON3Tpzq6F090Z3+Ib1wMifvl6a9gP39GYfD0Z81FhryKRk AHzNhIWZEhoezutqWmwxrbfoUIM/om6q6a8xhfX25W2eNtJ9s3/QrrdP8rtqd9dhUTsss2 DIWXqLFjeCfuBEiwxx7JrLk/pKMv3pzIsPd0IdhAZ5ppqcjRmHHb3KYa0E01fg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747846659; a=rsa-sha256; cv=none; b=Xon6V80Yb3yD55Z6iPYyxHfotN5DQM6j5vKnylZ4zpqUlhUymmUfwr0FSFA/RBdR/e9St4 gG2NhSlzhCKuhohMoH/g819zKOscqlpzONs/RVaQaZBuLDguESiPNKf3++oo9b3EY87POD mFgzwFYtjQfeO/OXT1kxpyV1YO4Vz+Lr6dZBItHr6qc7BobYAQO76biIuh/806C8WE/WFD GHg5a4fxtgeXmaz6rgATkz8Ke2YWoeoIsNuKcWbOIL4yaUImI6pI3T9xlQHoI3h6GIuc6u WpZn/rkMbNpKeRysQzYcV0RGBCYECAqr/vepd/Jr91+ynhQWjKstqefVZMBK/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2czl2L6BzjlZ; Wed, 21 May 2025 16:57:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LGvdjC080413; Wed, 21 May 2025 16:57:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LGvdG3080410; Wed, 21 May 2025 16:57:39 GMT (envelope-from git) Date: Wed, 21 May 2025 16:57:39 GMT Message-Id: <202505211657.54LGvdG3080410@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 2f99190a9234 - stable/14 - man: Exit cleanly on SIGPIPE. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2f99190a9234b119bcec1e4645e87d4e6016e5a5 Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=2f99190a9234b119bcec1e4645e87d4e6016e5a5 commit 2f99190a9234b119bcec1e4645e87d4e6016e5a5 Author: Dag-Erling Smørgrav AuthorDate: 2025-05-16 14:56:13 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 16:55:37 +0000 man: Exit cleanly on SIGPIPE. The first attempt at addressing this simply suppressed SIGPIPE, which resulted in mandoc printing out error messages instead. This was then reverted, but the pipefail was (correctly) left in, so man still returned a nonzero exit code if you quit a page before the end. PR: 223516, 279542 Fixes: 14a5c1068d37, a85d870007e7 MFC after: 1 week Reviewed by: ziaee, kevans Differential Revision: https://reviews.freebsd.org/D50302 (cherry picked from commit fbaba7aa432257a9b787edc6bfdbfbde94f2e0d5) --- usr.bin/man/man.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/usr.bin/man/man.sh b/usr.bin/man/man.sh index 341a57c6d7dc..b1cfc6c41752 100755 --- a/usr.bin/man/man.sh +++ b/usr.bin/man/man.sh @@ -33,7 +33,10 @@ # it is better to terminate it. ulimit -t 20 -# do not ignore the exit status of roff tools +# Do not ignore the exit codes of roff tools, as they may indicate a +# problem with the page being rendered. Note that this also causes a +# nonzero exit when the user quits reading before reaching the end, so +# we need to look out for and deal with that specific case. set -o pipefail # Usage: add_to_manpath path @@ -1055,6 +1058,16 @@ do_man() { man_find_and_display "$page" done + # The user will very commonly quit reading the page before + # reaching the bottom. Depending on the length of the page + # and the pager's buffer size, this may result in a SIGPIPE. + # This is normal, so convert that exit code to zero. + if [ ${ret:-0} -gt 128 ]; then + if [ "$(kill -l "${ret}")" = "PIPE" ]; then + ret=0 + fi + fi + exit ${ret:-0} } From nobody Wed May 21 16:57:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2czm53kkz5wCQg; Wed, 21 May 2025 16:57:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2czm3c8fz3cx5; Wed, 21 May 2025 16:57:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747846660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E+JRAxzzrAKp7ONFER2xWDgSndcGi/Vl92abGlGYRCQ=; b=ovsuy8b+JFZGmfjybw1s2vYlpeJ9T29ERf4WiEjOq4t+3I9tQxv1nl0tLzt02oNr8tG7Rw 7ugS+daxIIyQdOwPYZiPjwDF07fmSEvwr1pRThG6t7wqQ1bYMRz5P8Et3eQaQbdPJhlMhn VK+u43PQw5djLrVqIIvuJSYgsS2MrQ5rLpk3PNP6ENgjO1K2RLAdenKRfyv3UtfqsadH+i kx3rZbWzaV3CSvsQRC3LeRz7vlatNzFG2nqsRePy+Tjw5Ipg4wWnnPkEDZ0YO/LaFKntQq rpgkKy8YRwO06OxFsuJ/Rjpt014UemWUOSWcJC92z7Ydno9cK/wEaVMxkz976A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747846660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E+JRAxzzrAKp7ONFER2xWDgSndcGi/Vl92abGlGYRCQ=; b=NG/1qvS9fI6eZZl9TsJh99yA9EixWCUMksAJ+6Zlm7YrJ06q6R58Ck2hKkzZ/4qRpRq9lA md26xHEJGrjXbzMyE+wxU1XAmy60039wTktNNt6hHCobqlVr+B0gkvMshU6bLgFsUtfJGR a5BjJkiKY2YN9wTJoWnGwRFfqI9ElBKeQpx2Pj06Wl9jOiefGyLF5s4hf6Wz7HGuRfCz2Q OBs7JS/EqLgprkk1aHJCiaaWdAyrxJPNt0V+AUXupNJVjuYZVi00EpqUz+q9fMV7Tv9k+O 7FiwUVP46U9hg4KYzvorY0vFK+2tZqlhjAAUgpOWrO4NppgdzMlpXe84Ggoi0Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747846660; a=rsa-sha256; cv=none; b=K9jF5KNal25DPQItLS/08Mz+vo9El7W1qvV/87DvmQCQyRZgFbZSKLcYaF5zOWCRuh9JHW dmvi+GKCur3GPNiXHAar2+k4zrafHHc68SMkZrB/XzLLx/hvZN9BEWhIri2NxpMfRPbEt2 FKBI6DHtYdv8TfhfUbbiCcVx9/TSRdmHlj3jwJsZo5NnhrTu8W4xOSRMTnFhgsqDABIJla vFDDm8gyruEfzVCX1MtRpo2ZjjSkeUVL/I+TXuxTZtBRVO30WjHIUN4wTGm2ge9O0mCS0J yL5Kj2smaUG0fBTFBz8k6HcXZG3r+OCtriK6lanDDAJfUGwt6LZsl1JTQ4wfVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2czm3758zkVM; Wed, 21 May 2025 16:57:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LGvefn080450; Wed, 21 May 2025 16:57:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LGveQk080447; Wed, 21 May 2025 16:57:40 GMT (envelope-from git) Date: Wed, 21 May 2025 16:57:40 GMT Message-Id: <202505211657.54LGveQk080447@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 68bc635cc9b0 - stable/14 - namei: Update documentation. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 68bc635cc9b099fb03cfcd519046c385af0c5355 Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=68bc635cc9b099fb03cfcd519046c385af0c5355 commit 68bc635cc9b099fb03cfcd519046c385af0c5355 Author: Dag-Erling Smørgrav AuthorDate: 2025-05-17 07:43:02 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 16:56:51 +0000 namei: Update documentation. This should have been done 2+ years ago when the td argument was dropped from NDINIT() and the NDFREE() macro and the SAVENAME and SAVESTART flags were retired. MFC after: 3 days Fixes: 7e1d3eefd410 ("vfs: remove the unused thread argument from NDINIT*") Fixes: 269c564b90d3 ("vfs: retire NDFREE") Sponsored by: NetApp, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50375 (cherry picked from commit ee84b4e2fdf09f9a6dfa43e0931d8671cc15ebf9) --- ObsoleteFiles.inc | 3 +++ share/man/man9/Makefile | 3 ++- share/man/man9/namei.9 | 69 ++++++++++++++++++++++++++++++++----------------- 3 files changed, 50 insertions(+), 25 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index e1c50607abb4..439df5e89377 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20250521: NDFREE(9) -> NDFREE_PNBUF(9) +OLD_FILES+=usr/share/man/man9/NDFREE.9.gz + # 20250419: removal of iwlwifi firmware files OLD_FILES+=usr/share/doc/legal/intel_iwlwifi_firmware.LICENCE diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 6993b34e5b4a..e424692fbdee 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1630,7 +1630,8 @@ MLINKS+=mutex.9 mtx_assert.9 \ mutex.9 mtx_unlock_flags.9 \ mutex.9 mtx_unlock_spin.9 \ mutex.9 mtx_unlock_spin_flags.9 -MLINKS+=namei.9 NDFREE.9 \ +MLINKS+=namei.9 NDFREE_PNBUF.9 \ + namei.9 NDINIT_AT.9 \ namei.9 NDINIT.9 MLINKS+=netisr.9 netisr_clearqdrops.9 \ netisr.9 netisr_default_flow2cpu.9 \ diff --git a/share/man/man9/namei.9 b/share/man/man9/namei.9 index 63a6d3b11f6f..1703faaeee99 100644 --- a/share/man/man9/namei.9 +++ b/share/man/man9/namei.9 @@ -31,13 +31,14 @@ .\" If you integrate this manpage in another OS, I'd appreciate a note .\" - eivind@FreeBSD.org .\" -.Dd December 17, 2024 +.Dd May 16, 2025 .Dt NAMEI 9 .Os .Sh NAME .Nm namei , .Nm NDINIT , -.Nm NDFREE +.Nm NDINIT_AT , +.Nm NDFREE_PNBUF .Nd pathname translation and lookup operations .Sh SYNOPSIS .In sys/param.h @@ -47,11 +48,16 @@ .Fn namei "struct nameidata *ndp" .Ft void .Fo NDINIT -.Fa "struct nameidata *ndp" "u_long op" "u_long flags" -.Fa "enum uio_seg segflg" "const char *namep" "struct thread *td" +.Fa "struct nameidata *ndp" "enum nameiop op" "u_int64_t flags" +.Fa "enum uio_seg segflg" "const char *namep" .Fc .Ft void -.Fn NDFREE "struct nameidata *ndp" "const uint flags" +.Fo NDINIT_AT +.Fa "struct nameidata *ndp" "enum nameiop op" "u_int64_t flags" +.Fa "enum uio_seg segflg" "const char *namep" "int dirfd" +.Fc +.Ft void +.Fn NDFREE_PNBUF "struct nameidata *ndp" .Sh DESCRIPTION The .Nm @@ -71,13 +77,13 @@ flag was specified or not. .Pp The .Fn NDINIT -function is used to initialize +macro is used to initialize .Nm components. It takes the following arguments: .Bl -tag -width ".Fa segflg" .It Fa ndp -The +A pointer to the .Vt "struct nameidata" to initialize. .It Fa op @@ -95,7 +101,7 @@ will not result in .Fn VOP_RENAME being called. .It Fa flags -Operation flags. +Operation flags, described in the next section. Several of these can be effective at the same time. .It Fa segflg UIO segment indicator. @@ -106,10 +112,35 @@ or in the kernel address space .It Fa namep Pointer to the component's pathname buffer (the file or directory name that will be looked up). -.It Fa td -The thread context to use for -.Nm -operations and locks. +.El +.Pp +The +.Fn NDINIT_AT +macro is similar to +.Fn NDINIT , +but takes one extra argument: +.Bl -tag -width ".Fa segflg" +.It Fa dirfd +File descriptor referencing a directory, or the special value +.Dv AT_FDCWD +meaning the calling thread's current working directory. +Lookups will be performed relative to this directory. +.El +.Pp +The +.Fn NDFREE_PNBUF +macro is used to free the pathname buffer. +It must be called exactly once for each successful +.Fn namei +call. +It takes the following argument: +.Bl -tag -width ".Fa segflg" +.It Fa ndp +A pointer to a +.Vt "struct nameidata" +that was used in a successful +.Fn namei +call. .El .Sh NAMEI OPERATION FLAGS The @@ -203,17 +234,6 @@ This flag is not looked for by the actual code, which looks for .Dv NOFOLLOW is used to indicate to the source code reader that symlinks are intentionally not followed. -.It Dv SAVENAME -Do not free the pathname buffer at the end of the -.Fn namei -invocation; instead, free it later in -.Fn NDFREE -so that the caller may access the pathname buffer. -See below for details. -.It Dv SAVESTART -Retain an additional reference to the parent directory; do not free -the pathname buffer. -See below for details. .El .Sh ALLOCATED ELEMENTS The @@ -307,7 +327,8 @@ An attempt is made to modify a file or directory on a read-only file system. .Xr VFS 9 , .Xr vnode 9 , .Xr vput 9 , -.Xr vref 9 +.Xr vref 9 , +.Xr vrele 9 .Sh AUTHORS .An -nosplit This manual page was written by From nobody Wed May 21 17:08:23 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dD81Q5vz5wDCB; Wed, 21 May 2025 17:08:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dD80CcGz3hRf; Wed, 21 May 2025 17:08:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847304; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6b30fqr/YDz7nzAEWnE2TXkY2lQAPwaGkqNiScUjqkY=; b=pQg/abG8rgsazjsYnCvUUktkGSwGx1LxIEyIu0vFWrGwqxEOUIxecnQK5YXQD1wsUnPBF8 ULGJvjvXCJuKfffL7bOEtsEf0fH92BoeT5RapBGVRoDWT62hjQn8DWfM8VGDZMyeCFZUJG CWZRc9+gKMW9mSV5ozdcjn3r356GQChHso0du1Cv5XEb66YAmuhc/qt6tQah5S5fGBTWYN uc2NRYeO/sk1zl6t5gZfVE8TA41ujX3JT9ZYK8U/pLhIqPETWAcrkNaS8wpIC1ZSL7Q/1F snn3o5npJQdqSknrVx0b4pJ3yGEUBmp8iGfth/GR+3cersr+eCMGTQPpddPrmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847304; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6b30fqr/YDz7nzAEWnE2TXkY2lQAPwaGkqNiScUjqkY=; b=FhrDNZv1Z0SdmV3Co0rDudal0I8YJLZMUvkaOSErtbwBgUIH5h1kM9x5EOPpZ7LoBx1Ock crFyAtrZqCR2SzDgFAAF3KEGFKksrFlT0jLnSTLmnLgmAspwUcs0kLrmf+gIZS6auShtbq EKFTixnaFU7PSNVP8Mf++Jk3rnTEDD3VQj1RTcTWkJ2Q7nlAwGri9Bl0VgI/svSLJsXQ9x qFNq3of4scRJbE1OdkpeUfIA9wGNlllQOmtomRKXI9DL3J7UsnK+21uO39omDTkJ18uqJZ RfMDvrIYzPufdB53NAVMJeh1PJ+FHl4RVvMS8JCL5JX4Z4yOTSdhx/OKTpInkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747847304; a=rsa-sha256; cv=none; b=M6CfJJ9G7Wtew+kPWkn5p53sFq6qHn7nGXC1Vli53aKmDgBfsxuU39PeNV7LuvEv7kzxrF CdmYcBeU/tSvnm5LBMRUyZ3ghfemiuFkMFB0+6jJQEpLeNfrXuWrYq/D14gbYomf7tmG5E FO0bO/kVsOG9Bj5zx/lAxKRRklFCWj6Qq+evq2AuOs7z7gVnHeii5Xwbo3KgmVM+cSQyKM p58I5GrEBrtmuiKar7OzBM4sHxUnzms6/VmKZ0QASztFQ84Cop/1A2ZSJkokKKLeJH5wJM 5MYYtG3EL4uhpqgxBMwvqsMZkUWAh/KxDEleZnOF3jdeRABIcGtDokqIZLYKYA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dD76wTtzkjK; Wed, 21 May 2025 17:08:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LH8Nvp099866; Wed, 21 May 2025 17:08:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LH8NfG099863; Wed, 21 May 2025 17:08:23 GMT (envelope-from git) Date: Wed, 21 May 2025 17:08:23 GMT Message-Id: <202505211708.54LH8NfG099863@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: d300875d011c - stable/14 - sctp: fix mapping of interface address flags List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d300875d011c056f10dd7ef6915d041c7b559fff Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=d300875d011c056f10dd7ef6915d041c7b559fff commit d300875d011c056f10dd7ef6915d041c7b559fff Author: Michael Tuexen AuthorDate: 2025-05-04 19:05:48 +0000 Commit: Michael Tuexen CommitDate: 2025-05-21 17:07:57 +0000 sctp: fix mapping of interface address flags Do not clear the SCTP_ADDR_IFA_UNUSEABLE flag, if it was set due to the address being deprecated. Also don't declare tentative addresses as unusable. While there, cleanup the code. PR: 230242 (cherry picked from commit 9639de2a6f7eec8b2158782fbfab3419d507fdc5) --- sys/netinet/sctp_bsd_addr.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/sys/netinet/sctp_bsd_addr.c b/sys/netinet/sctp_bsd_addr.c index a10fbcc5ca40..65b271afd84d 100644 --- a/sys/netinet/sctp_bsd_addr.c +++ b/sys/netinet/sctp_bsd_addr.c @@ -119,23 +119,21 @@ sctp_gather_internal_ifa_flags(struct sctp_ifa *ifa) ifa6 = (struct in6_ifaddr *)ifa->ifa; ifa->flags = ifa6->ia6_flags; - if (!MODULE_GLOBAL(ip6_use_deprecated)) { - if (ifa->flags & - IN6_IFF_DEPRECATED) { + if (MODULE_GLOBAL(ip6_use_deprecated)) { + ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; + } else { + if (ifa->flags & IN6_IFF_DEPRECATED) { ifa->localifa_flags |= SCTP_ADDR_IFA_UNUSEABLE; } else { ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; } - } else { - ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; } - if (ifa->flags & - (IN6_IFF_DETACHED | - IN6_IFF_ANYCAST | - IN6_IFF_NOTREADY)) { + if (ifa->flags & (IN6_IFF_DETACHED | IN6_IFF_DUPLICATED)) { + ifa->localifa_flags |= SCTP_ADDR_IFA_UNUSEABLE; + } + /* Right now, do not support IPv6 anycast addresses */ + if (ifa->flags & IN6_IFF_ANYCAST) { ifa->localifa_flags |= SCTP_ADDR_IFA_UNUSEABLE; - } else { - ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; } } #endif /* INET6 */ From nobody Wed May 21 17:09:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dDz0Qcxz5wCFt; Wed, 21 May 2025 17:09:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dDy5ylXz3j5Z; Wed, 21 May 2025 17:09:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=v9n0LW8w35q8DIGhml6SjS4VHZBxC/pMnPGMIt6zloU=; b=rQmn5MdSJ2d1Nz/6NNIz7JBCNZ13Jatz/W8jr/wv82eB7qKApowmxiu6cLykof68dGXEPo S4zcQw+uxHfcL28vp5LJFPZw81j4ty0OvUUG/teFg6yvag+b7SI50KdcsYBvlLeAwg7qmE S8E13YFXjzGgK4h/HUgBR23/8BkFJ9EEpsxmaiEaf+EpTqy9mOZEsKQCLs3YXHDJWFisZU gBfpEXddWx+1GJ0nbNYjXqruZYXQKSJ2MoOh22FcIkaj1REV1xTm9D5hR3TlpAq0nrMYKW k7O3qgVpFuHQ/mfTg8ruhqgsVpheetJk+fKiZ7EBLDp27ywzxHbpkJD3c4eFGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=v9n0LW8w35q8DIGhml6SjS4VHZBxC/pMnPGMIt6zloU=; b=Obs3aDmoxM7WYNWafcThr33moNvj/9re1I6Jk2tnlX6PAX6FXdPJDXY1rPSFNdthyHSiqT EVUiwAzHQ9WrcpUfyFev/QcRywzqdut0EJwDgxD0TpjruCz9bmyf7S/3e1bm1cdM33DLyr BAiwan9DFKvRNuMjR771wbc+j/qSFSLwnsVoPjALw6DaiJcCuj0oZzdZ1RhGV0X0+CD26+ 9yQnPnJDz8mfSC7AsH6YjB0AcMmomCew1j+xcHRMOWzfOlYx8qkuqPTmyjLi4FrQae5VIw S7a5weEAG/+OSDvJ6B/Suh8De6bSpBuOq/iA2IJ4TjZbQiFFuCkuIz/G7h/sqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747847346; a=rsa-sha256; cv=none; b=dnfxGTuTKmVzoObW+0ZDiTiEqFiJ9iuAn+cacXp6qCFioUbkIVnYIsTm/fGwiAy9F0kkcc I0nIcoroCY7z6ZBhCq2I3YTvG115KG03IRhVToDqRDS1d8Oe7BynxvjFz0Z2lyiZueuoDi T4tZvi6CRKWCuno7ypOmGVt6C0T4C13Hu1EFH6/bKI+4JzvDCkLMHycdZghrmVOBBOBSej 1QKj9UGZujFPlb/7iNeNk7ujeQmKwxvR+GFG+rM3x4fFgb+b4kwUoY/h2aV8tbcBHO+0Kv pDyL/affo4hq3PuYYo+3+YylhnGqj9DE2cVVANXIt4DsR+sPMY6MxCTLqifyUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dDy5PdQzkgS; Wed, 21 May 2025 17:09:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LH96XB000242; Wed, 21 May 2025 17:09:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LH96jW000239; Wed, 21 May 2025 17:09:06 GMT (envelope-from git) Date: Wed, 21 May 2025 17:09:06 GMT Message-Id: <202505211709.54LH96jW000239@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 2c2a8abcd8ed - stable/14 - sctp: report address unavailability consistently List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2c2a8abcd8ed1a887c5a6d46ebcb09e73888b12b Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=2c2a8abcd8ed1a887c5a6d46ebcb09e73888b12b commit 2c2a8abcd8ed1a887c5a6d46ebcb09e73888b12b Author: Michael Tuexen AuthorDate: 2025-05-04 22:20:40 +0000 Commit: Michael Tuexen CommitDate: 2025-05-21 17:08:48 +0000 sctp: report address unavailability consistently When binding to an address, which is not available, use consistently EADDRNOTAVAIL. (cherry picked from commit 79952cd7649b63fa312ecafcffb719f5060929d4) --- sys/netinet/sctp_pcb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index 6b4f1ce883d3..b0686180a7af 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -3050,7 +3050,7 @@ continue_anyway: /* GAK, more FIXME IFA lock? */ if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) { /* Can't bind a non-existent addr. */ - error = EINVAL; + error = EADDRNOTAVAIL; SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error); goto out; } From nobody Wed May 21 17:09:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dFd0yc1z5wD6k; Wed, 21 May 2025 17:09:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dFd0Njkz3jgH; Wed, 21 May 2025 17:09:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847381; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Xp0UmQMvheRDKjN6qQsjRcamuDGm1ktHNloPNOm3AKA=; b=QcCGq8LA8VHesSE1Pyp0ACi7dzfyVIxlVxPdS0Z5rBe0Y48u/FaPVMA7admz1ucbRvswdq qODZErZEOB+HXNwB/XPmun5F7W63PeosSBJuNYwLArESl/qOVS6M+57GiHYsZpKzW7AzVF UnBgokgKmKqmSv3KA5lVsSHNQGlk6Idg+zaVEXa2KD0cx8JMj0e0oVZNMtwYurASaBzbAY BGw1nVNUTdALE5wt8sc33CVcIcZ09h4sM0XE+fuYJpaioRcDal69h8AEavJ1eT2lPiaFLe I7hZNWrtRqRSnYpCn8AZKRLIpltCuJhLkT/BExMIaB6amK9xOHFdDKRYVyrbhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847381; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Xp0UmQMvheRDKjN6qQsjRcamuDGm1ktHNloPNOm3AKA=; b=Jx+j1gWhFjrauxX9Zwsp2623m15Y8cp6KAJcuSq0lfjWbQwmfV9zvfXxU7y9hv6hoLO7Bi qcHl39sp8nOCKUGlImFQ6PVemNxRM+i/DXzDqT31qwuMUvSYAcNvUbKHVKbkf0kulvaZJj oCzonWTxcs7rzBRrpaD8gRaAiZq3+Ddskc1S8f8o194FlahgyCL2mcgvoSUh5xDQzSLVyE P/Zvfs7uNR98KVEnA+t4pwyDOIo2MG9YVqmkRpulCealVFzoUaz60IUys35QHzjkTPqSW7 xU10xRR0ZeFkBPgE6RT+3bjtQLIO+1n/NxU6MopxSR/uxCqbhyKVLeYD6IZemQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747847381; a=rsa-sha256; cv=none; b=uAVOd7ZO0iKqV/diUWBkRJlvDmrqe6wQ3nsaAKwJi1QDc7mJNzYVgTuoR10huOc0U+iy/7 t2lk1IAuLJG8G8JoR+aPFM+iuioqgmRI88foY30GKoa1vBKKVUQgLlhpDAK1KFnZOS4gtN fU19J+nETS4R5epkcQILzq4keUKJDIXdaUcTB6TfyWCZ4dCdUFr941kW+Rs4SUcNcRuo5u 9wrBkl755GUV9/jNZYSsXnUEKGu7jq7jpCZ4POjI6mKcO32doILGdwd+VSYeO7qJfnDT67 DWXjf6g6uSSLfBAbWTlYUrThAm3iKPygb+ULTTFGP4Ot3arSdiB9uFjv+hgXpQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dFc74lhzkgT; Wed, 21 May 2025 17:09:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LH9eqg000507; Wed, 21 May 2025 17:09:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LH9erZ000504; Wed, 21 May 2025 17:09:40 GMT (envelope-from git) Date: Wed, 21 May 2025 17:09:40 GMT Message-Id: <202505211709.54LH9erZ000504@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 2b457fb62ca1 - stable/14 - sctp: don't report unusable addresses via sysctl interface List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2b457fb62ca15f3ae46043c21a54a6d27da7d8e7 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=2b457fb62ca15f3ae46043c21a54a6d27da7d8e7 commit 2b457fb62ca15f3ae46043c21a54a6d27da7d8e7 Author: Michael Tuexen AuthorDate: 2025-05-04 22:28:52 +0000 Commit: Michael Tuexen CommitDate: 2025-05-21 17:09:22 +0000 sctp: don't report unusable addresses via sysctl interface When reporting the local addresses of an endpoint (inp without stcb), ignore unusable addresses. (cherry picked from commit 8f5f6680efa28135bf37f3def2aa71f35bd30333) --- sys/netinet/sctp_sysctl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/netinet/sctp_sysctl.c b/sys/netinet/sctp_sysctl.c index a39429ec046e..bd2f23f40727 100644 --- a/sys/netinet/sctp_sysctl.c +++ b/sys/netinet/sctp_sysctl.c @@ -265,6 +265,10 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st if (sctp_is_addr_restricted(stcb, sctp_ifa)) { continue; } + } else { + if (sctp_ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) { + continue; + } } switch (sctp_ifa->address.sa.sa_family) { #ifdef INET From nobody Wed May 21 17:10:30 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dGb1fQmz5wD9Z; Wed, 21 May 2025 17:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dGb12fZz3kC3; Wed, 21 May 2025 17:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847431; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZPN/LaaM06r8VapgKuque+mEYaz+481MIA0HeJRx6V0=; b=InQxjljTrpPJ5d4Cpzb4Mes8ecrftlkHLNz4hhkTxKr7MlnygxU8t5muICjmI/ZfqNgepl 5SkDDoKYsNyNIBVBNd7ERXJKPqssUtqeROwc4BJZQF+eVklqJu5VTMOiN2u4vIw81Q5qvs 8jqBMlVb7p/VgSAhYnlavn7JDlN41JB1S/o6xxu8pBMPBpC9CPJTCnLi5EXzhOfOh1pmKj mUIY0WeLy1bv3Os4XtBknn2ovpXdJyd9Vd1bJGvWtaMBTpdPfPxPIJNqV/Yo60kTdiuEWF qPzQrjgtqrVwZaZLpK+lKAIpp+piGYxkoXfuCoIXi1F7tkPRFm4mimK62hfTtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847431; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZPN/LaaM06r8VapgKuque+mEYaz+481MIA0HeJRx6V0=; b=Z6qMuvQgoEjzS2SaXP6iA+gBtN5/qr69KMNJxrtK1pjaUkCOd6B6PEexJoK5qB0U6U+glj klwnXQGoCHsu9oN2J7XBfLOQEdQriN0Mpa3kjBAvl4auTOXa/GKkEBFWZcJzsBs/mJ9a9L n770PE0ahLvVYrmCvch+bHqboUyPiAp5SzD/JiGhlxz+FSgfm2C0j9qRVHm0aIbeCwrksp 5Zkp1pU13laqeOX7De4oHTmLYriB59pHM0ILzRXaXcEm1aQoEElsA6LkrDZEmahAMbfT7D K516QiGHOylZwYxLEiFlLUzjItvmvc5BvYDe0rsk4nkLY+wwUQXOKglF3nMLQw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747847431; a=rsa-sha256; cv=none; b=gbmLHEPn+alkbxwxI3moBixAwhfX58FlDODoqYoknG+jyJoXm+Rsgz28mIeNSXv8E+EyOn 34xz5Row3BhOlw0q03EhXJqOHbbyAovEa01T+41uGpH0VDeGysTxKAcg24isUeXMHxw3mJ l1IDzJVJHOVY/fPCjtTVKTb8lVzj/5AGZpMQttZhAm1uOcNuCFDiaK2kANV/K0lxH0kJDh V0a+Yns6M2tmwuwlu7wpuKSfs+TCdzrM5DTB3B+wEy5DytFpDV/KHKoki7ZeRckhTeKDLr 8lBpWGy65/dUeGRXsU8R/sf4WVa+ttugqJr2NWL/W8+RQgFeqGaPulhmv62HcQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dGb0d72zkgW; Wed, 21 May 2025 17:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHAUY3009599; Wed, 21 May 2025 17:10:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHAUpN009596; Wed, 21 May 2025 17:10:30 GMT (envelope-from git) Date: Wed, 21 May 2025 17:10:30 GMT Message-Id: <202505211710.54LHAUpN009596@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: e6cb445098b1 - stable/14 - sctp: initilize local address flags correctly List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e6cb445098b156157f5b1926642ae6f86bf57f34 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=e6cb445098b156157f5b1926642ae6f86bf57f34 commit e6cb445098b156157f5b1926642ae6f86bf57f34 Author: Michael Tuexen AuthorDate: 2025-05-04 22:41:49 +0000 Commit: Michael Tuexen CommitDate: 2025-05-21 17:10:09 +0000 sctp: initilize local address flags correctly Use the same routine for initilizing as for updating. (cherry picked from commit 6ab4b0c0df57775fd6c288a0b7d0f5d2cad73481) --- sys/netinet/sctp_pcb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index b0686180a7af..7b155eed896a 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -453,6 +453,7 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, SCTPDBG(SCTP_DEBUG_PCB4, "Clearing deleted ifa flag\n"); sctp_ifap->localifa_flags = SCTP_ADDR_VALID; + sctp_gather_internal_ifa_flags(sctp_ifap); sctp_ifap->ifn_p = sctp_ifnp; atomic_add_int(&sctp_ifap->ifn_p->refcount, 1); } @@ -475,6 +476,7 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, } else { /* Repair ifn_p, which was NULL... */ sctp_ifap->localifa_flags = SCTP_ADDR_VALID; + sctp_gather_internal_ifa_flags(sctp_ifap); SCTPDBG(SCTP_DEBUG_PCB4, "Repairing ifn %p for ifa %p\n", (void *)sctp_ifnp, (void *)sctp_ifap); @@ -499,7 +501,7 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, sctp_ifap->ifa = ifa; memcpy(&sctp_ifap->address, addr, addr->sa_len); sctp_ifap->localifa_flags = SCTP_ADDR_VALID | SCTP_ADDR_DEFER_USE; - sctp_ifap->flags = ifa_flags; + sctp_gather_internal_ifa_flags(sctp_ifap); /* Set scope */ switch (sctp_ifap->address.sa.sa_family) { #ifdef INET From nobody Wed May 21 17:11:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dHZ2svyz5wD8F; Wed, 21 May 2025 17:11:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dHZ2G11z3kf2; Wed, 21 May 2025 17:11:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847482; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K6FLRTvoZA4YQHI1YLg6fi8rcyW0ew8aFpz1kqW33kM=; b=fzQRrmzFkBPD8QPPhHWFusAaWa6BpCvjtkN0UEuiZHoGD9t69oPQK0dzpGWna3WBqRHnJ5 N6hWcaYSjtp4WBsOyu7uzHbLWPWMinTOAgJDEwIGk+8oV+MRhbPWwEorHoq3SMCoy/0dpq 1Sbr1RDtAtVoEHT7pEiGY6WL1WGtTq9kF36+vtq4Xx3c1BtINqhblZB1Q6iDS/pJIJLQrR erTecb+j+na0mUp4osf8Ln4eqAgyLpjA2zGpNrFergtpFm7iKwSyOxz3kqa3x+5NWGvX5x S2pDZJbGXBlrHp0Fg/yGFcKSp6vfINV8Z+l+VD9YcenXBLJ65RVQkKhu9q//jA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847482; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K6FLRTvoZA4YQHI1YLg6fi8rcyW0ew8aFpz1kqW33kM=; b=XhcIE90faYy9jYkUdhU53g9IILPu8zwjiTVnsowppSvzLcyAxSmvc+4YEffohrNN9Hma0k 2yHWkTOYORTm8bpWeDzWl7dHr1G6J1hFm4oVkzTmysm3P5NkTreaTS6q2FZSXyLRIcCwrF k7EccpaRfUjCcYixb46vJqnGfQgXimFV2eURnaPSYtDIXxg3kSPCoK9XLQkEyl5ctcz55+ yE2Ppcdome9TiX19aOQpjTjk/9koVeMZfdwayriAsSD+00gwALC2G5nV/TeY7kTc/sUbVs eGDO4XnN7YArgUYl7P2oEMnHMFzRnwKAtRQHa0cbI2B4TRl2rhD/cSdZPM+SKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747847482; a=rsa-sha256; cv=none; b=dPseY+ID3IYMIQltaTBMXwHUVwTG+c7vUBD1A546yKX5NcNWDlyPQ5QZkw2IFTUfUepr1q I0WtkTnh62T1I2mIxhfdoT6NTfQ9fhVaVsps+QiaGCJgJdRpJ9Mfue3reTn7C4L6nfYskr s3IrQPHrkGbrjhGy1P7360KQsmYcxJsR5/8ax62iHdsCn1E2zS3eKidganrEmJu/A9R1Vk DNHO7ZM8G1+EhUnmreoEb2TjMTku6urz1AWqcjzkryozK3DoFcL6ofINK6V0FadlABNVR+ 5MklyPyrj93sRfHFBaZM3x+JuebSEWBXkE9CBSL94fKYW5vJlpusXdhG81pB/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dHZ1ZnTzkgw; Wed, 21 May 2025 17:11:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHBM6N011864; Wed, 21 May 2025 17:11:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHBMrt011861; Wed, 21 May 2025 17:11:22 GMT (envelope-from git) Date: Wed, 21 May 2025 17:11:22 GMT Message-Id: <202505211711.54LHBMrt011861@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: ab3daba43e8c - stable/14 - sctp: clear the SCTP_ADDR_VALID flag when removing an address List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ab3daba43e8cef4cf529dd1a6d2a5db7de0a66a0 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=ab3daba43e8cef4cf529dd1a6d2a5db7de0a66a0 commit ab3daba43e8cef4cf529dd1a6d2a5db7de0a66a0 Author: Michael Tuexen AuthorDate: 2025-05-04 22:45:01 +0000 Commit: Michael Tuexen CommitDate: 2025-05-21 17:11:03 +0000 sctp: clear the SCTP_ADDR_VALID flag when removing an address This flag is currently not read, therefore the bug had no consequences. (cherry picked from commit 2013c4e0dc73a7c7b05f48726af1a4931686ccef) --- sys/netinet/sctp_pcb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index 7b155eed896a..44807733b9e9 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -637,7 +637,7 @@ sctp_del_addr_from_vrf(uint32_t vrf_id, struct sockaddr *addr, } } SCTPDBG(SCTP_DEBUG_PCB4, "Deleting ifa %p\n", (void *)sctp_ifap); - sctp_ifap->localifa_flags &= SCTP_ADDR_VALID; + sctp_ifap->localifa_flags &= ~SCTP_ADDR_VALID; /* * We don't set the flag. This means that the structure will * hang around in EP's that have bound specific to it until From nobody Wed May 21 17:12:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dJL2vyjz5wDh8; Wed, 21 May 2025 17:12:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dJL1TyCz3l7p; Wed, 21 May 2025 17:12:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5HyJYUJVeQoP3XJcDTTg4h29hiSLLUe7cbFIFgUUd8k=; b=jFBi/3cKr2HWJqOmqxBYAzkQsoadhVkRn8fgNpLljPF3JwUoMu4if5fVhjoFSQZ7HI0lPh 6Ml8LXAQ2S0EHrr1kPW5DrNh7CdkcsNJc5Q0BCFXkVcRfiHCgWqz/WmtuoRbsegefMuivn /cQWnzxi0R2XplWlhPotXyF31Rhc8NWK+G58fy8ujwcMDf69dweDhmdHwInQsCpEXynuib /G4lqqZCYNHY4ElNXv49JmCE3l8oilRr/II99w8PjwNtE9SXcFczxp7Kl8NeUZ4QrRShzj Bs+zNmjnf5ag59J8H8ETrLRIonj9+ulzx4iEpbQ+qh7Xwssdyxt1mzX4sOzpkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5HyJYUJVeQoP3XJcDTTg4h29hiSLLUe7cbFIFgUUd8k=; b=goroG/mEK/dK+39fDyqCg8RlwJ7UBzgoaQKv2OksvdGQf0KJ0ZgJuteQPZWkadPCHTrinM I94d3ymbz4UDMWeqHS2PA8HU//CVYEgMcXMdF5q5hNNMFfJb+vsNoLB9ELX9KMpPrF9hEV DKQDFhDxtrhVetUBHs2GgvPyqQBh6uTMv0Y5FtSvZeJid8PQvs52G5NnPeCP6/ly1106GN OQqfjVjHjr6i9uR1DzreX1vG5qOSaH7qxQDGEjot4mO9hscQ4DmmdEDMS3anXtV3g+itMG WTnTXNNZ/rMOHxfxrmGiziD2YuLzjxRh5BtGq0Ipa+hh2Wy9evPghi+9n8h+OQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747847522; a=rsa-sha256; cv=none; b=Q2zAOwXZRZgk/b9X9DnnzVFdnycsv5asg9yIAhbagMvczkitqUa2rZJe+7dIVhPxlJpBmD FePWkW1P7RKGFFVardwQFbqGzV2dup/WTG9o2bb2zonc32zL8mEspAHBOvKnkOqbI4P4/V iqUJfqgi5u+sWkGW3fUSZQBLtX7NNMPMO2EE8Ay946D/6ksD1uKwnfnVAQiaVSExlbYN9n 0tU7KD02T2RHQJoFjQdgTdWUkO9xBDdD7KIlfvNr+rxnfQd6SwGLClUnNs5jSQDFUlXOw+ PJg/ZnJVrJbWk0uK55laqKW+GeKc2C9O3ElEJUBS1+H54JSqj531rOOCp4L+Vw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dJL0x5vzkjq; Wed, 21 May 2025 17:12:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHC2vv012200; Wed, 21 May 2025 17:12:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHC2t9012197; Wed, 21 May 2025 17:12:02 GMT (envelope-from git) Date: Wed, 21 May 2025 17:12:02 GMT Message-Id: <202505211712.54LHC2t9012197@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 5d4ef780ea9f - stable/14 - sctp: compute address flags only for IPv6 addresses List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5d4ef780ea9f81b6b5bdd23b9f442eae8c481edb Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=5d4ef780ea9f81b6b5bdd23b9f442eae8c481edb commit 5d4ef780ea9f81b6b5bdd23b9f442eae8c481edb Author: Michael Tuexen AuthorDate: 2025-05-05 20:43:50 +0000 Commit: Michael Tuexen CommitDate: 2025-05-21 17:11:43 +0000 sctp: compute address flags only for IPv6 addresses Only call sctp_gather_internal_ifa_flags() for IPv6 addresses and also compile this code only, when IPv6 is supported. This fixes the compilation of IPv4 only kernels. Reported by: bz@ Fixes: 6ab4b0c0df57 ("sctp: initilize local address flags correctly") (cherry picked from commit 99c58ad021b2f7dc0496e16d313c5e28a552f0d0) --- sys/netinet/sctp_pcb.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index 44807733b9e9..b5190bdf34d8 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -453,7 +453,11 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, SCTPDBG(SCTP_DEBUG_PCB4, "Clearing deleted ifa flag\n"); sctp_ifap->localifa_flags = SCTP_ADDR_VALID; - sctp_gather_internal_ifa_flags(sctp_ifap); +#ifdef INET6 + if (sctp_ifap->address.sa.sa_family == AF_INET6) { + sctp_gather_internal_ifa_flags(sctp_ifap); + } +#endif sctp_ifap->ifn_p = sctp_ifnp; atomic_add_int(&sctp_ifap->ifn_p->refcount, 1); } @@ -476,7 +480,11 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, } else { /* Repair ifn_p, which was NULL... */ sctp_ifap->localifa_flags = SCTP_ADDR_VALID; - sctp_gather_internal_ifa_flags(sctp_ifap); +#ifdef INET6 + if (sctp_ifap->address.sa.sa_family == AF_INET6) { + sctp_gather_internal_ifa_flags(sctp_ifap); + } +#endif SCTPDBG(SCTP_DEBUG_PCB4, "Repairing ifn %p for ifa %p\n", (void *)sctp_ifnp, (void *)sctp_ifap); @@ -501,7 +509,12 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, sctp_ifap->ifa = ifa; memcpy(&sctp_ifap->address, addr, addr->sa_len); sctp_ifap->localifa_flags = SCTP_ADDR_VALID | SCTP_ADDR_DEFER_USE; - sctp_gather_internal_ifa_flags(sctp_ifap); + sctp_ifap->flags = ifa_flags; +#ifdef INET6 + if (addr->sa_family == AF_INET6) { + sctp_gather_internal_ifa_flags(sctp_ifap); + } +#endif /* Set scope */ switch (sctp_ifap->address.sa.sa_family) { #ifdef INET From nobody Wed May 21 17:12:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dK04sFKz5wDHr; Wed, 21 May 2025 17:12:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dK04Bgmz3lNl; Wed, 21 May 2025 17:12:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N06SWketHZvHIipD3fVZeZecpG5g1d9U8Y6lv3FTqwM=; b=mkAZiJgWy7kyeZaxnrmgQd5Gr2PAziK1yVkccIiMdmdzgySzPQo4z2zMFDeIVTumT3Hh1G Qt3itCMqPakfHF2QQiULPcvxZzFSKqtQwPyK8DUwmM2IYlcZvza7WxEFE0SDYZ2NgWb1Ob 5MAnDDgfrxOkXxDm6OY6XumgORjKay+37Y02V9sC1u06iZgP5JfifvXKXI/kOKBeRXWhU4 OmIP88l4qOJZQwAs+DdGkQnntgFBHAN3X3Be+mgOsvqcymXf1xTRWNO7h/izQ8qku3Bfbm ll3gTdpOdh7QmNOrv7GXppjzvCg94+8eAM6VaPN2Jb5F9GfMSbFjOEKVE/+A3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747847556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N06SWketHZvHIipD3fVZeZecpG5g1d9U8Y6lv3FTqwM=; b=Yw1w0dlRr5moPJEPOiLP0IcbaO42E93hiEQtEjWZV5lTv6OcXWa+0HHOQxMm+nTA7q/Hn8 j96X/nziFgIGKl7N7nfcm/x7ZkvXOKy52O5oaBjSw4a7wIIKnTbQt1DeCfZ5Er8t1DFHa2 ggonplLNtjCz14HVl2Omnyvj4bnIxNzhXQVm3bdAP6WpCCA3AcM3bEKUtQRcJkOn5zM6sd H7XFgComOUIczlKRGxzc7ggJ1wz2LI3/WFvCwECfh7Y+x+SQ/IWAOiX0YPbF4oHYArcdEb Cc+lQkXZgoiOTPySheuw+RQ6PgoM6c/koCIAFQWKRvaWjiuOftBSFMGTy8q37Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747847556; a=rsa-sha256; cv=none; b=M8CN33/BdTEmYDVtAkghBPJT/uxrDOpld3Pgddg5JSU8ucwEHGyF/XO3OEVIoS2NxhUOGC pkpSr0JNrlkhLfn6iyJqsFcpY91QIQ/VsdsVVFWp7wAeNO0AKybav0V8jhePzK2cv5Jo+x UcO3extllHc/E1A98qqSuHznqtCiQ700tFAHVs2UpygycFZOAG4z+3nu+D0SCXxE9qJtB+ i91f0YsJ3BpQ/OoNm/9SmKZC1fOviXFEbH4FAJlXADiOxDzffiWcM52KkbIGZQGDOf3sgQ +Y71MQfTks1Ph2YUo5xct4yb/kagZk3yg5p05exUeDyGAhYuTKJ/sqHM8zzFzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dK03lrlzkLJ; Wed, 21 May 2025 17:12:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHCamr017643; Wed, 21 May 2025 17:12:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHCa9X017640; Wed, 21 May 2025 17:12:36 GMT (envelope-from git) Date: Wed, 21 May 2025 17:12:36 GMT Message-Id: <202505211712.54LHCa9X017640@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 604c4840c6be - stable/14 - sctp: ensure correct sctp_gather_internal_ifa_flags usage List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 604c4840c6be709176412ba3bcb3ea53946923f3 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=604c4840c6be709176412ba3bcb3ea53946923f3 commit 604c4840c6be709176412ba3bcb3ea53946923f3 Author: Michael Tuexen AuthorDate: 2025-05-05 20:50:42 +0000 Commit: Michael Tuexen CommitDate: 2025-05-21 17:12:16 +0000 sctp: ensure correct sctp_gather_internal_ifa_flags usage sctp_gather_internal_ifa_flags() expects an IPv6 address. (cherry picked from commit 4ca1395c5a311989fc02ceb7a2d44aa5eb1a7426) --- sys/netinet/sctp_bsd_addr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netinet/sctp_bsd_addr.c b/sys/netinet/sctp_bsd_addr.c index 65b271afd84d..ac715d8298ec 100644 --- a/sys/netinet/sctp_bsd_addr.c +++ b/sys/netinet/sctp_bsd_addr.c @@ -117,6 +117,9 @@ sctp_gather_internal_ifa_flags(struct sctp_ifa *ifa) { struct in6_ifaddr *ifa6; + KASSERT(ifa->address.sa.sa_family == AF_INET6, + ("sctp_gather_internal_ifa_flags() called with address family %u", + ifa->address.sa.sa_family)); ifa6 = (struct in6_ifaddr *)ifa->ifa; ifa->flags = ifa6->ia6_flags; if (MODULE_GLOBAL(ip6_use_deprecated)) { From nobody Wed May 21 17:37:25 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dsd3Ptgz5wG1D; Wed, 21 May 2025 17:37:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dsd2n7Jz40MM; Wed, 21 May 2025 17:37:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W05DzhiaZBLVtGztCxl1HKRpLB0Qncry8X/dtsj1Ao4=; b=nVnRggcbP+RlGTYH8a4MI0S2qwzoCmzKZWG7vOFDVqP/Qq8ZGConWWaqZsgCDUzxRqkaG7 5W2oha6cNccak/RHx7j0eVy9praoJi5wADnoGVthpLGZl0gHSQOewso80s7Cbmd5FMLCYt Px8pQxi3jjzJxmB7zzsdbYpJjNEtwpUidp0WSoewlIyX6PabAW4cK3PZN1qSbbAMds727S iJwC5I7PhAukGFwV0zo3eekLLgmfbrmHM/iSbppla1gOTSVhxWTGpAUl5aTi8VfVbPF3KZ b2MYiiH6D0BDJLYF2y48iF/bbpbjdAZgYhe4EAZEJi5N2+93jn+BzkloQEDfkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W05DzhiaZBLVtGztCxl1HKRpLB0Qncry8X/dtsj1Ao4=; b=VxVdpZBa9AJPe07pwNbcLiSpBdVAminQK2XPltwPGnjia2VyEs9raz0Jy3C0uNNK8BMw9k WUefHxBADEQugcan2QtMTnt9Un2qZTvqaxriklBNiRpeA/gtCWPuI0FyDOf0TinjhS9j25 3FrYNR/yhYEcWBPRfC7Y71iCY5fgA0uSeETFW3MUzVLQGedMDfXOR4l1jZYtXLHXDdg1ra JSDpPcanXIhcuRRBmUCZ+5Z8BwUX0MC6hvW0amIFzUaYydXBA9bVr5M+S6kbqMGbXl7X+c ffeZI0hHs1KW4D065UzqbaaJ4WTNVNAvKpUJRwke5FGv9BfDwEq++gOeO5uxlg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747849045; a=rsa-sha256; cv=none; b=ULRZSSeuVYjU/gac/7VjG3u1EiWR/VwZXH0eQtjDtt7J97XP1W2f9RsDN2oWXXuhBoyne1 afwgeGsw1fc/meqf3YRrQfe+vAn2oLO5oeZ7PvAwSquihjIwFTa/E8RWFoEtzYnz98bVPP fLzyTlo7gdlp/RRZX6jQAnDjzeFUR9fAeKFEd3kHwWsOtpqxqZrjJoy9pFJJ5Itm3yEYgp bhK1ZehIply+UoX/uRzythRKnU5HGhZ+QqXboCGy0bZsOpC9Vq/DSRUlps1D/6KTgMxyfN 6LyAWWcklmhpuFOHgAbCwbVE9b9MD2DY6zUSFJFqwyKUllmup2ALWg+ZXEZozA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dsd2H99zlDQ; Wed, 21 May 2025 17:37:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHbP1o056479; Wed, 21 May 2025 17:37:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHbPMU056476; Wed, 21 May 2025 17:37:25 GMT (envelope-from git) Date: Wed, 21 May 2025 17:37:25 GMT Message-Id: <202505211737.54LHbPMU056476@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 84b971c9186a - releng/14.3 - man: Exit cleanly on SIGPIPE. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 84b971c9186ad241151a84bbbfb9218adc54df6c Auto-Submitted: auto-generated The branch releng/14.3 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=84b971c9186ad241151a84bbbfb9218adc54df6c commit 84b971c9186ad241151a84bbbfb9218adc54df6c Author: Dag-Erling Smørgrav AuthorDate: 2025-05-16 14:56:13 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 17:36:41 +0000 man: Exit cleanly on SIGPIPE. The first attempt at addressing this simply suppressed SIGPIPE, which resulted in mandoc printing out error messages instead. This was then reverted, but the pipefail was (correctly) left in, so man still returned a nonzero exit code if you quit a page before the end. Approved by: re (cperciva) PR: 223516, 279542 Fixes: 14a5c1068d37, a85d870007e7 MFC after: 1 week Reviewed by: ziaee, kevans Differential Revision: https://reviews.freebsd.org/D50302 (cherry picked from commit fbaba7aa432257a9b787edc6bfdbfbde94f2e0d5) (cherry picked from commit 2f99190a9234b119bcec1e4645e87d4e6016e5a5) --- usr.bin/man/man.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/usr.bin/man/man.sh b/usr.bin/man/man.sh index 341a57c6d7dc..b1cfc6c41752 100755 --- a/usr.bin/man/man.sh +++ b/usr.bin/man/man.sh @@ -33,7 +33,10 @@ # it is better to terminate it. ulimit -t 20 -# do not ignore the exit status of roff tools +# Do not ignore the exit codes of roff tools, as they may indicate a +# problem with the page being rendered. Note that this also causes a +# nonzero exit when the user quits reading before reaching the end, so +# we need to look out for and deal with that specific case. set -o pipefail # Usage: add_to_manpath path @@ -1055,6 +1058,16 @@ do_man() { man_find_and_display "$page" done + # The user will very commonly quit reading the page before + # reaching the bottom. Depending on the length of the page + # and the pager's buffer size, this may result in a SIGPIPE. + # This is normal, so convert that exit code to zero. + if [ ${ret:-0} -gt 128 ]; then + if [ "$(kill -l "${ret}")" = "PIPE" ]; then + ret=0 + fi + fi + exit ${ret:-0} } From nobody Wed May 21 17:37:26 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2dsf5RfJz5wG3r; Wed, 21 May 2025 17:37:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2dsf3y8vz40GV; Wed, 21 May 2025 17:37:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rMqZGr7nH8oCoSFL46x5d44BOXhVhGY5zkbfS/HO1GM=; b=nm4HVSvBz2RognHhR7SmyMOSPyuOYVRhcm/XitWsR7WIXXsxZ6hzTNgq6QqpjvyePEyKKy Sxv+voror9b/csPVk+fKDlA8Yp2RfoVonA5hMWj3TXxCUPyqG7puLLaYTqHDU4j29NNV0A mwAzpr2pKp3IbUuYFz7EwLlV8X4yq6rkZEGNB6b9KI+zk/kPeUFcr5PmPhHCK41DJpGeJj 0GnWJMrEWrAjxs87sf8UpRBiN8ZptDYvc73cV9lFD9zHqDM+T3Ywnao9YMYcWhEp63TbX8 /MPK64OTR1SyZLwBPRyui4xSJgsamN1sJ5hYsQ8xm0HEaSeB95jw41Cg+lFQoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rMqZGr7nH8oCoSFL46x5d44BOXhVhGY5zkbfS/HO1GM=; b=FyaZkBb7OLFNWJOSFkIII0IR74y/1TxzztGMjWtR9085n0F7XPJbQc6rBNFLKMuI7KcaE2 st9pq5cIN3CsAzJYZJ99c5FrPe2t2joNsRB5GaC2dh7nx7JqNb2YeUzXVJyU618fBPSxpS mOZ/cZctbR5W/LGuhdAoPj7LVy0Pyv5WEscjHBs9ZaWxyTvwbjWyQGYV9/ORp6lXPwE7A1 7MH76my8Lyy8xa7FSXiqvqZY0rweI6wKjsbwClo2Jvbvxg+9A2kCP/UEUzcjI6U3MF14g1 AJFReYcYxXf0EUW7oMIJXACswHQQYXzGgpOZzWLsYyKHEDgZCtt+Iz0mKrNPhA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747849046; a=rsa-sha256; cv=none; b=nFEmDQVihhWUygWBOQDu8Rzq3wNJKs+v+DUO1GkYOIAQFcodJzpXsBnjoDryUs1w3Fq5+O tcngACBJsvzSvxnkXt51JUiIduzJsbdwTym2x5k06U/2DnHWYLLKdWjxeKqLU7Fjz+F/k2 cmxPC1NSI336ET8t0fk9filmuLEmIrBPocV8pfVc6clSgFY4JUeYMAv8SsmazjzfN0WEl/ Vood5M3UiY+01gpciGMViKC8whtwi+HxV1hSoWpr2bMWHlVOf+2RKPRkLStgIxjDrCEEW9 z93TGS3e8H56JECR8eHuoMlygBKB9c9JrCoU4JMCI9goUV5HNY362MtBrRphSA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2dsf3GvPzklL; Wed, 21 May 2025 17:37:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHbQC8056522; Wed, 21 May 2025 17:37:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHbQJC056519; Wed, 21 May 2025 17:37:26 GMT (envelope-from git) Date: Wed, 21 May 2025 17:37:26 GMT Message-Id: <202505211737.54LHbQJC056519@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 747efc2aeeab - releng/14.3 - namei: Update documentation. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 747efc2aeeabf5e56716c150ecc5f06d67b0b18a Auto-Submitted: auto-generated The branch releng/14.3 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=747efc2aeeabf5e56716c150ecc5f06d67b0b18a commit 747efc2aeeabf5e56716c150ecc5f06d67b0b18a Author: Dag-Erling Smørgrav AuthorDate: 2025-05-17 07:43:02 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 17:37:10 +0000 namei: Update documentation. This should have been done 2+ years ago when the td argument was dropped from NDINIT() and the NDFREE() macro and the SAVENAME and SAVESTART flags were retired. Approved by: re (cperciva) MFC after: 3 days Fixes: 7e1d3eefd410 ("vfs: remove the unused thread argument from NDINIT*") Fixes: 269c564b90d3 ("vfs: retire NDFREE") Sponsored by: NetApp, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50375 (cherry picked from commit ee84b4e2fdf09f9a6dfa43e0931d8671cc15ebf9) (cherry picked from commit 68bc635cc9b099fb03cfcd519046c385af0c5355) --- ObsoleteFiles.inc | 3 +++ share/man/man9/Makefile | 3 ++- share/man/man9/namei.9 | 69 ++++++++++++++++++++++++++++++++----------------- 3 files changed, 50 insertions(+), 25 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index e1c50607abb4..439df5e89377 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20250521: NDFREE(9) -> NDFREE_PNBUF(9) +OLD_FILES+=usr/share/man/man9/NDFREE.9.gz + # 20250419: removal of iwlwifi firmware files OLD_FILES+=usr/share/doc/legal/intel_iwlwifi_firmware.LICENCE diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 6993b34e5b4a..e424692fbdee 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1630,7 +1630,8 @@ MLINKS+=mutex.9 mtx_assert.9 \ mutex.9 mtx_unlock_flags.9 \ mutex.9 mtx_unlock_spin.9 \ mutex.9 mtx_unlock_spin_flags.9 -MLINKS+=namei.9 NDFREE.9 \ +MLINKS+=namei.9 NDFREE_PNBUF.9 \ + namei.9 NDINIT_AT.9 \ namei.9 NDINIT.9 MLINKS+=netisr.9 netisr_clearqdrops.9 \ netisr.9 netisr_default_flow2cpu.9 \ diff --git a/share/man/man9/namei.9 b/share/man/man9/namei.9 index 63a6d3b11f6f..1703faaeee99 100644 --- a/share/man/man9/namei.9 +++ b/share/man/man9/namei.9 @@ -31,13 +31,14 @@ .\" If you integrate this manpage in another OS, I'd appreciate a note .\" - eivind@FreeBSD.org .\" -.Dd December 17, 2024 +.Dd May 16, 2025 .Dt NAMEI 9 .Os .Sh NAME .Nm namei , .Nm NDINIT , -.Nm NDFREE +.Nm NDINIT_AT , +.Nm NDFREE_PNBUF .Nd pathname translation and lookup operations .Sh SYNOPSIS .In sys/param.h @@ -47,11 +48,16 @@ .Fn namei "struct nameidata *ndp" .Ft void .Fo NDINIT -.Fa "struct nameidata *ndp" "u_long op" "u_long flags" -.Fa "enum uio_seg segflg" "const char *namep" "struct thread *td" +.Fa "struct nameidata *ndp" "enum nameiop op" "u_int64_t flags" +.Fa "enum uio_seg segflg" "const char *namep" .Fc .Ft void -.Fn NDFREE "struct nameidata *ndp" "const uint flags" +.Fo NDINIT_AT +.Fa "struct nameidata *ndp" "enum nameiop op" "u_int64_t flags" +.Fa "enum uio_seg segflg" "const char *namep" "int dirfd" +.Fc +.Ft void +.Fn NDFREE_PNBUF "struct nameidata *ndp" .Sh DESCRIPTION The .Nm @@ -71,13 +77,13 @@ flag was specified or not. .Pp The .Fn NDINIT -function is used to initialize +macro is used to initialize .Nm components. It takes the following arguments: .Bl -tag -width ".Fa segflg" .It Fa ndp -The +A pointer to the .Vt "struct nameidata" to initialize. .It Fa op @@ -95,7 +101,7 @@ will not result in .Fn VOP_RENAME being called. .It Fa flags -Operation flags. +Operation flags, described in the next section. Several of these can be effective at the same time. .It Fa segflg UIO segment indicator. @@ -106,10 +112,35 @@ or in the kernel address space .It Fa namep Pointer to the component's pathname buffer (the file or directory name that will be looked up). -.It Fa td -The thread context to use for -.Nm -operations and locks. +.El +.Pp +The +.Fn NDINIT_AT +macro is similar to +.Fn NDINIT , +but takes one extra argument: +.Bl -tag -width ".Fa segflg" +.It Fa dirfd +File descriptor referencing a directory, or the special value +.Dv AT_FDCWD +meaning the calling thread's current working directory. +Lookups will be performed relative to this directory. +.El +.Pp +The +.Fn NDFREE_PNBUF +macro is used to free the pathname buffer. +It must be called exactly once for each successful +.Fn namei +call. +It takes the following argument: +.Bl -tag -width ".Fa segflg" +.It Fa ndp +A pointer to a +.Vt "struct nameidata" +that was used in a successful +.Fn namei +call. .El .Sh NAMEI OPERATION FLAGS The @@ -203,17 +234,6 @@ This flag is not looked for by the actual code, which looks for .Dv NOFOLLOW is used to indicate to the source code reader that symlinks are intentionally not followed. -.It Dv SAVENAME -Do not free the pathname buffer at the end of the -.Fn namei -invocation; instead, free it later in -.Fn NDFREE -so that the caller may access the pathname buffer. -See below for details. -.It Dv SAVESTART -Retain an additional reference to the parent directory; do not free -the pathname buffer. -See below for details. .El .Sh ALLOCATED ELEMENTS The @@ -307,7 +327,8 @@ An attempt is made to modify a file or directory on a read-only file system. .Xr VFS 9 , .Xr vnode 9 , .Xr vput 9 , -.Xr vref 9 +.Xr vref 9 , +.Xr vrele 9 .Sh AUTHORS .An -nosplit This manual page was written by From nobody Wed May 21 17:47:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2f5N2NFvz5wGpc; Wed, 21 May 2025 17:47:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2f5N1Wp9z43Wr; Wed, 21 May 2025 17:47:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849656; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cqsRTPlwGZ7chIyCTDXCsdQmJwmtt251nW0oRAX+Eww=; b=KfSTKEUO7dwg+s6FsdcaB7zB86WeefLML3Tb9+Nh20SCbjhVMAzgspJRugzZHq8+OMsE5S mt+NZv4/ct+/mD7wqka9RycxUfC+UJvlBGbSBqvEnqGgb5YvGJD/JVq7HpdRPr5QHzM3wM XbYcVA8gU5kUcCcDV4EWrAx/JthGZD5zStBKfp3v8h8f8805y/RZCPKYz0qe8W+adUsl7G YqZWyd6+MLEDJwriaUlu/Bx5Er+ZsVssRQ/77fU938p2lajfWiCFCSUg1sevmM/WVgBw6y qsBO9EKag9Bm/Mq4kzoXYoQ/oW+y9hDADTUJG0vz80jOq2p1RMXasOi45h0kdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849656; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cqsRTPlwGZ7chIyCTDXCsdQmJwmtt251nW0oRAX+Eww=; b=XbcEYQdVqE3WcUb1NGVQLTPPhdhuqhPcZjoC6ijndVg+1QvBjusLjz/dKy6Dt4dz6gYMM2 OxUve7Fn9G7TEJVK9cNTj5nepuiMeRSVpvNemCcGRog7lqczAuyaryZ9opZ2TCwBqLUmu9 4Ps8NPCbl712OW8csQynPtCC2SMilnHV10uM3EDGuQ4IAuNwyLjcBeiN/llQ8bL7TUI3yt nLQiLdalHBXRRm31AEaKLCZxLO9IfPnSt3tzJ8LxxYrwoEQaTj4vNZptXxHvNVjAIdK7Iu 8hYmvjtVVAlK2QdD1LI5LIfwHTWlN826ljjKtCLKybLB2d6Q7yVKClbGu0E6cQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747849656; a=rsa-sha256; cv=none; b=Of8vxmtNKFmUEDUvgqeDJY1mA8R37StwnWwirBnr33mxYQ7GuM1OHOdFKfaPu7ifJ/w0cs WBSfmlGyxCNcTaFWCx9mYXwFiBLQbl0ytTdnmTOHIKWMaFCUGSWBViS/4sR6zYbjYZrj5q GiwZSYFNHaOkFPWgTUu0P8FE6ihdwhpG2Kjpfrul/DthUgDL8baJqFtGpGDeHZjCgBoDq7 xsczgbEL/TVeZ7DeCv4oNhGRy/Fe0X1DIeig5iJYu8zdeM1LUrQiFUI45x6AadFncU8/aT b8Ekero/bC3B/9NJCygQMhZqb7zxxSnpLhOsjuqG+vY18Uc4Pw3QKClAs7mXhQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2f5N174qzll2; Wed, 21 May 2025 17:47:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHlaYH074894; Wed, 21 May 2025 17:47:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHlaZ5074891; Wed, 21 May 2025 17:47:36 GMT (envelope-from git) Date: Wed, 21 May 2025 17:47:36 GMT Message-Id: <202505211747.54LHlaZ5074891@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 12666df00a74 - stable/14 - mail: Don't trap signals we shouldn't. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 12666df00a745c64d65c7248f278001b9dbfd937 Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=12666df00a745c64d65c7248f278001b9dbfd937 commit 12666df00a745c64d65c7248f278001b9dbfd937 Author: Dag-Erling Smørgrav AuthorDate: 2025-04-27 06:29:20 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 17:33:08 +0000 mail: Don't trap signals we shouldn't. When in interactive mode, trap SIGINT, SIGHUP, and tty-related signals. Otherwise, leave signals untouched as required by POSIX. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D50011 (cherry picked from commit 59597032c948586257f123f57bbcfbad02a2cd1b) mail: Exit non-zero on failure to collect mail. While here, avoid non-portable `pipe2()` in the regression test. Fixes: 59597032c948 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D50069 (cherry picked from commit 09bc6a5d5b3333bc91e5f9fdf1e7bb282c4aea5a) mail: Further refine the SIGINT test. * Wait at least 1-2 s before sending the second SIGINT. * If the child is still running after 15 s, send a SIGKILL. * Improve the exit status checks. Fixes: 59597032c948 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50092 (cherry picked from commit 42fd47ef81138ae53ba77add5a400f67af8e6263) --- etc/mtree/BSD.tests.dist | 2 + usr.bin/mail/Makefile | 4 + usr.bin/mail/collect.c | 34 +++++--- usr.bin/mail/send.c | 4 +- usr.bin/mail/tests/Makefile | 4 + usr.bin/mail/tests/mail_sigint_test.c | 157 ++++++++++++++++++++++++++++++++++ 6 files changed, 190 insertions(+), 15 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index a909ea3714d3..bf327b14c306 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1109,6 +1109,8 @@ .. m4 .. + mail + .. mkimg .. mktemp diff --git a/usr.bin/mail/Makefile b/usr.bin/mail/Makefile index e5b0d8b3a3a6..bbbcf6c892b1 100644 --- a/usr.bin/mail/Makefile +++ b/usr.bin/mail/Makefile @@ -1,4 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/25/94 +.include CONFS= misc/mail.rc PROG= mail @@ -19,4 +20,7 @@ etc-mailrc: cd ${.CURDIR}/misc; ${INSTALL} -o root -g wheel \ -m 644 ${EFILES} ${DESTDIR}/etc +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests + .include diff --git a/usr.bin/mail/collect.c b/usr.bin/mail/collect.c index ccb3b60bec2b..e6a6337bcdb0 100644 --- a/usr.bin/mail/collect.c +++ b/usr.bin/mail/collect.c @@ -85,16 +85,20 @@ collect(struct header *hp, int printheaders) * until we're in the main loop. */ (void)sigemptyset(&nset); - (void)sigaddset(&nset, SIGINT); - (void)sigaddset(&nset, SIGHUP); + if (value("interactive") != NULL) { + (void)sigaddset(&nset, SIGINT); + (void)sigaddset(&nset, SIGHUP); + } (void)sigprocmask(SIG_BLOCK, &nset, NULL); - if ((saveint = signal(SIGINT, SIG_IGN)) != SIG_IGN) - (void)signal(SIGINT, collint); - if ((savehup = signal(SIGHUP, SIG_IGN)) != SIG_IGN) - (void)signal(SIGHUP, collhup); - savetstp = signal(SIGTSTP, collstop); - savettou = signal(SIGTTOU, collstop); - savettin = signal(SIGTTIN, collstop); + if (value("interactive") != NULL) { + if ((saveint = signal(SIGINT, SIG_IGN)) != SIG_IGN) + (void)signal(SIGINT, collint); + if ((savehup = signal(SIGHUP, SIG_IGN)) != SIG_IGN) + (void)signal(SIGHUP, collhup); + savetstp = signal(SIGTSTP, collstop); + savettou = signal(SIGTTOU, collstop); + savettin = signal(SIGTTIN, collstop); + } if (setjmp(collabort) || setjmp(colljmp)) { (void)rm(tempname); goto err; @@ -479,11 +483,13 @@ out: rewind(collf); noreset--; (void)sigprocmask(SIG_BLOCK, &nset, NULL); - (void)signal(SIGINT, saveint); - (void)signal(SIGHUP, savehup); - (void)signal(SIGTSTP, savetstp); - (void)signal(SIGTTOU, savettou); - (void)signal(SIGTTIN, savettin); + if (value("interactive") != NULL) { + (void)signal(SIGINT, saveint); + (void)signal(SIGHUP, savehup); + (void)signal(SIGTSTP, savetstp); + (void)signal(SIGTTOU, savettou); + (void)signal(SIGTTIN, savettin); + } (void)sigprocmask(SIG_UNBLOCK, &nset, NULL); return (collf); } diff --git a/usr.bin/mail/send.c b/usr.bin/mail/send.c index 002157ba55cb..395b42c1e749 100644 --- a/usr.bin/mail/send.c +++ b/usr.bin/mail/send.c @@ -299,8 +299,10 @@ mail1(struct header *hp, int printheaders) * Collect user's mail from standard input. * Get the result as mtf. */ - if ((mtf = collect(hp, printheaders)) == NULL) + if ((mtf = collect(hp, printheaders)) == NULL) { + senderr++; return; + } if (value("interactive") != NULL) { if (value("askcc") != NULL || value("askbcc") != NULL) { if (value("askcc") != NULL) diff --git a/usr.bin/mail/tests/Makefile b/usr.bin/mail/tests/Makefile new file mode 100644 index 000000000000..cb194b3da1f1 --- /dev/null +++ b/usr.bin/mail/tests/Makefile @@ -0,0 +1,4 @@ +PACKAGE= tests +ATF_TESTS_C+= mail_sigint_test + +.include diff --git a/usr.bin/mail/tests/mail_sigint_test.c b/usr.bin/mail/tests/mail_sigint_test.c new file mode 100644 index 000000000000..ace5f714c459 --- /dev/null +++ b/usr.bin/mail/tests/mail_sigint_test.c @@ -0,0 +1,157 @@ +/*- + * Copyright (c) 2025 Klara, Inc. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +#define MAILX "mailx" +#define BODY "hello\n" +#define BODYLEN (sizeof(BODY) - 1) + +/* + * When interactive, mailx(1) should print a message on receipt of SIGINT, + * then exit cleanly on receipt of a second. + * + * When not interactive, mailx(1) should terminate on receipt of SIGINT. + */ +static void +mailx_sigint(bool interactive) +{ + char obuf[1024] = ""; + char ebuf[1024] = ""; + struct pollfd fds[2]; + int ipd[2], opd[2], epd[2], spd[2]; + time_t start, now; + size_t olen = 0, elen = 0; + ssize_t rlen; + pid_t pid; + int kc, status; + + /* input, output, error, sync pipes */ + if (pipe(ipd) != 0 || pipe(opd) != 0 || pipe(epd) != 0 || + pipe(spd) != 0 || fcntl(spd[1], F_SETFD, FD_CLOEXEC) != 0) + atf_tc_fail("failed to pipe"); + /* fork child */ + if ((pid = fork()) < 0) + atf_tc_fail("failed to fork"); + if (pid == 0) { + /* child */ + dup2(ipd[0], STDIN_FILENO); + close(ipd[0]); + close(ipd[1]); + dup2(opd[1], STDOUT_FILENO); + close(opd[0]); + close(opd[1]); + dup2(epd[1], STDERR_FILENO); + close(epd[0]); + close(epd[1]); + close(spd[0]); + /* force dead.letter to go to cwd */ + setenv("HOME", ".", 1); + /* exec mailx */ + execlp(MAILX, + MAILX, + interactive ? "-Is" : "-s", + "test", + "test@example.com", + NULL); + _exit(2); + } + /* parent */ + close(ipd[0]); + close(opd[1]); + close(epd[1]); + close(spd[1]); + /* block until child execs or exits */ + (void)read(spd[0], &spd[1], sizeof(spd[1])); + /* send one line of input */ + ATF_REQUIRE_INTEQ(BODYLEN, write(ipd[1], BODY, BODYLEN)); + /* give it a chance to process */ + poll(NULL, 0, 2000); + /* send first SIGINT */ + ATF_CHECK_INTEQ(0, kill(pid, SIGINT)); + kc = 1; + /* receive output until child terminates */ + fds[0].fd = opd[0]; + fds[0].events = POLLIN; + fds[1].fd = epd[0]; + fds[1].events = POLLIN; + time(&start); + for (;;) { + ATF_REQUIRE(poll(fds, 2, 1000) >= 0); + if (fds[0].revents == POLLIN && olen < sizeof(obuf)) { + rlen = read(opd[0], obuf + olen, sizeof(obuf) - olen - 1); + ATF_REQUIRE(rlen >= 0); + olen += rlen; + } + if (fds[1].revents == POLLIN && elen < sizeof(ebuf)) { + rlen = read(epd[0], ebuf + elen, sizeof(ebuf) - elen - 1); + ATF_REQUIRE(rlen >= 0); + elen += rlen; + } + time(&now); + if (now - start > 1 && elen > 0 && kc == 1) { + ATF_CHECK_INTEQ(0, kill(pid, SIGINT)); + kc++; + } + if (now - start > 15 && kc > 0) { + (void)kill(pid, SIGKILL); + kc = -1; + } + if (waitpid(pid, &status, WNOHANG) == pid) + break; + } + close(ipd[1]); + close(opd[0]); + close(epd[0]); + close(spd[0]); + if (interactive) { + ATF_CHECK(WIFEXITED(status)); + if (WIFEXITED(status)) + ATF_CHECK_INTEQ(1, WEXITSTATUS(status)); + ATF_CHECK_INTEQ(2, kc); + ATF_CHECK_STREQ("", obuf); + ATF_CHECK_MATCH("Interrupt -- one more to kill letter", ebuf); + atf_utils_compare_file("dead.letter", BODY); + } else { + ATF_CHECK(WIFSIGNALED(status)); + if (WIFSIGNALED(status)) + ATF_CHECK_INTEQ(SIGINT, WTERMSIG(status)); + ATF_CHECK_INTEQ(1, kc); + ATF_CHECK_STREQ("", obuf); + ATF_CHECK_STREQ("", ebuf); + ATF_CHECK_INTEQ(-1, access("dead.letter", F_OK)); + } +} + + +ATF_TC_WITHOUT_HEAD(mail_sigint_interactive); +ATF_TC_BODY(mail_sigint_interactive, tc) +{ + mailx_sigint(true); +} + +ATF_TC_WITHOUT_HEAD(mail_sigint_noninteractive); +ATF_TC_BODY(mail_sigint_noninteractive, tc) +{ + mailx_sigint(false); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, mail_sigint_interactive); + ATF_TP_ADD_TC(tp, mail_sigint_noninteractive); + return (atf_no_error()); +} From nobody Wed May 21 17:47:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2f5P4HYlz5wGlK; Wed, 21 May 2025 17:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2f5P3cqCz43fN; Wed, 21 May 2025 17:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849657; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V9pI5IApZ2AuCfb4xNeOMGTd3EobONZmaHXOC8URaOo=; b=ZueCaRKosGAbelrBtXE+nhnZFa60y6d2pAFM5QnLypQHv/pAlWUYy/IcA++8OP5TmBpshV ClplmZXCfprMFmQPjfUtvl4WRFs4lChv9aBlCa3yE9soS0JEosu0f/h+ry5vt/QtPmuAjX 5909+km9Bx38rJFJZDm/9Ah0ZSXr13h5tLH67r0UETHEyrTSqx9o/JeB69jtR9QTUEo6kw aHxlvDmooA5Buff+xRVrvbp93iLhvPy0vuNE07Ar6NUvC65A0Vl7PUS+eV+HwF9yRtf0j6 mCZ5kRB02Yx5p+53GR2CqdN0Q0RWfR8w/Neh6/Di/EuW0qjOZmepKSnSX7I5pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849657; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V9pI5IApZ2AuCfb4xNeOMGTd3EobONZmaHXOC8URaOo=; b=S78rgW/JOqqSjLIXMXUhzxmxFzpYfshFkWhh+dV17M9DVEogygdBP5yodEcOvx/gq2pcKX 4e9x2f0JSOL6RFWMJHj6CKOrztTLzTBorYcNKXbHfmT4GXTfLyu4N6YPhBmqPak/AslRvX PzL7qljvRfyIK3x/brrUlFbJs6DSBx35f0HnKD3gbQEyHhA3v0EBsryz8712XMv3aI1B7u y91I7U5Aj0oYWRg4YT0yDEZW4RMqrG4JFBlYu51Jl0f8jBSY5dA9oRUeKSg7tH76NKUT89 tWy8PHbrZ2yEoqAsefyJshe1nTG6AG5VIhoHb81hzIA0SG3h7EhjieOXgmaVhQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747849657; a=rsa-sha256; cv=none; b=OKB8g43Qu7sTV+xt7EaDXOZqoNW0D0yYUC5S9orcbY0aI7D0e4Q6pQFhnxxK4TKAfRUdnK ymP46EwyXSnBlV3xXFz+LXZ2u5MMaBZGsVwpmXZC3GaYsZJ69I2Onoq0PP8iRkzwBlZozO ns96jKH8Www2nXRarFrde70vtRJ4WVB8fQmXEuMvXzXm2CcoGFL9AgkOx/LyUQNqKmfLta /DvNPSMeVfJOvfGYmG/V9nYT830kI3zMnYHT80y8F8BkuCZOTg7pIPIbc8/ZWgKPwoiUvf TkGYYxOvlLlFSQlYzRVIe9PAf6GDYIOh05RNyGMOimsh9Z956CvpXiEiNzPWpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2f5P2dCtzlHX; Wed, 21 May 2025 17:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHlbc0074931; Wed, 21 May 2025 17:47:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHlbNM074928; Wed, 21 May 2025 17:47:37 GMT (envelope-from git) Date: Wed, 21 May 2025 17:47:37 GMT Message-Id: <202505211747.54LHlbNM074928@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: a7a3eec3fc37 - stable/14 - mail: remove the SIGHUP handler from lex.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a7a3eec3fc37044467551a7e2bb00d9a1388f6b7 Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=a7a3eec3fc37044467551a7e2bb00d9a1388f6b7 commit a7a3eec3fc37044467551a7e2bb00d9a1388f6b7 Author: Kyle Evans AuthorDate: 2025-05-14 19:20:16 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 17:33:09 +0000 mail: remove the SIGHUP handler from lex.c If the command is simply going to exit without doing any cleanup, then an immediate exit(3) does not add any value and in-fact obscures that the program was terminated by a signal. This is motivated by POSIX conformance requirements, but it's also a little bit of a tidy-up. Some investigation into the history of mail(1) shows that, at one point, hangup() would attempt to save messages into mbox before exiting. It was later transformed into a simple exit() and likely could have been GC'd at that point. Reviewed by: des, emaste, ivy Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50247 (cherry picked from commit df16cbdcf1927200eb910c1874faee6f3d8b9a97) --- usr.bin/mail/extern.h | 1 - usr.bin/mail/lex.c | 13 ------------- 2 files changed, 14 deletions(-) diff --git a/usr.bin/mail/extern.h b/usr.bin/mail/extern.h index 669c10b91beb..24ea67939ff2 100644 --- a/usr.bin/mail/extern.h +++ b/usr.bin/mail/extern.h @@ -133,7 +133,6 @@ int getrawlist(char *, char **, int); uid_t getuserid(char *); int grabh(struct header *, int); int group(void *); -void hangup(int); int hash(const char *); void hdrstop(int); int headers(void *); diff --git a/usr.bin/mail/lex.c b/usr.bin/mail/lex.c index b931d6e16a15..c5f4f26781ef 100644 --- a/usr.bin/mail/lex.c +++ b/usr.bin/mail/lex.c @@ -205,8 +205,6 @@ commands(void) if (!sourcing) { if (signal(SIGINT, SIG_IGN) != SIG_IGN) (void)signal(SIGINT, intr); - if (signal(SIGHUP, SIG_IGN) != SIG_IGN) - (void)signal(SIGHUP, hangup); (void)signal(SIGTSTP, stop); (void)signal(SIGTTOU, stop); (void)signal(SIGTTIN, stop); @@ -573,17 +571,6 @@ stop(int s) } } -/* - * Branch here on hangup signal and simulate "exit". - */ -void -hangup(int s __unused) -{ - - /* nothing to do? */ - exit(1); -} - /* * Announce the presence of the current Mail version, * give the message count, and print a header listing. From nobody Wed May 21 17:47:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2f5Q68Whz5wGPd; Wed, 21 May 2025 17:47:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2f5Q3vsvz43Ph; Wed, 21 May 2025 17:47:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oz306/wZSY8JN9a/dmc+9wyTqVqBSY2rZbojO7NJhsw=; b=aH6r72bG6yv04OyivQqiT2scs9EcimzoWgVWymLnd2gZzbAy2mEi+X6RyR59I8CbmDo0VU ET/BlN1taDc1qBwouqtE7h2cIJV8lAbFa+VJxyDqAEKuyaKe9wp2CiBbGDtmnWH1hLGsm3 OSYtOHDLlj4u1Bk4XdulBYGDcTllwk1cntSF/3Tvy9U5ebAnn8qdWog8wg7IOcjH06LCJr XzlDHInjYflDGwqlxgWZhn8KCh6i/nHdsxrVF9GA3aVZepu/UBbkje1X7As3AUX2olDyPW dmw7er+MFxlKtr+xOFXdksniGr4jFQwYDc2GrutfavVCO8s7GbGiseopWEhlnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oz306/wZSY8JN9a/dmc+9wyTqVqBSY2rZbojO7NJhsw=; b=xAfMzFYstuOWY0AJSGKUYUvYtubIV2uMsY26wHiuWJDbef1qAOB1xCdq+qJBPvaETxNHXF aKrJFUt2U097lv777KEFghAeW057GERYqpp1DHt7O4BqHa5NlVqOAk/ZEswWynbLbBmR0c 9eVA6xIUFCnlcPlxQBwGNxGLUq5mRZFcAHSMN7Xd6x/bWQQv5+7XGCri0CYpsYZm5iisHm pTLrovVxu9OSFseeviIyINFMa9wx97WHbro23dCV+YxtBV0LCsY24XScR+udiGkoaFcfw4 epdgSlTfR5QJ3hpSW8QJSIrIytsqjwDbujNMaG4a/uf86VF1WUIC4GGMI/+SgQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747849658; a=rsa-sha256; cv=none; b=g0cSSKc5J66Pj84sd6lrRHzHkKIHMH1YBIlPtoyhoqYzEFbGCBgfn4jtrnjLrV456gGRSV Z6pmoGwk0jej1cQGKZwg7llEW3oPpXIlAqIVc0pTYDQU+5vzP2g+d2L8Z4dRori0SbWpb/ imIurEwYyx3mc1/Y/FO6x1hvudmkoqohnY/R70am4IwtHvRJrexzKsr1IjlG5eyaLxxEH5 FPFaDLWnrcRvup6tMG7T/j4KEB1Es2wMf9unlinjp3fO9yzzVLH1bbS4zEpJu8d/5YPnTA imM+4gvSUnuaTUs6z/JcYIUI4vWjYDSJRfGgnHAd0d4PbfE/3cHfjJlzKjRKIg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2f5Q3Kh2zlHY; Wed, 21 May 2025 17:47:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHlcDM074972; Wed, 21 May 2025 17:47:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHlcdP074969; Wed, 21 May 2025 17:47:38 GMT (envelope-from git) Date: Wed, 21 May 2025 17:47:38 GMT Message-Id: <202505211747.54LHlcdP074969@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: b71d73af2f68 - stable/14 - mail: exit with the correct exit status on SIGHUP in send mode List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b71d73af2f68d473eda5fd7547a2fd7ec92b70d5 Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=b71d73af2f68d473eda5fd7547a2fd7ec92b70d5 commit b71d73af2f68d473eda5fd7547a2fd7ec92b70d5 Author: Kyle Evans AuthorDate: 2025-05-14 19:20:16 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 17:33:09 +0000 mail: exit with the correct exit status on SIGHUP in send mode Motivated by POSIX conformance requirements: mailx(1) is expected to take the default action for every signal except SIGINT in interactive mode. We still handle other signals that we shouldn't based on the spec (e.g., SIGTSTP), but conforming there is not as straightforward as we do more than just cleanup in response. Note that when the spec says that we must take the default action, it does not mean so strictly. Namely, we *can* do some sensible cleanup if we'd like, but we enter into nonconformant territory if we don't reflect the termination via signal in our exit status. That is why this change doesn't actually remove the handler; we're still conformant as long as the end result is the same as if we took the default action. Reviewed by: des Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50251 (cherry picked from commit 964557fe9807d473ad11182a332b0d1da4f54ef0) --- usr.bin/mail/collect.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/usr.bin/mail/collect.c b/usr.bin/mail/collect.c index e6a6337bcdb0..1155467efcb3 100644 --- a/usr.bin/mail/collect.c +++ b/usr.bin/mail/collect.c @@ -704,7 +704,7 @@ collint(int s __unused) /*ARGSUSED*/ void -collhup(int s __unused) +collhup(int signo) { rewind(collf); savedeadletter(collf); @@ -712,7 +712,8 @@ collhup(int s __unused) * Let's pretend nobody else wants to clean up, * a true statement at this time. */ - exit(1); + signal(signo, SIG_DFL); + raise(signo); } void From nobody Wed May 21 17:47:39 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2f5R6zB5z5wGpn; Wed, 21 May 2025 17:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2f5R5lt1z43XK; Wed, 21 May 2025 17:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4eCwAG3aWIfMELXXMCxMJe0RU5qD44d3Mjx2KB1URo4=; b=PCMcStHA07cZJm7Rqazg3PY9L6JlAItormpVBME/rP7FDUzmnzTOjIVRU+SEKaRktJ/Xip QA/aZNTEu3BE+o4uw7xOfJDWo9OstSE6sZPHVpjAgp5662pd7UpaGpqAuCGmLm3ahgByIM 1bYtoUrgJw7PhXO+2h7u7RtwJmGur15R0+Hua8/a6qeqLP/Z6P7xsSlgin6JdFNEiBi3eo vx2m6SOLfl++/OscP1ezkVM1KDOmQzjADkijfRy96/x3UrP9GwP73Jd5RKxpKz/m2zNORp fXIWvs8P0t+nNjqdyHCmLG5oqAXPQQiPprgTCVWSRSABg3SGIPNxpksswzXWjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747849659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4eCwAG3aWIfMELXXMCxMJe0RU5qD44d3Mjx2KB1URo4=; b=B2o3jfEBLf5pmM+zw7tnRwbeCkco8Gq/nIIFNF2wvlMo9hMfImkdJgvWMoZY/PnKktQB5E BEPkxYa7axPcpipPQViyi5Ui9iOP1h7n25hYTKc4Xvs0uqiqemEEbHNr3EyxkZdQIZPVMB 4QmZz9QAKFX/k0MJZrqD6/PymUaxZKayRQ6blwESYnfnf4AEGyr2yywqdA5c1EO+juOJAw kR59q4reX3FZWBkoWva3YeN1smUG9RGsy94FbDrSdc7/WLLiN0iRwAzt7gdqYDuaR1sg46 re4PXdvRgGIXXeukM4td/WOtk6lm+vpdHUzfuifDOwAz84OYVZLfNn8YB577hQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747849659; a=rsa-sha256; cv=none; b=L5rjOAo9chNVmD1pYY2w+hZaGnw9AFU1Q64n09wXO78Pr4qrTVwSvt+tiplfkYEaEksGMX iZFdwasDlTH1kMvRVUOM88TePCfTgJWgaVQbXxICOADzuMitJtgbEaTIQvSWlTNGylPRTG 9M4Kh9GnuBijEr7XO218eWES8eDvgUPxKdv8PIiyZE9PPje/9BI0PLaTImj+1bqmburLiD zTy5fev7dIWmE5NDbnxpKey+HmZaSqfWk0RYl9a9s6/khbS2MF9iVcC3Byg/V3oBwhtUJo GlSyk+AV2b/dIDqIWvCRCdGnSSI/FAYy4K+z1FR+pzH9XtVIDfedyB82XzIiWg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2f5R4JHkzl3Y; Wed, 21 May 2025 17:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LHldsv075016; Wed, 21 May 2025 17:47:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LHldYo075013; Wed, 21 May 2025 17:47:39 GMT (envelope-from git) Date: Wed, 21 May 2025 17:47:39 GMT Message-Id: <202505211747.54LHldYo075013@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 5f636d1e9e2e - stable/14 - mail: Add test cases for SIGHUP. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5f636d1e9e2eb69c23a38be4375fbc8a1be16a29 Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=5f636d1e9e2eb69c23a38be4375fbc8a1be16a29 commit 5f636d1e9e2eb69c23a38be4375fbc8a1be16a29 Author: Dag-Erling Smørgrav AuthorDate: 2025-05-14 19:31:47 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-05-21 17:33:09 +0000 mail: Add test cases for SIGHUP. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D50296 (cherry picked from commit a6bac0a9efa15275ada0f0b0ef784837929fb5c6) --- usr.bin/mail/tests/Makefile | 2 +- .../{mail_sigint_test.c => mailx_signal_test.c} | 58 ++++++++++++++++------ 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/usr.bin/mail/tests/Makefile b/usr.bin/mail/tests/Makefile index cb194b3da1f1..d7c1776f87fc 100644 --- a/usr.bin/mail/tests/Makefile +++ b/usr.bin/mail/tests/Makefile @@ -1,4 +1,4 @@ PACKAGE= tests -ATF_TESTS_C+= mail_sigint_test +ATF_TESTS_C+= mailx_signal_test .include diff --git a/usr.bin/mail/tests/mail_sigint_test.c b/usr.bin/mail/tests/mailx_signal_test.c similarity index 69% rename from usr.bin/mail/tests/mail_sigint_test.c rename to usr.bin/mail/tests/mailx_signal_test.c index ace5f714c459..d4ce1e536935 100644 --- a/usr.bin/mail/tests/mail_sigint_test.c +++ b/usr.bin/mail/tests/mailx_signal_test.c @@ -25,9 +25,11 @@ * then exit cleanly on receipt of a second. * * When not interactive, mailx(1) should terminate on receipt of SIGINT. + * + * In either case, mailx(1) should terminate on receipt of SIGHUP. */ static void -mailx_sigint(bool interactive) +mailx_signal_test(int signo, bool interactive) { char obuf[1024] = ""; char ebuf[1024] = ""; @@ -80,8 +82,8 @@ mailx_sigint(bool interactive) ATF_REQUIRE_INTEQ(BODYLEN, write(ipd[1], BODY, BODYLEN)); /* give it a chance to process */ poll(NULL, 0, 2000); - /* send first SIGINT */ - ATF_CHECK_INTEQ(0, kill(pid, SIGINT)); + /* send first signal */ + ATF_CHECK_INTEQ(0, kill(pid, signo)); kc = 1; /* receive output until child terminates */ fds[0].fd = opd[0]; @@ -103,7 +105,7 @@ mailx_sigint(bool interactive) } time(&now); if (now - start > 1 && elen > 0 && kc == 1) { - ATF_CHECK_INTEQ(0, kill(pid, SIGINT)); + ATF_CHECK_INTEQ(0, kill(pid, signo)); kc++; } if (now - start > 15 && kc > 0) { @@ -117,41 +119,67 @@ mailx_sigint(bool interactive) close(opd[0]); close(epd[0]); close(spd[0]); - if (interactive) { + /* + * In interactive mode, SIGINT results in a prompt, and a second + * SIGINT results in exit(1). In all other cases, we should see + * the signal terminate the process. + */ + if (interactive && signo == SIGINT) { ATF_CHECK(WIFEXITED(status)); if (WIFEXITED(status)) ATF_CHECK_INTEQ(1, WEXITSTATUS(status)); ATF_CHECK_INTEQ(2, kc); ATF_CHECK_STREQ("", obuf); ATF_CHECK_MATCH("Interrupt -- one more to kill letter", ebuf); - atf_utils_compare_file("dead.letter", BODY); } else { ATF_CHECK(WIFSIGNALED(status)); if (WIFSIGNALED(status)) - ATF_CHECK_INTEQ(SIGINT, WTERMSIG(status)); + ATF_CHECK_INTEQ(signo, WTERMSIG(status)); ATF_CHECK_INTEQ(1, kc); ATF_CHECK_STREQ("", obuf); ATF_CHECK_STREQ("", ebuf); + } + /* + * In interactive mode, and only in interactive mode, mailx should + * save whatever was typed before termination in ~/dead.letter. + * This is why we set HOME to "." in the child. + */ + if (interactive) { + atf_utils_compare_file("dead.letter", BODY); + } else { ATF_CHECK_INTEQ(-1, access("dead.letter", F_OK)); } } +ATF_TC_WITHOUT_HEAD(mailx_sighup_interactive); +ATF_TC_BODY(mailx_sighup_interactive, tc) +{ + mailx_signal_test(SIGHUP, true); +} + +ATF_TC_WITHOUT_HEAD(mailx_sighup_noninteractive); +ATF_TC_BODY(mailx_sighup_noninteractive, tc) +{ + mailx_signal_test(SIGHUP, false); +} -ATF_TC_WITHOUT_HEAD(mail_sigint_interactive); -ATF_TC_BODY(mail_sigint_interactive, tc) +ATF_TC_WITHOUT_HEAD(mailx_sigint_interactive); +ATF_TC_BODY(mailx_sigint_interactive, tc) { - mailx_sigint(true); + mailx_signal_test(SIGINT, true); } -ATF_TC_WITHOUT_HEAD(mail_sigint_noninteractive); -ATF_TC_BODY(mail_sigint_noninteractive, tc) +ATF_TC_WITHOUT_HEAD(mailx_sigint_noninteractive); +ATF_TC_BODY(mailx_sigint_noninteractive, tc) { - mailx_sigint(false); + mailx_signal_test(SIGINT, false); } ATF_TP_ADD_TCS(tp) { - ATF_TP_ADD_TC(tp, mail_sigint_interactive); - ATF_TP_ADD_TC(tp, mail_sigint_noninteractive); + ATF_TP_ADD_TC(tp, mailx_sighup_interactive); + ATF_TP_ADD_TC(tp, mailx_sighup_noninteractive); + ATF_TP_ADD_TC(tp, mailx_sigint_interactive); + ATF_TP_ADD_TC(tp, mailx_sigint_noninteractive); return (atf_no_error()); } From nobody Wed May 21 19:45:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2hht0gvcz5wQyt; Wed, 21 May 2025 19:45:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2hhs2G0kz3dXt; Wed, 21 May 2025 19:45:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747856701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0Ufn11GUfaYvglda7o6wvV4m6MhN3CeBSZt4yQ82UxQ=; b=BIVhX9bMY+zlHRoWQg7JVNXbj1X91L3BFZl46PtXWM9kHoiovyLBb86LRWfHuYQ3Q1sdfR BSY6N3KOXJjtl6ZodnujpWPTefSP54g6TedR/iiHaNlAAgv9ETyGMdpC7lMG6mAV9O9tF9 kGBOCZbcxfJmbRh5Y8Yusqs21qGkpOJ8HuwDX7bMfSTYzBlvtywZnHmt/7+KsMLqlJTx5+ lPIPD/BOV/xQiJmMPXSwfPR3HDpbHCRnd6FCNIaMH6uxscTi4ALQfR01GLR+uI/wWSZU4F GChJ6lUrcnIHzt+RusdebzHjxC0CzgzDMwd1lJm/v+850KpMAFdWLCAVW98QAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747856701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0Ufn11GUfaYvglda7o6wvV4m6MhN3CeBSZt4yQ82UxQ=; b=BZu81KTBTHqi9SdixT2Ro5tYSXThgEd15SVnfByu2f3Tw3hpDnGogxw7tgC0KpRawZ3QpE bfiwnRk2nH3+znL/0uOONzDvtbL2LGhz7uA6RdYiHMmDvkxKwh0EhA2LLRVrjOdtIoAFGY ikAjEkEuouRc9M/muf5j4Q5FrNf8cxwp/z5x5RsP65QusxCjYOnehGl5ZhMNgmzzElapcf DQisSFDXzMIVtRlk3+Lx7XqiiDctlK8A0Hi+mTvab6+uKRf6Mx1iCA3q3R8dwzPq/0kXwY zSjVkoVbw4OB5qQM38ofYyVimS8xAHgIGzcaLiaPpmJ5BCVXHkaKCmIsZfIyaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747856701; a=rsa-sha256; cv=none; b=tezgBst2Gl+qfIGX3BBCx9iliezvHf+5xmi8PE4AtwOss8hRJ03GvPJ3UlyyH8Ug4zfX+k V96jEp1yrsixPA85Ma8kMGgOV48JoxfSXqpRPRQ1F0lOde2gGm02flhsmGavdDp9KxR4pk 07tmSsYpdRX6+2kd70Tv3MkAp4y9wZGBDxk7QuU6ytlptJIn1yx+odsKHqV79KEjt2kn9v gsJ7u3q1rwnDqh3LF44UVS/odJg2FFpziu/Zh5rrnmCGwd59a/FYX+5KNBMo84vO4/aC23 1RrgCykbqeeQjAM8v5vmT3bbEFKvKLerPGpAbB+21er2i4QnoYvO+9tnAeOjZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2hhs1s78znlX; Wed, 21 May 2025 19:45:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LJj1gh000611; Wed, 21 May 2025 19:45:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LJj1ZK000608; Wed, 21 May 2025 19:45:01 GMT (envelope-from git) Date: Wed, 21 May 2025 19:45:01 GMT Message-Id: <202505211945.54LJj1ZK000608@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 77521692f4c7 - stable/14 - snd_hda: Add shutdown method List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 77521692f4c71213c5419268657e696532c28325 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=77521692f4c71213c5419268657e696532c28325 commit 77521692f4c71213c5419268657e696532c28325 Author: Tijl Coosemans AuthorDate: 2025-05-18 13:38:02 +0000 Commit: Christos Margiolis CommitDate: 2025-05-21 19:43:52 +0000 snd_hda: Add shutdown method Power down the device on shutdown similar to what is done in the case of suspend. The device may fail to attach on next boot without this. PR: 286385 Reviewed by: christos, adrian Differential Revision: https://reviews.freebsd.org/D50306 (cherry picked from commit d9900b9ea2b27f7a0c2eda97841b9499e02e3ea7) --- sys/dev/sound/pci/hda/hdac.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index 9a7958449f91..be143ccd54c3 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -1638,6 +1638,35 @@ hdac_attach2(void *arg) sizeof(sc->dev), sysctl_hdac_polling, "I", "Enable polling mode"); } +/**************************************************************************** + * int hdac_shutdown(device_t) + * + * Power down HDA bus and codecs. + ****************************************************************************/ +static int +hdac_shutdown(device_t dev) +{ + struct hdac_softc *sc = device_get_softc(dev); + + HDA_BOOTHVERBOSE( + device_printf(dev, "Shutdown...\n"); + ); + callout_drain(&sc->poll_callout); + taskqueue_drain(taskqueue_thread, &sc->unsolq_task); + bus_generic_shutdown(dev); + + hdac_lock(sc); + HDA_BOOTHVERBOSE( + device_printf(dev, "Reset controller...\n"); + ); + hdac_reset(sc, false); + hdac_unlock(sc); + HDA_BOOTHVERBOSE( + device_printf(dev, "Shutdown done\n"); + ); + return (0); +} + /**************************************************************************** * int hdac_suspend(device_t) * @@ -2157,6 +2186,7 @@ static device_method_t hdac_methods[] = { DEVMETHOD(device_probe, hdac_probe), DEVMETHOD(device_attach, hdac_attach), DEVMETHOD(device_detach, hdac_detach), + DEVMETHOD(device_shutdown, hdac_shutdown), DEVMETHOD(device_suspend, hdac_suspend), DEVMETHOD(device_resume, hdac_resume), /* Bus interface */ From nobody Wed May 21 23:22:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2nX72xPpz5wgxb; Wed, 21 May 2025 23:22:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2nX72H3cz3Jf7; Wed, 21 May 2025 23:22:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747869767; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hmWpS6BRn/8mOiAmb//ixeis/88z/boIMJ3ULS/XrEs=; b=jEY2t2NB+6XTsXt2B18a2a9jT47SVtLlWw/k+Jws87DxK4bqF7LMgzEU5xm6MI8ugHzpjd dP8YChUlefSKYd6WRT6FrkZsKJnD7GolCjJvRahNr/ble+06ejqAvKCxwZUxTW9Qt8bgeo 4uvPHmZHst9IG8kaOxW3zGQs0xEaShLXn/4nPW4hdspwgAUq+AqzwTWMsh1cRArRYkvvf7 EPuSG4k+m3qBjPBR1SUbrFJMYE8ExWJrur4w7JxLuX1t8GJCWdKbRsW8qsebbIpmH3aC4U Lstmb35ou2G6pPQiOE5VniLsLcIsKoFWhtxPDwk3Mfl3xGNHrBKB/qnvx1Xoyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747869767; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hmWpS6BRn/8mOiAmb//ixeis/88z/boIMJ3ULS/XrEs=; b=id+KWxFxiQ9WHHP+PKJma9UDuFJaKAlNlNh/dK+KXY+K1cxbW57Upmq6Ps61rSuU7Xn3+3 Ef3Ou9eEsyo1DoldrF1wdzC6oGbm8lzQvh8++KzOSMsOYOipaTE8B4A+QRybjLyV5yolQY z5D9t7LCF8cT+C1ZsunHbGsblWPDddN9fBDxLWOvWcMpyILAm6yiST/e3ic5Pmn4Zw0Vlz ZikoL3cM9nVp1JITP6yf4Es6F6D7+j+h4VOV5haUhEVUrH7r69SL6KktOA3o1xKoV43lLM lU/7TekV8Tx2j9Xr9GBgbuQnkZmFrncBAh041DDS5phBaSyhU/wBwyckQCTEAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747869767; a=rsa-sha256; cv=none; b=CRJakEhyR179I+WEXyHQ+riBSllECI7PbOEOInvr8al+KM1EpX7VUrmhdXdhmc9x5WDChG YKZcp8OQDEkf6R7Er5sGf0aGhBnx63bviofatbzD15lndRM26YYeeWZeemCxhdSyYH7TmG j7rfmO3VTs87YjePhcO2Q97oD6mPuwmqp9gzXEqJ7j2o6Mbyxzz4L5GPG6yWaaOjZ7msPX 0Xx+rToEelxgnAGdc9sa5Ca3aO1oAPLD54cLi2N8zUJRFVsO0BeglJoqokzIQhqdEM3LU8 6kf8bTjSIgmRYB6C4I0kBQj/p+gQU4ytb3fg4a+KmiDORyS7ZJ+FTs/2L+WCQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2nX71Msrzvbx; Wed, 21 May 2025 23:22:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54LNMlnF013612; Wed, 21 May 2025 23:22:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54LNMlMH013609; Wed, 21 May 2025 23:22:47 GMT (envelope-from git) Date: Wed, 21 May 2025 23:22:47 GMT Message-Id: <202505212322.54LNMlMH013609@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: adf77cb48e4c - releng/14.3 - snd_hda: Add shutdown method List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: adf77cb48e4c265f366fb0f290b597fdd0dfdc68 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=adf77cb48e4c265f366fb0f290b597fdd0dfdc68 commit adf77cb48e4c265f366fb0f290b597fdd0dfdc68 Author: Tijl Coosemans AuthorDate: 2025-05-18 13:38:02 +0000 Commit: Christos Margiolis CommitDate: 2025-05-21 23:21:42 +0000 snd_hda: Add shutdown method Power down the device on shutdown similar to what is done in the case of suspend. The device may fail to attach on next boot without this. PR: 286385 Reviewed by: christos, adrian Differential Revision: https://reviews.freebsd.org/D50306 (cherry picked from commit d9900b9ea2b27f7a0c2eda97841b9499e02e3ea7) (cherry picked from commit 77521692f4c71213c5419268657e696532c28325) Approved by: re (cperciva) --- sys/dev/sound/pci/hda/hdac.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index 904e3b2001c7..25e320aae3dc 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -1638,6 +1638,35 @@ hdac_attach2(void *arg) sizeof(sc->dev), sysctl_hdac_polling, "I", "Enable polling mode"); } +/**************************************************************************** + * int hdac_shutdown(device_t) + * + * Power down HDA bus and codecs. + ****************************************************************************/ +static int +hdac_shutdown(device_t dev) +{ + struct hdac_softc *sc = device_get_softc(dev); + + HDA_BOOTHVERBOSE( + device_printf(dev, "Shutdown...\n"); + ); + callout_drain(&sc->poll_callout); + taskqueue_drain(taskqueue_thread, &sc->unsolq_task); + bus_generic_shutdown(dev); + + hdac_lock(sc); + HDA_BOOTHVERBOSE( + device_printf(dev, "Reset controller...\n"); + ); + hdac_reset(sc, false); + hdac_unlock(sc); + HDA_BOOTHVERBOSE( + device_printf(dev, "Shutdown done\n"); + ); + return (0); +} + /**************************************************************************** * int hdac_suspend(device_t) * @@ -2155,6 +2184,7 @@ static device_method_t hdac_methods[] = { DEVMETHOD(device_probe, hdac_probe), DEVMETHOD(device_attach, hdac_attach), DEVMETHOD(device_detach, hdac_detach), + DEVMETHOD(device_shutdown, hdac_shutdown), DEVMETHOD(device_suspend, hdac_suspend), DEVMETHOD(device_resume, hdac_resume), /* Bus interface */ From nobody Thu May 22 00:23:18 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2psz1zJNz5wmHm; Thu, 22 May 2025 00:23:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2psy6FQpz3qLV; Thu, 22 May 2025 00:23:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747873398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n1hgYVAx7FEiTEOI+n7z0L2qufu8id6z/yMxghTMquY=; b=rvV1s8NrTcc16m9wHVUxDj4nRhRbwbnShItSZ05JjMQCTp5W54nYv+J8mpkKk71fwPYYfn Czr3VxiNuO/WP6Tfx9dfNzdsdQa59gnbNIHScZISwMA5QCG4m+syrobxvRF4jCUVnmezBy gLu+czdE1pkibWTa/aBZD6qsS3rEPdvzK9wLBOMu42hjSwG/Wzxy3wGrPYGOf8dGIAhGqu RhN0DsQigD1d7281KhHySAOn8Ldn26IUncgaDklFJpGCHzT7oMC3yIpwFLFmrbWPxTHuwk GOwyMq35WmUjXRJlAIbdoWVSrgb+lCaJ1bwmHwref9cxQSAbilPRpk6sNIP2tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747873398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n1hgYVAx7FEiTEOI+n7z0L2qufu8id6z/yMxghTMquY=; b=ZuwT2WBJ897b03vTRCPY0102PxIFFTGv0VAu109j0gGl/8yB2kvQ10IJKKyM9PnKnceifw 8tfS9iAlulplzKEr3z/PxK+0abfPce2MMOOpt28dzAzSZ8XVgKkxHrsl71HJ2z5q5QM2W2 9fn6XoHh9y1SEhd9banaLt6rcJOXmtEovVCVKvAgge+AhvIUcSAGM2yAmL2dFQPm80hZdF ANqNW8U+UaIP6n5Mvbb7kF5sYFReg1prjhzoPwcVZI9Apg+ZkWjeESV6MixkMLif7rUae/ KSR3J/lB67Ksf1IJVkbz4fkpNX+RS9MQR0QbJAV1+2KCjKiLVhFQlK4zcs3mgA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747873398; a=rsa-sha256; cv=none; b=kBzgZulREsuWdTcCFtA9I5vXNoH8cUP7+LnsKu0jQCI0uD2D8vo1diM0GScGfvh6DlEwqz Uzd+K/2lJ2TiEKrlPS+p4J/vkSEKZcc0thkMCN5335TsAHkQ6NRv92fs7g5H5271gPv+G6 EMcH9vGpZUt5acLwB1qGBiJ7O86zkHHMWDo2PSvn1s6mRdyvUiK3LwDr7dYle6DZa5o6+H HSaq8Jeg+xjCSehFXv3Khzxd1qNaCCf0nc+b0cMBxotJJGL/vsBDgKd/5cmZV8mdwdlxWp BIeNw0uZnloBwP1jOQyOY7r/EeKSSHvV3sE64UItaESADKhETLaUXsXgVUlpEg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2psy5nxtzxWP; Thu, 22 May 2025 00:23:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M0NIMW025907; Thu, 22 May 2025 00:23:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M0NIh1025905; Thu, 22 May 2025 00:23:18 GMT (envelope-from git) Date: Thu, 22 May 2025 00:23:18 GMT Message-Id: <202505220023.54M0NIh1025905@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: f31ac06711e6 - stable/14 - mtkswitch.4: Initial manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f31ac06711e69aed7cb4b38d8eb2aba2d7149ed8 Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=f31ac06711e69aed7cb4b38d8eb2aba2d7149ed8 commit f31ac06711e69aed7cb4b38d8eb2aba2d7149ed8 Author: Alexander Ziaee AuthorDate: 2025-05-19 19:42:01 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 00:22:38 +0000 mtkswitch.4: Initial manual page Add a stub manual only saying what it is, how to include it, what is supported, and since when. This plugs the mtkswitch driver into the manual subsystem and the release hardware notes. MFC to: 14.3 MFC after: 3 days Reviewed by: adrian, carlavilla Approved by: carlavilla (mentor) Differential Revision: https://reviews.freebsd.org/D50412 (cherry picked from commit 37f00bc257d0e785fad1d0ffbd7dcbf09e863417) --- share/man/man4/Makefile | 1 + share/man/man4/mtkswitch.4 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 980fde8d3868..304a73f7b6f6 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -328,6 +328,7 @@ MAN= aac.4 \ mrsas.4 \ msk.4 \ mtio.4 \ + mtkswitch.4 \ multicast.4 \ muge.4 \ mvs.4 \ diff --git a/share/man/man4/mtkswitch.4 b/share/man/man4/mtkswitch.4 new file mode 100644 index 000000000000..c879df161791 --- /dev/null +++ b/share/man/man4/mtkswitch.4 @@ -0,0 +1,45 @@ +.\" +.\" Copyright (c) 2025 Alexander Ziaee +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 19, 2025 +.Dt MTKSWITCH 4 +.Sh NAME +.Nm mtkswitch +.Nd MediaTek/Ralink Ethernet switch driver +.Sh SYNOPSIS +.Cd device mdio +.Cd device etherswitch +.Cd device mtkswitch +.Sh DESCRIPTION +The +.Nm +driver supports MediaTek/Ralink Ethernet switch controllers. +.Sh HARDWARE +The +.Nm +driver supports the following Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +MediaTek MT7628 (5 port Fast Ethernet) +.It +MediaTek MT7621 (5 port Gigabit Ethernet) +.It +MediaTek MT7620 (5 port Fast Ethernet) +.It +Ralink RT5350 (5 port Fast Ethernet) +.It +Ralink RT3352 (5 port Fast Ethernet) +.It +Ralink RT3050 (5 port Fast Ethernet) +.El +.Sh SEE ALSO +.Xr etherswitch 4 , +.Xr etherswitchcfg 8 +.Sh HISTORY +The +.Nm +driver appeared in +.Fx 11.0 . From nobody Thu May 22 00:23:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2pt10831z5wml0; Thu, 22 May 2025 00:23:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2pt00VXJz3qLk; Thu, 22 May 2025 00:23:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747873400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fXN5yl1Ac05mFyDj++q1d6qAHJw931DzffD6YyKnyVI=; b=ZEdJG7dUZ9WVG4mv8kJQRVbAJLccLCpcbtXVjCFzjb6UT3mvzEv3OgeFKIsXbc11dGlyHX gW+Gc8FdaSOjRPInRNb4FcYXbE9ean6TnZIiTylNNnBPHPMdJfesy7XZ3Gv2E7waOctpEs rXHXUxit8OqSweqFoIrexDWYvEumXzlC4DEWk95x0HSHEWyp/rqB4jxXUBurEZc8P/8PFD A7z7qyLJhpk4nrav4w61kbQU0Naok+WXcHf7KurZlPRkGh62x2DtJdS97HmRCJt/+qdkSh q4uPvdjIx+Ngsqyu41iUT+OaGc4qk0nB2CzqEn2+lllKH/xPOwULviEOKq1Vkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747873400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fXN5yl1Ac05mFyDj++q1d6qAHJw931DzffD6YyKnyVI=; b=mqIGjfbM19ZARWqrdtxk+0W4OPHeE/LZc2CVlW+gdW2wQ1nzkALxkXeCaHanMaZOJhqmmf y+ecAYcKjbWvYEzH1YTR42Giqe/p+eVzDKiz11MlE3cWtoA+ey1hjbaTC4LS1/lmXIDR+b VgsLy2PZrDAbVSdOniQPVUQD6LVkU7GkFSQXpVCRYJh96yvCkiJRKHJSF5vBOTsfkO5/+J D65jaFWQC0qIuWrz2p1YZmJBlbKOJvagB4P2AJq8Ec6OMyAPZsH6e/+LDegc1rgvMOTiGW +KDWk1s5rqKCfs94uYhWXR8jq1bswC9D5QtgBbt6XE/gG15uteIWcmO4VsOEWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747873400; a=rsa-sha256; cv=none; b=kZf0iBk0Fp6IvajRpzFHuJSOAh9W5lSea2cZcocmhF6BW36zYX9UI4JixiO2/tH2tA+Aud dsitpsta/4Kc8ld5Vy81vwq4X/j97Uyd5dmvHobw0IabMOE//Tc6+DX/MCkDstNdetPzLg 3yHJ8mRdXutyKbOQ99cEmr8imkmALWbvlCNm+ZTyQ39KWpG4XemgauJqhURVIwhzwqibL2 PD2xGk2UwGNcss/Znx+DIqJQkFv9mhqkRPgPHZbcpywpH8M8mCNYZ0XE6pEheca+Ul6YkE ocQx7SpEr7jJsENW4KRq7IN2M6eakulO5J8r4CF5k+MJXYpMaIQiXW8ETM/zRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2psz6T2KzxhJ; Thu, 22 May 2025 00:23:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M0NJtf025940; Thu, 22 May 2025 00:23:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M0NJuF025937; Thu, 22 May 2025 00:23:19 GMT (envelope-from git) Date: Thu, 22 May 2025 00:23:19 GMT Message-Id: <202505220023.54M0NJuF025937@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: ded154a1df97 - stable/14 - ip17x.4: Initial manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ded154a1df97e3340f129394cbcaa1a50439d1bf Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=ded154a1df97e3340f129394cbcaa1a50439d1bf commit ded154a1df97e3340f129394cbcaa1a50439d1bf Author: Alexander Ziaee AuthorDate: 2025-05-19 19:40:02 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 00:23:03 +0000 ip17x.4: Initial manual page Add a stub manual only saying what it is, how to include it, what is supported, and since when. This plugs the ip17x driver into the manual subsystem and the release hardware notes. MFC to: 14.3 MFC after: 3 days Reviewed by: adrian, carlavilla Approved by: carlavilla (mentor) Differential Revision: https://reviews.freebsd.org/D50411 (cherry picked from commit f750a114d2c50c4d25d304dbf1dabfd3ae3aa013) --- share/man/man4/Makefile | 1 + share/man/man4/ip17x.4 | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 304a73f7b6f6..3521444e29f5 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -238,6 +238,7 @@ MAN= aac.4 \ ${_io.4} \ ${_ioat.4} \ ip.4 \ + ip17x.4 \ ip6.4 \ ipfirewall.4 \ ipheth.4 \ diff --git a/share/man/man4/ip17x.4 b/share/man/man4/ip17x.4 new file mode 100644 index 000000000000..ac5c989020a5 --- /dev/null +++ b/share/man/man4/ip17x.4 @@ -0,0 +1,42 @@ +.\" +.\" Copyright (c) 2025 Alexander Ziaee +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 18, 2025 +.Dt IP17X 4 +.Sh NAME +.Nm ip17x +.Nd IC Plus IP17x series Fast Ethernet switch driver +.Sh SYNOPSIS +.Cd device mdio +.Cd device etherswitch +.Cd device ip17x +.Sh DESCRIPTION +The +.Nm +driver supports the +IC Plus IP17X series Fast Ethernet switch controllers. +.Sh HARDWARE +The +.Nm +driver supports the following Fast Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +IC Plus IP178C +.It +IC Plus IP175D +.It +IC Plus IP175C +.It +IC Plus IP175A +.El +.Sh SEE ALSO +.Xr etherswitch 4 , +.Xr etherswitchcfg 8 +.Sh HISTORY +The +.Nm +driver appeared in +.Fx 10.0 . From nobody Thu May 22 03:02:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQ75vvTz5wxnt; Thu, 22 May 2025 03:02:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQ75HZDz40sq; Thu, 22 May 2025 03:02:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hMhn2pXAJRT47cUky081bLWSDRcGR6c6+OsGca0bpWo=; b=WdH40XRiZ6Lut88cxqgb88qHmDcrThzUAZo0gpkQKSZJEMgyE6u5rly650U49nzf7yBlRF an/4ZA0zwKTfoDYuxrhxaocPxYUWQd8P0HZ5arUGpB4frclkv/7HWGpXA/SvAFQbtg3FtZ 8pwNIhqtZ5Bkd4JAIBGor+xOegiEG+tIe10J+ip1utDFJ7tiy+b7E3LddBwGHvGhHgBUZn VqA88CeZbSx66e5OHdOwAiModZKrPmNtSUaVdbm7p2pGKpG8lo4JRKpHAKSzs3FLJKDixw 9qF3xb13UhzgF4yTxntlRC/T0cfC8v+6UJOTm9ijeF81AUXgv2tJmNJ8+nYNiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hMhn2pXAJRT47cUky081bLWSDRcGR6c6+OsGca0bpWo=; b=cl80QGsJjfVIExw096bzCq7uHJZ57f1z+21YTQ35YPh+tGfKwpndvBCnaSmmQkw4NjxADY /chfCvPxl1nMlpgdnW+iQFIW5YiqkT6LavdXOj4wMdbs2tkWw8vL/duWS3hzQ2UhZmAYpe 2aMWhF5Q3bePh9NFsKV/PF8meXB3tkevg1F3+Sj2C1GUcLIW2q/Kk3Ct4CbtZuAKvdXE3X aczATZuiyCEszmATU0e+HzLowQp2hm0eP+PgYsrJ2ni7mw9f6ekzoFUe7xwbTpTC1UfXOi 78ThSZVkWR5F1JfAp21teRxVE9/Ulut28eJFkaD/LP1sXJB1vc9z0vjbmCcl7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882975; a=rsa-sha256; cv=none; b=Rq2c3mMvjGki5holKGfxI4lc5l3zcMMzRlrRUwCsiLdKF9M4QJ0joBrGIdf/0XcDmCHleC Z/TEZg/SD5JL+6TcNEYv/EgEL8s2UXaMKFLPi5GCa7okHoiVA7qOBxSqzSdBlJZaLBTl1R sQsUE668620nWBPjddF83ToWihlVgmFqu5Ku0bK3V7f3LNl6y5/0sE9RSd79y1E9Iur1Jt 35yqiGQ3Gce/XWpb5ZnlofLv7vqQTaoiIs6OQYBjI8N5gEjSE01FYBdPVAXMfV5bQ2lSNK 0vZYpWIsT+KGuDE3BBMS/zQoboDh6Y/rAPUAhg4soMF5vTGWFN+cYsQviHHxVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQ74tNnz12Pp; Thu, 22 May 2025 03:02:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M32tMj026281; Thu, 22 May 2025 03:02:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M32tkl026278; Thu, 22 May 2025 03:02:55 GMT (envelope-from git) Date: Thu, 22 May 2025 03:02:55 GMT Message-Id: <202505220302.54M32tkl026278@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 66a6607089d8 - releng/14.3 - e6000sw.4: Initial manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 66a6607089d8fcbd32bd536d93d7d66dd11cd14f Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=66a6607089d8fcbd32bd536d93d7d66dd11cd14f commit 66a6607089d8fcbd32bd536d93d7d66dd11cd14f Author: Alexander Ziaee AuthorDate: 2025-05-12 00:52:19 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 02:56:59 +0000 e6000sw.4: Initial manual page For inclusion in the HW relnotes. MFC after: 3 days, note removed entries which didn't mfc Reviewed by: adrian, ivy, mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50293 (cherry picked from commit 6da793a8caa15ee2cbb984ea39ac87c6cd2fdf63) (cherry picked from commit d0e29f92f7a252b382d76c1e6bac33d8424af5fa) --- share/man/man4/Makefile | 1 + share/man/man4/e6000sw.4 | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 41fd7d36a74d..980fde8d3868 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -148,6 +148,7 @@ MAN= aac.4 \ etherswitch.4 \ eventtimers.4 \ exca.4 \ + e6000sw.4 \ e6060sw.4 \ fd.4 \ fdc.4 \ diff --git a/share/man/man4/e6000sw.4 b/share/man/man4/e6000sw.4 new file mode 100644 index 000000000000..4c10a99b249a --- /dev/null +++ b/share/man/man4/e6000sw.4 @@ -0,0 +1,39 @@ +.\" +.\" Copyright (c) 2025 Alexander Ziaee +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 10, 2025 +.Dt E6000SW 4 +.Sh NAME +.Nm e6000sw +.Nd Marvell 88E6000 series Gigabit Ethernet switch driver +.Sh SYNOPSIS +.Cd device mdio +.Cd etherswitch +.Cd e6000sw +.Sh DESCRIPTION +The +.Nm +driver supports Marvell Gigabit Ethernet switch controllers. +.Sh HARDWARE +The +.Nm +driver supports the following Gigabit Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +Marvell 88E6190 +.It +Marvell 88E6176 +.It +Marvell 88E6172 +.It +Marvell 88E6341 +.It +Marvell 88E6141 +.El +.Sh SEE ALSO +.Xr e6060sw 4 , +.Xr etherswitch 4 , +.Xr etherswitchcfg 8 From nobody Thu May 22 03:02:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQ914Xlz5wxdh; Thu, 22 May 2025 03:02:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQ902gsz40yL; Thu, 22 May 2025 03:02:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jBNjPeRM99lywF6ZWHywTZYA2sz8+Bk0o95aGHnKwBI=; b=Gs18y7YSXnCxuqLyUvA/1BnrWAStF3M7+C8pR6vSmzo09yR/20g/hY65wdLcCjrS+BSMC/ mK49xOzwOuOczU+fD8Y4B339j0MGFOWdfTJ+XWArxuIPbkJuBtUBizvbm49magd5Gqz8L3 010V/61dA9eY+tW/khgIP6zfj4UIubReQSJNcPoK7a3OPP5E8LY5OkQohiY0u/Bmulq17L Avo5L7O1HkwsmhHUK5AXD0CoNK0hQPwNPU5I+KDi8CDXJIdUHtu0LStG3sagkyt1iPsphJ xMJCB39qcLrBZYr/5xlq9FyLn4hmCBh7L5qBmW79JQPkkpEsXo+oWvNfNwZI2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jBNjPeRM99lywF6ZWHywTZYA2sz8+Bk0o95aGHnKwBI=; b=DGilfa+BlgaZDuueexvuS3E7WMVmjfQJk09Ub3AjBbpGsOldxk+C2Sk/Luq2SfImJaFSNw 535b3HOHVmJKAu5AVNbA9MBo0Eng0d2Ac10+pItgvFdLrIzRLFYnZ8od4vbcieLxr0Sl7F Xz/zwM/gOtgBUPv/xSeu8z7+BNjJvuK6vVr1fehoQVPl6+AJ/b8af689FxF/nwMCUPpdN4 rYnQZViXJa8cHASRtQMMsOyIkZU7Eua5sBgw7kaYnrgQwtojw+QgnT2R8UGcYfh+RSlEF7 VcdqIoMlOUGjWgQuRS2g7Xkgs2ZLVpVKJfcsj/wxfsKwXlQ0QZk2mwV/PAydGA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882977; a=rsa-sha256; cv=none; b=eYa+H3llbIuJBYOxs/It6G7n8dC+tJiguh+/zbehkPMgRYwCWyq/ekkAIHdtfgTMT5Q9Ew a5ic+vq5Aui2EB/CT3tXr64eyz12/1BYncSz1us3DBde5upvek05kiXTsXZjPOy16wmnfH 9z6IqUc+i7C9vU5on3AVLOduRjO5FSRBX9q8p3zYg8asN/7Xc9haFcJk8UziPQTvIXkTO3 22r1I2YxfbOFG4QUzXnuDrvzLO8pt4QsPxVFeHn31VzxKjNZ1rh7+4VvCoCr4gkqOcqtme clHj2U2E8Ji6ZWx0+JG53gP2qveyeUBeT+kH0wgKbGGScrmLU92W7j5vyxJnwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQ85PHSz12S9; Thu, 22 May 2025 03:02:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M32uVK026322; Thu, 22 May 2025 03:02:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M32uZs026319; Thu, 22 May 2025 03:02:56 GMT (envelope-from git) Date: Thu, 22 May 2025 03:02:56 GMT Message-Id: <202505220302.54M32uZs026319@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 5d9e62e1cd4a - releng/14.3 - cdboot.8: Initial manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 5d9e62e1cd4a4ca8f7b5c0416707d53fcd6d2955 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=5d9e62e1cd4a4ca8f7b5c0416707d53fcd6d2955 commit 5d9e62e1cd4a4ca8f7b5c0416707d53fcd6d2955 Author: Alexander Ziaee AuthorDate: 2025-05-09 17:38:25 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 02:58:21 +0000 cdboot.8: Initial manual page Add cdboot to the reference manual, fixing an undocumented bug where it is undocumented. There's almost nothing here, but that's better than "only imp and jhb know what this is". MFC after: 3 days Reported by: jhb, imp Reviewed by: mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50274 (cherry picked from commit ecdb0b79bf93a2b8392694bd266c5930ca42bab5) (cherry picked from commit d659366cc62a70b4863bddf226f6209d13ab65c0) --- stand/i386/cdboot/Makefile | 1 + stand/i386/cdboot/cdboot.8 | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/stand/i386/cdboot/Makefile b/stand/i386/cdboot/Makefile index 7923e258fb66..ef6ae3bcb32a 100644 --- a/stand/i386/cdboot/Makefile +++ b/stand/i386/cdboot/Makefile @@ -4,6 +4,7 @@ PROG= cdboot STRIP= BINMODE=${NOBINMODE} +MAN= cdboot.8 SRCS= ${PROG}.S CFLAGS+=-I${BOOTSRC}/i386/common diff --git a/stand/i386/cdboot/cdboot.8 b/stand/i386/cdboot/cdboot.8 new file mode 100644 index 000000000000..6163bd7b4a7a --- /dev/null +++ b/stand/i386/cdboot/cdboot.8 @@ -0,0 +1,21 @@ +.\" +.\" Copyright (c) 2025 Alexander Ziaee +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 9 2025 +.Dt CDBOOT 8 i386 +.Os +.Sh NAME +.Nm cdboot +.Nd find a bootloader on ISO-9660 +.Sh DESCRIPTION +.Nm +is a small boot block which finds +.Xr loader 8 +on a +.Xr cd9660 4 +file system. +.Sh SEE ALSO +.Xr cd9660 4 , +.Xr loader 8 From nobody Thu May 22 03:02:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQB68Wwz5wxxL; Thu, 22 May 2025 03:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQB0jSZz4194; Thu, 22 May 2025 03:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JL3pzLUIitLcHqA+j9W7KF5vJp/q2zFaC9MO7j1yCmg=; b=ez1JNe33fsnNXUY0VYuPSZqYYigLpb4PS0PqHvGjJaLBOFmi+LN7a6sZqN7sWqCBKjvR8O CWIuhapktu4hcwFOpr1QCOdJqxpYxVnoC8l7WFoBC8tODdsWsu1Qg1V2uaG5PRDmZhvHFc cOV/9T1yFnSSuel/kZrJ8ja0pKVLBbXUW1OBaz8sMr9zoHnUyVLgh495mx11Sy/LaHPTZf c/8IYMHwmBu452EyF3TP7k91SsA0KyYYVUcyjpRymP8OjZ468GroxU5AvqYeww0G8ArU71 bkvcHuoNkWvYcWp7hIZmBEbHQf8Tu/E04jWv4W9akywZEWoLFpUTyJIQ6FcjNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JL3pzLUIitLcHqA+j9W7KF5vJp/q2zFaC9MO7j1yCmg=; b=NRAN/jYbS/atQAOsJQv7bOmfSlonodsEpDr56JWuqdqvZndUsek7oSG7Q5TUgKz8HR/pKe H8FcJnlUjlK0pATTsd5JXQKTCXmPclutZ6ZZlHOfZKOOL7COXxTgdij6LYkQYPBv5nOAap QxsBb1cscAb9BCNqPLzDE0KmiKQKCENBQMXFpDTZuEnZr9Uzkz2UJpFxiZpEXqKxo4+HO0 DzjiJuYPshVQyTpfA4MWUy94cR7TlRr57PS+TAv1aCbdclkWO3jOjyiHV20bIm5IocDnNk NXIPX12LII3QJ8RG2jFq3+zrw0pQiMBDRpmmYQY9wL9v5kxdowqtgNN/EYDZ4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882978; a=rsa-sha256; cv=none; b=Pd0utwzFH7qwvvixnLagxR/drm1xdqlBwq1rJgnYsAups2Qp5em4CeKQOT3FX/Z0wmygj4 tkft73wOsJRR/nAOTNvoHjHCTh9xd4Y0BtvE7dzzQFArKKIEfUsKv7lxaa4wlRIfVA+eoF Pqb11l8kCeV8lSwiLtA81GCegbn3EWH1ITCl1yWNgruxWywyY5eRCafv0mxsLJJ2zy4nV7 Fc9IPmjL99k7G2yIJIR/zz92uBoioRNr+6XBzfa0vUW3xDgt9DYdPasaCF8QTUT2ITC+wn JzaSCudtsZE7FrSKZWmVUrLG66aB8c/ld7+wjqlvasLLwMjIpbCVo5IuXDIRvg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQ95xZqz12yJ; Thu, 22 May 2025 03:02:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M32v1x026357; Thu, 22 May 2025 03:02:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M32vOS026354; Thu, 22 May 2025 03:02:57 GMT (envelope-from git) Date: Thu, 22 May 2025 03:02:57 GMT Message-Id: <202505220302.54M32vOS026354@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: f50ca9a01b21 - releng/14.3 - stand/lua manuals: Describe better List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: f50ca9a01b210f018fb562ceb72fe5442fb57d7f Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=f50ca9a01b210f018fb562ceb72fe5442fb57d7f commit f50ca9a01b210f018fb562ceb72fe5442fb57d7f Author: Alexander Ziaee AuthorDate: 2025-03-29 05:14:19 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 02:58:35 +0000 stand/lua manuals: Describe better The lua boot loader module manuals were getting pulled into search results for FreeBSD, but not for "boot" or "loader". Reword them to increase clarity for boot or loader searches, as well as the FreeBSD search term which we've been scoping to system topic overview manuals. MFC after: 3 days Reviewed by: imp, mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Pull Request: https://github.com/freebsd/freebsd-src/pulls/1628 (cherry picked from commit 5d59c1b4f14e2fa6388b1d75ee3243085f1c69f2) (cherry picked from commit 651102873e96174e4e799d4e06538e1d841e182a) --- stand/lua/cli.lua.8 | 4 ++-- stand/lua/color.lua.8 | 4 ++-- stand/lua/config.lua.8 | 4 ++-- stand/lua/core.lua.8 | 4 ++-- stand/lua/drawer.lua.8 | 4 ++-- stand/lua/gfx.lua.8 | 4 ++-- stand/lua/hook.lua.8 | 4 ++-- stand/lua/loader.conf.lua.5 | 2 +- stand/lua/loader.lua.8 | 4 ++-- stand/lua/menu.lua.8 | 4 ++-- stand/lua/password.lua.8 | 4 ++-- stand/lua/screen.lua.8 | 4 ++-- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/stand/lua/cli.lua.8 b/stand/lua/cli.lua.8 index 4077ca6b0b56..aee1d3d53579 100644 --- a/stand/lua/cli.lua.8 +++ b/stand/lua/cli.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 24, 2021 +.Dd March 29, 2025 .Dt CLI.LUA 8 .Os .Sh NAME .Nm cli.lua -.Nd FreeBSD Lua CLI module +.Nd bootloader command line interpreter module .Sh DESCRIPTION .Nm contains the main functionality required to add new CLI commands, which can be diff --git a/stand/lua/color.lua.8 b/stand/lua/color.lua.8 index 8a31d2034a48..9a3b9b1b9385 100644 --- a/stand/lua/color.lua.8 +++ b/stand/lua/color.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 19, 2018 +.Dd March 29, 2025 .Dt COLOR.LUA 8 .Os .Sh NAME .Nm color.lua -.Nd FreeBSD color module +.Nd bootloader color module .Sh DESCRIPTION .Nm contains functionality for working with colors. diff --git a/stand/lua/config.lua.8 b/stand/lua/config.lua.8 index b2b1122285eb..7e8863203446 100644 --- a/stand/lua/config.lua.8 +++ b/stand/lua/config.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 17, 2020 +.Dd March 29, 2025 .Dt CONFIG.LUA 8 .Os .Sh NAME .Nm config.lua -.Nd FreeBSD config module +.Nd bootloader configuration module .Sh DESCRIPTION .Nm contains configuration and module loading functionality. diff --git a/stand/lua/core.lua.8 b/stand/lua/core.lua.8 index 208dbf5e12c9..de43d3e2b220 100644 --- a/stand/lua/core.lua.8 +++ b/stand/lua/core.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 28, 2023 +.Dd March 29, 2025 .Dt CORE.LUA 8 .Os .Sh NAME .Nm core.lua -.Nd FreeBSD core module +.Nd bootloader core module .Sh DESCRIPTION .Nm contains core functionality that does not have a more fitting module. diff --git a/stand/lua/drawer.lua.8 b/stand/lua/drawer.lua.8 index a3a4865d3efe..91738f4b2434 100644 --- a/stand/lua/drawer.lua.8 +++ b/stand/lua/drawer.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 19, 2018 +.Dd March 29, 2025 .Dt DRAWER.LUA 8 .Os .Sh NAME .Nm drawer.lua -.Nd FreeBSD menu/screen drawer module +.Nd bootloader menu/screen drawer module .Sh DESCRIPTION .Nm contains functionality for drawing and manipulating the menu, logo, and brand diff --git a/stand/lua/gfx.lua.8 b/stand/lua/gfx.lua.8 index 82d3f90f4af7..75f258026804 100644 --- a/stand/lua/gfx.lua.8 +++ b/stand/lua/gfx.lua.8 @@ -3,12 +3,12 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd February 6, 2024 +.Dd March 29, 2025 .Dt GFX.LUA 8 .Os .Sh NAME .Nm gfx.lua -.Nd Fx Lua gfx module +.Nd bootloader graphics module .Sh DESCRIPTION The built-in graphics related Lua bindings for the .Fx diff --git a/stand/lua/hook.lua.8 b/stand/lua/hook.lua.8 index f0e20153a924..91d5f76b6e1c 100644 --- a/stand/lua/hook.lua.8 +++ b/stand/lua/hook.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 28, 2020 +.Dd March 29, 2025 .Dt HOOK.LUA 8 .Os .Sh NAME .Nm hook.lua -.Nd FreeBSD hook module +.Nd bootloader hook module .Sh DESCRIPTION .Nm contains functionality for defining hook types and attaching hooks. diff --git a/stand/lua/loader.conf.lua.5 b/stand/lua/loader.conf.lua.5 index 7fad7d2f78dd..509944ab6598 100644 --- a/stand/lua/loader.conf.lua.5 +++ b/stand/lua/loader.conf.lua.5 @@ -29,7 +29,7 @@ .Os .Sh NAME .Nm loader.conf.lua -.Nd Lua-based system bootstrap configuration file +.Nd system bootstrap Lua configuration information .Sh DESCRIPTION When the lua-based .Xr loader 8 diff --git a/stand/lua/loader.lua.8 b/stand/lua/loader.lua.8 index e5aee7e8602d..ffee46526c9f 100644 --- a/stand/lua/loader.lua.8 +++ b/stand/lua/loader.lua.8 @@ -3,12 +3,12 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd February 6, 2024 +.Dd March 29, 2025 .Dt LOADER.LUA 8 .Os .Sh NAME .Nm loader.lua -.Nd Fx Lua loader module +.Nd bootloader Lua binding module .Sh DESCRIPTION The built-in Lua bindings for the .Fx diff --git a/stand/lua/menu.lua.8 b/stand/lua/menu.lua.8 index e2a0ff09ffd9..e2e32efdf3b4 100644 --- a/stand/lua/menu.lua.8 +++ b/stand/lua/menu.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 31, 2021 +.Dd March 29, 2025 .Dt MENU.LUA 8 .Os .Sh NAME .Nm menu.lua -.Nd FreeBSD dynamic menu boot module +.Nd bootloader dynamic menu module .Sh DESCRIPTION .Nm contains the main functionality required to build a dynamic menu system. diff --git a/stand/lua/password.lua.8 b/stand/lua/password.lua.8 index 1fbe395ab0db..34623c001206 100644 --- a/stand/lua/password.lua.8 +++ b/stand/lua/password.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 19, 2018 +.Dd March 29, 2025 .Dt PASSWORD.LUA 8 .Os .Sh NAME .Nm password.lua -.Nd FreeBSD password module +.Nd bootloader password module .Sh DESCRIPTION .Nm contains functionality for prompting for and checking passwords. diff --git a/stand/lua/screen.lua.8 b/stand/lua/screen.lua.8 index 691af5bf0758..a41ce6faf08b 100644 --- a/stand/lua/screen.lua.8 +++ b/stand/lua/screen.lua.8 @@ -24,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 19, 2018 +.Dd March 29, 2025 .Dt SCREEN.LUA 8 .Os .Sh NAME .Nm screen.lua -.Nd FreeBSD screen manipulation module +.Nd bootloader screen manipulation module .Sh DESCRIPTION .Nm contains functionality for manipulating the screen. From nobody Thu May 22 03:02:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQC2DxCz5wxhH; Thu, 22 May 2025 03:02:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQC0Fxyz414m; Thu, 22 May 2025 03:02:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882979; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y4Nw3XTIeUUhYT2SHfe+t2Nl3eYQeJ5ojAXY8MICYiw=; b=cyMFyRG35JzY4MXl+WyjAuBvmeP6nzqtENqGJHZegaIGqNj0As7iYslD3O7XVvF3FLiX08 WnNvkP535mbeivStwVUzKj+kvOncoXdXINQjOxZ6SKjIu0lJz4Yd885FlLJE4371eV4SuJ CBjwJDXNzSdfLECunUooAAXCRUz7BIqk5ae+9MMQ7GfWCBWzaZyU4DL8V+7JPc2XvzGrC9 PfArDY5EIrZhhWpxAKvl1qp+uVyJOM+L6gn7gUQ4kO0OfU83aI65rugduNpd85M5FrkgfG Lzi2go7M3nI1UWiW9RSnUgc5vvy4s/ULSkZooOQfKHxDipxICgzuJiw5j40jAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882979; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y4Nw3XTIeUUhYT2SHfe+t2Nl3eYQeJ5ojAXY8MICYiw=; b=MbxwTav6X3ZENLmX4lvUm97Wpiso9Asqq+kA/WS5n3gQp+SubXsMdGgeNfgFPGwRmFQwB7 YZQ9MgmU5mhjjAn9FewL9m/Zw/Jq1LF1KdYZc/d2Cud/j1KadTR2PkHBVpH1kPYoG68wu2 c9ZaMuD41uYOv+ECQyxi0Jm37kliSHRbP7oLnupsNOO7FNjKEHHRxRYewABVVBvYugGnA7 0SS0Tc+QOzzGPlj7uUjQvWRas/57aBtqb2bfSBw8m/M03sGzLyeoOZuWzc2cXa6z6ygb7x cgCYWjYKRPj8aWVpnZfNawr0rS/MNELE6wppTN2Hj4Ku/lHjPM6FiIgzsTzsMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882979; a=rsa-sha256; cv=none; b=uh/FkLcBc+uo3S2PKANws2fri7AEKZzCTrPqJlW4aNJl6l/At8m5qFuFjZ6e26pHAtauXO qfAQRGaUdlcDn73naOx4gRDx96xBSL/3jqC78mfETkYEsos750pwFGpzI/La21mAfjE3sb hty4q/Y8/DfTHfhkxjl+5KL0H3kxOHZckRnX3kP+XzoZi6kr+4Ljd1cTkuEm3/hApCqWUm T/Y4fm85mLPxOi2HeIXWq/8RzQE9y6bGtK+XOeBTF4277ZbkZ+LxRxSybXuaeTmZ8WPO55 FvlSXJHHWiHKipM1McdpdzYeAo5pWpOuk18xD+mqemy8xtj3Sjxk+YHq1V623g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQB6xvWz12sq; Thu, 22 May 2025 03:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M32wB8026394; Thu, 22 May 2025 03:02:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M32wda026391; Thu, 22 May 2025 03:02:58 GMT (envelope-from git) Date: Thu, 22 May 2025 03:02:58 GMT Message-Id: <202505220302.54M32wda026391@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 5dbcb9bfd02c - releng/14.3 - arswitch.4: Improve title and add HARDWARE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 5dbcb9bfd02ceaedc942ed892488c0c770c213eb Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=5dbcb9bfd02ceaedc942ed892488c0c770c213eb commit 5dbcb9bfd02ceaedc942ed892488c0c770c213eb Author: Alexander Ziaee AuthorDate: 2025-05-12 01:37:17 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 02:58:47 +0000 arswitch.4: Improve title and add HARDWARE For visibility in apropos and inclusion in the hardware release notes. MFC after: 3 days Reviewed by: adrian (previous), mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50322 (cherry picked from commit 9692d5e15e9bd7e628b06d655522477ce8c5b6fe) (cherry picked from commit 1343a5b616ec4e11047c5024bb844e7275f84ddd) --- share/man/man4/arswitch.4 | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/share/man/man4/arswitch.4 b/share/man/man4/arswitch.4 index 3ec7316ae6e7..5bcd6c6810ee 100644 --- a/share/man/man4/arswitch.4 +++ b/share/man/man4/arswitch.4 @@ -22,12 +22,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 8, 2023 +.Dd May 11, 2025 .Dt ARSWITCH 4 .Os .Sh NAME .Nm arswitch -.Nd driver for Atheros Fast Ethernet switch +.Nd Atheros AR8000 series Ethernet switch driver .Sh SYNOPSIS .Cd "device mdio" .Cd "device etherswitch" @@ -35,18 +35,8 @@ .Sh DESCRIPTION The .Nm -device driver provides a management interface to multiple Atheros -fast ethernet switch chips: -.Bl -tag -compact -width "AR8216" -.It AR8216 -Fast Ethernet Switch -.It AR8226 -.It AR8316 -Six-port Gigabit Ethernet Switch -.It AR8327 -Seven-port Gigabit Ethernet Switch -.El -.Pp +driver provides a management interface to Atheros AR8000 series Ethernet +switch controllers. The driver uses an .Xr mdio 4 or @@ -70,6 +60,23 @@ and are mutually exclusive. .Pp Setting the switch MAC address is not supported. +.Sh HARDWARE +The +.Nm +driver supports the following Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +Atheros AR8327 Seven-port Gigabit Ethernet Switch +.It +Atheros AR8316 Six-port Gigabit Ethernet Switch +.It +Atheros AR8236 Six-port Fast Ethernet Switch +.It +Atheros AR8226 Six-port Fast Ethernet Switch +.It +Atheros AR8216 Six-port Fast Ethernet Switch +.El .Sh SEE ALSO .Xr etherswitch 4 , .Xr etherswitchcfg 8 From nobody Thu May 22 03:02:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQD4Q1gz5wxxQ; Thu, 22 May 2025 03:03:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQD14VGz40rC; Thu, 22 May 2025 03:03:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882980; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RRT/vLhlgMfdFybL90x0wXBzIordeACh75wDXg5yWcI=; b=r3+NVOYEzGupNwroZwowuMhY++nhkX3PWAAV/M3anj+Wcl5bPMSb2WnltDLNdapb2jnC8V g7D8ioda09mwA+dDkVNePfZAVgRNOeIYBfu1roxN9NpY3KMFrJERZi6eamNrbNcFrTyH35 Kus5tV/SRaFO+0tL6KvaR2Jc0C1rhN0r1iqVEMwDMf3dwMa4CZ93tSlw62OwclTFbF0zvj C0p/0xmGUAwtdRXQzoCGqL9xhTgjH1NnAq6VJWoESEJXBAGxSAbUBLn2USEUmg/q3XcOyV GTj2sK+/5Wobr0ttYqsjKFs+0LG8ak5i5+4zRCWsZfZza8/fRkKKx+5yb6/t1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882980; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RRT/vLhlgMfdFybL90x0wXBzIordeACh75wDXg5yWcI=; b=snqknE5fwULMvUTZvxhPswAzEnkJzzbF1UOyYjmydw/4KMQMY1eQ/eVHIkYnWAv8awYI5Y hSR5bUc1b2bqwkUGVcEPLucEQ/Nhk9/OwEOrRmYF5pM7fy85duq+i73opQ7yNZxiT4DMXz gX83l3c14rTydB1trzfFopZUoJy7WFcve6vqmTqmzaWutK+c0L52tc75Yvs1SVcP/r/RUW Lk5zWcuiLK7lDFYLG221Xn9X8r8hCcp6q2NIra6HE5PWvZ91JCsxJbkgmf68SAPylpCuOO LGTiFVQvvVQCZRz4wORnmZ1jENGjAyKM6u+9rCMjFvIfGaFX2COanZ2Rt6PKGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882980; a=rsa-sha256; cv=none; b=VSxUITUQBFhvMIfv2YNMgpPMPmq1/qc+gjyUiXwjwd1tG4IYXVgpnKbOV9Hiz/1ZjgYgCG 4dk80jG9Q+TOjRCCf6AjNr3trxhWt9eQLCPzU//LTPELGk/1mf0x4YzhVB3LBTPqcs9o4l x1vYQNfZpFbSvh1raoeVnXeB2eiy1X9LDMYW8FSrpYMxFpFWM/hpfvKJZwSakVcNq7kqzN ffPqomof+b/rfFI94l+HEK1zBekqdN8hMEM3RMgolnL0oFC+yyIFxqfMZ1Zd5NhUI89jF8 RHhdpIzz395YYuZ+r4tNAN70Iiv3y2b/nI1CgQ6wMIxESYmJ+XQJQMdAaCaJHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQD0Jrcz12Pq; Thu, 22 May 2025 03:03:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M32xDb026429; Thu, 22 May 2025 03:02:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M32x08026426; Thu, 22 May 2025 03:02:59 GMT (envelope-from git) Date: Thu, 22 May 2025 03:02:59 GMT Message-Id: <202505220302.54M32x08026426@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: fddd2c4d3789 - releng/14.3 - ar40xx.4: Initial manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: fddd2c4d37893dde3391d5c6d837e211483acad5 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=fddd2c4d37893dde3391d5c6d837e211483acad5 commit fddd2c4d37893dde3391d5c6d837e211483acad5 Author: Alexander Ziaee AuthorDate: 2025-05-12 02:22:59 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 03:00:12 +0000 ar40xx.4: Initial manual page For inclusion in apropos and the hardware release notes. While here, add xrefs to this page and the previous e6000sw in etherswitch.4. MFC after: 3 days (but adjusted for 14.3) Reported by: adrian Reviewed by: adrian, mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50324 (cherry picked from commit 91c9751c3913497db2fbad1fcf7491557bbd2a75) (cherry picked from commit 17e9eb1e0eb721e2400232c71f20bc490c416c60) --- share/man/man4/etherswitch.4 | 8 ++++---- share/man/man4/man4.arm/Makefile | 1 + share/man/man4/man4.arm/ar40xx.4 | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/share/man/man4/etherswitch.4 b/share/man/man4/etherswitch.4 index aeb5e484e7cf..928d5a09e49a 100644 --- a/share/man/man4/etherswitch.4 +++ b/share/man/man4/etherswitch.4 @@ -48,12 +48,12 @@ driver provides a framework for Ethernet switch devices. device nodes .El .Sh SEE ALSO +.Xr adm6996fc 4 , +.Xr ar40xx 4 , .Xr arswitch 4 , -.Xr iicbus 4 , -.Xr ip17x 4 , -.Xr rtl8366rb 4 , +.Xr e6000sw 4 , .Xr e6060sw 4 , -.Xr adm6996fc 4 , +.Xr iicbus 4 , .Xr ksz8995ma 4 , .Xr ukswitch 4 , .Xr etherswitchcfg 8 diff --git a/share/man/man4/man4.arm/Makefile b/share/man/man4/man4.arm/Makefile index e2a41559410b..36540f690c5e 100644 --- a/share/man/man4/man4.arm/Makefile +++ b/share/man/man4/man4.arm/Makefile @@ -1,5 +1,6 @@ MAN= \ + ar40xx.4 \ aw_gpio.4 \ aw_mmc.4 \ aw_rtc.4 \ diff --git a/share/man/man4/man4.arm/ar40xx.4 b/share/man/man4/man4.arm/ar40xx.4 new file mode 100644 index 000000000000..e314d30dd4c6 --- /dev/null +++ b/share/man/man4/man4.arm/ar40xx.4 @@ -0,0 +1,35 @@ +.\" +.\" Copyright (c) 2025 Alexander Ziaee +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 10, 2025 +.Dt AR40XX 4 arm +.Sh NAME +.Nm ar40xx_switch +.Nd Qualcomm IPQ4018/IPQ4019 Gigabit Ethernet switch driver +.Sh SYNOPSIS +.Cd device mdio +.Cd etherswitch +.Cd ar40xx_switch +.Sh DESCRIPTION +The +.Nm +driver supports the Gigabit Ethernet switch inside the +Qualcomm IPQ4018/IPQ4019 SoC. +.Sh HARDWARE +The +.Nm +driver supports the following Gigabit Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +Qualcomm IPQ 4019 Five-port Gigabit Ethernet Switch +.It +Qualcomm IPQ 4018 Five-port Gigabit Ethernet Switch +.El +.Sh SEE ALSO +.Xr etherswitch 4 , +.Xr etherswitchcfg 8 +.Sh CAVEATS +This driver currently only supports L2 port/VLAN mapping modes. From nobody Thu May 22 03:03:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQF56wCz5wxhL; Thu, 22 May 2025 03:03:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQF23m7z410C; Thu, 22 May 2025 03:03:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882981; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=21HVpYGnBXiutZOQ3esORRz8M1YlOP5trFoigfegNjo=; b=qojPq5D5Yazsc+MGIxuoztQ9Fb1Y74VEvRpYynmZ10x74j2AawpJVJ+D0nY3EYWmeuyytz JlIoWS/W1lhhqpsTzNJmZnJMIw6Fb3B9/0Pdy/xAA87EN7l4WPVXia5TFn31Yxi2KDATQu Uruw6CLciGzg5glGOc+64BB9UdeGixXC4A6OqnH9jOhkAXsu87wtXwQ/821bGf1lhZtLfe IBfoCeDtIfFttyp94V/pOQHVE5oJmIQ9Z9XnYMIQAAZUfz+btnYnRQKyOWQDF6fAXdKly0 0hZlKyufBebOnQ54Ilv0oFPwV5kswUm112s/7UNWrW91vR/Y1gQ8DDXoxntSHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882981; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=21HVpYGnBXiutZOQ3esORRz8M1YlOP5trFoigfegNjo=; b=sPARTGGePA34lRq7NFarwU/EZ37C23ckpNBOTJvG4hr+ChEJWoKZgNjsJSDPwxtNbQyYAe 6v/KjNHTKtlZtVLZ6LaFFHhG3YpoWOnMx+55kgYD1feVEbqmoYYwQ7JkYFsXk5bOUDuZcW cPnPB3/fuMd44yJ1wYnOjhbf7GKQm4UpyQlQS7MyNZzdqrXly8+JzqYwNlPdA2w+pbEznY 3/XyAJZrDneXlc1HxHMrp0M3p7Uz9b2KHY7Cn1n0x16I7M2puYUIX9+ec/jaYdlXGKb0x1 LXGMMcmWElLlk9Id2FhvjM1/J+YvFniAPqsslFm6pxjU4rjZVDM57YNYVfpGaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882981; a=rsa-sha256; cv=none; b=NAIcJo0h9KpOQ/M9+OH1/LBT8iDrzs1Hbx/dRB1fbwvVlMx0sjf39zvwGhnMrKnuo8/kUC Pel7fdwepgePg/nUtp+tSOiXBHcghKLLGLUIoN2yeLg+gdLsQtJWOfa3SrKvq2caGRU7mT 1YDkPHZCObML1XaTd7qMN8o4AOcHW5ilKAGFCcCxMGE4H/BUDVPbVa3iuGwYRT4SEQHXf+ ylEoADKti9MMaj75GyFWV4vPAkujH2XHANRokF4LNsI5qA+/JoKiwCnmtsIDakrgb+4ZdQ sPcEXm5A6ob2ys96nyMmwXLI8APoTiizJ+rMsgEKEbjnJ5jtYG5cKzTm2chUwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQF1LBMz12VJ; Thu, 22 May 2025 03:03:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M331Lm026469; Thu, 22 May 2025 03:03:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M33139026466; Thu, 22 May 2025 03:03:01 GMT (envelope-from git) Date: Thu, 22 May 2025 03:03:01 GMT Message-Id: <202505220303.54M33139026466@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: ee743b40aceb - releng/14.3 - e6060sw.4: Improve title and add HARDWARE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: ee743b40acebfbafd37f2a399af5049831a6f9b9 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=ee743b40acebfbafd37f2a399af5049831a6f9b9 commit ee743b40acebfbafd37f2a399af5049831a6f9b9 Author: Alexander Ziaee AuthorDate: 2025-05-12 01:08:10 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 03:00:26 +0000 e6060sw.4: Improve title and add HARDWARE For visibility in apropos and inclusion in the hardware release notes. MFC after: 3 days Reviewed by: adrian, mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50321 (cherry picked from commit bef89c155e77dd471af596a43f3914b754cc5155) (cherry picked from commit 5e0e046d95a92aab8bea856fe0008870ee11bfc9) --- share/man/man4/e6060sw.4 | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/share/man/man4/e6060sw.4 b/share/man/man4/e6060sw.4 index 407138abe378..74736f65fe80 100644 --- a/share/man/man4/e6060sw.4 +++ b/share/man/man4/e6060sw.4 @@ -23,12 +23,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 5, 2017 +.Dd May 10, 2025 .Dt E6060SW 4 .Os .Sh NAME .Nm e6060sw -.Nd driver for Marvell 88E6060 and 88E6065 fast ethernet switch chip +.Nd Marvell 88E6060/88E6063/88E6065 Fast Ethernet switch driver .Sh SYNOPSIS .Cd "device mdio" .Cd "device etherswitch" @@ -44,6 +44,19 @@ This driver use smi interface by ethernet interface. 88E6060 support is only port vlan. 88E6065 support is port and dot1q vlan. dot1q support group base tag/untag. +.Sh HARDWARE +The +.Nm +driver supports the following Fast Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +Marvell 88E6060 +.It +Marvell 88E6063 +.It +Marvell 88E6065 +.El .Sh EXAMPLES Configure dot1q vlan on 88E6065 by etherswitchcfg command. .Pp From nobody Thu May 22 03:03:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQG4Ksfz5wxxT; Thu, 22 May 2025 03:03:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQG2hWjz41Fh; Thu, 22 May 2025 03:03:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882982; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GsPc75NbwmapLZzyPFcaWw413GT/lvERzbVvPdPTRnE=; b=WF8HSjO/xjOFyY8D3+essO4EnLmVlL2mdPl1pwZmU+z6MpH1VdFLd5dciTgL66/+QY2BhD aVdcVDjKOjlWb4/Y20cRNTBg4YBX4iYXczjIdGczJSSa/duSkiD6QiqYsQAYvAff8RncHX NOMaAK46w8p4idlfqevgyhkXf6pt3tw/5VdNv3Tr2IG6zvrcp0Ohfo4VvFMFjAaiXS2bCr 4bm8cTkdv8TVT7+MaDWQ91dzUdmq9V1macXXwD13qgHGRHKNkPZzeJkcec5YVPwjMCbCtD SxbsQ6cblUow5Bc715XYJmoLMrIHCmp4uaHxjST3eTSHL9Zi8hNRUck/qAnqLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882982; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GsPc75NbwmapLZzyPFcaWw413GT/lvERzbVvPdPTRnE=; b=WVFR+Kn1qUdGTHcWzEN7Yu1BQWWoZrcp3diO2sGmFCikCTdmC2fEJyZHI2UC+Ef7q35o2j oi4AvCnPXh3L+hyY4Jfk+iiTCVb9qgT5zerzmnVKT8rpoeIHmuoY5Er19pyoryRZ8hGNWt tXBjM0FmgpvomJeH4oYfndLQqvMf01ElQwbX1jgtrzMbFI19Qmf5UwDVb1e9LPANExXL4T UoTeXecBrbNk1coT2iqOTO5xMhP5nplMgu7MSBFsANhY4UUveqYS9XhPBZSulsYopfyHLH nLcz5TPiwjXWwMvhTGzfKhqnP1gPWZCG2zpn2CVF4bvARo1iHjHAbfLB+UoSzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882982; a=rsa-sha256; cv=none; b=yOx0CcrZgsLALDrQKb1GqIMkc05xg3R/rFdDK0CxOitbuwLprpy79wUgXHsd57vlbX4aIf +69HPoLypvAzsZ5l1ItATeXR5ipt+7dnbnQ3kKEofUoCRODzudNUVZueXTmb2rpEgvdgGS QgKLB2HCnvBsnEc0U6zt84+zVQt2x/hPGlPRYjKq3gYWFAzWXUCNxRuijQJHaGXuMqlAD/ /3D9//mKQzc6XXfTSqwBk6kqrzAPaChHz9PPygNGjn1ywMrvHvbvhx+q7e4pBgTC/sTtgN pWz6OWmL0/ALu5hHR85N2NzqP2Z2twOYVMIYh/pF+eUWvnLKlSvKbDcjWVYP0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQG2F0Jz12sr; Thu, 22 May 2025 03:03:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M332kD026505; Thu, 22 May 2025 03:03:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M332DI026502; Thu, 22 May 2025 03:03:02 GMT (envelope-from git) Date: Thu, 22 May 2025 03:03:02 GMT Message-Id: <202505220303.54M332DI026502@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: b7fc3fbe3209 - releng/14.3 - e6000sw.4: Add HISTORY List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: b7fc3fbe3209581fe3ead097ce1d00ab52803edc Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=b7fc3fbe3209581fe3ead097ce1d00ab52803edc commit b7fc3fbe3209581fe3ead097ce1d00ab52803edc Author: Alexander Ziaee AuthorDate: 2025-05-15 01:02:25 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 03:00:39 +0000 e6000sw.4: Add HISTORY MFC after: 3 days Reviewed by: mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50358 (cherry picked from commit c808bee35b1129abd9af137204ebd15559b90b5b) (cherry picked from commit 6426b01310122c7563d982ec21c91b98f3f5bd3b) --- share/man/man4/e6000sw.4 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/share/man/man4/e6000sw.4 b/share/man/man4/e6000sw.4 index 4c10a99b249a..c1740b899bc9 100644 --- a/share/man/man4/e6000sw.4 +++ b/share/man/man4/e6000sw.4 @@ -37,3 +37,8 @@ Marvell 88E6141 .Xr e6060sw 4 , .Xr etherswitch 4 , .Xr etherswitchcfg 8 +.Sh HISTORY +The +.Nm +driver appeared in +.Fx 11.0 . From nobody Thu May 22 03:03:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQJ12Q8z5wyBX; Thu, 22 May 2025 03:03:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQH3n2jz40xB; Thu, 22 May 2025 03:03:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vFih/SftL6rNGgPvLV0MGdbDJzVjua1WdhInOTsE9DI=; b=eOw9PZ6w7jgfiJuBQvT5+fKjr1AFc+GvW/Rk4TPJg5YjvwvPs9b2i9ZBiDnHDP/p1X4ywz DjwszE8Vf1QzW081xi+nKuBF20Q3bBT4dAX/4RV+z9jXgudMPA1FXdJuAyfY1TamzHPl8j 9Jp3swI+zGZAsgHBpozGmlXFa32YyoG1AA4ZGFPW9jJBQr/2pc7papwlGPoan5Vi5CzNEO 1TZYB04BOgZvEzhFWrY+246IbbXLcfikjDR5bfuvZljq2/T4BqqhsmRNoQeRhNLO21IH/u l/2NmoirxEw6WLXTUpFK88ZnHjxsgAafsCZOoKPJkUpvfJnOEdlF5A7+C6HpZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vFih/SftL6rNGgPvLV0MGdbDJzVjua1WdhInOTsE9DI=; b=A9yvCFPfI0R/TzAHVohK9RzBDLJihhBvSvuwUg067n8BwmcQEz8IEhmzWjvdEmk2brtRdB +QZedECD6CqL0ZYrerrVaXzwTxiwcEvyoqQ8vvHZU/zexTKzpVALir4MBo47tYoVtGW5KH Ye8GLh66CL7EJPdSA8pvvAMlX41N552+VzdOq52IQDUtTr+0bspLhtolhzCDsmxiGo1W2a 7uHCuC+YWwBGYw01KxTEV2N/KBfjSUROq2DLntoFMLBK4GLcyN01HecVFIFoFDKHcDdLZG ReVeQZMWXZatwbtDTfm1zm9ICBbqA2uqfxlU4gEo9JyxOK77kJMh48awYYRqYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882983; a=rsa-sha256; cv=none; b=PhpvTA4ODTlUzxB6hKuHlzr0hXIV4zqx15rxI8Mx1SwlHXfnD6iAcC22s7j+Fg4nU2ueqo Bg21WJKtYeWoOsmbD7NFNfBb9wIQxX1Km2wugpEmHsDJvIfW37CL8BXlsh62xdYwPU938B A0bx+ibTkBR7e7dv3Xvcc14RdLRjW40mloF1C9EkvoUqtckYsf2VIkEqx5HAfRcHUcK6a+ hTkV5AP+K/gt5qCzzbLp1rhforpVd4usoOOt5K5nCwyR3NNbMtdCVzpeu+JRnkM1Q2JIU9 nQ+gMNlJVUl74r5rOyfN0njWBA6TfiKkJLVAXbEKmEv6KX8aO7iI63OlshPEZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQH3MhBz12VK; Thu, 22 May 2025 03:03:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M333Ur026553; Thu, 22 May 2025 03:03:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M333JI026550; Thu, 22 May 2025 03:03:03 GMT (envelope-from git) Date: Thu, 22 May 2025 03:03:03 GMT Message-Id: <202505220303.54M333JI026550@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 86b04d37f012 - releng/14.3 - qat.4: Cleanup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 86b04d37f0128d2e516c03dac3e32d14d10f8fe9 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=86b04d37f0128d2e516c03dac3e32d14d10f8fe9 commit 86b04d37f0128d2e516c03dac3e32d14d10f8fe9 Author: Alexander Ziaee AuthorDate: 2025-05-16 17:19:00 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 03:00:56 +0000 qat.4: Cleanup + copyright symbols do not belong in Nd's (apropos results) + move hardware to HARDWARE for inclusion in the hw release notes + improve sysctls + lines which say nothing removed + links moved to see also + spacing and markup corrections MFC after: 3 days Reviewed by: markj, mhorne Approved by: mhorne (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50381 (cherry picked from commit c1d9b2c9b03cade19cb4f94d3e29fba7179ac11a) (cherry picked from commit 802edf23079388447659136805d97b95b0f90899) --- share/man/man4/qat.4 | 181 +++++++++++++++++++++++++-------------------------- 1 file changed, 89 insertions(+), 92 deletions(-) diff --git a/share/man/man4/qat.4 b/share/man/man4/qat.4 index 3d8c0cd32664..e7907c7c6331 100644 --- a/share/man/man4/qat.4 +++ b/share/man/man4/qat.4 @@ -1,11 +1,11 @@ .\" SPDX-License-Identifier: BSD-3-Clause .\" Copyright(c) 2007-2022 Intel Corporation -.Dd May 4, 2023 +.Dd May 16, 2025 .Dt QAT 4 .Os .Sh NAME .Nm qat -.Nd Intel (R) QuickAssist Technology (QAT) driver +.Nd Intel QuickAssist Technology driver .Sh SYNOPSIS To load the driver call: .Pp @@ -39,9 +39,20 @@ The driver supports cryptography and compression acceleration of the Intel (R) QuickAssist Technology (QAT) devices. .Pp +A complete API for offloading these operations is exposed in the kernel +and may be used by any other entity directly. +In addition to exposing a complete kernel API for +offloading cryptography and compression operations, the +.Nm +driver also integrates with +.Xr crypto 4 , +allowing offloading supported operations to Intel QuickAssist Technology +devices. +.Sh HARDWARE The .Nm -driver is intended for platforms that contain: +driver supports the following Intel QuickAssist Technology Engines: +.Pp .Bl -bullet -compact .It Intel (R) C62x Chipset @@ -57,78 +68,45 @@ Intel (R) Atom P5300 processor product family .It Intel (R) QAT 4xxx Series .El -.Pp -The -.Nm -driver supports cryptography and compression acceleration. -A complete API for offloading these operations is exposed in the kernel and may -be used by any other entity directly. -For details of usage and supported operations and algorithms refer to the -following documentation available from Intel Download Center -.Lk https://downloadcenter.intel.com : -.Bl -bullet -compact -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology API Programmer's Guide -.Re -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology Cryptographic API Reference Manual -.Re -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology Data Compression API Reference Manual -.Re -.It -.Rs -.%A Intel (R) -.%T QuickAssist Technology Performance Optimization Guide -.Re -.El -.Pp -In addition to exposing complete kernel API for offloading cryptography and -compression operations, the -.Nm -driver also integrates with -.Xr crypto 4 , -allowing offloading supported cryptography operations to Intel (R) QuickAssist -Technology (QAT) devices. -For details of usage and supported operations and algorithms refer to the -documentation mentioned above and -.Sx SEE ALSO -section. .Sh SYSCTL_VARIABLES -Following variables may be used to reconfigure the QAT device.\& -For configuration persistence those variables may be set before loading the driver, either via +The following +.Xr sysctl 8 +variables may be used to reconfigure the +.Nm +device. +For configuration persistence those variables may be set before loading +the driver, either via .Xr kenv 1 or .Xr loader.conf 5 . -The device specific configuration options are prefixed with -.Va dev.qat.X\&. -where X is the device number. -The specific device needs to be in "down" state before changing the configuration. +.Pp +The specific device needs to be in the "down" state +before changing the configuration. .Bl -tag -width indent -.It Va state -Show current state of the device. Override the device state. Possible values: "down", "up". - -NOTE: If the symmetric services are used for device the qat_ocf driver needs to be disabled prior the device -reconfiguration. -Following variable may be used to enable/disable the QAT cryptographic framework connectivity -.Va dev.qat_ocf.0.enable\&. +.It Va dev.qat.X.state +Show or set current state of the device. +Possible values: "down", "up". +.Pp +NOTE: If the symmetric services are used for device the +.Sy qat_ocf +driver needs to be disabled prior the device reconfiguration. +.It Va dev.qat_ocf.0.enable +Enable/disable the QAT cryptographic framework connectivity. Enabled by default. -.It Va cfg_services -Override the device services enabled: symmetric, asymmetric, data compression. +.It Va dev.qat.X.cfg_services +Override the device services enabled, may be one of: +symmetric, asymmetric, data compression. Possible values: "sym", "asym", "dc", "sym;dc", "asym;dc", "sym;asym". -Default services configured are "sym;asym" for even and "dc" for odd devices. -.It Va cfg_mode -Override the device mode configuration for kernel space and user space instances. +Default services configured +are "sym;asym" for even and "dc" for odd devices. +.It Va dev.qat.X.cfg_mode +Override the device mode configuration +for kernel space and user space instances. Possible values: "ks", "us", "ks;us". Default value "ks;us". -.It Va num_user_processes -Override the number of uio user space processes that can connect to the QAT device. +.It Va dev.qat.X.num_user_processes +Override the number of uio user space processes +that can connect to the QAT device. Default: 2 .El .Pp @@ -136,48 +114,67 @@ The following .Xr sysctl 8 variables are read-only: .Bl -tag -width indent -.It Va frequency +.It Va dev.qat.X.frequency QAT device frequency value. -.It Va mmp_version +.It Va dev.qat.X.mmp_version QAT MMP Library revision number. -.It Va hw_version +.It Va dev.qat.X.hw_version QAT hardware revision number. -.It Va fw_version +.It Va dev.qat.X.fw_version QAT firmware revision number. -.It Va dev_cfg +.It Va dev.qat.X.dev_cfg Summary of device specific configuration. -.It Va heartbeat -QAT device heartbeat status. Value '1' indicates that the device is operational. -Value '0' means that the device is not responsive. Device requires restart. -.It Va heartbeat_failed +.It Va dev.qat.X.heartbeat +QAT device heartbeat status. +Value '1' indicates that the device is operational. +Value '0' means that the device is not responsive. +Device requires restart. +.It Va dev.qat.X.heartbeat_failed Number of QAT heartbeat failures received. -.It Va heartbeat_sent +.It Va dev.qat.X.heartbeat_sent Number of QAT heartbeat requests sent. .El - -.Sh COMPATIBILITY -The -.Nm -driver replaced previous implementation introduced in -.Fx 13.0 . -Current version, in addition to -.Xr crypto 4 -integration, supports also data compression and exposes a complete API for -offloading data compression and cryptography operations. .Sh SEE ALSO .Xr crypto 4 , .Xr ipsec 4 , .Xr pci 4 , .Xr crypto 7 , .Xr crypto 9 +.Pp +For details of usage and supported operations and algorithms refer to +the following documentation available from Intel Download Center +.Lk https://downloadcenter.intel.com : +.Pp +.Bl -bullet -compact +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology API Programmer's Guide +.Re +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology Cryptographic API Reference Manual +.Re +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology Data Compression API Reference Manual +.Re +.It +.Rs +.%A Intel (R) +.%T QuickAssist Technology Performance Optimization Guide +.Re +.El .Sh HISTORY -This +A .Nm -driver was introduced in -.Fx 14.0 . -.Fx 13.0 included a different version of -.Nm -driver. +driver appeared in +.Fx 13.0 . +It was superseded in +.Fx 14.0 +by the upstream driver. .Sh AUTHORS The .Nm From nobody Thu May 22 03:03:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQK3RvMz5wxkX; Thu, 22 May 2025 03:03:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQJ4pPfz413H; Thu, 22 May 2025 03:03:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882984; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OFDLXiReMN/Mo+PULHEzZedzwrRKnxoItjVU5R/o2SY=; b=TpGl/kgSTj36vTyF203uoYgcWtbFNSBUOCg8DvxewTxY610VMEiKylVypIUPD0cl+0RJX7 VTdDuMUsiABd6SAz1tgMRaYfBoJjyOohy/ub74iacQKImTwEhvqbbrAPEF8SUM2aJcs+4u ofpK+7pZs+zgSDY8nk5zzuIvUz+AcYiDpUxoJRfhlS3yLT2qKXx0gdXbZN3Y0UWJTz6uwZ 6kMCZRt286qpioT0NaU8X7LDfvreRx3uXyYAfjONWtksyrRgL9wotNDpHTnLiscmn+R/oZ Itl88/71DBlYHXVMl/lOoW3IhzebEZHOZ+s/0XuTBpoa/7d/paCurmD/fQ0uag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882984; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OFDLXiReMN/Mo+PULHEzZedzwrRKnxoItjVU5R/o2SY=; b=fWe+08PSZApLRycE/W/kz4N8WCp5nZLjGxUGA7gH5WzjTuk6SUW/XM2drGsFYHJldGn/8u waFL9g6stut1zYTDcs1ojIsjQiiuBTjEQUK8KwxlOZbd36xOzRrX34i/P5uetv3F2ZfAIc jLvgYD/VuYCzmZ+qJ4DfwBtpkAE+LUuSt8t6tLN3FUnL1xtnNSh4e9s8yUGL9TG+j0PmtN 6V77qjj6/bH4Fli3wgGBhq7qmIoJ1i3M9Tg/wP0rh48Sn0F/mZI5dgfneT7WtucsBdJaN9 uTgI0KyPcN9pHlKNXvW13XoSaTIO303TsZm01oXZ+Zyi8wbf1EV+wTVD28hRfg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882984; a=rsa-sha256; cv=none; b=U1Gl2Cd9Me9sXbavsKxNZajBI++wMPlLele4gR3bj6ouloJHxyL5meiJpVeMF03Ry7HfCZ s/VPdmh741DzK0f1oEXJdMRGQOEoDC2lSmMrq0p2Dp6QRCGYlSwvIN1Oe6jL+acMBwyt9k TZGWVuHc5UFzljZDicYGr3Sk9q8jK3uNHLka5zPZ4fJMV3wU1Y5NxRKJ1cBFmjSsOP8o0b XP3/4C1s//8DkQcH++c0G/ad3gisTsQRU7ayDWCuHPdjrFNNipDAChzODnovDVUqHPpcg8 42Wuu8TL/BPisL3bKV08HB3V6fqOC0Aag+L43IJVCJ9prylkD6XPP3NnwXd3rw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQJ43K3z12ss; Thu, 22 May 2025 03:03:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M334eS026586; Thu, 22 May 2025 03:03:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M334Zp026583; Thu, 22 May 2025 03:03:04 GMT (envelope-from git) Date: Thu, 22 May 2025 03:03:04 GMT Message-Id: <202505220303.54M334Zp026583@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: dc8ade18cf38 - releng/14.3 - ip17x.4: Initial manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: dc8ade18cf3879bc050ba9833a99e3a89a8b4382 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=dc8ade18cf3879bc050ba9833a99e3a89a8b4382 commit dc8ade18cf3879bc050ba9833a99e3a89a8b4382 Author: Alexander Ziaee AuthorDate: 2025-05-19 19:40:02 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 03:01:22 +0000 ip17x.4: Initial manual page Add a stub manual only saying what it is, how to include it, what is supported, and since when. This plugs the ip17x driver into the manual subsystem and the release hardware notes. MFC to: 14.3 MFC after: 3 days Reviewed by: adrian, carlavilla Approved by: carlavilla (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50411 (cherry picked from commit f750a114d2c50c4d25d304dbf1dabfd3ae3aa013) (cherry picked from commit ded154a1df97e3340f129394cbcaa1a50439d1bf) --- share/man/man4/Makefile | 1 + share/man/man4/ip17x.4 | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 980fde8d3868..5895442b3d4d 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -238,6 +238,7 @@ MAN= aac.4 \ ${_io.4} \ ${_ioat.4} \ ip.4 \ + ip17x.4 \ ip6.4 \ ipfirewall.4 \ ipheth.4 \ diff --git a/share/man/man4/ip17x.4 b/share/man/man4/ip17x.4 new file mode 100644 index 000000000000..ac5c989020a5 --- /dev/null +++ b/share/man/man4/ip17x.4 @@ -0,0 +1,42 @@ +.\" +.\" Copyright (c) 2025 Alexander Ziaee +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 18, 2025 +.Dt IP17X 4 +.Sh NAME +.Nm ip17x +.Nd IC Plus IP17x series Fast Ethernet switch driver +.Sh SYNOPSIS +.Cd device mdio +.Cd device etherswitch +.Cd device ip17x +.Sh DESCRIPTION +The +.Nm +driver supports the +IC Plus IP17X series Fast Ethernet switch controllers. +.Sh HARDWARE +The +.Nm +driver supports the following Fast Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +IC Plus IP178C +.It +IC Plus IP175D +.It +IC Plus IP175C +.It +IC Plus IP175A +.El +.Sh SEE ALSO +.Xr etherswitch 4 , +.Xr etherswitchcfg 8 +.Sh HISTORY +The +.Nm +driver appeared in +.Fx 10.0 . From nobody Thu May 22 03:03:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2tQL50rFz5wyBc; Thu, 22 May 2025 03:03:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2tQK4vCLz41Cp; Thu, 22 May 2025 03:03:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882985; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=scCmJF1462rFZ2PXOQyHwlqlyQb0j2D1/kzedO1D24g=; b=l9AyaHFXz3Gxse47FdwFNXjMKR0loBSS0oo4TYKL551c0ImWIGyOs2dlACZ6GJDQITnLM/ mQJzJeKGKqj/aF3Sev1GZIDNHjhrDhGZS/EIgEzoLqJp8vRKREuvZ+HAJWvUjuy1WJVyFg YkYxc9c7zV4g1y/QjURdLrjxtguJVUXbVdYMUbj/dv9IwsAwMXOsn6ijvcxMq7z+gxt/ji D5p4V0V0RQnSh5VB2DByqQxQObha8HkSqL/QzMvpFNPl+BlFriDXLukt0tI4N0nq4eSVPr VO4h0DlmH+O5rXzxrB1OvvDHQF38Mrfe9vB2E41r0ubE+hNmClQi7m9F2S49oQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747882985; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=scCmJF1462rFZ2PXOQyHwlqlyQb0j2D1/kzedO1D24g=; b=Sd9ANe+zRr8bDwDdmA5iAaIPmOlnxzrdbAf66z1CH1utNHnZBj860KNxRtk1WdfMaZuUX3 HMo4nmGBNj0C+902Sfc8nN4vYEXxJVht1W9e5hkgTs/4XeEJx+YICe8oEjhXztz55dfFUJ 4XvN1giwxZSYl2WztzyF/gO/C7RfF+6/tg0kO/Z9F7vwov2+QznLv7ByfQYgbBkIdD/AxM zadN/rDiSEB/ZjOnFppGyTSy1bKLq9i3gNwbJfcEh1QDVDc71XGTqiqt5W3+tQ8+rnizhb BrOxjIGwGqJzE49r+mPPi6WLK214P4zlusKs4Ya80n5noA5fGFUULl7Xr8tk2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747882985; a=rsa-sha256; cv=none; b=vsTBM+/vG/nuDvHIrYxtGdU7HCJ0bft/WIQIVvO3BJtHQDJcbOnfvwfEcHNf7c9rdctrOk Z81C34Xb2Emcy68Ac/ZAYq8l21rLB/3XTJBjTLBtnkHnHqDSGj3W56TORaxd0X0KKjnG9C vT2jBBFrRyMReDiiBVHSaWrSoW/ynw9s/tl8VgVeA/asDiY4H9eco7VGG3GgxBx6DOwC+a QLYNmheU8PEz7hq/aqGFgBavEcAx3UvGxkajUXDk26w/ymnCv3hFpgmjiB/M4klyOhAjZH t1EF70gLg9LXKSL5sWCZ0sAXaB1STVPYIF9UpXv4o7e8bQqgN23wjZKdQrjChg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2tQK4Tjnz12vy; Thu, 22 May 2025 03:03:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M335Mq026620; Thu, 22 May 2025 03:03:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M335rP026617; Thu, 22 May 2025 03:03:05 GMT (envelope-from git) Date: Thu, 22 May 2025 03:03:05 GMT Message-Id: <202505220303.54M335rP026617@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 5af0942052b8 - releng/14.3 - mtkswitch.4: Initial manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 5af0942052b8ce0ed49eaa056b4a962e518d26ff Auto-Submitted: auto-generated The branch releng/14.3 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=5af0942052b8ce0ed49eaa056b4a962e518d26ff commit 5af0942052b8ce0ed49eaa056b4a962e518d26ff Author: Alexander Ziaee AuthorDate: 2025-05-19 19:42:01 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-22 03:01:36 +0000 mtkswitch.4: Initial manual page Add a stub manual only saying what it is, how to include it, what is supported, and since when. This plugs the mtkswitch driver into the manual subsystem and the release hardware notes. MFC to: 14.3 MFC after: 3 days Reviewed by: adrian, carlavilla Approved by: carlavilla (mentor) Approved by: re (cperciva) Differential Revision: https://reviews.freebsd.org/D50412 (cherry picked from commit 37f00bc257d0e785fad1d0ffbd7dcbf09e863417) (cherry picked from commit f31ac06711e69aed7cb4b38d8eb2aba2d7149ed8) --- share/man/man4/Makefile | 1 + share/man/man4/mtkswitch.4 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 5895442b3d4d..3521444e29f5 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -329,6 +329,7 @@ MAN= aac.4 \ mrsas.4 \ msk.4 \ mtio.4 \ + mtkswitch.4 \ multicast.4 \ muge.4 \ mvs.4 \ diff --git a/share/man/man4/mtkswitch.4 b/share/man/man4/mtkswitch.4 new file mode 100644 index 000000000000..c879df161791 --- /dev/null +++ b/share/man/man4/mtkswitch.4 @@ -0,0 +1,45 @@ +.\" +.\" Copyright (c) 2025 Alexander Ziaee +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 19, 2025 +.Dt MTKSWITCH 4 +.Sh NAME +.Nm mtkswitch +.Nd MediaTek/Ralink Ethernet switch driver +.Sh SYNOPSIS +.Cd device mdio +.Cd device etherswitch +.Cd device mtkswitch +.Sh DESCRIPTION +The +.Nm +driver supports MediaTek/Ralink Ethernet switch controllers. +.Sh HARDWARE +The +.Nm +driver supports the following Ethernet switch controllers: +.Pp +.Bl -bullet -compact +.It +MediaTek MT7628 (5 port Fast Ethernet) +.It +MediaTek MT7621 (5 port Gigabit Ethernet) +.It +MediaTek MT7620 (5 port Fast Ethernet) +.It +Ralink RT5350 (5 port Fast Ethernet) +.It +Ralink RT3352 (5 port Fast Ethernet) +.It +Ralink RT3050 (5 port Fast Ethernet) +.El +.Sh SEE ALSO +.Xr etherswitch 4 , +.Xr etherswitchcfg 8 +.Sh HISTORY +The +.Nm +driver appeared in +.Fx 11.0 . From nobody Thu May 22 03:25:46 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2twV2slPz5wysS; Thu, 22 May 2025 03:25:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2twV1rmzz3Gw5; Thu, 22 May 2025 03:25:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747884346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0lcRx0VrcFkAluQrlNWQYI1KVdZf1mj+wdecaNKFL9Q=; b=Pvw1TQpLgx54DWyFbCqKoXckNxcQ5IGwi5lkv84xn4DiEOzw6y4w/2Hsvi3zveDoADPVMO 9akPkYehxCz46M8cTaeU+aAD4oy+C0cYROXg0RQQlvQSFdniMnm8n72l+vUnSSbp8bgIfs 9jb2DzG1/4gADGkkeADWdCMcv5ywqbVetBaCuzxlgrkcKQ7EL2+55yEeARYZTWbXVRGN27 s9Vv8Sqek2OxyTDjhJXMG3uRHtogRmcBABfUkYimUceyiGu09n0cj0ABDz8x7DNPKrWkwu RbJ7WPslga4LEinyH7P/xlZ6W5QgMitWTHF45P9sAiGTuG49A7ROsu+KbgnPBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747884346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0lcRx0VrcFkAluQrlNWQYI1KVdZf1mj+wdecaNKFL9Q=; b=ww1tJkg9jffGjHM4TtDxX4OuYXO3YXErxTmXmlntDignYbaNX3G4GFYFGJlfBmotS3R+Bw FWR9WhjJ5HzBhQ60DCtqB4zpZgFbkKurDu9O6JxKAIWYg9TfxnLoPGc5dh+W4/LIPak6Oy njAx+35kQachQjVy3/IaptaMI+PaOIjUHSeKHFKaazr0toO59sYWVgUCWMWxSlG13EDtVj YtI1OVedFmfF/naYBsIK8TOy+d2AVqHBbDBf87PJm3f09SBHdHv7GKuEb/phPpnkM23e/G aB61zROzzlEf3xxwLBBFCvGBPlF36AFRCt9RWceaeoIVOgEegvhkb8d4P4iHYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747884346; a=rsa-sha256; cv=none; b=sKs2jySkaZvjP0LhTxPfnadOcLBtT9x5yXVAvf82bLMjMH9nEI/KFazI9yQQ+BWeWwDo/u foUUd87VBIkw/WYSdeEi6ip8vfdiDF3qyweRx+NgP0TDmuYO4TcGwiGOxrYaZ3uGKTNEwS 7NqumwESbHbNWKOR/nUO+Jb3cVTDiO2JVljyOIK7y2Uf6I9sHa3pDSorCt1HPufj+W1exm R2z1kRXeFukrznJdpsbctLyLDfbFq7fng3Ch0+syxM8r65i2AlcEhDFN8fMUdkb3SXULcQ iKGceqY4I0WHziouB1G7f1UXGlsNFiKS2IAdb9iPvK/ACipGyBOHPfoM7O/pqw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2twV1Lp6z13Q9; Thu, 22 May 2025 03:25:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M3PkVG064414; Thu, 22 May 2025 03:25:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M3PkdC064411; Thu, 22 May 2025 03:25:46 GMT (envelope-from git) Date: Thu, 22 May 2025 03:25:46 GMT Message-Id: <202505220325.54M3PkdC064411@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: e877ef51e2b3 - stable/14 - bhyve: make code to handle non-backed memory accesses MD List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e877ef51e2b3ff351d77e50810413983ec277785 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e877ef51e2b3ff351d77e50810413983ec277785 commit e877ef51e2b3ff351d77e50810413983ec277785 Author: Konstantin Belousov AuthorDate: 2025-05-01 07:11:00 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-22 03:25:30 +0000 bhyve: make code to handle non-backed memory accesses MD PR: 286467 (cherry picked from commit e8b9d839b1fae2913dc861341b9363d41cd45173) --- usr.sbin/bhyve/amd64/Makefile.inc | 1 + usr.sbin/bhyve/mem.c | 26 ++++++++++++++++------- usr.sbin/bhyve/mem.h | 2 ++ usr.sbin/bhyve/mem_md.c | 44 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 7 deletions(-) diff --git a/usr.sbin/bhyve/amd64/Makefile.inc b/usr.sbin/bhyve/amd64/Makefile.inc index bc0ffa720d31..f8103ae1be32 100644 --- a/usr.sbin/bhyve/amd64/Makefile.inc +++ b/usr.sbin/bhyve/amd64/Makefile.inc @@ -7,6 +7,7 @@ SRCS+= \ inout.c \ ioapic.c \ kernemu_dev.c \ + mem_md.c \ mptbl.c \ pci_ahci.c \ pci_e82545.c \ diff --git a/usr.sbin/bhyve/mem.c b/usr.sbin/bhyve/mem.c index b4cb93a1cea4..e32d7bd571a8 100644 --- a/usr.sbin/bhyve/mem.c +++ b/usr.sbin/bhyve/mem.c @@ -34,6 +34,7 @@ #include #include +#define _WANT_KERNEL_ERRNO 1 #include #include #include @@ -168,10 +169,13 @@ static int access_memory(struct vcpu *vcpu, uint64_t paddr, mem_cb_t *cb, void *arg) { struct mmio_rb_range *entry; + struct mem_range *mr; int err, perror, immutable, vcpuid; vcpuid = vcpu_id(vcpu); + mr = NULL; pthread_rwlock_rdlock(&mmio_rwlock); + /* * First check the per-vCPU cache */ @@ -186,14 +190,22 @@ access_memory(struct vcpu *vcpu, uint64_t paddr, mem_cb_t *cb, void *arg) if (mmio_rb_lookup(&mmio_rb_root, paddr, &entry) == 0) { /* Update the per-vCPU cache */ mmio_hint[vcpuid] = entry; - } else if (mmio_rb_lookup(&mmio_rb_fallback, paddr, &entry)) { - perror = pthread_rwlock_unlock(&mmio_rwlock); - assert(perror == 0); - return (ESRCH); + } else if (mmio_rb_lookup(&mmio_rb_fallback, paddr, + &entry) == 0) { + } else { + err = mmio_handle_non_backed_mem(vcpu, paddr, &mr); + if (err != 0) { + perror = pthread_rwlock_unlock(&mmio_rwlock); + assert(perror == 0); + return (err == EJUSTRETURN ? 0 : err); + } } } - assert(entry != NULL); + if (mr == NULL) { + assert(entry != NULL); + mr = &entry->mr_param; + } /* * An 'immutable' memory range is guaranteed to be never removed @@ -206,13 +218,13 @@ access_memory(struct vcpu *vcpu, uint64_t paddr, mem_cb_t *cb, void *arg) * deadlock on 'mmio_rwlock'. However by registering the extended * config space window as 'immutable' the deadlock can be avoided. */ - immutable = (entry->mr_param.flags & MEM_F_IMMUTABLE); + immutable = (mr->flags & MEM_F_IMMUTABLE) != 0; if (immutable) { perror = pthread_rwlock_unlock(&mmio_rwlock); assert(perror == 0); } - err = cb(vcpu, paddr, &entry->mr_param, arg); + err = cb(vcpu, paddr, mr, arg); if (!immutable) { perror = pthread_rwlock_unlock(&mmio_rwlock); diff --git a/usr.sbin/bhyve/mem.h b/usr.sbin/bhyve/mem.h index 90172d1c9124..d7544a6bce30 100644 --- a/usr.sbin/bhyve/mem.h +++ b/usr.sbin/bhyve/mem.h @@ -53,6 +53,8 @@ struct mem_range { void init_mem(int ncpu); int emulate_mem(struct vcpu *vcpu, uint64_t paddr, struct vie *vie, struct vm_guest_paging *paging); +int mmio_handle_non_backed_mem(struct vcpu *vcpu __unused, uint64_t paddr, + struct mem_range **mr_paramp); int read_mem(struct vcpu *vpu, uint64_t gpa, uint64_t *rval, int size); int register_mem(struct mem_range *memp); diff --git a/usr.sbin/bhyve/mem_md.c b/usr.sbin/bhyve/mem_md.c new file mode 100644 index 000000000000..0e29ec0a9de9 --- /dev/null +++ b/usr.sbin/bhyve/mem_md.c @@ -0,0 +1,44 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * 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. + */ + +#include +#include +#include +#include +#include + +#include "mem.h" + +int +mmio_handle_non_backed_mem(struct vcpu *vcpu __unused, uint64_t paddr __unused, + struct mem_range **mr_paramp __unused) +{ + return (ESRCH); +} From nobody Thu May 22 03:25:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b2twW5JVSz5x03H; Thu, 22 May 2025 03:25:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b2twW2m6wz3Gw8; Thu, 22 May 2025 03:25:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747884347; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eDP8GnlyoyHpooiLFCR/FeNYf9IxfEelVPy4hFCAmcw=; b=dXff/XCV1vZTso/nCFY51jlCMi5Aa5TtjZek/o3U8k8EShVWPGS+Lt2nVdcBqOMQjBGsWy 0ZbxA8oZDhgiMzcJ18LGi2ECgtL3LQTsspONjA2XcPGwBoxsG2cOXqPblz7lsSq16H2DDt XuERO7VjOYXUXximFLZYm6Q9a9/TtMtTGClnm3pt+MjBkY24YaN5ZUGwav3wUelj7UxzJW 6UXaeB64efRTy/9guvaqnNR3wUlt3P8sPxmteaZptXs7gdS2+No2gIPbP0JhHhTmcK9qE7 sdHNh59cjKQgveb1oDZZRbrlvJWGHE5XfikhzlkbvIrE4FYUYYKcnF4Qw4mHow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747884347; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eDP8GnlyoyHpooiLFCR/FeNYf9IxfEelVPy4hFCAmcw=; b=QgNBZEgpgNEum3C+/lWuOldWEQXddWghRQcITDiLvL/1ZJ0E0PHdzpEr30luw6S5lL2jJe thMphTgUX8hZ1ZaWWu/jiHHQX93nSct+SSR2iGCwK5Xhj2FhopIDURbtZCDb7UNh2r6HYc bRs8JUNvS0Wnyeb2rFb4HhneTOjBeehaeKHfrRrQBSv7YJEq9eg30g7z+MOFGiD9QKq1uu scvWRjBTm+bBbPbfZvnby/vfXgmoZCGn9l5HhDHhUoiAIlF65K+mcPoXbnivms3vjKt5l1 zUkdjn/BnOEI1/giyce7k+CvSg381v+tWbDN1QeHM8F84CSYo1VJrhpXfu1pEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747884347; a=rsa-sha256; cv=none; b=p4p5OuebZ/ZmW04Ta85jvwKdaLwGDZWzXGPd9gzNjvWdfE8V/8gbrnlgo4UyqN6rximi0f laposbjxoTjpF6e6s8L21fNT1tfmP7Q/gJC9wzxICWuYetOsL1fuL4A5pY6XOvREAfxHXo P1WLB6/aJ7ArH2uotRX8Smjt03ePgX8Pvl7rFqzaPdVWz1PJX395/C6tjQVjU5hh9ZR1sc h2nGxtpat6cCF/6aR8V5Urk8Ffg+pnqdGi6R6Q7eHSgih1YrZRv0zqZcyZ9V+wFsycM2dR +1cXwuUwauKsxAg+zVg4coFbfFWTNQuTBtbr7jSqXgIZK3QaHDWqehUjjM9Y0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b2twW2Dgpz13QB; Thu, 22 May 2025 03:25:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54M3PlYn064447; Thu, 22 May 2025 03:25:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54M3PlLh064444; Thu, 22 May 2025 03:25:47 GMT (envelope-from git) Date: Thu, 22 May 2025 03:25:47 GMT Message-Id: <202505220325.54M3PlLh064444@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 2919a487021a - stable/14 - bhyve x86: when accessing non-backed gpa, emulate hw List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2919a487021a7785bca1c1b059413a26286fe620 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2919a487021a7785bca1c1b059413a26286fe620 commit 2919a487021a7785bca1c1b059413a26286fe620 Author: Konstantin Belousov AuthorDate: 2025-05-04 17:01:20 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-22 03:25:30 +0000 bhyve x86: when accessing non-backed gpa, emulate hw PR: 286467 (cherry picked from commit d8c4c2ce68eec8bac4e5cd0d133b8342e7a7f05d) --- usr.sbin/bhyve/amd64/Makefile.inc | 2 +- usr.sbin/bhyve/amd64/mem_x86.c | 82 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/amd64/Makefile.inc b/usr.sbin/bhyve/amd64/Makefile.inc index f8103ae1be32..851e64d154fa 100644 --- a/usr.sbin/bhyve/amd64/Makefile.inc +++ b/usr.sbin/bhyve/amd64/Makefile.inc @@ -7,7 +7,7 @@ SRCS+= \ inout.c \ ioapic.c \ kernemu_dev.c \ - mem_md.c \ + mem_x86.c \ mptbl.c \ pci_ahci.c \ pci_e82545.c \ diff --git a/usr.sbin/bhyve/amd64/mem_x86.c b/usr.sbin/bhyve/amd64/mem_x86.c new file mode 100644 index 000000000000..742d827db47f --- /dev/null +++ b/usr.sbin/bhyve/amd64/mem_x86.c @@ -0,0 +1,82 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * 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. + */ + +#include +#include +#include +#include + +#include + +#include "debug.h" +#include "mem.h" + +static int +no_mem_handler(struct vcpu *vcpu __unused, int dir, uint64_t addr __unused, + int size, uint64_t *val, void *arg1 __unused, long arg2 __unused) +{ + if (dir == MEM_F_READ) { + switch (size) { + case 1: + *val = 0xff; + break; + case 2: + *val = 0xffff; + break; + case 4: + *val = 0xffffffff; + break; + case 8: + *val = 0xffffffffffffffff; + break; + } + } + return (0); +} + +static struct mem_range fb_entry = { + .handler = no_mem_handler, + .base = 0, + .size = 0xffffffffffffffff, +}; + +/* + * x86 hardware ignores writes without receiver, and returns all 1's + * from reads without response to transaction. + */ +int +mmio_handle_non_backed_mem(struct vcpu *vcpu __unused, uint64_t paddr, + struct mem_range **mr_paramp) +{ + *mr_paramp = &fb_entry; + EPRINTLN("Emulating access to non-existent address to %#lx\n", + paddr); + return (0); +} From nobody Thu May 22 18:24:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3Gsf33X7z5x0Vf; Thu, 22 May 2025 18:24:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3Gsf0HK8z3T73; Thu, 22 May 2025 18:24:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747938278; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cojidCH6XjgbRxDMjRdPd0ieQ4ttQbmiyCFV3VO3XLA=; b=QXR1fWXFblzLmlj4RDZZOk+NQB+ugpCEdRQ1IVollWXZdCTR06Q9V6t29AoNFqgeeduU+Q d4T3sXLusoA4SqaCOuRDQT+3vbC6r1TNc/nzz8uf0ez/C3QOICeY0cNjy+vfWtA6WTSblO fZTLcVYRe67+KpkdKbETCjbOa2aXK48LTBPudjBjGarPxeOQWNRYn6lDzZ6MKg6eXuynbc kw4Ti4RFY+tom7NXK0CT+1lDU8LKlh3V8ywfih6PrZAH0LqDJdq+oNqAi6hCvTTOu/DW6P p7JVDrNrvqzkrwuUHHbMf3mZuUWv073IYxFEYuCPDB+WzPPKEsodLmNFvzP58Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747938278; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cojidCH6XjgbRxDMjRdPd0ieQ4ttQbmiyCFV3VO3XLA=; b=sOBZrlCZ/JYFLElkfj+Kqw2K1iqMO0jmqgdRwJguC/DKRt/8O6COG1H1fegRw7DCwYXk9U rUuV3tekbVWh9Gxqu/2NwdebugIyDwZSPdGIYIteaH264xOI3z4MkvoSfz5qDMrdkRLkHM 5UaujEefXABR/Wa/ZD4E9zSCCrPoVQbtNHXNBeCMFzlbzZKseGLhjMBtf5fAVlnfC2iudX 5EjTo0HeocMbLxXK0ojmvb2qx9HjHMOFtTEq7TYaGX0+Gvur6/73gKyvL+/KK+FEhBlCHv YreiLc/EwT1krwL6jKkmHC1dzsEWZaWw9acO7SRwuIBm9j4TV2BxeJHo7/PFtQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747938278; a=rsa-sha256; cv=none; b=JWCI4ZV/WEoJ3S2o1DhsndPbBqUopyx0Z8TXSbKLRKyacOQS0uibrc+Dx92XFJ1asGwmaL pyH1jhCAvoa5ttlLAongQAMXmibrPHqpWCW18y0tlyv9ar1V2worPMnfBstrAZLK9Zp7bt RPRHG2CqRpv2glFdUa1K5eUP0Uk1FG16jyQiLU1G/Hts5uvV/Xn00MMRfBtfAFeQr5d5AB Iallih5oIxxUfPgnPPikMEG301i+d+VfCgO4LYvwfK6QY2BXuGoSi8fT5tzighD7VKZD4H kzj5ft2J/qvax2VSwCPo5Xw5FRQ+tIy6FXqg79a1ci5D3pG6OqBFcjVhWiAyKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3Gsd6zSYzY4L; Thu, 22 May 2025 18:24:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54MIObrp047226; Thu, 22 May 2025 18:24:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54MIObR0047223; Thu, 22 May 2025 18:24:37 GMT (envelope-from git) Date: Thu, 22 May 2025 18:24:37 GMT Message-Id: <202505221824.54MIObR0047223@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 2af8f2ad4265 - stable/14 - sndctl(8): Allow read-only sysctls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2af8f2ad42654291ad1fcefba142bcc93976d7f4 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=2af8f2ad42654291ad1fcefba142bcc93976d7f4 commit 2af8f2ad42654291ad1fcefba142bcc93976d7f4 Author: Christos Margiolis AuthorDate: 2025-05-21 19:31:23 +0000 Commit: Christos Margiolis CommitDate: 2025-05-22 18:24:28 +0000 sndctl(8): Allow read-only sysctls Needed by follow-up patch. Sponsored by: The FreeBSD Foundation MFC after: 1 day Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50398 (cherry picked from commit 52c4263274031d599aebfaed2862ae85b482953a) --- usr.sbin/sndctl/sndctl.c | 56 +++++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/usr.sbin/sndctl/sndctl.c b/usr.sbin/sndctl/sndctl.c index 412ea33e5adf..4d3ae0cf526c 100644 --- a/usr.sbin/sndctl/sndctl.c +++ b/usr.sbin/sndctl/sndctl.c @@ -664,30 +664,37 @@ sysctl_int(const char *buf, const char *arg, int *var) size_t size; int n, prev; - n = strtol(arg, NULL, 10); - if (errno == EINVAL || errno == ERANGE) { - warn("strtol(%s)", arg); - return (-1); - } - size = sizeof(int); /* Read current value. */ if (sysctlbyname(buf, &prev, &size, NULL, 0) < 0) { warn("sysctlbyname(%s)", buf); return (-1); } - /* Apply new value. */ - if (sysctlbyname(buf, NULL, 0, &n, size) < 0) { - warn("sysctlbyname(%s, %d)", buf, n); - return (-1); + + /* Read-only. */ + if (arg != NULL) { + errno = 0; + n = strtol(arg, NULL, 10); + if (errno == EINVAL || errno == ERANGE) { + warn("strtol(%s)", arg); + return (-1); + } + + /* Apply new value. */ + if (sysctlbyname(buf, NULL, 0, &n, size) < 0) { + warn("sysctlbyname(%s, %d)", buf, n); + return (-1); + } } + /* Read back applied value for good measure. */ if (sysctlbyname(buf, &n, &size, NULL, 0) < 0) { warn("sysctlbyname(%s)", buf); return (-1); } - printf("%s: %d -> %d\n", buf, prev, n); + if (arg != NULL) + printf("%s: %d -> %d\n", buf, prev, n); if (var != NULL) *var = n; @@ -708,17 +715,21 @@ sysctl_str(const char *buf, const char *arg, char *var, size_t varsz) return (-1); } - size = strlen(arg); - /* Apply new value. */ - if (sysctlbyname(buf, NULL, 0, arg, size) < 0) { - warn("sysctlbyname(%s, %s)", buf, arg); - return (-1); - } - /* Get size of new string. */ - if (sysctlbyname(buf, NULL, &size, NULL, 0) < 0) { - warn("sysctlbyname(%s)", buf); - return (-1); + /* Read-only. */ + if (arg != NULL) { + size = strlen(arg); + /* Apply new value. */ + if (sysctlbyname(buf, NULL, 0, arg, size) < 0) { + warn("sysctlbyname(%s, %s)", buf, arg); + return (-1); + } + /* Get size of new string. */ + if (sysctlbyname(buf, NULL, &size, NULL, 0) < 0) { + warn("sysctlbyname(%s)", buf); + return (-1); + } } + if ((tmp = calloc(1, size)) == NULL) err(1, "calloc"); /* Read back applied value for good measure. */ @@ -728,7 +739,8 @@ sysctl_str(const char *buf, const char *arg, char *var, size_t varsz) return (-1); } - printf("%s: %s -> %s\n", buf, prev, tmp); + if (arg != NULL) + printf("%s: %s -> %s\n", buf, prev, tmp); if (var != NULL) strlcpy(var, tmp, varsz); free(tmp); From nobody Thu May 22 18:24:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3Gsc7278z5x0b2; Thu, 22 May 2025 18:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3Gsc6Hv0z3T9f; Thu, 22 May 2025 18:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747938276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sGlONyEN46XHoM9mn8F7200cYkv656eIFogJ+KlVF8w=; b=N4lKhqw4nj5cP4YOFAYtYZPrmhaqF8SLzjY1WIXMoCaadw1+ZFs3FVbNZgi/xx7KbO5BL2 I/g1z6kf7T8J86BNpcMEe1yGYT1F6pALVMI6Gb5wyU1dQG94hUGjsx8p2SHE4QnvuCo3Mw fsTs6f8YScLkmwN681BivpaBgakX0DG0e7jEMhNgeNNuPUNT1goKdZ1K4jwjr3qnLYEqqw Givhvv3l4YZzPGlthvcxRbTGjV5grlZLmiplaXQQDVNjBDKMFZpGXm0DDhg4iIBk1G/nfI 2h76nDBLesRY8ekk9MDlOFOcrsOkOwMvVhpK3/y72j84RZuEAi9lPbiOhnTLSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747938276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sGlONyEN46XHoM9mn8F7200cYkv656eIFogJ+KlVF8w=; b=hAQQ5eY6twOSa4D624MPYuky0qPjwqpLQ3BOs0zqjd00oPtL7cAP3k6Phjecp4l5DFH/Wu xl9oB5qJ7ocZNQortclCzmnVGlwlc8ZljNXgZUvsL442Af2IRAgvOfsrvCEiogySdameMp pWSR0dsi1mvC+WMLAZLihiUB2tgbk96TaurMxFCdTndo//e4bsSx3YQezhy3YBGp78Ismt a4gP4gPZ3k3nmpuwmmAGh6FoO77lD5SXDn8dLNMq+v4D+EYk/ZO4I48K1fwA+gq7+8xgz7 9lG7sZvV/X81HAqsTLjYqjNV6f+xWeTdrFbUH0GX/zDaYuV9Pp9IJxD8gcAByQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747938276; a=rsa-sha256; cv=none; b=aQVEoMWp7+sItSp0EowcCrSDCDeWk4/J6RWHCwBKjwbuuSa1VwQAPEi9OjS36l4YPIUn8L 6avD13V5YW5LJhE9SFqJiwQGA8R2CozgIyF2O94Yz6+8Myw546j4ircQjR8Q21wQ6BjbTU 54F0QCTg2ZrBo18WfqUv7mAuUf/rF3ez6amrZ9S6TxvOhjdjrYYrsctxRl21kz7/LTbDiu YD5CiURhrHA5McOx58Ud0U2JTtEHMhrxJlQjpSvTBvMoM8nJY/7UWPZhKTPJuMWRvfuoXj cKl+wi9p0msdOD98DA7K5WtsZKnqAGocUhMQrWojpRYMVxaUamXPzQMX+Yz2FQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3Gsc5vNfzY4K; Thu, 22 May 2025 18:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54MIOa9l047187; Thu, 22 May 2025 18:24:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54MIOak8047184; Thu, 22 May 2025 18:24:36 GMT (envelope-from git) Date: Thu, 22 May 2025 18:24:36 GMT Message-Id: <202505221824.54MIOak8047184@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 0325cd325deb - stable/14 - sndctl(8): Remove unnecessary val variable from sysctl functions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0325cd325debb26b922c26425a3cc6bc4bcc3896 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=0325cd325debb26b922c26425a3cc6bc4bcc3896 commit 0325cd325debb26b922c26425a3cc6bc4bcc3896 Author: Christos Margiolis AuthorDate: 2025-05-21 19:31:17 +0000 Commit: Christos Margiolis CommitDate: 2025-05-22 18:24:28 +0000 sndctl(8): Remove unnecessary val variable from sysctl functions No functional change intended. Sponsored by: The FreeBSD Foundation MFC after: 1 day Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50397 (cherry picked from commit ac86e65e0e25a3e3fd6f91b17d2db874cea83c3b) --- usr.sbin/sndctl/sndctl.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/usr.sbin/sndctl/sndctl.c b/usr.sbin/sndctl/sndctl.c index f362ce840cf7..412ea33e5adf 100644 --- a/usr.sbin/sndctl/sndctl.c +++ b/usr.sbin/sndctl/sndctl.c @@ -662,12 +662,11 @@ static int sysctl_int(const char *buf, const char *arg, int *var) { size_t size; - const char *val = arg; int n, prev; - n = strtol(val, NULL, 10); + n = strtol(arg, NULL, 10); if (errno == EINVAL || errno == ERANGE) { - warn("strtol(%s)", val); + warn("strtol(%s)", arg); return (-1); } @@ -699,7 +698,6 @@ static int sysctl_str(const char *buf, const char *arg, char *var, size_t varsz) { size_t size; - const char *val = arg; char prev[BUFSIZ]; char *tmp; @@ -710,10 +708,10 @@ sysctl_str(const char *buf, const char *arg, char *var, size_t varsz) return (-1); } - size = strlen(val); + size = strlen(arg); /* Apply new value. */ - if (sysctlbyname(buf, NULL, 0, val, size) < 0) { - warn("sysctlbyname(%s, %s)", buf, val); + if (sysctlbyname(buf, NULL, 0, arg, size) < 0) { + warn("sysctlbyname(%s, %s)", buf, arg); return (-1); } /* Get size of new string. */ From nobody Thu May 22 18:24:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3Gsg4CjRz5x0gW; Thu, 22 May 2025 18:24:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3Gsg1Lq7z3T2D; Thu, 22 May 2025 18:24:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747938279; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9ztWjjVtC9X/VDCn/6qCT9HF8W6oznyKjMJ9pgcYDPs=; b=usPouyYl3CJYzGrrOrYdHgrGTEaYFAglkaJB/FTWBtblhrRFUO1B2/vDy9VTKBhyVtlA8V 1QV+zmZRW7JfBI2CvaWI557sFQ9FC5/DEv/24i9V1yDWx4b2jaXVADltMXpp3QfMB+9I2L yuG7RMBUGgPRoz3zDWwFU/9QaMSHlen+6LadFC94oey4vZ4AXITq5aBYM0YAGB7bJvNCAz AA54OEYiI8r5ssFNhlYWFF5/Pf6DJERUbCsmtCnLAzVCQzm0WMsoTVpgS/pXkYf/ssWkXU dIW0rcbaevGYTCQDGA9R7mCZskJQUYt+fFqBrBeDX4pHG6u0b44Nm26341zFSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747938279; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9ztWjjVtC9X/VDCn/6qCT9HF8W6oznyKjMJ9pgcYDPs=; b=XCgqO83KoVSmw11gCFd4VJ3FnCi9go3OcHhQA8gcT6ONOynmsnxQ+SKasKgelUV+VqRt2H 2+QqKCGkQAOU+KecDOOJnzur0EMw5FV/dgBzlkSduNMMWiss0A0r1B/aK01k7VIjeMpi+d rjVzo0FaQYVGWV9SzKU0YpKSgMH/jmeF7FJQn4KKtSI4W7OKGqeruERdSD+QboBxRfKmrU 01wdoezqljGpDSQ4R4rbWT+zlM1UD3ubwTxQOsI9laalx+x+uSWezNIqg2JPibMZihTC25 uC153iGkOveccoOmc5VNk+cw8JCWy5ZhYR8o+dRE2M9LZNjorTHm26nm4Uv6sA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747938279; a=rsa-sha256; cv=none; b=PoUr6y+6shNtgq9+GKxNL8XLscqYSNF2CTr0qE6uy5NgxQB7j7xBu61oViMvLO4yc8+iI/ bF8xJt3wv52AAmvFT8jeU0//5xqrmZbD6SOQT5jXq+TQAhGQWT+i4QPF5KSsrtAH/hINf9 RbEKhfgOWjiAXGM8liY9fOL3nTsP+sXzTH+/d52zNPBNQbinwjEm57iUG7/2bUTFfVkZo9 zNHjowx7DgztB6phNIdxK+xYwMHdb5szpZo/M7F2uBB/hF/KtEa36KIrVZ+oAikNsmX119 rhOHhhVVizD+QF44Fy9Jh87Tw7elNbCEVzfZAfu7DqS4CuUyqLLIv5eFZ7AUIQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3Gsg0Mt8zXnC; Thu, 22 May 2025 18:24:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54MIOcho047260; Thu, 22 May 2025 18:24:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54MIOcqF047257; Thu, 22 May 2025 18:24:38 GMT (envelope-from git) Date: Thu, 22 May 2025 18:24:38 GMT Message-Id: <202505221824.54MIOcqF047257@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 623ccbc4e4f2 - stable/14 - sndctl(8): Fix dp->realtime List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 623ccbc4e4f2ea70b6be7734de7e214b0182b76c Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=623ccbc4e4f2ea70b6be7734de7e214b0182b76c commit 623ccbc4e4f2ea70b6be7734de7e214b0182b76c Author: Christos Margiolis AuthorDate: 2025-05-21 19:31:28 +0000 Commit: Christos Margiolis CommitDate: 2025-05-22 18:24:28 +0000 sndctl(8): Fix dp->realtime Currently it's automatically set to 0 in read_dev() as a result of allocating dp with calloc(). Sponsored by: The FreeBSD Foundation MFC after: 1 day Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50400 (cherry picked from commit 30fd79b0c0a328536b166e7fa9170b059e711303) --- usr.sbin/sndctl/sndctl.c | 189 ++++++++++++++++++++++++----------------------- 1 file changed, 98 insertions(+), 91 deletions(-) diff --git a/usr.sbin/sndctl/sndctl.c b/usr.sbin/sndctl/sndctl.c index 4d3ae0cf526c..156c845481c5 100644 --- a/usr.sbin/sndctl/sndctl.c +++ b/usr.sbin/sndctl/sndctl.c @@ -333,6 +333,96 @@ bytes2frames(int bytes, int fmt) return (bytes / (samplesz * ch)); } +static int +sysctl_int(const char *buf, const char *arg, int *var) +{ + size_t size; + int n, prev; + + size = sizeof(int); + /* Read current value. */ + if (sysctlbyname(buf, &prev, &size, NULL, 0) < 0) { + warn("sysctlbyname(%s)", buf); + return (-1); + } + + /* Read-only. */ + if (arg != NULL) { + errno = 0; + n = strtol(arg, NULL, 10); + if (errno == EINVAL || errno == ERANGE) { + warn("strtol(%s)", arg); + return (-1); + } + + /* Apply new value. */ + if (sysctlbyname(buf, NULL, 0, &n, size) < 0) { + warn("sysctlbyname(%s, %d)", buf, n); + return (-1); + } + } + + /* Read back applied value for good measure. */ + if (sysctlbyname(buf, &n, &size, NULL, 0) < 0) { + warn("sysctlbyname(%s)", buf); + return (-1); + } + + if (arg != NULL) + printf("%s: %d -> %d\n", buf, prev, n); + if (var != NULL) + *var = n; + + return (0); +} + +static int +sysctl_str(const char *buf, const char *arg, char *var, size_t varsz) +{ + size_t size; + char prev[BUFSIZ]; + char *tmp; + + /* Read current value. */ + size = sizeof(prev); + if (sysctlbyname(buf, prev, &size, NULL, 0) < 0) { + warn("sysctlbyname(%s)", buf); + return (-1); + } + + /* Read-only. */ + if (arg != NULL) { + size = strlen(arg); + /* Apply new value. */ + if (sysctlbyname(buf, NULL, 0, arg, size) < 0) { + warn("sysctlbyname(%s, %s)", buf, arg); + return (-1); + } + /* Get size of new string. */ + if (sysctlbyname(buf, NULL, &size, NULL, 0) < 0) { + warn("sysctlbyname(%s)", buf); + return (-1); + } + } + + if ((tmp = calloc(1, size)) == NULL) + err(1, "calloc"); + /* Read back applied value for good measure. */ + if (sysctlbyname(buf, tmp, &size, NULL, 0) < 0) { + warn("sysctlbyname(%s)", buf); + free(tmp); + return (-1); + } + + if (arg != NULL) + printf("%s: %s -> %s\n", buf, prev, tmp); + if (var != NULL) + strlcpy(var, tmp, varsz); + free(tmp); + + return (0); +} + static struct snd_dev * read_dev(char *path) { @@ -343,7 +433,7 @@ read_dev(char *path) struct snd_dev *dp = NULL; struct snd_chan *ch; size_t nitems, nchans, i, j; - int fd, caps, unit; + int fd, caps, unit, t1, t2, t3; if ((fd = open("/dev/sndstat", O_RDONLY)) < 0) err(1, "open(/dev/sndstat)"); @@ -456,6 +546,13 @@ read_dev(char *path) dp->autoconv = (dp->play.vchans || dp->rec.vchans) && !dp->bitperfect; + if (sysctl_int("hw.snd.latency", NULL, &t1) || + sysctl_int("hw.snd.latency_profile", NULL, &t2) || + sysctl_int("kern.timecounter.alloweddeviation", NULL, &t3)) + err(1, "%s: sysctl", dp->name); + if (t1 == 0 && t2 == 0 && t3 == 0) + dp->realtime = 1; + if (!nvlist_exists(nvlist_get_nvlist(di[i], SNDST_DSPS_PROVIDER_INFO), SNDST_DSPS_SOUND4_CHAN_INFO)) errx(1, "%s: channel info list empty", dp->name); @@ -658,96 +755,6 @@ print_dev(struct snd_dev *dp) } } -static int -sysctl_int(const char *buf, const char *arg, int *var) -{ - size_t size; - int n, prev; - - size = sizeof(int); - /* Read current value. */ - if (sysctlbyname(buf, &prev, &size, NULL, 0) < 0) { - warn("sysctlbyname(%s)", buf); - return (-1); - } - - /* Read-only. */ - if (arg != NULL) { - errno = 0; - n = strtol(arg, NULL, 10); - if (errno == EINVAL || errno == ERANGE) { - warn("strtol(%s)", arg); - return (-1); - } - - /* Apply new value. */ - if (sysctlbyname(buf, NULL, 0, &n, size) < 0) { - warn("sysctlbyname(%s, %d)", buf, n); - return (-1); - } - } - - /* Read back applied value for good measure. */ - if (sysctlbyname(buf, &n, &size, NULL, 0) < 0) { - warn("sysctlbyname(%s)", buf); - return (-1); - } - - if (arg != NULL) - printf("%s: %d -> %d\n", buf, prev, n); - if (var != NULL) - *var = n; - - return (0); -} - -static int -sysctl_str(const char *buf, const char *arg, char *var, size_t varsz) -{ - size_t size; - char prev[BUFSIZ]; - char *tmp; - - /* Read current value. */ - size = sizeof(prev); - if (sysctlbyname(buf, prev, &size, NULL, 0) < 0) { - warn("sysctlbyname(%s)", buf); - return (-1); - } - - /* Read-only. */ - if (arg != NULL) { - size = strlen(arg); - /* Apply new value. */ - if (sysctlbyname(buf, NULL, 0, arg, size) < 0) { - warn("sysctlbyname(%s, %s)", buf, arg); - return (-1); - } - /* Get size of new string. */ - if (sysctlbyname(buf, NULL, &size, NULL, 0) < 0) { - warn("sysctlbyname(%s)", buf); - return (-1); - } - } - - if ((tmp = calloc(1, size)) == NULL) - err(1, "calloc"); - /* Read back applied value for good measure. */ - if (sysctlbyname(buf, tmp, &size, NULL, 0) < 0) { - warn("sysctlbyname(%s)", buf); - free(tmp); - return (-1); - } - - if (arg != NULL) - printf("%s: %s -> %s\n", buf, prev, tmp); - if (var != NULL) - strlcpy(var, tmp, varsz); - free(tmp); - - return (0); -} - static int mod_bitperfect(struct snd_dev *dp, void *arg) { From nobody Thu May 22 19:29:27 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3JJR3yR0z5x4DK; Thu, 22 May 2025 19:29:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3JJR3DC1z43PW; Thu, 22 May 2025 19:29:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747942167; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A7AEYs+TFG++h65pF9BYTSlPAGG+4/Ew5gJIU0d+KW0=; b=PO8qF4N5bBqeMVsQl6NiTqKtishSZNZfVXFWFIYuGLZl2Z6u4M9KysbhQW3HFmvBSNivEc bPOeLVQNj9itQU02B1XCcKBDK4RwNBEm+0Qn75x3ZMkAW3pLU+zX9X2dDbrSCWHkV1gkLv 7tv8D1hI52JISxo02cTV7RJaAMhnQGvc+0cCvSJqhkghTYxn39jWTlg4QXHbfudOabFDMH HqIedEsASFtTyCC2Lra+bW68xbrVgEf+Dlf8p7anUXYvvSZ5yBWt13HKs+gSzIjj2dnyf1 eQi5IZUjlElP2+akUVWH7bTBSVy2qclOs5FzBb7hmmCIUu4Zqxi/WxjfBOsbqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747942167; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A7AEYs+TFG++h65pF9BYTSlPAGG+4/Ew5gJIU0d+KW0=; b=H15VE9061xaNeSYoQ96aHb7ZeQqObvjX8n0ERB2+W+IEUnjXbjf5ZPE5OqMrGeSo9/DNjg trapP5MSf5MEGnI4/PWwCLlMFhBNrqCJJ/rTGJXCF2j7P0OQ2jC0tk26TjPYMNybvz9sCb GhJUuFGiJ+kBzMqXfUWZHpnqUcINbb82+HezTPhXHo60dVObD5yzNc8IqbfoCk5z8HlXMQ ywwnbNAgs+8EPZFLpncAa0KEUnLewzPg7NEo3WnKC13S1J1yj1vakQMPM93/E8buaCBv4D PEBKOU8Eq/xQLrbyF47TlUoDkzjHRHJmAdUuZY2Ope3/Aua9bctHL6caDjbQnQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747942167; a=rsa-sha256; cv=none; b=XRBIo9haHgHcudxPIRz/Yg4io0RdfgzO0wUzuZYN8ArRNJiLUW/NmDj555aExNnymO/ArK fkS4AVXrldpeRrF9MBJBZj16ys3sYw6lksNqyB9brzM/gfEYPONwbcPpW07Bsv2z9/kVbY gIdIrjybrt5xQmZ80Ta6SjGbSEL1aa9ymIsB5Y08bGBlhKOBdxndT37vqmLJvIJELxi0kO EGzL4hhYWJG+gxNR1s39ZAXonOcgmIjXfKXKTz+ZcEiDPm94oQoyTYK6WPDszLQD9sDrOl 4m7pc/uDdxH4XPM9Q0ebXuCPLgLyhW98mnMoCdNmyR6Sqy9MMF3aOLcCN8TCvw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3JJR2jwfzZvq; Thu, 22 May 2025 19:29:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54MJTRg7061635; Thu, 22 May 2025 19:29:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54MJTRwo061632; Thu, 22 May 2025 19:29:27 GMT (envelope-from git) Date: Thu, 22 May 2025 19:29:27 GMT Message-Id: <202505221929.54MJTRwo061632@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: fb6b1a797349 - stable/14 - package: fix dependency generation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fb6b1a797349992d8f166a2724eab2caf59abe28 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=fb6b1a797349992d8f166a2724eab2caf59abe28 commit fb6b1a797349992d8f166a2724eab2caf59abe28 Author: Lexi Winter AuthorDate: 2024-04-29 14:30:46 +0000 Commit: Lexi Winter CommitDate: 2025-05-22 19:28:01 +0000 package: fix dependency generation A bug in release/packages/generate-ucl.sh causes package dependencies (other than shlib depends) to not be generated correctly, meaning packages are missing their dependencies. generate-ucl.sh creates the UCL file by: 1. copying ${uclsource} (template.ucl) to ${uclfile} 2. appending dependencies to ${uclfile} 3. calling generate-ucl.lua on ${uclsource} to create ${uclfile} This breaks because the dependencies added in step 2 are overwritten in step 3. Fix this by calling generate-ucl.lua with ${uclfile} as both the input and output file, so anything we added to ${uclfile} is preserved. PR: 286551 Reviewed by: des, imp Approved by: kevans (mentor, stable/14 mfc) Pull Request: https://github.com/freebsd/freebsd-src/pull/1203 (cherry picked from commit e05b6502f9ca36860236644884f12eff8e3243c4) --- release/packages/generate-ucl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh index ec9cd0149228..064919cb3174 100755 --- a/release/packages/generate-ucl.sh +++ b/release/packages/generate-ucl.sh @@ -153,7 +153,7 @@ EOF PKG_WWW "${PKG_WWW}" \ PKG_MAINTAINER "${PKG_MAINTAINER}" \ UCLFILES "${srctree}/release/packages/" \ - ${uclsource} ${uclfile} + ${uclfile} ${uclfile} return 0 } From nobody Thu May 22 22:21:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3N6V2S4Sz5w1nG; Thu, 22 May 2025 22:21:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3N6V1tCRz3Ld1; Thu, 22 May 2025 22:21:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747952466; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UTZsihK3htR1dGiJH81nvsQvq4Os8/rQJIRvOYFccZM=; b=tvJbVFry+DgL8iKX0sD15eXuvliKlYmL4Dqh8PCHPN9+ZaQDbSu6jqL9Oya78dpuaSPoGs 2srH68a40BRWPnquT89m2xYuaHlrZVarn4G0vlMSJLUK7Mcv5d5yzsNVzWLfahoamOnB6j sHN/vCRPTKU+sdrLPaEFbST8FaHqI6RPYBdwc8R6OgxhzlNhnD/zPQ6+R6ZXpkvg/6tZZ3 1BJJRMP86NmmnqR4jpOuXPle6of5DpeGdF1i0vcRvzPOKk7g8ldgQi40lKP4y9+ISg54f9 01+84Lpj1ME0QEud/oWhLPQ+prsnR4WMbsPVjJ5HfM4aelvoRp75H1KykyvSLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747952466; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UTZsihK3htR1dGiJH81nvsQvq4Os8/rQJIRvOYFccZM=; b=LFbmzJsBMU68AgVIxy9798sbCmpBb3HEIwgyxMAUNNvMgFq9RkXippbYHsOs4fsv3hSmPK Tst9fcRyEn4HIHHCuVhF33vEHIimj9Ggm5i8CDUaWsfJ1C2WGNqjrsRVVzdWxwh5XNUc++ t8SNxuTJSGIzcx+HQJHyaWoLUL49oDJfLLLNIkMDlHCzsgTh8g0mAXUSDQawa+W+rUmw2i +ZDdJWDYLidvbt2Q3dwaxf9qmvnu3AEFpuJ9M6SlPkGxmivNUv+P9yn+AInzFQWxB76CA2 IQwSG0rJrN5DYm7rqGVxTdSkZs9MS69qBlIM/11UE/QaYCkrOev5E850sH2qAQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747952466; a=rsa-sha256; cv=none; b=YTlhxq77yXHS25ljnDnF0RYEOAarSNc+Q8Efr6lJ1iidEY6RwteUZkJOKEoHl98/YDIDIx nsxSqpVgwPODaDIiAljD9K4xVdHlPwuhi5Lqoid9FthknjJJye2zHrOcBQqktky4yzPSdv GkNs//t50x7r21Yip7m+8R04/57pz7aTAWU/8O6oqc5xY+tdAO6lmSLSFsbohJWJHSAudx tYVevTOw/gAglrcZFbr1NGJK2IG4a3WaTjxl9oVNjPf1m6zMLsj9fZCa5upDf1lUURn22y bEDknwilN6pcDdqdlE0taDDwvX4y6cQJ7ddpv3Wl/TvEZAskSIQmjOGrmvxK/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3N6V1SRRzfN7; Thu, 22 May 2025 22:21:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54MML6xs090454; Thu, 22 May 2025 22:21:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54MML6SL090451; Thu, 22 May 2025 22:21:06 GMT (envelope-from git) Date: Thu, 22 May 2025 22:21:06 GMT Message-Id: <202505222221.54MML6SL090451@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 63b632417430 - stable/14 - newsyslog.conf.d/opensm.conf: remove leading blank line List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 63b632417430a421d1950ac3c3753cba382fbfc7 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=63b632417430a421d1950ac3c3753cba382fbfc7 commit 63b632417430a421d1950ac3c3753cba382fbfc7 Author: Dan Langille AuthorDate: 2025-02-23 01:42:33 +0000 Commit: Lexi Winter CommitDate: 2025-05-22 21:44:55 +0000 newsyslog.conf.d/opensm.conf: remove leading blank line Reviewed by: jlduran, ivy, kevans Approved by: kevans (mentor) Pull Request: https://github.com/freebsd/freebsd-src/pull/1603 (cherry picked from commit 2d22d54fc4abc1b4901cf62ef3888172df6798cd) --- usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf b/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf index 5c7d1c74fdbf..1b3570c89619 100644 --- a/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf +++ b/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf @@ -1,2 +1 @@ - /var/log/opensm.log 600 7 1000 * J /var/run/opensm.pid 30 From nobody Thu May 22 22:21:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3N7N1JY7z5w1yx; Thu, 22 May 2025 22:21:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3N7M727wz3MQZ; Thu, 22 May 2025 22:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747952512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Erzl2DVQNxVf1deDOIEKXcp9Me708OnCJBgTguP8hcI=; b=SoivaCqgakrgFYrFI5XBm/KACH0d2VAATFjANCZIgRNmRNOYqqriui7BTcafChOb90UOKR qrN5jJ26v+qP0lUwL3wAqY5n9p5peMxcVMyO4b6guXbvLf7nCzXMe+ZGRY6uLCJkQSvU1q bGCAHFFJPeNxpXlKnfu31TNgmMAev1/MsJKnAZ4+56hx64pC3e5Ys/xmqj0bk1dcRMdx0b Q35QCmZmV+mB5gVUvBr+25BA97DsClcMwsgZ2HCjplDQN/JvuHlMkIQ10eWoy0iMBvM3Og YoewoSr23XzMd/qTMPHKmiRf6Q4oDP89/58y3d8aT5Kg8NoUg9G7Y3Z0AQalQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747952512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Erzl2DVQNxVf1deDOIEKXcp9Me708OnCJBgTguP8hcI=; b=EDssrcJ+CYD5jeDX+LbcTtjIWujcfcrmIm9oopE4K7FjEJ1lwNCZbZsC10cbHZwSyWLKhK FgdYxVHp0PIWmyfxBVHmiUrlBB8TiUIQwoOtX1HKIzyfX4dd2Do755lKx7HV02m31AxO0A mnlLt0+nOJ5wxaFAGrZW5aD18BTxwUdsKA/V37XBgKGS5ewJtxUvqyLqlRwsQ84Xcl7AP+ vSG1+85fB7CYK6PkR+ceXpR7zeJodFleoNcFbgxjVer2wXjzqgAxPhy2GoQagNeFbOUzts y/Y6rvjleR6if8rpGBpI8PrJAwOgAt5hmo/5UtkHnwYhM9u+/NrpGRdIv23A7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747952512; a=rsa-sha256; cv=none; b=rgQMMrl7Lxg/7/Uqd8aqZCK4vb+VVgofKWiUuMXFmFJPRqbpiqnNsGynFKjhJMx8n5jER/ MXwwGLwroJwqjzfiHGXbu0E0wDD/8EdOJzxT2mUm2RzwQl806htpdF4m50enzPBdGUoe6+ 40nl4uBMqQVsKjyP3ifmnKJaDqjVjhNeOIExCHWKj6wNw0iAf557A2TqDZn/OZmWMwudWv VHbaQ+gNUdsbV8t/n4ft95Zn/XJ6LEzy+vjLgmwJq7zmIEaDbDKInLA89HOPNF85Rgl5vh JyT2ZtCoBKVDEVTi4OsNoZ/1Yfh9IRfleTYm+OwA2ImEHhXdAKIit/yPQdpv2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3N7M6b3vzgS0; Thu, 22 May 2025 22:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54MMLpVC090810; Thu, 22 May 2025 22:21:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54MMLp49090807; Thu, 22 May 2025 22:21:51 GMT (envelope-from git) Date: Thu, 22 May 2025 22:21:51 GMT Message-Id: <202505222221.54MMLp49090807@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 5fa8cce7e949 - stable/13 - newsyslog.conf.d/opensm.conf: remove leading blank line List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5fa8cce7e949008c05730934fd23ce8b9b9102be Auto-Submitted: auto-generated The branch stable/13 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=5fa8cce7e949008c05730934fd23ce8b9b9102be commit 5fa8cce7e949008c05730934fd23ce8b9b9102be Author: Dan Langille AuthorDate: 2025-02-23 01:42:33 +0000 Commit: Lexi Winter CommitDate: 2025-05-22 21:45:13 +0000 newsyslog.conf.d/opensm.conf: remove leading blank line Reviewed by: jlduran, ivy, kevans Approved by: kevans (mentor) Pull Request: https://github.com/freebsd/freebsd-src/pull/1603 (cherry picked from commit 2d22d54fc4abc1b4901cf62ef3888172df6798cd) --- usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf b/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf index 5c7d1c74fdbf..1b3570c89619 100644 --- a/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf +++ b/usr.sbin/newsyslog/newsyslog.conf.d/opensm.conf @@ -1,2 +1 @@ - /var/log/opensm.log 600 7 1000 * J /var/run/opensm.pid 30 From nobody Fri May 23 00:04:28 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3QPn244Yz5w7RD; Fri, 23 May 2025 00:04:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3QPn0l5Sz3Sgj; Fri, 23 May 2025 00:04:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747958669; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8LUiBm2VO3EPdXTc7De03V+Mg9Z2wOC+/uttCtQusfw=; b=lhlSuzm04eY5X8zqnxo0oBP68VCUhFHUdMInSbUvMxFsTjGsn8VpKK/2GhoKKdl+izgSI5 DjGxieWyv9HpQHRtM5XU6o88uY1jDbVrCn8fWINejFqrhVwS5GDr1DL6+bFUuHXeU49uvC MJb6cau7nyjkKoezXGJ2aq07R9z8rfLyu7ndz/CTeQWSt1cotuosxice8ECWwnT9Wob8E/ yUvxZDVAEL1IlQs0gADtMLz+LWfa1SVNVbPhqAOWlbsRHyLU2+TuVohqkJJCg8JeNVac9+ B5/Ds88/7CWde/NU9OuDF4vduYBf7okOdmjmvxoM7QMYhcPU6BTJ5YH0AmzTmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747958669; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8LUiBm2VO3EPdXTc7De03V+Mg9Z2wOC+/uttCtQusfw=; b=URHLPxBbLTeEAe7q6+MNYS6KXeW0Kd0F2JeCkK0eshIOpmquEzg/yLVBvpWgDyu5RZdbTm mF0vm+QjIA1V2A8pNN1cTvghT2Ys+LLWQxZKW3qmPMZJs8nB8v28nQsDGed4KSoTg6OzEl OeZHIUq+GE9WSu96vz2cdpmZmgXq4sLju1Ob4xGX0K3WJksd8CVqtmkSFI1elN/znMSieC be1lNDoVOHJfcAMmY7swj4bLN3ZST/ENhdaMgFBHXcKfg2YfeoV8m+GoFAcQoco1hUaGHr 2M44zcWA93SF5FhRK/Lnfgzn9cZlv3nslc24+gzqzS5GNG/hOiC1hvCUozwDfg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747958669; a=rsa-sha256; cv=none; b=tBprzVcj6HKZ7sBYbDJ/iXebklMR8Y8wjU2FnFQiQXhuK5aY5vYQb9re24jECgwLa5ow5p 6xdRX+IsamRbLM2z9Di+yaLu4iBInRWBeAoMer1YYzQeIlWozrxXYJd8JbgDKPWGFsTmsC 3Gvd6YsZT0omiEcStPfM6HfXYYaj/Q+45zWuiLV376FMF2zkIvG1kOrDXcRSqzPUL6Ah0w wrpS5FMSxtuomdXVDwHC+BggmqUE+oPxXh1nvg6MlqOUHfBMCGLDUzUphltUgEdlb4uk/g Ko1U5XWSIjXnODa6VabSt8UYeqv7UR6GFMLQ0n8v0urcso2ULBeDqeo/4+pFmA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3QPn0CjQzjmv; Fri, 23 May 2025 00:04:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54N04Smg085687; Fri, 23 May 2025 00:04:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54N04S47085684; Fri, 23 May 2025 00:04:28 GMT (envelope-from git) Date: Fri, 23 May 2025 00:04:28 GMT Message-Id: <202505230004.54N04S47085684@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 6e27b15e6aee - releng/14.3 - package: fix dependency generation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 6e27b15e6aee10c72dbf8247a90b87a7c0b3c241 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=6e27b15e6aee10c72dbf8247a90b87a7c0b3c241 commit 6e27b15e6aee10c72dbf8247a90b87a7c0b3c241 Author: Lexi Winter AuthorDate: 2024-04-29 14:30:46 +0000 Commit: Colin Percival CommitDate: 2025-05-23 00:04:12 +0000 package: fix dependency generation A bug in release/packages/generate-ucl.sh causes package dependencies (other than shlib depends) to not be generated correctly, meaning packages are missing their dependencies. generate-ucl.sh creates the UCL file by: 1. copying ${uclsource} (template.ucl) to ${uclfile} 2. appending dependencies to ${uclfile} 3. calling generate-ucl.lua on ${uclsource} to create ${uclfile} This breaks because the dependencies added in step 2 are overwritten in step 3. Fix this by calling generate-ucl.lua with ${uclfile} as both the input and output file, so anything we added to ${uclfile} is preserved. PR: 286551 Reviewed by: des, imp Approved by: re (cperciva) Approved by: kevans (mentor, stable/14 mfc) Pull Request: https://github.com/freebsd/freebsd-src/pull/1203 (cherry picked from commit e05b6502f9ca36860236644884f12eff8e3243c4) (cherry picked from commit fb6b1a797349992d8f166a2724eab2caf59abe28) --- release/packages/generate-ucl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh index ec9cd0149228..064919cb3174 100755 --- a/release/packages/generate-ucl.sh +++ b/release/packages/generate-ucl.sh @@ -153,7 +153,7 @@ EOF PKG_WWW "${PKG_WWW}" \ PKG_MAINTAINER "${PKG_MAINTAINER}" \ UCLFILES "${srctree}/release/packages/" \ - ${uclsource} ${uclfile} + ${uclfile} ${uclfile} return 0 } From nobody Fri May 23 00:04:29 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3QPp4fC6z5w7Tp; Fri, 23 May 2025 00:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3QPp1FfBz3Syy; Fri, 23 May 2025 00:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747958670; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PWVJKkQmDsu2YrhVQToxEK+a8NDDFuIJ0vFHCrT2Whk=; b=FeSNKee/bN5Pfy2lBnZzWkQq5ZETt0BEKe9wJhpTebl4PYQuCxp78o+fEMcrD3gsWakAOP gLXLctuyfPdnqK9n93WpGJ3qvcUJklpJeVes3wWbEMubTODNvUtNXh1dKdl8/zxFMNPR39 j9XxeP6iNhsJ8BGfITDWxlNDhU68iCwP3QPS3XeG4O8/bqacZXrT3aTIJhf+DhJp8sJUht T3pipC0Q6IKHZmsW3uExljiNj8yrpXOKXKprir/fWAPWECH/jDuQoSxpxZkr7KDKxV6xXq RQsExA6dymR3F/TEll305XcmYCOazV/Z81xryjNxyDNNG6+Y27cjF+S2ZH6UVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747958670; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PWVJKkQmDsu2YrhVQToxEK+a8NDDFuIJ0vFHCrT2Whk=; b=yeL6g6lY0NXleQP1Z6TDU3Bt9cnGo4rpR4bN2KUOE+atBaIEk1o5SJeLxX2Ifj3OpKHCyJ QfoXvzteijRpU7JICBY5fVizQrx9GnBu+4/bWGbShqQRL2U8FuBgFu/jgJm6s+0Vl/lYlj YCRgU1LSQ4t/i7CITdsBEOSOs9lNk/u0/EJ+hnGNaugRnsVISlpP8CNlIUU0nQtL8bUtMg MVq6pgMatSPPjrSBuDhDbzPKwWPpICiaEZXlb6nE1CUanmPGaBaVpAO71UiENzMGac+BUF lhJ+e08/syT3ES0k6Wp8eAkXl2gRWuHFwFTukMCIKiKtXZ+/e2sdwGJqvwcUkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747958670; a=rsa-sha256; cv=none; b=H/o9y7/3D237400SJCWoNuRGj2FoRa39gQ73rpi4Oi+QB+ulNs8h+N1rwR+9s0ImahgOeP GJQJrwqXkQWGOqiuP1NFFZlI9txrwJLoCisWa9Qt11NZheFK00/MTsljJZcbG/7LNNmXPm tFCUkKq8quYZyuy6oYvN+/DRT+5vaBZiRzqVF8QCmFBsdFXxJKbZGcxOlEIV+1QNhsyKnb XC62diop9VqXjwThg+5FG3Ui/WkgQBtNcYYBsAlM9Bm1izul5/p75IXPkuwuuJeZWmWfub q4Y1t7FiUSeasH2NkzCkddF74zsWtGw8tVPrZb7Hb3me9pLgI7KlXmcvkVazEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3QPp0LZWzjKM; Fri, 23 May 2025 00:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54N04Tmh085721; Fri, 23 May 2025 00:04:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54N04Tha085718; Fri, 23 May 2025 00:04:29 GMT (envelope-from git) Date: Fri, 23 May 2025 00:04:29 GMT Message-Id: <202505230004.54N04Tha085718@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: c4c990781645 - releng/14.3 - 14.3: Update to BETA4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: c4c9907816453acf362ac3622e144b4aa6d5c25c Auto-Submitted: auto-generated The branch releng/14.3 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=c4c9907816453acf362ac3622e144b4aa6d5c25c commit c4c9907816453acf362ac3622e144b4aa6d5c25c Author: Colin Percival AuthorDate: 2025-05-23 00:00:00 +0000 Commit: Colin Percival CommitDate: 2025-05-23 00:04:19 +0000 14.3: Update to BETA4 Approved by: re (implicit) Sponsored by: Amazon --- sys/conf/newvers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 13c927f499dc..8c988150f902 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.3" -BRANCH="BETA3" +BRANCH="BETA4" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Fri May 23 08:42:23 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3dvN4qVQz5wxqN; Fri, 23 May 2025 08:42:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3dvM51FXz3J8s; Fri, 23 May 2025 08:42:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747989743; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y95zPBLgL85Pm+jU7j8Fz5Kc3geVX8md/iKtFCWAXgE=; b=TrXbDiYTv8N9MgCeszh4r6U8/PzEBm0ZkZi1Uumuao1H53Ccc4bACIyLxrQ7jYckpVvPAx BFJpSsoStGqcY76m4MLLIq1fIYHvoFx1AKGz8dwq0rvI7gM3CNwSYiBAnKkYOE4J3Zvvtd cB0MtAlAEUDktkLKXmx3s8SHjVoQ/TcAKHv+KhrkmWwH/2RQol+6q4bjS0Fmf8VzdS4cDB ydOHv64yrLFm/RjWn/dViXzRvgElV7Aj6iQeX2zuGbfWm5g23JS+S9zbxfEqLjecyG/oXv CMrf+ClAzEsx/dj02igg48m0YNJ3JB9eprqZsp6Yy/2uUTq7EC8Fk1W+NDBJYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747989743; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y95zPBLgL85Pm+jU7j8Fz5Kc3geVX8md/iKtFCWAXgE=; b=acKRCnQnXMbtpkEH9Vw+hWrOVnMC3bGd5RPytyRSCftvA0jYkr/GTFUAdpCsAKQySQog5u HvZtfn1dCD5xgyXMJFt9h4JRHm77x0V5IpJHC/Frq1xZvLgJ4Z75OLSzff57lgchQps6EU UnsCnFXhYo2EMA0ZVJku/+bqtfxJsqOc3X1roqUW35sjNwZOXgBYxIw7m3fQoTv392VyP0 6QctzkEfxSRVOmW+oQSIWm9TFokyve/MurtKnMJFcGpGDOl6TuENQjmZi7Jo6FP6O7Jn9a OruD5UNMuLFd1uRlBIJs/eWhLzbEsnJYT+tPW8/rnfWcpAIxeBnR/GPmN5wGhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747989743; a=rsa-sha256; cv=none; b=Xjx13LnmB38msoSgnOMr1CtUA6gweDkn7YYCbB0vKihg/6ChWFTgAW1sdu82r8mlQ4iubi zVZTrynbSmwrpSLae9ZdkussA/RgBvsZN8kaLChFV7zN1dEA9NpntzFttrFGiBcF2XHtw1 RJDycdQqOJV6mBHyiB0Osi7Y45VXAATrHmio2tI3FwaJozizUdEtGhzLfxMxHFbQQEEW1E gABF6cC8tGKMefE9FhJS+X0Zk/oY1Uhmzzn+tfV8SmSkdG8cnAC4pQ+0pxUhKIWY+y5CDC 8tbq4YDfI1sy7zY2LywuHUNViNmdVl6BsCehLA4EJGZ2XOBFD+ZpVCk4xw6j5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3dvM4Zw1zylR; Fri, 23 May 2025 08:42:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54N8gNZ8054651; Fri, 23 May 2025 08:42:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54N8gNCK054648; Fri, 23 May 2025 08:42:23 GMT (envelope-from git) Date: Fri, 23 May 2025 08:42:23 GMT Message-Id: <202505230842.54N8gNCK054648@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 4e0a5fd7b608 - stable/14 - service(8): Allow for passing no arguments to the service script List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4e0a5fd7b608d823767ad239db68cb961455ba6b Auto-Submitted: auto-generated The branch stable/14 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=4e0a5fd7b608d823767ad239db68cb961455ba6b commit 4e0a5fd7b608d823767ad239db68cb961455ba6b Author: sd@mostnet.ru AuthorDate: 2025-05-09 14:48:27 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2025-05-23 08:41:58 +0000 service(8): Allow for passing no arguments to the service script Currently, service(8) requires the user to provide a command to the rc service script. For example, service cron does not even run the cron rc service script but instead shows the usage message of service(8). This patch makes it so running the rc service script with no arguments via service(8) is closer to running the rc service script directly (e.g., /etc/rc.d/cron). Long story short, for most of the rc service scripts this change means that running "service FOO" now shows the usage message of FOO instead of the usage message of service(8). PR: 255115 Reviewed by: bnovkov, christos, imp, lme, markj Approved by: bnovkov (mentor), christos (mentor), markj (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D47328 (cherry picked from commit 7ffedfe14ca85aa3474980092a732d4e49309c62) --- usr.sbin/service/service.8 | 4 ++-- usr.sbin/service/service.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/service/service.8 b/usr.sbin/service/service.8 index 380fbc8c1269..7528fa04b0f1 100644 --- a/usr.sbin/service/service.8 +++ b/usr.sbin/service/service.8 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 29, 2024 +.Dd May 9, 2025 .Dt SERVICE 8 .Os .Sh NAME @@ -48,7 +48,7 @@ .Op Fl v .Op Fl E Ar var=value .Ar script -.Ar command +.Op Ar command .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/service/service.sh b/usr.sbin/service/service.sh index 245430107277..8b7aa937967b 100755 --- a/usr.sbin/service/service.sh +++ b/usr.sbin/service/service.sh @@ -162,7 +162,7 @@ if [ -n "$RCORDER" ]; then exit 0 fi -if [ $# -gt 1 ]; then +if [ $# -gt 0 ]; then script=$1 shift else From nobody Fri May 23 08:45:18 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b3dyk47Vjz5wyR4; Fri, 23 May 2025 08:45:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b3dyk3ZKCz3KcN; Fri, 23 May 2025 08:45:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747989918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0wWA6j8yr7CebURdZUmf3g1FKE1hmKbNtFNbPJ+JroU=; b=QUuhlx+X3OzHCyyNT1bRtKMkPkn+oJSrT0YA9GTRtYmhfyt7qmAkp3EZmC1bgZjw0af6eZ egeReW8ZSxEb24gBL3w0n1UEUrBe+mDVFxC9hN8vVHjPAHrDHcgt05EVXYIBr6UOKGo55d zujZFXRchwR/Y8pKx4PnZTL4nofkjDNaW0LCvlhactU/f6/cvN5L9R0TJc4hkVFPwKjpj3 WmQ6McOXwpK2FJsJuPo6VUBjXUCJ7dUM3xWw/EOsmyYRfoO3PFi9gQzCbpLr9sPUDN+r+V jUVTeurEiIfkbwnIyZPKr0Rh7dqssjETzLNiFHNPMHhD6WMTwPCjesXzwh9TTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747989918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0wWA6j8yr7CebURdZUmf3g1FKE1hmKbNtFNbPJ+JroU=; b=ZR6ucrvatj+SQFjn3hT6qDxNngvr95QMv3P0B9Le+XApS0vb47naRx4bvYWYzRKgxc87aj IrIFdNgO0MUjX5qdZk5LBV8GRXL7qVGgJjpho6E6PAj5Za4KhILNLP/tzfSjz0IdPflxMG FCr0gVRncevUvhMotwb6bERR+AWz3LGuAdHUZpZIB984awn48iTopCIpxVKR+CFhgL8EZc Ukq5WHF51Dtgu3IyPJzTV4S2vF/PktQlB4WRtli2wVzHzwhTnWHbIiyKFqCZ4f1IS+ZXFA Vk1ImQjp+Yuw51sejFrHqYHpMWA8KTV3tgg2jtkDULi+FK8mz3RaUIIrZTaF3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747989918; a=rsa-sha256; cv=none; b=H+/G6/nfH5LL9MrQJZYvlAGd9y7rCj/Q4L1WXRct8hTBTEr+2qKjQ8Rrb8+yYeRkh+EQUy 6dWBFvCnrqXNptSf1A20lWTcRhGh3v23U9yzl6SRlqBQMGjOv2UTcfT64CMKhQHIqi3mjN I11HZsg+8zKntA/5auRQoeD4J21tIVcTEVDGDcBxc606lXJ3FJS6QUyuGEyA9ki4dGhEtQ kwzjZg4iENhMFWWbffZr3wtSKIHzlSjCkwzxpkOLuLC9KrS/18vjcz9tErlh/MJBnqSeCr Mb1wL1YAqWQquc7SUo7RL+g0GkRlUx8WTa5x01Jct4oHU31kPSg0R3CsHYgd7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b3dyk2KvRzyLy; Fri, 23 May 2025 08:45:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54N8jIX8058249; Fri, 23 May 2025 08:45:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54N8jIJG058246; Fri, 23 May 2025 08:45:18 GMT (envelope-from git) Date: Fri, 23 May 2025 08:45:18 GMT Message-Id: <202505230845.54N8jIJG058246@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 50cf49f6011f - stable/13 - service(8): Allow for passing no arguments to the service script List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 50cf49f6011f861c1824303e26fff1655fc3e54a Auto-Submitted: auto-generated The branch stable/13 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=50cf49f6011f861c1824303e26fff1655fc3e54a commit 50cf49f6011f861c1824303e26fff1655fc3e54a Author: sd@mostnet.ru AuthorDate: 2025-05-09 14:48:27 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2025-05-23 08:43:58 +0000 service(8): Allow for passing no arguments to the service script Currently, service(8) requires the user to provide a command to the rc service script. For example, service cron does not even run the cron rc service script but instead shows the usage message of service(8). This patch makes it so running the rc service script with no arguments via service(8) is closer to running the rc service script directly (e.g., /etc/rc.d/cron). Long story short, for most of the rc service scripts this change means that running "service FOO" now shows the usage message of FOO instead of the usage message of service(8). PR: 255115 Reviewed by: bnovkov, christos, imp, lme, markj Approved by: bnovkov (mentor), christos (mentor), markj (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D47328 (cherry picked from commit 7ffedfe14ca85aa3474980092a732d4e49309c62) --- usr.sbin/service/service.8 | 4 ++-- usr.sbin/service/service.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/service/service.8 b/usr.sbin/service/service.8 index c367f3bc12a6..51a5ec665cbd 100644 --- a/usr.sbin/service/service.8 +++ b/usr.sbin/service/service.8 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 9, 2021 +.Dd May 9, 2025 .Dt SERVICE 8 .Os .Sh NAME @@ -47,7 +47,7 @@ .Op Fl j Ar jail .Op Fl v .Ar script -.Ar command +.Op Ar command .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/service/service.sh b/usr.sbin/service/service.sh index ca08e08ecd62..63f8eb006ad6 100755 --- a/usr.sbin/service/service.sh +++ b/usr.sbin/service/service.sh @@ -151,7 +151,7 @@ if [ -n "$RCORDER" ]; then exit 0 fi -if [ $# -gt 1 ]; then +if [ $# -gt 0 ]; then script=$1 shift else From nobody Sat May 24 04:33:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b48LD1rh0z5x52h; Sat, 24 May 2025 04:33:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b48LD0FSZz3bwk; Sat, 24 May 2025 04:33:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748061236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ouHti+VHn7G0IuEW8JeZeO4+N2mUr0+7zuG6apd026Y=; b=A+nx3yzesbkIUEZUDgXYh3FUvIo2duQ2rFtqVKimS9dgHXgpR0pWhqDIX0I14xM5DqCjUc lzVZV/wYW+j9KEAA/89GN9XeYWnfYpUmEAozgVggl5buiaS3lpVyi2yn8trI1vviK6LdCn TULlVGPrwLAdxs0H7xOxFvmd4mM9Cu8/cn+gId+tIcT8+4EVB053x9+E0TkXpnMBHstUPB K0pX0pZobTV9tRA5RT7gHPTbsewhe24nqXy2NXDnFR9Vp8h+SJV8ee632VO6mfnDrfh8kL dWV/LZwb9AheVt0oenJTW7iNN8nzFT//rVPEnUJA17nOct5osXDY5FAq85z8pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748061236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ouHti+VHn7G0IuEW8JeZeO4+N2mUr0+7zuG6apd026Y=; b=p1GVeLrJ+2WBgQM7dATmyL75QOEgzx0P7QPbXEKP7bhMKrV2XS/N5xNadE2hd5nX0H9B70 Asj0OF8RWZdGIYqTbgyVwXokUTnmqJSbeCC5J1+gNCTsTTgmyFxDbZtpTWIwKbNIOqbbPR qrxWz+zOruCfBJtrZCTlQ63b7VFMAPn18FgrIOlbwg/buqwQM9OXduSga3Arf4hvvz8cwR 6Ovs0DcEqv1BhaYibOGCOOA7pC1X1sPhiCHZeZddK0yUbRdbIDFM7buP8yLfOgIZYkNoTa BX3FCTvpU2yuHnrTZD7sUjb43glwTopCl4CKeyBofyLEaifZr4nCXqo11R9OeA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748061236; a=rsa-sha256; cv=none; b=czadHnGwLKSOd0WguHt50+pbValf1GQC1Sbexg7KpzYmB8admXaoc8jhHXvcYHyc7GO98Y DvpQ1FOTrGuXe4l8S6n3nN8kZj/VwZzrjvl2CSBUO9EHB3n2gNfrEKPSbcUkMBWoLK1eEi 7OjpCNJfujUm83qwYiomnVEM8MsgCwO0qobi+vmcxTYKXf7SlRePbanEvrhZpBbvXWcJ4d M3qWz5EXYKW3ffWf6MFW+v1dZAlX2hxEPRBWB81U+mE4Ar+YENtNzcETKLdeKRH58/GGxI VVsMZ2xLyqXh566XICZ49fqGFG1C1aOu91guTXsA/l2hXLc7ign7QJqvVX+zsg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b48LC6yvXz57K; Sat, 24 May 2025 04:33:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54O4Xten090520; Sat, 24 May 2025 04:33:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54O4XtRe090517; Sat, 24 May 2025 04:33:55 GMT (envelope-from git) Date: Sat, 24 May 2025 04:33:55 GMT Message-Id: <202505240433.54O4XtRe090517@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: 16ad4d77121d - stable/14 - zoneinfo: don't install version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 16ad4d77121dd117513c6044c0f076df144fa368 Auto-Submitted: auto-generated The branch stable/14 has been updated by philip: URL: https://cgit.FreeBSD.org/src/commit/?id=16ad4d77121dd117513c6044c0f076df144fa368 commit 16ad4d77121dd117513c6044c0f076df144fa368 Author: Philip Paeps AuthorDate: 2025-05-21 09:15:50 +0000 Commit: Philip Paeps CommitDate: 2025-05-24 04:33:27 +0000 zoneinfo: don't install version The commit teaching the build to install tzdata.zi for libcxx also instals version. It turns out this makes at least one piece of third party software cry: rubygem-tzinfo expects any file in zoneinfo to be at least 44 bytes long. Clearly this is a bug in rubygem-tzinfo but since nothing actually uses version, we may as well not install it ... as we did previously. Reported by: delphij Fixes: 91506dba7f2e zoneinfo: also install tzdata.zi and version MFC after: 1 day (cherry picked from commit 23a0c88b037625745b88d1661b9552f1ebe97ebc) --- ObsoleteFiles.inc | 3 +++ share/zoneinfo/Makefile | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 439df5e89377..0b8a3b9d4651 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20250524: don't install zoneinfo version +OLD_FILES+=usr/share/zoneinfo/version + # 20250521: NDFREE(9) -> NDFREE_PNBUF(9) OLD_FILES+=usr/share/man/man9/NDFREE.9.gz diff --git a/share/zoneinfo/Makefile b/share/zoneinfo/Makefile index 54d715916b71..86279d48a2f3 100644 --- a/share/zoneinfo/Makefile +++ b/share/zoneinfo/Makefile @@ -128,8 +128,6 @@ install-zoneinfo: ${CONTRIBDIR}/zone.tab ${DESTDIR}/usr/share/zoneinfo/ ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ ${CONTRIBDIR}/zone1970.tab ${DESTDIR}/usr/share/zoneinfo/ - ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ - ${CONTRIBDIR}/version ${DESTDIR}/usr/share/zoneinfo/ afterinstall: # From nobody Sat May 24 04:42:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b48Wy5NMfz5x5YT; Sat, 24 May 2025 04:42:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b48Wy2wGsz3c9D; Sat, 24 May 2025 04:42:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748061742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n/iXBCwoPM4BeyJ3vSv/3Ee7aIBpHYQlIanOGwJHnzQ=; b=PeS/xULIpL0XxvjynFMIvXuhKU8RMTEB2QbEt8iya9SLEvP3uVNXFICx95Sc7dPt5lXCa4 Wp4Mx/fcV1059O9N6Tv+V+G1H7AfkiYwsT/OniNR0rXg8Qr3X4sP2P7907aO7UiLXeQ9eU pdjJ1ysXOtDcwszyQQAbaxbd/+WEfPztEMPUERHuzgC5k4nB7Jq3Eex/QEjR1/cZxdPyaF BDyyArJkiDUGs/tNU/C1kL9EPlg1zVc47nVrjChiQ1wldmQGe/M5uRqDnTXdv5ZFYm90/r mWHNyPFoujTvHS4gkmjR+mm8YrAfvHSjm8F2t1g98362zabfL6q2rzaoZv1oAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748061742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n/iXBCwoPM4BeyJ3vSv/3Ee7aIBpHYQlIanOGwJHnzQ=; b=cr0QgQIB0AnUeh6kfho12FwE5aDRcfSNHDnCVYOVRuXRbwkgwmU3OJgQJHu5K/14itY9dJ 8ZBDzkBaQ5jwrFmm9zjagc/KiFEScQVSdnoh6oVihzHpogZXCH0IP1C5daSZsC4PD48knd tI/Erd2kcdSpnATjoZ4hQH0+i6KqaZkm0GatIE6n5gCcJBW7QCDlBpCzSA6aG1P78kBlCU MHMUIKMfEKdeICXKwHSI3eGOUu6Sx33GnFqhKRZLcsww+lLFXmWpO2z53A+BZmF3g9nOsL my3rNWyftjoHMxyLWZvVso5M/P4XK5frrd19scW9yrtD+TNTQV3laXCbbq5YAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748061742; a=rsa-sha256; cv=none; b=I8DisiqP6hQzXbVSgVA4oFvBxAxrXAhBg6zHg/vLz6/B4OH08FCMAe6KW8Di1X6Wst8sK8 wpiM7gzpAdIjK0yanzzTs5QB6Q8KOVqOnnXDMz0/cfyEIIP3STkLjSYfd/vzWT0iZ3dptk pyeMM/pZy5O+XQGNTgfw4JZJt3fDmkNbe9pEgFCICOs/RwiqdZqYvNUSaQTFANk5MEy7at vY3kvwYEEt62si7i6uUHyprQ+Dz3ifFt8K+VWbzuPPhGWMeTLcYVY1GyDUV7yvzudp9okD 6sXwDaLx0obFpSjn8gnqAPoZzz2RmEtJSGYQvE7+/CanI0kKFfX3cVGU85VD7Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b48Wy2WGhz5cs; Sat, 24 May 2025 04:42:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54O4gMEh008989; Sat, 24 May 2025 04:42:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54O4gMW8008953; Sat, 24 May 2025 04:42:22 GMT (envelope-from git) Date: Sat, 24 May 2025 04:42:22 GMT Message-Id: <202505240442.54O4gMW8008953@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: df16df7700c8 - stable/13 - zoneinfo: don't install version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: df16df7700c829c6807021ed883ef538806609d6 Auto-Submitted: auto-generated The branch stable/13 has been updated by philip: URL: https://cgit.FreeBSD.org/src/commit/?id=df16df7700c829c6807021ed883ef538806609d6 commit df16df7700c829c6807021ed883ef538806609d6 Author: Philip Paeps AuthorDate: 2025-05-21 09:15:50 +0000 Commit: Philip Paeps CommitDate: 2025-05-24 04:39:20 +0000 zoneinfo: don't install version The commit teaching the build to install tzdata.zi for libcxx also instals version. It turns out this makes at least one piece of third party software cry: rubygem-tzinfo expects any file in zoneinfo to be at least 44 bytes long. Clearly this is a bug in rubygem-tzinfo but since nothing actually uses version, we may as well not install it ... as we did previously. Reported by: delphij Fixes: 91506dba7f2e zoneinfo: also install tzdata.zi and version MFC after: 1 day (cherry picked from commit 23a0c88b037625745b88d1661b9552f1ebe97ebc) --- ObsoleteFiles.inc | 3 +++ share/zoneinfo/Makefile | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 7d17e95aca27..1b24771e6f94 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20250524: don't install zoneinfo version +OLD_FILES+=usr/share/zoneinfo/version + # 20250310: caroot bundle updated OLD_FILES+=usr/share/certs/trusted/Entrust_Root_Certification_Authority_-_G4.pem OLD_FILES+=usr/share/certs/trusted/SecureSign_RootCA11.pem diff --git a/share/zoneinfo/Makefile b/share/zoneinfo/Makefile index e903a66dcfab..119e398c8dfa 100644 --- a/share/zoneinfo/Makefile +++ b/share/zoneinfo/Makefile @@ -124,8 +124,6 @@ install-zoneinfo: ${CONTRIBDIR}/zone.tab ${DESTDIR}/usr/share/zoneinfo/ ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ ${CONTRIBDIR}/zone1970.tab ${DESTDIR}/usr/share/zoneinfo/ - ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ - ${CONTRIBDIR}/version ${DESTDIR}/usr/share/zoneinfo/ afterinstall: # From nobody Sat May 24 05:34:23 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b49h01CJlz5x8P3; Sat, 24 May 2025 05:34:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b49h000nqz3frV; Sat, 24 May 2025 05:34:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748064864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IjNG5UOzoD5zfvnVxh1LHD9DCScSPDDNYbYu7pWMBBM=; b=uiFuKwSgzAz7cD503d0jttl0DmNMeCTwbHDH+bd1g0kP6kJwv8d5qwCdYJ0LNzs1MCJgPk ALr2/1/4uXSf2vRObCkQegQvqomdTjJwZcLHTYNTiIiqj5inBmr9F/QhQxzPP87Zt5Uf/a YRHAIZ/VyFa+HYXU4PsQ0f4yvLDp1knX2AgHxHVzis89RJgRWW+N+PSX0/6epsqKniPCfM q0ExRlP49tuvfKphHIovSv6DX/rpwIX0mzrxS5WZps0NLZPUrJLgoW1Wr0zU30qjS4CtaL zb77Ewy7vLRYkdKGwIDXz3t7VEUwYJFiKnloBnz+2Os8sDMVrW6LjxtFfVK3wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748064864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IjNG5UOzoD5zfvnVxh1LHD9DCScSPDDNYbYu7pWMBBM=; b=kU+gHCrfKtJlhMjektOUkNqsDyeFaT6JMicJrD341EYJnyv2oSY0JPoSBjuc1IKYFOTa4A h0yOjfZX9lEUsDhlgIcDyMgVavB7vYBj2Z+7dyh+bneigvUIwZyspCh9Q4Edn97Oq6lgCu bVWPmVgj+UQukyV+D8t59AN0SDYBx1byW2en7m012JPuP53elZxDuBwHbK6m87vHXmWReZ dOoldz+fSOYDgJclIKHF1HLL5Rfroek5LU4laPMQElYqrBe5RVUDhr8giI4ujS7wwJ1tIQ vwjtYQDgHXQqOPsNqbp0VIBnX2+VYIIVcmIfcf/m1PPK1B7Cv5ig8ohFh0Fcag== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748064864; a=rsa-sha256; cv=none; b=MC0m8IIpyL48Ckdm9LLm9MfV5qnFwdIbLF+boKD0VovBGkocnRirUdA4I3lsWUCCzHXBqL NRpX3zy+kv47UPxOFfTtYvWSy4YoLOqo0XH0S0l8RhLo/ATuujKfNYO6zyDp07qF8v/yM/ ZlT9ypZ/ZD2UFZeNwxEYSCetHawkdxGMjP6/cNZewzViUY4nbmCYdwIJci2cmcioNZ29SO l8o7sXHlIOX03Ywxo+6xLSV9uCr46SiOoCEJU0TDRyTeNdqweXfHMYyPhsWxXliT0Ja5Ih H+23E2zRh1DqrCGEr7UhDt4lnpYBb6rp4+39XoZ+brdrcDxDsR4TYpPVTd62FA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b49gz6g3Lz7KN; Sat, 24 May 2025 05:34:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54O5YNpV002871; Sat, 24 May 2025 05:34:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54O5YNN2002867; Sat, 24 May 2025 05:34:23 GMT (envelope-from git) Date: Sat, 24 May 2025 05:34:23 GMT Message-Id: <202505240534.54O5YNN2002867@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: a48dc9b03b83 - releng/14.3 - zoneinfo: don't install version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: a48dc9b03b83dfd1f04a901ee478324b6ced9c73 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by philip: URL: https://cgit.FreeBSD.org/src/commit/?id=a48dc9b03b83dfd1f04a901ee478324b6ced9c73 commit a48dc9b03b83dfd1f04a901ee478324b6ced9c73 Author: Philip Paeps AuthorDate: 2025-05-21 09:15:50 +0000 Commit: Philip Paeps CommitDate: 2025-05-24 05:33:02 +0000 zoneinfo: don't install version The commit teaching the build to install tzdata.zi for libcxx also instals version. It turns out this makes at least one piece of third party software cry: rubygem-tzinfo expects any file in zoneinfo to be at least 44 bytes long. Clearly this is a bug in rubygem-tzinfo but since nothing actually uses version, we may as well not install it ... as we did previously. Reported by: delphij Fixes: 91506dba7f2e zoneinfo: also install tzdata.zi and version MFC after: 1 day Approved by: re (cperciva) (cherry picked from commit 23a0c88b037625745b88d1661b9552f1ebe97ebc) (cherry picked from commit 16ad4d77121dd117513c6044c0f076df144fa368) --- ObsoleteFiles.inc | 3 +++ share/zoneinfo/Makefile | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 439df5e89377..0b8a3b9d4651 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20250524: don't install zoneinfo version +OLD_FILES+=usr/share/zoneinfo/version + # 20250521: NDFREE(9) -> NDFREE_PNBUF(9) OLD_FILES+=usr/share/man/man9/NDFREE.9.gz diff --git a/share/zoneinfo/Makefile b/share/zoneinfo/Makefile index 54d715916b71..86279d48a2f3 100644 --- a/share/zoneinfo/Makefile +++ b/share/zoneinfo/Makefile @@ -128,8 +128,6 @@ install-zoneinfo: ${CONTRIBDIR}/zone.tab ${DESTDIR}/usr/share/zoneinfo/ ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ ${CONTRIBDIR}/zone1970.tab ${DESTDIR}/usr/share/zoneinfo/ - ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ - ${CONTRIBDIR}/version ${DESTDIR}/usr/share/zoneinfo/ afterinstall: # From nobody Sun May 25 05:43:09 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b4nqf2HBRz5x5KW; Sun, 25 May 2025 05:43:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b4nqd6Tzjz3WbZ; Sun, 25 May 2025 05:43:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748151789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ljpUwwcZJTVGJ9dBLsXFyRsAIrIJ+LBLJySDD0zXsJQ=; b=nDwTP7exO2Lu/uSv8/Cg8+33iOOPWsC5912aUyEolL9saGP3QfgqG+QHQFDv9S1QtM5/qx mYqq9YGTHrZFrDdbuz9OKp+nBFU/UERhSVbs4VeHCDzqLRn/qWgCnc0lmLgYZgF0yheYPh uoyL8jKcVJapgVB18zICotYxjJecwNnHkvSinD14BJa4a0Ly2vEQqR6/CycG8p8PDGBqb3 xCsy5oKVYUQivyanuqIhEUONTCt/pCvUaNMGWax2BTxC3dRqM8sVSiQ0orF1RYs9D0CWD0 070o6zReY7W4JLoETe0WE+qZgpFNatW4vfGm0M2JwqVOzterllJutlw0ClhBTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748151789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ljpUwwcZJTVGJ9dBLsXFyRsAIrIJ+LBLJySDD0zXsJQ=; b=DPQA5w7q4Rm1lmkOuCg92+3BbIiEHQRFAFcauxYBSBPfzTRPhN3V0ubVswsDUiUDXeuJgr R56PfbjSlDwy9O9FYkxD3PJtsDe7ZIKyYp4zuLB2V80g9gIjxEwKRxbnleHQWMTjp261t7 mi5Zufd8PmdzBYNLRgI/f09Gt4hNrPVSciqS+KCRJMlhSaQ4AkjX9zOaNpJdKcCSXZpgbH r0UoWfIoxUtwogjIAHW6zvhKSLfYQ4Gb41oueb+b+ZPD4+QDytfulA1qmqrZNCXzB8on2x 4fy1D8cHKou+qkef3tvMYA08JStI/JD/XZy4J2Lk6IPoex/PpK+Vkj2mC+PTtA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748151789; a=rsa-sha256; cv=none; b=NOORdCKji/k/95/4mWB1DZl87giZsplP0jRE3180cwebeYWCXIqzu16oaabZHUOGnDsiwz qv/H+g2lvsYTnVMSr7+n0L2wezXNYZH3HgBFZ+dYdSpEjVfnLxAJ/0zU7Il2OEMQVFkyww vIyccoXDyqeYLbPvwyfnrgSiAxFGBtFaxcs+z7lP84PZyvaKz9za5k4li7+wccJRcEmHbo UlOszwbPoJBuZv/V+dGgVVCLZuna9j2NZDvWCGa7qXgPWWnpPJl9/QtyUWVM1DOODbPRwy 4GNjw7am0Y2bCECwdqd/195evQ6mDvwqSZzp2oqNJuc1FVBGTQNstFDw+8vXEg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b4nqd65mZz17ky; Sun, 25 May 2025 05:43:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54P5h9BK014627; Sun, 25 May 2025 05:43:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54P5h9Oq014624; Sun, 25 May 2025 05:43:09 GMT (envelope-from git) Date: Sun, 25 May 2025 05:43:09 GMT Message-Id: <202505250543.54P5h9Oq014624@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 2013ad7490f2 - stable/14 - nullfs lookup: cn_flags is 64bit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2013ad7490f2a80d3b3260d9811422bbd25a915e Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2013ad7490f2a80d3b3260d9811422bbd25a915e commit 2013ad7490f2a80d3b3260d9811422bbd25a915e Author: Konstantin Belousov AuthorDate: 2025-05-17 05:37:48 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-25 05:42:46 +0000 nullfs lookup: cn_flags is 64bit (cherry picked from commit 89549c2348170921cc4270ac95bfabfd78d42739) --- sys/fs/nullfs/null_vnops.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c index 5daa302bedd1..f2c426d41f61 100644 --- a/sys/fs/nullfs/null_vnops.c +++ b/sys/fs/nullfs/null_vnops.c @@ -389,7 +389,7 @@ null_lookup(struct vop_lookup_args *ap) { struct componentname *cnp = ap->a_cnp; struct vnode *dvp = ap->a_dvp; - int flags = cnp->cn_flags; + uint64_t flags = cnp->cn_flags; struct vnode *vp, *ldvp, *lvp; struct mount *mp; int error; @@ -415,8 +415,8 @@ null_lookup(struct vop_lookup_args *ap) */ if ((ldvp->v_vflag & VV_ROOT) != 0 && (flags & ISDOTDOT) != 0) { KASSERT((dvp->v_vflag & VV_ROOT) == 0, - ("ldvp %p fl %#x dvp %p fl %#x flags %#x", - ldvp, ldvp->v_vflag, dvp, dvp->v_vflag, flags)); + ("ldvp %p fl %#x dvp %p fl %#x flags %#jx", + ldvp, ldvp->v_vflag, dvp, dvp->v_vflag, (uintmax_t)flags)); return (ENOENT); } From nobody Sun May 25 09:21:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b4tg71ySGz5xHn6; Sun, 25 May 2025 09:21:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b4tg71Qq7z3thp; Sun, 25 May 2025 09:21:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748164867; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NY3DQU0SA8Ymk71yDFPpjHYV/s9bK/KcajTenjLMp9g=; b=UeRkIhjqlWa40wXbi3d+m7JCUsOVBV4FZ9Nm0KP4AJBm0Tj0Luj2PHOWo2z8wr3vg4kdOf 3T4cqrb5YDIpjrXIiM36F93FFt/Lti1efoq3rgU9l4fsuEOJwvz8GLSYGz0hplSvMaQpNi vg4bPEzMXh2x2ab4x2vmnw9zmlV3fOfDmbPuyWZG9p5UoWUcZwggYDQy9uDrJxWJVOJHeN RUXRgVQoPh+0hc4lo5ATDUAtXFuyXrm4fAENbEFbHVVdGO0JJGTdAIRJffQu8HjTes4KKs 70MDgzrDzv9LfN2XvYT2QYhccJuTU5wUU0xbtoLfjjjvdEwzATjb8sXErkLUnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748164867; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NY3DQU0SA8Ymk71yDFPpjHYV/s9bK/KcajTenjLMp9g=; b=T5a4s8LBGavYP9OfdG/mvdkLfpCni3BWGqQyQHkzSHBp1tcuuPMTG/Ybxta6hb//AbFW4G KKxC+In31ARFWW26Q8SyS2eHL7Sm+x+94GfSVbSNTygA1MoBb9Dn7+e8527F6ZapIbfTR3 jvjO98Tl40qdNVXZXWA8gYeN7LXjrgkaRhfC/APXVXnJSmYtrhQGPVolGxW7ILulLBbVt3 opUq4xPOQym74fYgEDEzpVvaOQOi5p2Rgbb9AKaskFUmmcIUE7niTqag8tvcxIVR0B/ZBx W1sDdFoFM6U6vXmL7JtWbi9uKLlFLhSAOTKIpeJG1d+WhH+Uwv/kvFi5qrKuEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748164867; a=rsa-sha256; cv=none; b=DVL7MGMhGHXC9/TG3Dfoyf/YqFnZzFJdGjM2VpKPpdop6uJ1lpwXsH4lt2sLGN7uAxnj2f qDYznhZMcoBcmJbQUnf/Q0ue1eQdIc7+SJHDT+WnFFNXgrnfb9rIfHt8ttgvcrkAnT4wFb MpG6GAQ9K3rVlsM4e7h+leP0SCEJSBG2o6ewhS9xQzcdj139kgUPQZti+iUtXsuqeFNSLO IR4uvmC6eZ6ZzRhUCXklesu01shS7BuPDTg8TM1c1C3cwPlTzbsUpypDPXTRSk5Wp2z20l NY7K8mRuXQvnpJKBjpDf/SS+Ay4VJKUs4GDCpcB5xgcTyuHE6EsyfDVoUO2xEQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b4tg70Z1BznJ; Sun, 25 May 2025 09:21:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54P9L6YD021586; Sun, 25 May 2025 09:21:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54P9L6r5021583; Sun, 25 May 2025 09:21:06 GMT (envelope-from git) Date: Sun, 25 May 2025 09:21:06 GMT Message-Id: <202505250921.54P9L6r5021583@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: cab029073dc6 - stable/14 - libc++: fix compiling with -fmodules List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cab029073dc6cb5814df44556e585b8fdb1c9846 Auto-Submitted: auto-generated The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=cab029073dc6cb5814df44556e585b8fdb1c9846 commit cab029073dc6cb5814df44556e585b8fdb1c9846 Author: Jordan Gordeev AuthorDate: 2025-05-18 19:55:05 +0000 Commit: Dimitry Andric CommitDate: 2025-05-25 09:20:32 +0000 libc++: fix compiling with -fmodules In /usr/include/c++/v1/__locale_dir/locale_base_api.h, xlocale.h is included without first including stdio.h and stdlib.h, which causes functions like strtoll_l() or sscanf_l() to not be declared. When compiling with -fmodules, locale_base_api.h is processed separately due to a declaration in /usr/include/c++/v1/module.modulemap, and this will cause errors due to the above undeclared symbols. Meanwhile, upstream has substantially reorganized this part of libc++'s headers, so apply a minimalistic workaround: specifically when compiling with -fmodules, add includes of stdio.h and stdlib.h. PR: 286342 MFC after: 1 week (cherry picked from commit c809b0184d0a6543bc5327d4252fa56a07ce4689) --- .../llvm-project/libcxx/include/__locale_dir/locale_base_api.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h b/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h index 8c000c558c52..e43e87375069 100644 --- a/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h +++ b/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h @@ -25,7 +25,13 @@ # include <__locale_dir/locale_base_api/fuchsia.h> #elif defined(__wasi__) || defined(_LIBCPP_HAS_MUSL_LIBC) # include <__locale_dir/locale_base_api/musl.h> -#elif defined(__APPLE__) || defined(__FreeBSD__) +#elif defined(__APPLE__) +# include +#elif defined(__FreeBSD__) +# if __has_feature(modules) +# include +# include +# endif # include #endif From nobody Sun May 25 09:21:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b4tgQ1Hl0z5xHXT; Sun, 25 May 2025 09:21:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b4tgQ0YcWz3vR8; Sun, 25 May 2025 09:21:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748164882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+TqWEVuny5c9yCHXlJWDS1HDpYjHMzx3E0iInifwA70=; b=WpjhsADrinFNWulZ4Oo5W0BfIxUMAWdtSlAZFTvvBsfNfgDk7XSbQa5lNqcd+zbE0GUopF ntFuR0g0ZafK+9EhoA4+kp9nIVGE2/CoJun+QKQT2f68U/jBDKBqJW8PLcm5gr0a8uz2Q+ F+QcJJV57kEu0gvgPd4rJCw6dLKT4S0SK6aBKkxzCrNKCIKYIYUw8x+8MGd3qksgP2B2Lq 8IS9YePmJ2uy/zPkpZNe6lJSDTTekFVqICluzLYcBRk6jP0XsExb2ndmqEwB1f3BZIoVu/ TZpaZQcPGOO7ownWza3LvB/5VpDP+f34YAJ7zZeIGoz6CCqodtSc808g8bA8hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748164882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+TqWEVuny5c9yCHXlJWDS1HDpYjHMzx3E0iInifwA70=; b=P1Fyssl6dfCC5mlJOEhOKdioI9HnVSoUTaNnyIvoWrcnt+q8jyOR35DhvOzi/eSjobbaV/ UX9iQqx/HF9HhP0eCe7lihFHVKkAgWs2iEyhBzJI7/jEMZ5kHsozLf/vuEVxHVEcEXsugu 4YuKK5nef2Glc+AOMa6hwaoUe6zWW3cv/1DeRpG95YjaatqwJNV0uGZ5/1/SmFgiE9Q4RW Lwfkpo1osZ3ppSMWN5i3vyqnu9UtrR4zbjlGOBgyWJPCXGLEXQLDu4IbkqES1hTLXshKAw 7qdD9WaHJIe7r/SYN2tzEa+w1dkA6NUJVMHhRVf5w7ETcOXKu8zfyHhjL26CpA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748164882; a=rsa-sha256; cv=none; b=rMCGIpzf4y866oknqNQUttZoh8BtG7GEjlSoTANvWHw5adYDGlsVxEoqvcU66OXKEzOVxz R1odW999SlwCuH4H0LKmMLVmCNO0caxKxTdpVazU1c9d75rach+EJQf8y71Zw3DbJLLvFx L/diNX3CkymwOrLsl39LF4h+CbyX8ArEvGZejwBiENqAYhVuYu05pa5ZJYJ325atjVq7Vv m9cueEl/81LvpaXQH3JJRu+awpbD5ZKRUzAPylG0WNwHn2lOTrpqE3779KGoUnMp6XfQkT mOu8OIByLRuKgqiILWSW1N3lnw4W92uGYcGkUXkmlnH9hITLIcRBrSTshH4ezw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b4tgQ053Nz112; Sun, 25 May 2025 09:21:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54P9LLWb021766; Sun, 25 May 2025 09:21:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54P9LLWx021763; Sun, 25 May 2025 09:21:21 GMT (envelope-from git) Date: Sun, 25 May 2025 09:21:21 GMT Message-Id: <202505250921.54P9LLWx021763@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 1c12934eba86 - stable/13 - libc++: fix compiling with -fmodules List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 1c12934eba86c7294becc23c7518e0fb9b996fa8 Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=1c12934eba86c7294becc23c7518e0fb9b996fa8 commit 1c12934eba86c7294becc23c7518e0fb9b996fa8 Author: Jordan Gordeev AuthorDate: 2025-05-18 19:55:05 +0000 Commit: Dimitry Andric CommitDate: 2025-05-25 09:20:41 +0000 libc++: fix compiling with -fmodules In /usr/include/c++/v1/__locale_dir/locale_base_api.h, xlocale.h is included without first including stdio.h and stdlib.h, which causes functions like strtoll_l() or sscanf_l() to not be declared. When compiling with -fmodules, locale_base_api.h is processed separately due to a declaration in /usr/include/c++/v1/module.modulemap, and this will cause errors due to the above undeclared symbols. Meanwhile, upstream has substantially reorganized this part of libc++'s headers, so apply a minimalistic workaround: specifically when compiling with -fmodules, add includes of stdio.h and stdlib.h. PR: 286342 MFC after: 1 week (cherry picked from commit c809b0184d0a6543bc5327d4252fa56a07ce4689) --- .../llvm-project/libcxx/include/__locale_dir/locale_base_api.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h b/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h index 8c000c558c52..e43e87375069 100644 --- a/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h +++ b/contrib/llvm-project/libcxx/include/__locale_dir/locale_base_api.h @@ -25,7 +25,13 @@ # include <__locale_dir/locale_base_api/fuchsia.h> #elif defined(__wasi__) || defined(_LIBCPP_HAS_MUSL_LIBC) # include <__locale_dir/locale_base_api/musl.h> -#elif defined(__APPLE__) || defined(__FreeBSD__) +#elif defined(__APPLE__) +# include +#elif defined(__FreeBSD__) +# if __has_feature(modules) +# include +# include +# endif # include #endif