Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mptcp: pm: netlink: only add server-side attr when true

This attribute is a boolean. No need to add it to set it to 'false'.

Indeed, the default value when this attribute is not set is naturally
'false'. A few bytes can then be saved by not adding this attribute if
the connection is not on the server side.

This prepares the future deprecation of its attribute, in favour of a
new flag.

Reviewed-by: Geliang Tang <geliang@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20250919-net-next-mptcp-server-side-flag-v1-1-a97a5d561a8b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Matthieu Baerts (NGI0) and committed by
Jakub Kicinski
c9809f03 35626012

+8 -6
+2 -2
Documentation/netlink/specs/mptcp_pm.yaml
··· 28 28 traffic-patterns it can take a long time until the 29 29 MPTCP_EVENT_ESTABLISHED is sent. 30 30 Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, 31 - dport, server-side, [flags]. 31 + dport, [server-side], [flags]. 32 32 - 33 33 name: established 34 34 doc: >- 35 35 A MPTCP connection is established (can start new subflows). 36 36 Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, 37 - dport, server-side, [flags]. 37 + dport, [server-side], [flags]. 38 38 - 39 39 name: closed 40 40 doc: >-
+2 -2
include/uapi/linux/mptcp_pm.h
··· 16 16 * good time to allocate memory and send ADD_ADDR if needed. Depending on the 17 17 * traffic-patterns it can take a long time until the MPTCP_EVENT_ESTABLISHED 18 18 * is sent. Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, 19 - * sport, dport, server-side, [flags]. 19 + * sport, dport, [server-side], [flags]. 20 20 * @MPTCP_EVENT_ESTABLISHED: A MPTCP connection is established (can start new 21 21 * subflows). Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, 22 - * sport, dport, server-side, [flags]. 22 + * sport, dport, [server-side], [flags]. 23 23 * @MPTCP_EVENT_CLOSED: A MPTCP connection has stopped. Attribute: token. 24 24 * @MPTCP_EVENT_ANNOUNCED: A new address has been announced by the peer. 25 25 * Attributes: token, rem_id, family, daddr4 | daddr6 [, dport].
+3 -1
net/mptcp/pm_netlink.c
··· 413 413 if (err) 414 414 return err; 415 415 416 - if (nla_put_u8(skb, MPTCP_ATTR_SERVER_SIDE, READ_ONCE(msk->pm.server_side))) 416 + /* only set when it is the server side */ 417 + if (READ_ONCE(msk->pm.server_side) && 418 + nla_put_u8(skb, MPTCP_ATTR_SERVER_SIDE, 1)) 417 419 return -EMSGSIZE; 418 420 419 421 if (READ_ONCE(msk->pm.remote_deny_join_id0))
+1 -1
tools/testing/selftests/net/mptcp/userspace_pm.sh
··· 241 241 242 242 print_test "Established IP${is_v6} MPTCP Connection ns2 => ns1" 243 243 if [ "${client_token}" != "" ] && [ "${server_token}" != "" ] && 244 - [ "${client_serverside}" = 0 ] && [ "${server_serverside}" = 1 ] && 244 + [ "${client_serverside:-0}" = 0 ] && [ "${server_serverside:-0}" = 1 ] && 245 245 [ "${client_nojoin:-0}" = 0 ] && [ "${server_nojoin:-0}" = 1 ] 246 246 then 247 247 test_pass