[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
5 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
5 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
5 months
YOUR EARLY REPLY
by Mr. Fu Lan
YOUR EARLY REPLY
It is understandable that you might be a little bit apprehensive because
you do not know me but I have a lucrative business proposal of mutual
interest to share with you.$222,695.415.00 million United States dollars
your earliest response will be appreciated.
Email: fulanlan28(a)gmail.com
Kind Regards,
Mr. Fu Lan
5 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
5 months
Amazon.co.jp にご登録のアカウント(名前、パスワード、その他個人情報)の確認..
by Amazon.co.jp
確認用アカウント
あなたのアカウントは停止されました
こんにちは、
誰かがあなたのAmazonアカウントで他のデバイスから購入しょうとしました。そうでなければ、Amazonの保護におけるセキュリティと整合性の問題により、セキュリティ上の理由からアカウントがロックされます。
アカウントを引き続き使用するには、24時間前に情報を更新することをお勧めしま"す。それ以外の場合、あなたのアカウントは永久ロック.
確認用アカウント
宜しくお願いします.
Amazon Protection
Copytight e 219 Amazon inc. 1 Ininte Loop.クパチーノ、CA 95014, Al Rlights Reserved。
5 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
5 months
Amazon.co.jp にご登録のアカウント(名前、パスワード、その他個人情報)の確認..
by Amazon.co.jp
確認用アカウント
あなたのアカウントは停止されました
こんにちは、
誰かがあなたのAmazonアカウントで他のデバイスから購入しょうとしました。そうでなければ、Amazonの保護におけるセキュリティと整合性の問題により、セキュリティ上の理由からアカウントがロックされます。
アカウントを引き続き使用するには、24時間前に情報を更新することをお勧めしま"す。それ以外の場合、あなたのアカウントは永久ロック.
確認用アカウント
宜しくお願いします.
Amazon Protection
Copytight e 219 Amazon inc. 1 Ininte Loop.クパチーノ、CA 95014, Al Rlights Reserved。
5 months