From nobody Tue Nov 28 19:48:34 2023 X-Original-To: dev-commits-src-main@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 4SftLB6z3vz52SJl; Tue, 28 Nov 2023 19:48:34 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SftLB6R3Mz4Wdg; Tue, 28 Nov 2023 19:48:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1701200914; 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=WHBElTvJImCt3Y2vnge4c0X9du+lU2k5T5geleuUpRM=; b=ECTR/Ej3+i4q9Cfn2veTXG0xNS71M5facfT04+QG/gobQiLBKJabRyBIMEGUDcqm15hofC L3MBsWsSffs1Gi8sP/ooySaeZPDEaaZYKapJR2KxPhjO13H21Sdeh3Z0yFqlBZY/bq5vL1 r3vXBOYyKuZDKiFpAt//UpDlO5Pzq655JyCCDY+4uhDDgztZK0Tc4HYleO3mUeNRx/Qnpm EOujVmrrY+BXA4XwrLOrh5oMmIMzxN80Y/WEa+vRU1QDrOJe508AJkNpQIF1MoplSD84Zp fsWeAPI9YUzX1O1mgfOBRwlezr29iKl4qYWRK1dLdqUdZpvoRqOZ0+UT0pcZOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1701200914; 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=WHBElTvJImCt3Y2vnge4c0X9du+lU2k5T5geleuUpRM=; b=np3t/mrjVX/2uyUWk4rLv5mXex8bdwhjbJ6Cgmg5C8QTiCRMnfsHofV0u02f0Fno1OiewZ wMVgPHYGX9TylapSH4lqAi0khK54XgyPeULyjAdD4G6jMP8/NQVwBM6tv+JN6yY7DmFpQ4 ekQjz/CefkPaC5ZKARiww2RI0QhU5DhzZkfhgcSY+VKr4Po5/h8w4IdySnW2TMI5nkSgV3 3+ZBEhxnJY6WotxDVS7GBMhO80bNioeO2nJr0TeGq8NiponDlyA98aDAYq8NnaEWvXsY+Z w8eb+bOPmiitsJabP52zRrLetZ6GzbABzhVWstu5PueTxMjfT9NgXn/ervR+Hg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1701200914; a=rsa-sha256; cv=none; b=LZU640WekkDhxovICUk71q4rXBT668yFJrPxAut8dD82+kWqAqFMomfWs1DWYpeLSJ4GmK pyegCqeDdbsAFCP8z3AwRahDT6Dwvl3/PF/ggX9BML9+aD9yRwhHegjuXHq1nEo25V/Spg B+92Tg3zGu+WIWsGJrAz1hifWtNsriPW7Gey31HftbsUQ1omvIq+JxayP7+KKY5pptnQZC 0eIWAm4zDQjR01W94IFuKn8SN50j2F6fW9W7dumtan5hZ8zG23RFCyH+L/E3xi41o7XyEy XiW9givfJsy7bH/VfAHbvqc/Fuy70EpSsRM71JGL1igaOZGY2stY5yFMjZqSYQ== 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 4SftLB5Thczb6t; Tue, 28 Nov 2023 19:48:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ASJmYWv047740; Tue, 28 Nov 2023 19:48:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ASJmYnG047737; Tue, 28 Nov 2023 19:48:34 GMT (envelope-from git) Date: Tue, 28 Nov 2023 19:48:34 GMT Message-Id: <202311281948.3ASJmYnG047737@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mike Karels Subject: git: cd201c090858 - main - ifconfig: add -D option to print driver name for interface List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: karels X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cd201c090858e5cfae3be005453ec634c1fca36a Auto-Submitted: auto-generated The branch main has been updated by karels: URL: https://cgit.FreeBSD.org/src/commit/?id=cd201c090858e5cfae3be005453ec634c1fca36a commit cd201c090858e5cfae3be005453ec634c1fca36a Author: Mike Karels AuthorDate: 2023-11-28 19:47:37 +0000 Commit: Mike Karels CommitDate: 2023-11-28 19:47:37 +0000 ifconfig: add -D option to print driver name for interface Add -D option to add the drivername and unit number to ifconfig output for normal display, including -a. Use ifconfig_get_orig_name() from libifconfig to fetch the name. Note that this is the original name for many drivers, but not for some exceptions like epair (which appends 'a' or 'b' to the unit number). epair interface pairs both display as "epair0", etc. Make -v imply -D; might as well be fully verbose. MFC after: 1 week Reviewed by: zlei, kp Differential Revision: https://reviews.freebsd.org/D42721 --- sbin/ifconfig/ifconfig.8 | 10 ++++++++-- sbin/ifconfig/ifconfig.c | 5 ++++- sbin/ifconfig/ifconfig.h | 1 + sbin/ifconfig/ifconfig_netlink.c | 17 +++++++++++++++++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index 789b98fd7447..876b9b22ea56 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -34,7 +34,7 @@ .Sh SYNOPSIS .Nm .Op Fl j Ar jail -.Op Fl kLmn +.Op Fl DkLmn .Op Fl f Ar type Ns Cm \&: Ns Ar format .Ar interface .Op Cm create @@ -53,7 +53,7 @@ .Nm .Op Fl j Ar jail .Fl a -.Op Fl dkLmuv +.Op Fl dDkLmuv .Op Fl f Ar type Ns Cm \&: Ns Ar format .Op Fl G Ar groupname .Op Fl g Ar groupname @@ -102,6 +102,12 @@ with no additional information. Use of this flag is mutually exclusive with all other flags and commands. .It Fl d Display only the interfaces that are down. +.It Fl D +Include the driver name and unit number of the interface in the output. +This is normally the original name of the interface, +even if it has been renamed; it may differ from the original name +in some cases, such as +.Xr epair 4 . .It Fl f Xo .Ar type Ns Cm \&: Ns Ar format Ns .Op Cm \&, Ns Ar type Ns Cm \&: Ns Ar format Ar ... diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 5ee41bb24b71..2cbe7a881bd0 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -456,7 +456,7 @@ args_parse(struct ifconfig_args *args, int argc, char *argv[]) int c; /* Parse leading line options */ - strlcpy(options, "G:adf:j:klmnuv", sizeof(options)); + strlcpy(options, "G:adDf:j:klmnuv", sizeof(options)); for (p = opts; p != NULL; p = p->next) strlcat(options, p->opt, sizeof(options)); while ((c = getopt(argc, argv, options)) != -1) { @@ -467,6 +467,9 @@ args_parse(struct ifconfig_args *args, int argc, char *argv[]) case 'd': /* restrict scan to "down" interfaces */ args->downonly = true; break; + case 'D': /* Print driver name */ + args->drivername = true; + break; case 'f': if (optarg == NULL) usage(); diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 3303c4894ba7..76a5aeb718b1 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -231,6 +231,7 @@ struct ifconfig_args { bool supmedia; /* Supported media */ bool printkeys; /* Print security keys */ bool allfamilies; /* Print all families */ + bool drivername; /* Print driver name */ int verbose; /* verbosity level */ int argc; char **argv; diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c index 826d199d3ccb..8964b63caf7b 100644 --- a/sbin/ifconfig/ifconfig_netlink.c +++ b/sbin/ifconfig/ifconfig_netlink.c @@ -388,6 +388,7 @@ status_nl(if_ctx *ctx, struct iface *iface) { if_link_t *link = &iface->link; struct ifconfig_args *args = ctx->args; + char *drivername = NULL; printf("%s: ", link->ifla_ifname); @@ -432,6 +433,22 @@ status_nl(if_ctx *ctx, struct iface *iface) args->afp->af_other_status(ctx); print_ifstatus(ctx); + if (args->drivername || args->verbose) { + if (ifconfig_get_orig_name(lifh, link->ifla_ifname, + &drivername) != 0) { + if (ifconfig_err_errtype(lifh) == OTHER) + fprintf(stderr, "get original name: %s\n", + strerror(ifconfig_err_errno(lifh))); + else + fprintf(stderr, + "get original name: error type %d\n", + ifconfig_err_errtype(lifh)); + exit_code = 1; + } + if (drivername != NULL) + printf("\tdrivername: %s\n", drivername); + free(drivername); + } if (args->verbose > 0) sfp_status(ctx); }