From nobody Tue Oct 28 01:59: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 4cwYTB0tHWz6G4Ps; Tue, 28 Oct 2025 01:59: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cwYT94hcSz3VDX; Tue, 28 Oct 2025 01:59:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761616749; 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=4xqVM7KIw4eDsTBGc5IuWJb+x2KlfBYatr5NdQ4PEIw=; b=gl4wWVA81afyFV1XnNf20IJRMfb+ttq9DeepBoUOhfaiyAQrTA11WoVb8Yb3u1FD5y0hDu pPq1g2NwCLY/SuhiZtcJu/6exZOqQPJjMGqqP+5CM8eYZiHW/rlEZHcwCs38nWYrYJ32au jy+lVKjAUub4D2lZyWd2QIzUU5ojhvtqxDjGjjq3uHH3NRKWQPSRe91bBxE2MmJpy7J8Xq fA2vFBbCLnMUqJypySx3tCQB8d2UmPdlkTOcEGxxQ5EFtpnj167LCazOYdhGzP2sZoD4j3 /7AF6kxZl6O7Gcb/MSS8N6jZKuFXDZ4+nGq1FMJHsWkVkQu5InK0ZM+iuoRsdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761616749; 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=4xqVM7KIw4eDsTBGc5IuWJb+x2KlfBYatr5NdQ4PEIw=; b=kFpD/ZEsUVRBPh3+wrsTU544hwTSdVpVx4zeB+++ZTikWJLkppyQZi0oYjBgTJPt4tBQqX OokLEAomiiV88f5Ina7tWP8r8QXokKkpyydSNKrUHpUugyzwSUedzVbgoIjuVicT+TMYwo ITCHARJXbDfwwToU8eyY/BcRlvBqvsQvskqlLOU1jKn++t4uALfmeJYuVgEVJ+xEq05G79 5CFQim+8Gu/Lrh3BkBgVHO1zas/9cUUGNkstj7vBBUqpK3wBxhpszDgeRjFF8fjBGUhC1e MuL2jYFco65VSDetPIMcuKemsoJiST227LrQrithX5RBO2IJI2sb58PyACFHjA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761616749; a=rsa-sha256; cv=none; b=FsnEoAejHub2S0hMK77mZ3eMatjAOI36JZcYym1mdbc0ZO28ONCFsLVIR7JGF4V61duWwt OAfU5OSPVolo92r0Mq4H8SDIGVAc5Vz/vN3hwXyXd89OWcnEhS8d5BoQycNigmRzpk8CHL fZXXj2L5Y870MeAz5sxFDUClxg+D656vXTc2mA4PssaEB2Iyz46GFMOxxvizmUZDp0DrWB zdHHqUoFafvfK13AHHtI00U16bmVOn5xlHq22ryE5p0K9/9lX58TEN81a7n9zMATXH7B7s HWcp4r4FT/xxixAJeYQV87M9u0ZmkgRFbGQ7q0ApN1ZcuiATeowZ5cJGGfM8ig== 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 4cwYT94GvFzDDP; Tue, 28 Oct 2025 01:59: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 59S1x98p071703; Tue, 28 Oct 2025 01:59:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59S1x9Y9071699; Tue, 28 Oct 2025 01:59:09 GMT (envelope-from git) Date: Tue, 28 Oct 2025 01:59:09 GMT Message-Id: <202510280159.59S1x9Y9071699@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: 72016759dabd - releng/15.0 - netstat: add support for UDP-Lite endpoints 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/15.0 X-Git-Reftype: branch X-Git-Commit: 72016759dabd203eeaaf47dba534f9df5ce801e4 Auto-Submitted: auto-generated The branch releng/15.0 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=72016759dabd203eeaaf47dba534f9df5ce801e4 commit 72016759dabd203eeaaf47dba534f9df5ce801e4 Author: Michael Tuexen AuthorDate: 2025-10-23 07:15:22 +0000 Commit: Colin Percival CommitDate: 2025-10-28 01:58:18 +0000 netstat: add support for UDP-Lite endpoints With this patch UDP-Lite endpoints are also shown per default. Approved by: re (cperciva) Reviewed by: Nick Banks Differential Revision: https://reviews.freebsd.org/D53252 (cherry picked from commit c2b08c13c20d44c3368bcbf738624e5fac461314) (cherry picked from commit 372b60422689b2bfb2ccf3ab22847eb54dae0b11) --- 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,