Skip to content

Commit 186cac2

Browse files
committed
tgupdate: merge t/upstream base into t/upstream
2 parents 7c14230 + 39795af commit 186cac2

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

Documentation/networking/mptcp-sysctl.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ add_addr_timeout - INTEGER (seconds)
1212
resent to an MPTCP peer that has not acknowledged a previous
1313
ADD_ADDR message.
1414

15+
Do not retransmit if set to 0.
16+
1517
The default value matches TCP_RTO_MAX. This is a per-namespace
1618
sysctl.
1719

net/mptcp/pm.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
274274
add_timer);
275275
struct mptcp_sock *msk = entry->sock;
276276
struct sock *sk = (struct sock *)msk;
277+
unsigned int timeout;
277278

278279
pr_debug("msk=%p\n", msk);
279280

@@ -291,6 +292,10 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
291292
goto out;
292293
}
293294

295+
timeout = mptcp_get_add_addr_timeout(sock_net(sk));
296+
if (!timeout)
297+
goto out;
298+
294299
spin_lock_bh(&msk->pm.lock);
295300

296301
if (!mptcp_pm_should_add_signal_addr(msk)) {
@@ -302,7 +307,7 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
302307

303308
if (entry->retrans_times < ADD_ADDR_RETRANS_MAX)
304309
sk_reset_timer(sk, timer,
305-
jiffies + mptcp_get_add_addr_timeout(sock_net(sk)));
310+
jiffies + timeout);
306311

307312
spin_unlock_bh(&msk->pm.lock);
308313

@@ -344,6 +349,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
344349
struct mptcp_pm_add_entry *add_entry = NULL;
345350
struct sock *sk = (struct sock *)msk;
346351
struct net *net = sock_net(sk);
352+
unsigned int timeout;
347353

348354
lockdep_assert_held(&msk->pm.lock);
349355

@@ -353,9 +359,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
353359
if (WARN_ON_ONCE(mptcp_pm_is_kernel(msk)))
354360
return false;
355361

356-
sk_reset_timer(sk, &add_entry->add_timer,
357-
jiffies + mptcp_get_add_addr_timeout(net));
358-
return true;
362+
goto reset_timer;
359363
}
360364

361365
add_entry = kmalloc(sizeof(*add_entry), GFP_ATOMIC);
@@ -369,8 +373,10 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
369373
add_entry->retrans_times = 0;
370374

371375
timer_setup(&add_entry->add_timer, mptcp_pm_add_timer, 0);
372-
sk_reset_timer(sk, &add_entry->add_timer,
373-
jiffies + mptcp_get_add_addr_timeout(net));
376+
reset_timer:
377+
timeout = mptcp_get_add_addr_timeout(net);
378+
if (timeout)
379+
sk_reset_timer(sk, &add_entry->add_timer, jiffies + timeout);
374380

375381
return true;
376382
}

tools/testing/selftests/net/mptcp/mptcp_join.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3842,6 +3842,7 @@ endpoint_tests()
38423842
# remove and re-add
38433843
if reset_with_events "delete re-add signal" &&
38443844
mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then
3845+
ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=0
38453846
pm_nl_set_limits $ns1 0 3
38463847
pm_nl_set_limits $ns2 3 3
38473848
pm_nl_add_endpoint $ns1 10.0.2.1 id 1 flags signal

0 commit comments

Comments
 (0)