[MPTCP][PATCH v3 mptcp-next 0/2] add ADD_ADDR IPv6 support
by Geliang Tang
v3:
- drop other MPTCP suboptions instead of OPTION_TS
v2:
- avoid adding new field to tcp_sock, add new field in mptcp_pm_data.
- drop OPTION_TS in mptcp_established_options_add_addr, not in
tcp_established_options.
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/55
Geliang Tang (2):
mptcp: send out dedicated ADD_ADDR packet
selftests: mptcp: add subflow and ADD_ADDR IPv6 test cases
net/mptcp/options.c | 25 ++++++++++++---
net/mptcp/pm.c | 16 ++++++++--
net/mptcp/protocol.h | 4 ++-
.../testing/selftests/net/mptcp/mptcp_join.sh | 32 ++++++++++++++++++-
4 files changed, 69 insertions(+), 8 deletions(-)
--
2.17.1
1 year, 7 months
[Weekly meetings] MoM - 24th of September 2020
by Matthieu Baerts
Hello everyone,
Last Thursday, we had our 117th meeting with Mat and Ossama (Intel OTC),
Paolo, Davide and Florian (RedHat), Geliang (Xiaomi) and myself (Tessares).
Thanks again for this new good meeting!
Here are the minutes of the meeting:
Accepted patches:
- The list of accepted patches can be seen on PatchWork:
https://patchwork.ozlabs.org/project/mptcp/list/?state=3
netdev (if mptcp ML is in cc) (Mat Martineau, Paolo Abeni):
1368467 [net,v3] mptcp: Wake up MPTCP worker when DATA_FIN found on a TC...
1366446 [net-next] mptcp: fix integer overflow in
mptcp_subflow_discard_data()
our repo (by: Florian Westphal, Geliang Tang):
1368324 [mptcp-next] Squash-to: "mptcp: retransmit ADD_ADDR when
timeout v5"
1368118 [v5,mptcp-next,3/3] mptcp: retransmit ADD_ADDR when timeout
1368117 [v5,mptcp-next,2/3] mptcp: add sk_stop_timer_sync helper
1368113 [v5,mptcp-next,1/3] mptcp: add struct mptcp_pm_add_entry
1367894 [mptcp-next,2/2] Squash-to: "mptcp: implement
mptcp_pm_remove_subflow...
1367893 [mptcp-next,1/2] Squash-to: "mptcp: remove addr and subflow in
PM net...
1361694 [mptcp-next] mptcp: split mptcp_clean_una function
Pending patches:
- The list of pending patches can be seen on PatchWork:
https://patchwork.ozlabs.org/project/mptcp/list/?state=*
netdev (if mptcp ML is in cc) (by: Geliang Tang, Nicolas Rybowski):
1370199 [net-next,16/16] mptcp: retransmit ADD_ADDR when timeout
1370197 [net-next,15/16] mptcp: add sk_stop_timer_sync helper
1370195 [net-next,14/16] mptcp: add struct mptcp_pm_add_entry
1370193 [net-next,13/16] selftests: mptcp: add remove addr and subflow
test c...
1370182 [net-next,12/16] selftests: mptcp: add remove cfg in mptcp_connect
1370181 [net-next,11/16] mptcp: add mptcp_destroy_common helper
1370179 [net-next,10/16] mptcp: add RM_ADDR related mibs
1370177 [net-next,09/16] mptcp: implement mptcp_pm_remove_subflow
1370174 [net-next,08/16] mptcp: remove addr and subflow in PM netlink
1370173 [net-next,07/16] mptcp: add accept_subflow re-check
1370171 [net-next,06/16] selftests: mptcp: add ADD_ADDR mibs check function
1370169 [net-next,05/16] mptcp: add ADD_ADDR related mibs
1370166 [net-next,04/16] mptcp: send out ADD_ADDR with echo flag
1370165 [net-next,03/16] mptcp: add the incoming RM_ADDR support
1370162 [net-next,02/16] mptcp: add the outgoing RM_ADDR support
1370160 [net-next,01/16] mptcp: rename addr_signal and the related
functions
1366857 [bpf-next,v3,3/5] bpf: add 'bpf_mptcp_sock' structure and helper
1366854 [bpf-next,v3,2/5] mptcp: attach subflow socket to parent cgroup:
- v4 is needed with bigger changes not requested before (BTF support)
our repo (by: Florian Westphal, Geliang Tang, Paolo Abeni):
1349790: Changes Requested: [mptcp-next] mptcp: keep track of receivers
advertised window:
1357954: RFC: [RFC,mptcp-next,2/3] mptcp: rework poll+nospace handling
1357955: RFC: [RFC,mptcp-next,3/3] mptcp: try to clean data inplace if
possible:
- should be rebased on top of Paolo' series (sendmsg refactor)
1362441: Changes Requested: [net] tcp: fix syn cookied MPTCP request
socket leak:
- causing issue in selftests
- will check later
1367888: Under Review: [v2,mptcp-next] mptcp: add ADD_ADDR IPv6 support:
- working on a v3
1368822: Changes Requested: [mptcp-next,1/3] mptcp: add add_addr_echo sysctl
1368823: Changes Requested: [mptcp-next,2/3] mptcp: add add_addr_timeout
sysctl
1368824: Changes Requested: [mptcp-next,3/3] selftests: mptcp: add
ADD_ADDR timeout test case:
- something that should be easy to do with packetdrill
- but validating basic support with selftests would be good as well
(e.g. dropping echo bits with netfilter)
1370680: New: [RFC,1/8] tcp: factor out __tcp_close() helper
1370678: New: [RFC,2/8] mptcp: introduce mptcp_schedule_work
1370676: New: [RFC,3/8] mptcp: reduce the arguments of mptcp_sendmsg_frag
1370679: New: [RFC,4/8] mptcp: add accounting for pending data
1370681: New: [RFC,5/8] mptcp: introduce MPTCP snd_nxt
1370684: New: [RFC,6/8] mptcp: refactor shutdown and close
1370683: New: [RFC,7/8] mptcp: move page frag allocation in mptcp_sendmsg()
1370682: New: [RFC,8/8] mptcp: try to push pending data on snd una updates:
- sendmsg refactor
- patch 6 might overlap with what Mat did (to be checked)
- some selftests don't pass yet
- but ones they are passing, we can probably quickly merge this to
have more tests
- any feedback is more than welcome!
- should fix a "use-after-free" issue reported by Paolo
1370698: New: [RFC,1/4] net: tcp: drop unused function argument from
mptcp_incoming_options
1370700: New: [RFC,2/4] tcp: move selected mptcp helpers to tcp.h/mptcp.h
1370701: New: [RFC,3/4] mptcp: add mptcp reset option support
1370702: New: [RFC,4/4] tcp: parse tcp options contained in reset packets:
- it's a structure for future code later on PM side
- first patch can be sent upstream soon
Issues on Github:
https://github.com/multipath-tcp/mptcp_net-next/issues/
Recently opened (latest from last week: 90)
92 mptcp_close() deletes MPTCP socket before disconnection completes
v5.9 @mjmartineau ‡:
- when doing a shutdown/close refactor, linked to what Paolo did
- but the refactor is a bit too big for v5.9
- do we need something: workaround or nothing?
- problem is when testing v5.9 with mptcp.org and the issue is on
v5.9 side causing mptcp.org to retransmit the last packet for a while
- can be an issue with other MPTCPv1 implementation
- → do we need something specific for v5.9? yes...
- In 5.9, we never retransmit the DATAFIN+ACK, that's why it is
safe :)
- might be difficult to have the new sendmsg refactoring in the
next merge window
- workaround: maybe send a RST when receiving retransmitted
DATA_FIN+ACK? To tell the other hand to give up, at least to clear states!
91 MPJ: Fallback to TCP if the client receives a 4th ACK without DSS
options from the server [bug]:
- there is a packetdrill test to easily reproduce the issue
Bugs (opened, flagged as "bug" and assigned)
89 kmemleak in cookie_tcp_reqsk_alloc (mptcp_join.sh) [bug] @pabeni:
- WIP
85 Packetdrill: multiple timeout reported by the CI [bug] @matttbe:
- WIP
- Davide doesn't have the issue
- Matth has the issue only with the wrapper to launch multiple tests
- TODO: Matth: detail what was found on the ticket
84 Received DATA_FIN+FIN does not trigger wakeup [bug] v5.9
@mjmartineau ‡:
- can be closed
- TODO: Matth → done by Mat
Bugs (opened and flagged as "bug" and not assigned)
91 MPJ: Fallback to TCP if the client receives a 4th ACK without DSS
options from the server [bug]
87 [interop] watchdog: BUG: soft lockup - CPU#2 stuck for 22s [bug]
[interop]:
- closed!
70 [syzkaller] WARNING in mptcp_reset_timer [bug] [syzkaller]:
- Christoph was able to reproduce it
65 clearing properly the status in listen() [bug]
56 msk connection state set without msk lock [bug]
In Progress (opened and assigned)
92 mptcp_close() deletes MPTCP socket before disconnection completes
v5.9 @mjmartineau ‡:
→ should be flagged as bug
- TODO: Matth: ↑ → done by Mat
76 [gs]etsockopt per subflow: BPF [enhancement] @matttbe:
- a new version of the patches is needed
55 ADD_ADDR: IPv6 support [enhancement] @geliangtang:
- WIP
54 ADD_ADDR: ports support [enhancement] @geliangtang:
- For later
50 REMOVE_ADDR support [enhancement] @geliangtang:
- can be closed!
- Matth: todo → done
49 ADD_ADDR: echo bit support [enhancement] @geliangtang:
- can be closed! (even if one selftest is in progress)
- Matth: todo → done
43 [syzkaller] Change syzkaller to exercise MPTCP inet_diag
interface [enhancement] [syzkaller] @cpaasch
Recently closed (since last week)
90 mptcp_connect.sh: BUG in mptcp_pm_free_anno_list() [bug] @geliangtang
88 [syzkaller] INFO: task hung in lock_sock_nested
82 improve packet scheduler for asymmetric links [enhancement] @pabeni
62 [syzkaller] WARNING in __mptcp_move_skbs_from_subflow [bug]
[syzkaller]
FYI: Current Roadmap:
- Bugs: https://github.com/multipath-tcp/mptcp_net-next/projects/2
- Current merge window (5.10):
https://github.com/multipath-tcp/mptcp_net-next/projects/5
- For later: https://github.com/multipath-tcp/mptcp_net-next/projects/4
Extra tests:
- news about Syzkaller? (Christoph):
- → see GitHub
- news about interop with mptcp.org? (Christoph):
- → see GitHub
- news about Intel's kbuild? (Mat):
- didn't hear any news
- packetdrill (Davide):
- when the first DATAFIN packet is received, no other packets
can be treated by Packetdrill
- probably a bug in packetdrill that needs to be analysed
- TODO: Matth: create a Github ticket to track this → Done: 94
- CI (Matth):
- got some issues with mptcp_connect.sh -m mmap
- VM memory could be related to an issue with this test
- TODO: Matth: add this in a new selftests to have more tests
by others
- TODO: Matth: get more info in case of timeout: enable debug
dynamically + sysrq?
Next steps:
- having more stress tests!
Python:
- add support for IPPROTO_MPTCP → Matth is looking at that
Tests for later:
- use an upstream kernel with MPTCP on a phone (Linux/Android)
Next meeting:
- We propose to have the next meeting on Thursday, the 1st of October.
- Usual time: 15:00 UTC (8am PDT, 5pm CEST, 11pm UTC+8)
- Still open to everyone!
- https://annuel2.framapad.org/p/mptcp_upstreaming_20201001
Feel free to comment on these points and propose new ones for the next
meeting!
Talk to you on Thursday,
Matt
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
1 year, 7 months
[RFC PATCH net 1/2] mptcp: Consistently use READ_ONCE/WRITE_ONCE with msk->ack_seq
by Mat Martineau
The msk->ack_seq value is sometimes read without the msk lock held, so
make proper use of READ_ONCE and WRITE_ONCE.
Signed-off-by: Mat Martineau <mathew.j.martineau(a)linux.intel.com>
---
This does create some merge conflicts with net-next - what's the best
way to handle that?
net/mptcp/options.c | 4 ++--
net/mptcp/protocol.c | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index 7fa822b55c34..120ef39fe589 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -518,11 +518,11 @@ static bool mptcp_established_options_dss(struct sock *sk, struct sk_buff *skb,
if (subflow->use_64bit_ack) {
ack_size = TCPOLEN_MPTCP_DSS_ACK64;
- opts->ext_copy.data_ack = msk->ack_seq;
+ opts->ext_copy.data_ack = READ_ONCE(msk->ack_seq);
opts->ext_copy.ack64 = 1;
} else {
ack_size = TCPOLEN_MPTCP_DSS_ACK32;
- opts->ext_copy.data_ack32 = (uint32_t)(msk->ack_seq);
+ opts->ext_copy.data_ack32 = (uint32_t)READ_ONCE(msk->ack_seq);
opts->ext_copy.ack64 = 0;
}
opts->ext_copy.use_ack = 1;
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 365ba96c84b0..5d747c6a610e 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -123,7 +123,7 @@ static void __mptcp_move_skb(struct mptcp_sock *msk, struct sock *ssk,
skb_ext_reset(skb);
skb_orphan(skb);
- msk->ack_seq += copy_len;
+ WRITE_ONCE(msk->ack_seq, msk->ack_seq + copy_len);
tail = skb_peek_tail(&sk->sk_receive_queue);
if (offset == 0 && tail) {
@@ -261,7 +261,7 @@ static void mptcp_check_data_fin(struct sock *sk)
if (mptcp_pending_data_fin(sk, &rcv_data_fin_seq)) {
struct mptcp_subflow_context *subflow;
- msk->ack_seq++;
+ WRITE_ONCE(msk->ack_seq, msk->ack_seq + 1);
WRITE_ONCE(msk->rcv_data_fin, 0);
sk->sk_shutdown |= RCV_SHUTDOWN;
@@ -1720,7 +1720,7 @@ struct sock *mptcp_sk_clone(const struct sock *sk,
msk->remote_key = mp_opt->sndr_key;
mptcp_crypto_key_sha(msk->remote_key, NULL, &ack_seq);
ack_seq++;
- msk->ack_seq = ack_seq;
+ WRITE_ONCE(msk->ack_seq, ack_seq);
}
sock_reset_flag(nsk, SOCK_RCU_FREE);
@@ -2072,7 +2072,7 @@ bool mptcp_finish_join(struct sock *sk)
parent_sock = READ_ONCE(parent->sk_socket);
if (parent_sock && !sk->sk_socket)
mptcp_sock_graft(sk, parent_sock);
- subflow->map_seq = msk->ack_seq;
+ subflow->map_seq = READ_ONCE(msk->ack_seq);
return true;
}
base-commit: 4e1b469ab0c2c6e6611a0af9f88c7745250dbf64
--
2.28.0
1 year, 7 months
[MPTCP][PATCH v4 mptcp-next 0/2] mptcp: add ADD_ADDR timeout test case and others
by Geliang Tang
v4:
- use proc_dointvec_jiffies instead of proc_douintvec.
- use the reverse x-mas tree order.
- update the 'config' file for netfilter.
v3:
- rename run_add_addr_timeout_tests to run_tests_slow, it can be reused in
other test cases.
v2:
- drop add_addr_echo sysctl in v1
- use iptables rules to drop ADD_ADDR echo packets.
Geliang Tang (2):
mptcp: add a new sysctl add_addr_timeout
selftests: mptcp: add ADD_ADDR timeout test case
net/mptcp/ctrl.c | 14 ++++++
net/mptcp/pm_netlink.c | 8 +++-
net/mptcp/protocol.h | 1 +
tools/testing/selftests/net/mptcp/config | 6 +++
.../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++--
5 files changed, 67 insertions(+), 5 deletions(-)
--
2.26.2
1 year, 7 months
[PATCH net 0/2] mptcp: Fix for 32-bit DATA_FIN
by Mat Martineau
The main fix is contained in patch 2, and that commit message explains
the issue with not properly converting truncated DATA_FIN sequence
numbers sent by the peer.
With patch 2 adding an unlocked read of msk->ack_seq, patch 1 cleans up
access to that data with READ_ONCE/WRITE_ONCE.
This does introduce two merge conflicts with net-next, but both have
straightforward resolution. Patch 1 modifies a line that got removed in
net-next so the modification can be dropped when merging. Patch 2 will
require a trivial conflict resolution for a modified function
declaration.
Mat Martineau (2):
mptcp: Consistently use READ_ONCE/WRITE_ONCE with msk->ack_seq
mptcp: Handle incoming 32-bit DATA_FIN values
net/mptcp/options.c | 11 ++++++-----
net/mptcp/protocol.c | 8 ++++----
net/mptcp/protocol.h | 2 +-
net/mptcp/subflow.c | 16 +++++++++++++---
4 files changed, 24 insertions(+), 13 deletions(-)
base-commit: c92a79829c7c169139874aa1d4bf6da32d10c38a
--
2.28.0
1 year, 7 months
[kselftest UNSTABLE] mptcp/export d94d08e790 ("DO-NOT-MERGE: mptcp: enabled by default") (fwd)
by Mat Martineau
The LKP project is sending updates again for test results. I will check
out the failures, it's not clear how many are actually mptcp-related.
--
Mat Martineau
Intel
---------- Forwarded message ----------
Date: Tue, 29 Sep 2020 03:43:32
From: kernel test robot <lkp(a)intel.com>
To: mathew.j.martineau(a)linux.intel.com
Subject: [kselftest UNSTABLE] mptcp/export d94d08e790
("DO-NOT-MERGE: mptcp: enabled by default")
Check console output at http://bee.sh.intel.com:8080/job/lkp-mptcp/282/
LINUX COMMIT
============
commit : d94d08e790ff5a06bb2e418870a1e1114ea8f277
subject: DO-NOT-MERGE: mptcp: enabled by default
date : 2020-09-29 12:53:31 +0800
author : Matthieu Baerts <matthieu.baerts(a)tessares.net>
Test status of d94d08e790ff5a06bb2e418870a1e1114ea8f277 (compared to v5.8)
==========================================================================
+--------------------------------------------------------------------------------------------------------+------+------+----------+------+---+------------+-----+
| | pass | fail | unstable | skip | - | regression | fix |
| kselftests-bpf-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests | | 1 | | | | | |
| kselftests-net-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests | 250 | 24 | | 13 | | | |
| kselftests-netfilter-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests | 64 | 1 | | 16 | | | |
| kselftests-kvm-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests | 20 | 2 | | 1 | | | |
| kselftests-mptcp-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests | 49 | | | | | | |
| kselftests-cpufreq-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests | 1 | | | | | | |
| kselftests-firmware-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests | 151 | | | | | | |
+--------------------------------------------------------------------------------------------------------+------+------+----------+------+---+------------+-----+
Fails
=====
kselftests-bpf-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.bpf.make_fail
kselftests-net-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.bpf.make_fail
- kernel-selftests.net.tls.fail
- kernel-selftests.net.run_netsocktests.fail
- kernel-selftests.net.rtnetlink.sh.ipsec_offload_netdevsim_doesn't_support_ipsec_offload.fail
- kernel-selftests.net.rtnetlink.sh.fail
- kernel-selftests.net.fib_tests.sh.fail
- kernel-selftests.net.psock_snd.sh.fail
- kernel-selftests.net.udpgro_bench.sh.fail
- kernel-selftests.net.udpgro.sh.fail
- kernel-selftests.net.test_vxlan_under_vrf.sh.fail
- kernel-selftests.net.icmp_redirect.sh.legacy_routing.ipv6:_redirect_exception.fail
- kernel-selftests.net.icmp_redirect.sh.legacy_routing.ipv6:_redirect_exception_plus_mtu.fail
- kernel-selftests.net.icmp_redirect.sh.legacy_routing.ipv6:_mtu_exception_plus_redirect.fail
- kernel-selftests.net.icmp_redirect.sh.legacy_routing_with_vrf.ipv6:_redirect_exception.fail
- kernel-selftests.net.icmp_redirect.sh.legacy_routing_with_vrf.ipv6:_redirect_exception_plus_mtu.fail
- kernel-selftests.net.icmp_redirect.sh.legacy_routing_with_vrf.ipv6:_mtu_exception_plus_redirect.fail
- kernel-selftests.net.icmp_redirect.sh.routing_with_nexthop_objects.ipv6:_redirect_exception.fail
- kernel-selftests.net.icmp_redirect.sh.routing_with_nexthop_objects.ipv6:_redirect_exception_plus_mtu.fail
- kernel-selftests.net.icmp_redirect.sh.routing_with_nexthop_objects.ipv6:_mtu_exception_plus_redirect.fail
- kernel-selftests.net.icmp_redirect.sh.routing_with_nexthop_objects_and_vrf.ipv6:_redirect_exception.fail
- kernel-selftests.net.icmp_redirect.sh.routing_with_nexthop_objects_and_vrf.ipv6:_redirect_exception_plus_mtu.fail
- kernel-selftests.net.icmp_redirect.sh.routing_with_nexthop_objects_and_vrf.ipv6:_mtu_exception_plus_redirect.fail
- kernel-selftests.net.txtimestamp.sh.fail
- kernel-selftests.net.vrf-xfrm-tests.sh.fail
kselftests-netfilter-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.netfilter.nft_concat_range.sh.fail
kselftests-kvm-ucode=0xdc/lkp-skl-d01/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.kvm.vmx_preemption_timer_test.fail
- kernel-selftests.kvm.debug_regs.fail
1 year, 7 months
[PATCH v1 0/9] mptcp: support for queuing data at mptcp-level
by Paolo Abeni
This is necessary to cope correctly with large sendbuffer (larger then snd wnd)
while respecting the MPTCP level snd window.
A major rework of both xmit and shudown path is required to support this
feature (patches 6 and 7). To try to keep the related patches as small as
possible, a bunch of new helpers is created by patches 1-5.
Note that patch 3 can stand for it's own merit and possibly be upstreamed soon.
Finally patch 8 uses the MPTCP equivalent of tcp_push_pending_frames(), to
spool queued data ad MPTCP level, as soon as the windows allow that.
This iteration includes all the fixes mentioned in the ML on top of the RFC,
plus some mores - all noted in the individual patches changelog. It also
includes the sndwnd patch from Florian, rebased.
Still not bugs free - I see some not-so-frequent timeouts in mptcp_connect.sh
tests and tput in simult_xmit tests are less stable, but should be notably
better than previous iteration. I suggest considering for merge on the export
branch.
Not strictily related to this series: we currently send DATA_FIN ack only once
- the behaviour is not change here. If that is dropped, we will never
retransmit, and the peer will be stuck.
Florian Westphal (1):
mptcp: keep track of advertised windows right edge
Paolo Abeni (8):
tcp: factor out __tcp_close() helper
mptcp: introduce mptcp_schedule_work
mptcp: reduce the arguments of mptcp_sendmsg_frag
mptcp: add accounting for pending data
mptcp: introduce MPTCP snd_nxt
mptcp: refactor shutdown and close
mptcp: move page frag allocation in mptcp_sendmsg()
mptcp: try to push pending data on snd una updates
include/net/tcp.h | 1 +
net/ipv4/tcp.c | 9 +-
net/mptcp/options.c | 24 +-
net/mptcp/pm.c | 4 +-
net/mptcp/protocol.c | 783 +++++++++++++++++++++++++------------------
net/mptcp/protocol.h | 67 +++-
net/mptcp/subflow.c | 21 +-
7 files changed, 560 insertions(+), 349 deletions(-)
--
2.26.2
1 year, 7 months
[MPTCP][PATCH v3 mptcp-next 0/2] mptcp: add ADD_ADDR timeout test case and others
by Geliang Tang
v3:
- rename run_add_addr_timeout_tests to run_tests_slow, it can be reused in
other test cases.
v2:
- drop add_addr_echo sysctl in v1
- use iptables rules to drop ADD_ADDR echo packets.
Geliang Tang (2):
mptcp: add a new sysctl add_addr_timeout
selftests: mptcp: add ADD_ADDR timeout test case
net/mptcp/ctrl.c | 14 ++++++
net/mptcp/pm_netlink.c | 8 +++-
net/mptcp/protocol.h | 1 +
.../testing/selftests/net/mptcp/mptcp_join.sh | 43 +++++++++++++++++--
4 files changed, 61 insertions(+), 5 deletions(-)
--
2.17.1
1 year, 7 months
[RFC PATCH 0/8] mptcp: support for queuing data at mptcp-level
by Paolo Abeni
This is necessary to cope correctly with large sendbuffer (larger then snd wnd)
while respecting the MPTCP level snd window.
A major rework of both xmit and shudown path is required to support this
feature (patches 6 and 7). To try to keep the related patches as small as
possible, a bunch of new helpers is created by patches 1-5.
Note that patch 3 can stand for it's own merit and possibly be upstreamed soon.
Finally patch 8 uses the MPTCP equivalent of tcp_push_pending_frames(), to
spool queued data ad MPTCP level, as soon as the windows allow that.
This is still more than a bit rough, and not all self-tests currently pass in
my local testbed, but the major issues should have been addressed.
Specifically the race described in:
https://lists.01.org/hyperkitty/list/mptcp@lists.01.org/message/JC7GTZHEK...
is addressed by patch 6.
As usual any comments more than welcome!
Note: some patches include [partial] changelog, because this already went
through some private iterations.
Paolo Abeni (8):
tcp: factor out __tcp_close() helper
mptcp: introduce mptcp_schedule_work
mptcp: reduce the arguments of mptcp_sendmsg_frag
mptcp: add accounting for pending data
mptcp: introduce MPTCP snd_nxt
mptcp: refactor shutdown and close
mptcp: move page frag allocation in mptcp_sendmsg()
mptcp: try to push pending data on snd una updates
include/net/tcp.h | 1 +
net/ipv4/tcp.c | 9 +-
net/mptcp/options.c | 4 +-
net/mptcp/pm.c | 4 +-
net/mptcp/protocol.c | 729 ++++++++++++++++++++++++-------------------
net/mptcp/protocol.h | 60 +++-
net/mptcp/subflow.c | 21 +-
7 files changed, 482 insertions(+), 346 deletions(-)
--
2.26.2
1 year, 7 months