Re: [PATCH net-next v2 0/2] support SO_PRIORITY cmsg
From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Date: 2024-11-05 15:01:17
Anna Nyiri wrote:
Ido Schimmel [off-list ref] ezt írta (időpont: 2024. nov. 3., V, 17:25):quoted
On Sat, Nov 02, 2024 at 01:51:34PM +0100, Anna Emese Nyiri wrote:quoted
The changes introduce a new helper function, `sk_set_prio_allowed`, which centralizes the logic for validating priority settings. This series adds support for the `SO_PRIORITY` control message, allowing user-space applications to set socket priority via control messages (cmsg). Patch Overview: Patch 1/2: Introduces `sk_set_prio_allowed` helper function. Patch 2/2: Implements support for setting `SO_PRIORITY` via control messages. v2: - Suggested by Willem de Bruijn [off-list ref] introduce "sk_set_prio_allowed" helper to check priority setting capability - drop new fields and change sockcm_cookie::priority from "char" to "u32" to match with sk_buff::priority - cork->tos value check before priority setting moved from __ip_make_skb() to ip_setup_cork() - rebased on net-next v1: https://lore.kernel.org/all/20241029144142.31382-1-annaemesenyiri@gmail.com/ (local) Anna Emese Nyiri (2): Introduce sk_set_prio_allowed helper function support SO_PRIORITY cmsg include/net/inet_sock.h | 2 +- include/net/ip.h | 3 ++- include/net/sock.h | 4 +++- net/can/raw.c | 2 +- net/core/sock.c | 19 ++++++++++++++++--- net/ipv4/ip_output.c | 7 +++++-- net/ipv4/raw.c | 2 +- net/ipv6/ip6_output.c | 3 ++- net/ipv6/raw.c | 2 +- net/packet/af_packet.c | 2 +- 10 files changed, 33 insertions(+), 13 deletions(-)Please consider adding a selftest for this feature. Willem already extended tools/testing/selftests/net/cmsg_sender.c so that it could be used to set SO_PRIORITY via setsockopt. You can extend it to set SO_PRIORITY via cmsg and then use it in a test like tools/testing/selftests/net/cmsg_so_mark.sh is doing for SO_MARK.Of course, I will send the test. However, I would first like to clarify which option I should assign in cmsg_sender for setting priority via cmsg. The -P option is already used for setting priority with setsockopt(), and -p is used to specify the protocol.
Thanks for adding test coverage. If all the Ps are taken, use Q. It's a rare letter, and happens to be the next. In the end, whatever is available.