diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2025-09-22 11:51:27 -0700 | 
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2025-09-22 11:51:27 -0700 | 
| commit | 9b277fca90c39c8b749e659bf5c23e924c46c93b (patch) | |
| tree | 1b8a119894767e26a9064222cb6147b2d47c78ac /net | |
| parent | 35626012877b80436e0627feb16520db4f0ba53e (diff) | |
| parent | 1be5b82c45850f495adf67887075507d5e8a860b (diff) | |
Merge branch 'mptcp-pm-netlink-announce-server-side-flag'
Matthieu Baerts says:
====================
mptcp: pm: netlink: announce server-side flag
Now that the 'flags' attribute is used, it seems interesting to add one
flag for 'server-side', a boolean value.
Here are a few patches related to the 'server-side' attribute:
- Patch 1: only announce this attribute on the server side.
- Patch 2: announce the 'server-side' flag when this is the case.
- Patch 3: deprecate the 'server-side' attribute.
- Patch 4: use the 'server-side' flag in the selftests.
- Patches 5, 6: small cleanups when working on code around.
====================
Link: https://patch.msgid.link/20250919-net-next-mptcp-server-side-flag-v1-0-a97a5d561a8b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net')
| -rw-r--r-- | net/mptcp/pm_netlink.c | 9 | ||||
| -rw-r--r-- | net/mptcp/protocol.c | 5 | 
2 files changed, 8 insertions, 6 deletions
| diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 483ddbb9ec40..d5b383870f79 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -413,8 +413,13 @@ static int mptcp_event_created(struct sk_buff *skb,  	if (err)  		return err; -	if (nla_put_u8(skb, MPTCP_ATTR_SERVER_SIDE, READ_ONCE(msk->pm.server_side))) -		return -EMSGSIZE; +	if (READ_ONCE(msk->pm.server_side)) { +		flags |= MPTCP_PM_EV_FLAG_SERVER_SIDE; + +		/* Deprecated, and only set when it is the server side */ +		if (nla_put_u8(skb, MPTCP_ATTR_SERVER_SIDE, 1)) +			return -EMSGSIZE; +	}  	if (READ_ONCE(msk->pm.remote_deny_join_id0))  		flags |= MPTCP_PM_EV_FLAG_DENY_JOIN_ID0; diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index d9fbddb99ad0..735a209d4072 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -545,11 +545,10 @@ static void mptcp_cleanup_rbuf(struct mptcp_sock *msk, int copied)  	}  } -static bool mptcp_check_data_fin(struct sock *sk) +static void mptcp_check_data_fin(struct sock *sk)  {  	struct mptcp_sock *msk = mptcp_sk(sk);  	u64 rcv_data_fin_seq; -	bool ret = false;  	/* Need to ack a DATA_FIN received from a peer while this side  	 * of the connection is in ESTABLISHED, FIN_WAIT1, or FIN_WAIT2. @@ -588,12 +587,10 @@ static bool mptcp_check_data_fin(struct sock *sk)  			break;  		} -		ret = true;  		if (!__mptcp_check_fallback(msk))  			mptcp_send_ack(msk);  		mptcp_close_wake_up(sk);  	} -	return ret;  }  static void mptcp_dss_corruption(struct mptcp_sock *msk, struct sock *ssk) | 
