Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F115929129
D47316.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D47316.diff
View Options
diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1
--- a/usr.bin/sockstat/sockstat.1
+++ b/usr.bin/sockstat/sockstat.1
@@ -25,7 +25,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 9, 2024
+.Dd October 15, 2024
.Dt SOCKSTAT 1
.Os
.Sh NAME
@@ -33,7 +33,7 @@
.Nd list open sockets
.Sh SYNOPSIS
.Nm
-.Op Fl 46CcIiLlnqSsUuvw
+.Op Fl 46CcfIiLlnqSsUuvw
.Op Fl j Ar jail
.Op Fl p Ar ports
.Op Fl P Ar protocols
@@ -59,6 +59,8 @@
This is currently only implemented for TCP.
.It Fl c
Show connected sockets.
+.It Fl f
+Show the FIB number of each socket.
.It Fl I
Show the local address of the socket to which the current socket is spliced, if
any.
@@ -228,6 +230,7 @@
.Xr fstat 1 ,
.Xr netstat 1 ,
.Xr procstat 1 ,
+.Xr setfib 1 ,
.Xr inet 4 ,
.Xr inet6 4 ,
.Xr protocols 5
diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c
--- a/usr.bin/sockstat/sockstat.c
+++ b/usr.bin/sockstat/sockstat.c
@@ -82,6 +82,7 @@
static int opt_6; /* Show IPv6 sockets */
static int opt_C; /* Show congestion control */
static int opt_c; /* Show connected sockets */
+static int opt_f; /* Show FIB numbers */
static int opt_I; /* Show spliced socket addresses */
static int opt_i; /* Show inp_gencnt */
static int opt_j; /* Show specified jail */
@@ -140,6 +141,7 @@
int family;
int proto;
int state;
+ int fibnum;
const char *protoname;
char stack[TCP_FUNCTION_NAME_LEN_MAX];
char cc[TCP_CA_NAME_MAX];
@@ -771,6 +773,7 @@
sock->splice_socket = so->so_splice_so;
sock->proto = proto;
sock->inp_gencnt = xip->inp_gencnt;
+ sock->fibnum = so->so_fibnum;
if (xip->inp_vflag & INP_IPV4) {
sock->family = AF_INET;
sockaddr(&laddr->address, sock->family,
@@ -1204,6 +1207,12 @@
default:
abort();
}
+ if (opt_f) {
+ while (pos < offset)
+ pos += xprintf(" ");
+ pos += xprintf("%d", s->fibnum);
+ offset += 7;
+ }
if (opt_I) {
if (s->splice_socket != 0) {
struct sock *sp;
@@ -1329,6 +1338,9 @@
"USER", "COMMAND", "PID", "FD", "PROTO",
opt_w ? 45 : 21, "LOCAL ADDRESS",
opt_w ? 45 : 21, "FOREIGN ADDRESS");
+ if (opt_f)
+ /* RT_MAXFIBS is 65535. */
+ printf(" %-6s", "FIB");
if (opt_I)
printf(" %-*s", opt_w ? 45 : 21, "SPLICE ADDRESS");
if (opt_i)
@@ -1453,9 +1465,8 @@
static void
usage(void)
{
- fprintf(stderr,
- "usage: sockstat [-46CcIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]\n");
- exit(1);
+ errx(1,
+ "usage: sockstat [-46CcfIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]");
}
int
@@ -1469,7 +1480,7 @@
int o, i;
opt_j = -1;
- while ((o = getopt(argc, argv, "46CcIij:Llnp:P:qSsUuvw")) != -1)
+ while ((o = getopt(argc, argv, "46CcfIij:Llnp:P:qSsUuvw")) != -1)
switch (o) {
case '4':
opt_4 = 1;
@@ -1483,6 +1494,9 @@
case 'c':
opt_c = 1;
break;
+ case 'f':
+ opt_f = 1;
+ break;
case 'I':
opt_I = 1;
break;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, May 1, 1:12 PM (6 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17882116
Default Alt Text
D47316.diff (2 KB)
Attached To
Mode
D47316: sockstat: Add a -f option to show FIB numbers of sockets
Attached
Detach File
Event Timeline
Log In to Comment