git: 63d9216a6968 - stable/14 - UDP-Lite: export pcblist via sysctl interface

From: Michael Tuexen <tuexen_at_FreeBSD.org>
Date: Fri, 31 Oct 2025 18:42:21 UTC
The branch stable/14 has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=63d9216a69681ce1f036206998a9f3d476451a04

commit 63d9216a69681ce1f036206998a9f3d476451a04
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2025-10-23 07:10:03 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2025-10-31 13:41:22 +0000

    UDP-Lite: export pcblist via sysctl interface
    
    Export the list of pcbs for UDP-Lite to be consumed by sockstat and
    netstat.
    
    Reviewed by:            Peter Lei, Nick Banks
    Differential Revision:  https://reviews.freebsd.org/D53229
    
    (cherry picked from commit be93b27483680c7e741b1627cc96a131bc99436c)
---
 sys/netinet/in_proto.c   | 2 ++
 sys/netinet/udp_usrreq.c | 5 +++++
 sys/netinet/udp_var.h    | 1 +
 3 files changed, 8 insertions(+)

diff --git a/sys/netinet/in_proto.c b/sys/netinet/in_proto.c
index e534fdd77635..129dc1cfe892 100644
--- a/sys/netinet/in_proto.c
+++ b/sys/netinet/in_proto.c
@@ -110,6 +110,8 @@ SYSCTL_NODE(_net_inet, IPPROTO_ICMP, icmp, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
     "ICMP");
 SYSCTL_NODE(_net_inet, IPPROTO_UDP, udp, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
     "UDP");
+SYSCTL_NODE(_net_inet, IPPROTO_UDPLITE, udplite, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
+    "UDP-Lite");
 SYSCTL_NODE(_net_inet, IPPROTO_TCP, tcp, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
     "TCP");
 #if defined(SCTP) || defined(SCTP_SUPPORT)
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index 88df8f8d38fc..ffffaa684f52 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -852,6 +852,11 @@ SYSCTL_PROC(_net_inet_udp, UDPCTL_PCBLIST, pcblist,
     udp_pcblist, "S,xinpcb",
     "List of active UDP sockets");
 
+SYSCTL_PROC(_net_inet_udplite, OID_AUTO, pcblist,
+    CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, IPPROTO_UDPLITE,
+    udp_pcblist, "S,xinpcb",
+    "List of active UDP-Lite sockets");
+
 #ifdef INET
 static int
 udp_getcred(SYSCTL_HANDLER_ARGS)
diff --git a/sys/netinet/udp_var.h b/sys/netinet/udp_var.h
index 51272e7c9349..569b7b8d5240 100644
--- a/sys/netinet/udp_var.h
+++ b/sys/netinet/udp_var.h
@@ -141,6 +141,7 @@ void	kmod_udpstat_inc(int statnum);
     kmod_udpstat_inc(offsetof(struct udpstat, name) / sizeof(uint64_t))
 
 SYSCTL_DECL(_net_inet_udp);
+SYSCTL_DECL(_net_inet_udplite);
 
 VNET_DECLARE(struct inpcbinfo, udbinfo);
 VNET_DECLARE(struct inpcbinfo, ulitecbinfo);