From: Stephen Hemminger <stephen@networkplumber.org>
To: Gopal Malaviya <gopalmalaviya53@gmail.com>
Cc: netdev@vger.kernel.org, David Ahern <dsahern@kernel.org>
Subject: Re: [PATCH iproute2] ss: document -K requirements in man page
Date: Mon, 19 Oct 2026 10:11:14 -0700 [thread overview]
Message-ID: <20261019101114.6531a476@phoenix.local> (raw)
In-Reply-To: <20261018181917.2440-1-gopalmalaviya53@gmail.com>
On Sun, 18 Oct 2026 18:19:17 +0000
Gopal Malaviya <gopalmalaviya53@gmail.com> wrote:
> The -K/--kill option uses SOCK_DESTROY, which the kernel only provides
> when built with CONFIG_INET_DIAG_DESTROY=y (default n). Closing a
> socket also requires CAP_NET_ADMIN. The man page mentions neither.
>
> Without CONFIG_INET_DIAG_DESTROY, the kernel answers every SOCK_DESTROY
> request with EOPNOTSUPP. ss treats that the same as a single socket
> that cannot be closed and skips it silently, so nothing is closed, no
> error is printed and ss exits with status 0. For example, on a WSL2
> kernel (6.6.114.1-microsoft-standard-WSL2), running as root:
>
> # ss -tan '( sport = :52616 or dport = :52616 )'
> State Recv-Q Send-Q Local Address:Port Peer Address:Port
> FIN-WAIT-2 0 0 127.0.0.1:52616 127.0.0.1:58995
> CLOSE-WAIT 1 0 127.0.0.1:58995 127.0.0.1:52616
> # ss --kill -tan sport = :52616
> State Recv-Q Send-Q Local Address:Port Peer Address:Port
> # echo $?
> 0
> # ss -tan '( sport = :52616 or dport = :52616 )'
> State Recv-Q Send-Q Local Address:Port Peer Address:Port
> FIN-WAIT-2 0 0 127.0.0.1:52616 127.0.0.1:58995
> CLOSE-WAIT 1 0 127.0.0.1:58995 127.0.0.1:52616
>
> With the same kernel rebuilt with CONFIG_INET_DIAG_DESTROY=y, the same
> --kill command closes the matching socket when run as root, and fails
> with "SOCK_DESTROY answers: Operation not permitted" without
> CAP_NET_ADMIN.
>
> Making ss report this was discussed in 2016 [1] without agreement,
> since the kernel also returns EOPNOTSUPP for individual sockets that
> cannot be closed (e.g. some UDP or TIME_WAIT sockets on older kernels),
> and per-socket errors would be noisy on correctly configured systems.
> This patch does not change behaviour; it only documents both
> requirements and the silent case, so users can tell why -K had no
> effect.
>
> Link: https://lore.kernel.org/netdev/1463442791-2399-2-git-send-email-dsa@cumulusnetworks.com/ [1]
> Signed-off-by: Gopal Malaviya <gopalmalaviya53@gmail.com>
Nak
I would rather not turn the iproute2 man pages into a laundry list
of how commands can fail if the kernel is configured without options.
There is a huge range of kernel config options and covering all of
them would make man pages into unreadable by humans noise.
Instead, it is best to just keep the error messages. The existing error
seems clear enough that operation was not permitted.
prev parent reply other threads:[~2026-10-19 17:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-18 18:19 [PATCH iproute2] ss: document -K requirements in man page Gopal Malaviya
2026-10-19 17:11 ` Stephen Hemminger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261019101114.6531a476@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dsahern@kernel.org \
--cc=gopalmalaviya53@gmail.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox