From nobody Thu Oct 23 07:17:06 2025 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 4cscmL6KTVz6DxVc; Thu, 23 Oct 2025 07:17: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cscmL5kwLz3P3p; Thu, 23 Oct 2025 07:17:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761203826; 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=SobqMWQXFB78yecjJEBP3X4ZgC80nrBBBNrMG8iNMvY=; b=MTT02coAkEtSz/oqim99km25bThcyHaGD3iFO/ag0+SNAybPZS4L6IWHN2mzheCgzv4fc1 OIThwiW8p/9OD7WaQUh6IwhkYUtPy1lD5xt+ExeDgQTzMsvc+h6eH3NNJQZ8+3Fu0/xBXc Tx6VBYkn4C83eUPkePJiNYDbuAr9Yhi7zFsuT5jVoc7gf2L6BjuLSh21ZyMUGtTXdk9i07 pfRSPiJ6Gh7VKgowKI4cTWS5hT3ydHiPqjThZ8ePNF4ltYlVXk0dprCIjS7QRqpr7muG3c DpAvzT29Zw1xFrBsD7gtGYltGD/QzzcPHGXI6q0rBltARMVq4X+EVET97Ch/ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761203826; 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=SobqMWQXFB78yecjJEBP3X4ZgC80nrBBBNrMG8iNMvY=; b=kO+LhiruIzrUSE4/YR/Nbh39ZmRSohCK6xv+ulfPy/J/BpVFCiCPcZ/vmJQqqYr7pH9zmL WqWhNNcxQe3jrz0PIXFCxaqTXryGG8F03Uw5jQ8HyglUitaVMER+1JPMMHg3KeoY8jDgcO oX8CtDNfI2Uq7nsgvrBXefDa3vDp/smNfG346ND7C9IFJGPVzt5W87goVac+BA7VB+Ztgk aFDzwf2olJFkfLN/Z0QLqCqM5RP2+u5+tcUpBNJb5yBtB2q+/Jmqxq3JtCUFfmmdWgT+q+ mu+FOfBKdQ17ObbzFwbDirG/lp3lWVKgkgRLkUlDVBXAIr86l6mCV/1UAh8Eyg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761203826; a=rsa-sha256; cv=none; b=t+BSx9eHfO115LAyUBbbMdVTbMT4hh8Q2lBAM7epFa4CfDVMTZp7fX/Gud1nDP+RoGZqdk NVwzc2qS70R0Hw5SwPl07T0muVXvz5kGtmXXTI2apMdGrZYVMzM88kl+gRVHFrpo+N6kK5 ixq1FUWtVdAwp6x0udwAZrlTmDXgTGj3aA8w5wp5oIAMW2dOfUdeLcdPQf7+lwiL30rlLg xnVuBg6iEj0xnR2issXCHcfEMqyVXY/kAPrul27gBfeF40930ei839O6441aeKW2s4fOAs Q0s+N2vhItcaE009QVUWYuowfRKS4AI+zHML1qRdJ9DbV0zKYLaJ0uwUhntcTw== 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 4cscmL52rCz14tJ; Thu, 23 Oct 2025 07:17: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 59N7H6sa077853; Thu, 23 Oct 2025 07:17:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59N7H6f5077850; Thu, 23 Oct 2025 07:17:06 GMT (envelope-from git) Date: Thu, 23 Oct 2025 07:17:06 GMT Message-Id: <202510230717.59N7H6f5077850@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen Subject: git: c2b08c13c20d - main - netstat: add support for UDP-Lite endpoints 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: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: c2b08c13c20d44c3368bcbf738624e5fac461314 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=c2b08c13c20d44c3368bcbf738624e5fac461314 commit c2b08c13c20d44c3368bcbf738624e5fac461314 Author: Michael Tuexen AuthorDate: 2025-10-23 07:15:22 +0000 Commit: Michael Tuexen CommitDate: 2025-10-23 07:15:22 +0000 netstat: add support for UDP-Lite endpoints With this patch UDP-Lite endpoints are also shown per default. Reviewed by: Nick Banks MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D53252 --- usr.bin/netstat/inet.c | 37 ++++++++++++++++++++++++++----------- usr.bin/netstat/main.c | 4 ++++ 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/usr.bin/netstat/inet.c b/usr.bin/netstat/inet.c index 5f36b1599cad..dee245b63a87 100644 --- a/usr.bin/netstat/inet.c +++ b/usr.bin/netstat/inet.c @@ -83,7 +83,7 @@ static void inetprint(const char *, struct in_addr *, int, const char *, int, const int); #endif #ifdef INET6 -static int udp_done, tcp_done, sdp_done; +static int udp_done, udplite_done, tcp_done, sdp_done; #endif /* INET6 */ static int @@ -100,6 +100,9 @@ pcblist_sysctl(int proto, const char *name, char **bufp) case IPPROTO_UDP: mibvar = "net.inet.udp.pcblist"; break; + case IPPROTO_UDPLITE: + mibvar = "net.inet.udplite.pcblist"; + break; default: mibvar = "net.inet.raw.pcblist"; break; @@ -220,13 +223,20 @@ protopr(u_long off, const char *name, int af1, int proto) return; else udp_done = 1; +#endif + break; + case IPPROTO_UDPLITE: +#ifdef INET6 + if (udplite_done != 0) + return; + else + udplite_done = 1; #endif break; } if (!pcblist_sysctl(proto, name, &buf)) return; - if (istcp && (cflag || Cflag)) { fnamelen = strlen("Stack"); cnamelen = strlen("CC"); @@ -318,18 +328,18 @@ protopr(u_long off, const char *name, int af1, int proto) "Proto", "Listen", "Local Address"); else if (Tflag) xo_emit((Aflag && !Wflag) ? - "{T:/%-5.5s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-18.18s} {T:/%s}" : + "{T:/%-9.9s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-18.18s} {T:/%s}" : ((!Wflag || af1 == AF_INET) ? - "{T:/%-5.5s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-22.22s} {T:/%s}" : - "{T:/%-5.5s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-45.45s} {T:/%s}"), + "{T:/%-9.9s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-22.22s} {T:/%s}" : + "{T:/%-9.9s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-45.45s} {T:/%s}"), "Proto", "Rexmit", "OOORcv", "0-win", "Local Address", "Foreign Address"); else { xo_emit((Aflag && !Wflag) ? - "{T:/%-5.5s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-18.18s} {T:/%-18.18s}" : + "{T:/%-9.9s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-18.18s} {T:/%-18.18s}" : ((!Wflag || af1 == AF_INET) ? - "{T:/%-5.5s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-22.22s} {T:/%-22.22s}" : - "{T:/%-5.5s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-45.45s} {T:/%-45.45s}"), + "{T:/%-9.9s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-22.22s} {T:/%-22.22s}" : + "{T:/%-9.9s} {T:/%-6.6s} {T:/%-6.6s} {T:/%-45.45s} {T:/%-45.45s}"), "Proto", "Recv-Q", "Send-Q", "Local Address", "Foreign Address"); if (!xflag && !Rflag) @@ -382,9 +392,14 @@ protopr(u_long off, const char *name, int af1, int proto) vchar = ((inp->inp_vflag & INP_IPV4) != 0) ? "4" : ""; if (istcp && (tp->t_flags & TF_TOE) != 0) - xo_emit("{:protocol/%-3.3s%-2.2s/%s%s} ", "toe", vchar); - else - xo_emit("{:protocol/%-3.3s%-2.2s/%s%s} ", name, vchar); + xo_emit("{:protocol/%-3.3s%-6.6s/%s%s} ", "toe", vchar); + else { + int len; + + len = max (2, 9 - strlen(name)); + xo_emit("{:protocol/%.7s%-*.*s/%s%s} ", name, len, len, + vchar); + } if (Lflag) { char buf1[33]; diff --git a/usr.bin/netstat/main.c b/usr.bin/netstat/main.c index e8f657006982..79830049948a 100644 --- a/usr.bin/netstat/main.c +++ b/usr.bin/netstat/main.c @@ -83,6 +83,8 @@ static struct protox { tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, { -1 , N_UDPSTAT, 1, protopr, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, + { -1, -1, 1, protopr, + NULL, NULL, "udplite", 1, IPPROTO_UDPLITE }, #ifdef SCTP { -1, N_SCTPSTAT, 1, sctp_protopr, sctp_stats, NULL, "sctp", 1, IPPROTO_SCTP }, @@ -131,6 +133,8 @@ static struct protox ip6protox[] = { tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, { -1 , N_UDPSTAT, 1, protopr, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, + { -1, -1, 1, protopr, + NULL, NULL, "udplite", 1, IPPROTO_UDPLITE }, { -1 , N_IP6STAT, 1, protopr, ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, { -1 , N_ICMP6STAT, 1, protopr,