From nobody Thu Oct 29 06:03:22 2026 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 4jFYZ30Wvjz6xrdC for ; Thu, 29 Oct 2026 06:03: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) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jFYZ23wwyz4skl for ; Thu, 29 Oct 2026 06:03:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793253802; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hWeiZd5xnWeLLpaMtPBY2MgdAmW/vRoEy7ss9LkYkXM=; b=WZfN5rBxw5GTpQa5SYDvq0yr4Mg7H3hcnlha/W3PWO4JDzzsvoj6LdwM6SUDf5WX0pDkkD /pZeSvEhWtFb6uhbJ/1eb9BRkFmMOSgTFDyqWYLIPoVGp397X5TMMlTU7LVwxM6XQZdgEz wsgMnkabnWfGivT61bB5A5ujAr6evPNtQA6ZAw7+6iq5ozcfJUwJMXlB1heN9t98mtxJ4U Cx/sycnUiOlt6xUDZu+G96cEwL9+5XtFm1nMdwXwPZzuVhd3qSrBsO7Q3yIgUGFyHBHICC IP9EAYaXnznZaVWmB1Hnk4uXcDUR13P9S3nQoZFeTyr4UlnU9cuXRrmcS8BD7g== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793253802; b=oOyVREI+Ddf0ZWRKFC/0VJgij6uKKG24mTIouhPSCFRO8HPIRQWFwmAt0U0Ih0Yl5D9tDZ 8/7B0xAKLrM6sKDI3VME778nQe3G81CEAbchiIJFLQU2uW4t5xMI05TlmCtV9BCZrms3FN qfIM+7xqfylPJDk/mAwhKcVePbBwXUQHFrhQ3QVv/2y+0jOHbfif8QZparzWkFjHWe4HGk tHGa0Oehfc5ZNI8cQV89Oh0/Z/KVt1x6lTkGS5alQujb6jBcclXA/jM31ovZPe+wOYIbAj OR0prdPilv0t83W/Url9ToVZfoA1rLkUGN+ECmEBR/eElFwmuASWhN6StcfROg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793253802; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hWeiZd5xnWeLLpaMtPBY2MgdAmW/vRoEy7ss9LkYkXM=; b=oTMxE/qaoynOd4E1RVqm0J2pyREDKss7kNUl7Tpd6XDiHH6629UgzOUseyRfU2Xx/5EJgM 8mCtPcqfGtANcAqZym5NiwdTxN8Pg5MniqB7pyAOa5G8FlPFGSReBuq4Lv2nYlbL7Ge4cW WLA2pkalpydRyj0xF5H+utqt0jzcJfEk+rfH+m5pYXb0/9hZK4dvzfZXrcRKNlInI6/LJp 0WRBjgPIM4CCI09xu0Wg5274Dimv4XI3o4z7418zPQd2jPPycFjI+OG/6NWo3XzMZtauLR DuST11Z+ioOZ96mU00zfOl9hBL1ITkwHg/7z5u7P1ssaS8KQA6GxQc8JirUrrg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4jFYZ23KJ5zPsk for ; Thu, 29 Oct 2026 06:03:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3a68a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Oct 2026 06:03:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Chandrakanth Patil From: Kevin Bowling Subject: git: ee069c0d5d49 - stable/15 - iflib: Add support for SIOCGIFDOWNREASON ioctl List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: Commits to the stable branches of the FreeBSD src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: ee069c0d5d49578b57bd700f6f5bb41c146dbc6c Auto-Submitted: auto-generated Date: Thu, 29 Oct 2026 06:03:22 +0000 Message-Id: <6ae2e1aa.3a68a.9103a9a@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=ee069c0d5d49578b57bd700f6f5bb41c146dbc6c commit ee069c0d5d49578b57bd700f6f5bb41c146dbc6c Author: Chandrakanth Patil AuthorDate: 2026-01-30 07:15:55 +0000 Commit: Kevin Bowling CommitDate: 2026-10-29 05:40:58 +0000 iflib: Add support for SIOCGIFDOWNREASON ioctl This change adds native support for the SIOCGIFDOWNREASON ioctl in iflib. When ifconfig issues SIOCGIFDOWNREASON, the request is now routed through a new driver callback (IFDI_GET_DOWNREASON). iflib allocates the ifdownreason structure, calls the driver to fill the down-reason message, and then returns the data back to ifconfig for display. Without this change, iflib-based drivers cannot implement link-down reason reporting even if the hardware provides the information. No functional change for existing drivers unless they implement the new IFDI_GET_DOWNREASON method. Existing drivers continue to behave as before. Reviewed by: gallatin, erj, kgalazka, ssaxena, #iflib Differential Revision: https://reviews.freebsd.org/D54045 (cherry picked from commit c2f799d4193f135f4d36e9f622b10b825b9144eb) --- sys/net/ifdi_if.m | 11 +++++++++++ sys/net/iflib.c | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/sys/net/ifdi_if.m b/sys/net/ifdi_if.m index c9806a3c9b1d..3fa48f7a9e97 100644 --- a/sys/net/ifdi_if.m +++ b/sys/net/ifdi_if.m @@ -130,6 +130,12 @@ CODE { { return (false); } + + static int + null_get_downreason(if_ctx_t _ctx __unused, struct ifdownreason *_ifdr __unused) + { + return (ENOTSUP); + } }; # @@ -391,3 +397,8 @@ METHOD bool needs_restart { if_ctx_t _ctx; enum iflib_restart_event _event; } DEFAULT null_needs_restart; + +METHOD int get_downreason { + if_ctx_t _ctx; + struct ifdownreason *_ifdr; +} DEFAULT null_get_downreason; diff --git a/sys/net/iflib.c b/sys/net/iflib.c index 51491cce928e..d9b4e770741b 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -4987,6 +4987,11 @@ iflib_if_ioctl(if_t ifp, u_long command, caddr_t data) err = IFDI_PRIV_IOCTL(ctx, command, data); CTX_UNLOCK(ctx); break; + case SIOCGIFDOWNREASON: + CTX_LOCK(ctx); + err = IFDI_GET_DOWNREASON(ctx, (struct ifdownreason *)data); + CTX_UNLOCK(ctx); + break; default: err = ether_ioctl(ifp, command, data); break;