From nobody Sun Oct 26 12:51: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 4cvc3D1ZY7z6D6LH; Sun, 26 Oct 2025 12:51: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cvc3D11S9z3Dbn; Sun, 26 Oct 2025 12:51:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761483112; 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=ofOPF+RPZz+m+qGrQ3MMFwi4NvpgApvi1O7YqfKWWvQ=; b=QgK8pdwweRR7bz/IcgVlUBW6XKN/uRkgj6Tc0NeXMUxB9zT/Leu/aOJyLqcpOJYWyHWg41 JwQhIGdGAhr8T2qfU7xwC799KYHN3sWzXCcF2IEuvPKmPMyBaVThEVm22xYATAAPUdU4Tc 267wrGbmX4YaeY28DszeZOFkJIEY5QoPDOfIjAzltS8i45jU9gqaX/nNWYgg0sxDjHKlOo 27CKaYIwE+qgNHN4YkAWKjhDWGbthXDA+6xwC+cbC7hWlfBIsCBcYTf6pzDjNvd1IkfaMI a1xGMwcMVyvEuGH4csmI9Pbxp4IvEVYVsKbHGGXN3NBcuRvP4KVmK3ainD6oXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761483112; 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=ofOPF+RPZz+m+qGrQ3MMFwi4NvpgApvi1O7YqfKWWvQ=; b=IuA0fMBDgeuG36dmf00x3iJn0RcgtzXxzuQNWKi91ubEb7LbGHc87C6MOa+VpxPw37sB02 msTAHYm2yWPv/z8yqvbO0LrMpq5oBPWD4GMYb20Mzo7DUYfHXIgYDUZVZuIKfsptiT77Xx bpYerD0I7celiRZx3x/8VJlN+zFO9+WyaGvDPET+a9QbNW4ZcV4rEbWas5m5azjnBFlhJZ fcinJyZUjPAQ97FVpQyelANusTWAdM/JTlpCsZlpxEjHlNA5zcGBxff4YOQLWiTR6RFffF wlil1ZPo6IVtoHiherJWy1fny2WPrqnN+sphn7akv9zP6SxgQUVudhT7LKzAxA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761483112; a=rsa-sha256; cv=none; b=XdiklEVnW40A4lrKTzMfWf2yoPtphQaH2aabjYcA5UM+he8dsS2ZlPg0S5e4xpMeSPVnHe gUETPRqyfu5cJIKHs60IXLou4YnbTOGyxEd1kZsPnsZGndAfSv4LD5z83jQJ+aB5MDivls zlAcUbNHDy1pYV29VF9oyPZWrMlIxtUwqsCNN8iijbhsUpqrCWvMtfxUI6nZiW5WwVO/RH GOtN002ecWDdwhuL93DMAoFwzGP2tCN3cQ5I3f2cflmCuI3OvOTrKK8dcEuxaNRG+K8l6n VXQgPuilCJSY4HW8IeWgo+mumU8F+HuRS5atp1iV1gxSbGPnLyZEsXOUX3cvxQ== 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 4cvc3D0WcJzZDv; Sun, 26 Oct 2025 12:51: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 59QCpqO2045719; Sun, 26 Oct 2025 12:51:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59QCpqGT045716; Sun, 26 Oct 2025 12:51:52 GMT (envelope-from git) Date: Sun, 26 Oct 2025 12:51:52 GMT Message-Id: <202510261251.59QCpqGT045716@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: 372b60422689 - stable/15 - 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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 372b60422689b2bfb2ccf3ab22847eb54dae0b11 Auto-Submitted: auto-generated The branch stable/15 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=372b60422689b2bfb2ccf3ab22847eb54dae0b11 commit 372b60422689b2bfb2ccf3ab22847eb54dae0b11 Author: Michael Tuexen AuthorDate: 2025-10-23 07:15:22 +0000 Commit: Michael Tuexen CommitDate: 2025-10-26 13:51:37 +0000 netstat: add support for UDP-Lite endpoints With this patch UDP-Lite endpoints are also shown per default. Reviewed by: Nick Banks Differential Revision: https://reviews.freebsd.org/D53252 (cherry picked from commit c2b08c13c20d44c3368bcbf738624e5fac461314) --- 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,