Skip to content

Commit 3670441

Browse files
Florian Westphaldavem330
authored andcommitted
mptcp: setsockopt: add SO_MARK support
Value is synced to all subflows. Acked-by: Paolo Abeni <[email protected]> Signed-off-by: Florian Westphal <[email protected]> Signed-off-by: Mat Martineau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 268b123 commit 3670441

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

net/mptcp/sockopt.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ static void mptcp_sol_socket_sync_intval(struct mptcp_sock *msk, int optname, in
9595
ssk->sk_userlocks |= SOCK_RCVBUF_LOCK;
9696
WRITE_ONCE(ssk->sk_rcvbuf, sk->sk_rcvbuf);
9797
break;
98+
case SO_MARK:
99+
if (READ_ONCE(ssk->sk_mark) != sk->sk_mark) {
100+
ssk->sk_mark = sk->sk_mark;
101+
sk_dst_reset(ssk);
102+
}
103+
break;
98104
}
99105

100106
subflow->setsockopt_seq = msk->setsockopt_seq;
@@ -132,6 +138,7 @@ static int mptcp_setsockopt_sol_socket_int(struct mptcp_sock *msk, int optname,
132138
case SO_KEEPALIVE:
133139
mptcp_sol_socket_sync_intval(msk, optname, val);
134140
return 0;
141+
case SO_MARK:
135142
case SO_PRIORITY:
136143
case SO_SNDBUF:
137144
case SO_SNDBUFFORCE:
@@ -222,6 +229,7 @@ static int mptcp_setsockopt_sol_socket(struct mptcp_sock *msk, int optname,
222229
case SO_SNDBUFFORCE:
223230
case SO_RCVBUF:
224231
case SO_RCVBUFFORCE:
232+
case SO_MARK:
225233
return mptcp_setsockopt_sol_socket_int(msk, optname, optval, optlen);
226234
case SO_LINGER:
227235
return mptcp_setsockopt_sol_socket_linger(msk, optval, optlen);

0 commit comments

Comments
 (0)