Signed-off-by: add the ones of the sender
by Matthieu Baerts
Hi,
FYI, I just added Mat and Christoph' signed-off at the end in all
patches where the sender is not the author.
Mat' signed-off:
t/tcp-clean-ext-on-tx-recycle d0a53799b41b
t/skb-add-helpers-to-allocate-ext-independently-from-sk_buff 49657b530937
t/mptcp-Handle-MPTCP-TCP-options 7dcbde272d8d
t/mptcp-Associate-MPTCP-context-with-TCP-socket 77bc072d50bb
t/mptcp-Handle-MP_CAPABLE-options-for-outgoing-connections fa30eb93af07
t/mptcp-Create-SUBFLOW-socket-for-incoming-connections 6aeb1ed9011b
t/mptcp-Add-key-generation-and-token-tree 51937718ddb0
t/mptcp-Add-shutdown-socket-operation 54fb2be27f3f
t/mptcp-Add-setsockopt-getsockopt-socket-operations 408d02d51c75
t/mptcp-add-subflow-write-space-signalling-and-mptcp_poll 688e4e89051c
t/mptcp-recvmsg-can-drain-data-from-multiple-subflows 1a2a035ade5c
t/mptcp-allow-collapsing-consecutive-sendpages-on-the-same-substream
86d9099d23ae
t/mptcp-new-sysctl-to-control-the-activation-per-NS e95682b4a686
t/mptcp-add-basic-kselftest-for-mptcp 254904819820
Christoph' signed-off:
t/mptcp-move-from-sha1-v0-to-sha256-v1 76bdd7c23334
Cheers,
Matt
--
Matthieu Baerts | R&D Engineer
matthieu.baerts(a)tessares.net
Tessares SA | Hybrid Access Solutions
www.tessares.net
1 Avenue Jean Monnet, 1348 Louvain-la-Neuve, Belgium
2 years, 7 months
[RFC PATCH 1/4] Squash-to: "mptcp: Handle MP_CAPABLE options for outgoing connections"
by Paolo Abeni
After upstream feedback, I just noticed that we actually
don't clear the is_mptcp field on clone allocation failure.
Do that and additionally don't allocate at all the subflow if MPC handshake
failed.
Note: we need to update accordingly accept on later patch
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
---
net/mptcp/subflow.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index b9aca17b0b91..7dd8733dc72a 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -262,23 +262,19 @@ static void subflow_ulp_clone(const struct request_sock *req,
struct mptcp_subflow_context *old_ctx = mptcp_subflow_ctx(newsk);
struct mptcp_subflow_context *new_ctx;
- /* newsk->sk_socket is NULL at this point */
- new_ctx = subflow_create_ctx(newsk, priority);
- if (!new_ctx)
+ if (!subflow_req->mp_capable ||
+ (new_ctx = subflow_create_ctx(newsk, priority)) == NULL) {
+ tcp_sk(newsk)->is_mptcp = 0;
return;
+ }
new_ctx->conn = NULL;
new_ctx->conn_finished = 1;
new_ctx->icsk_af_ops = old_ctx->icsk_af_ops;
-
- if (subflow_req->mp_capable) {
- new_ctx->mp_capable = 1;
- new_ctx->fourth_ack = 1;
- new_ctx->remote_key = subflow_req->remote_key;
- new_ctx->local_key = subflow_req->local_key;
- } else {
- tcp_sk(newsk)->is_mptcp = 0;
- }
+ new_ctx->mp_capable = 1;
+ new_ctx->fourth_ack = 1;
+ new_ctx->remote_key = subflow_req->remote_key;
+ new_ctx->local_key = subflow_req->local_key;
}
static struct tcp_ulp_ops subflow_ulp_ops __read_mostly = {
--
2.21.0
2 years, 7 months
[RFC PATCH 2/4] Squash-to "mptcp: Create SUBFLOW socket for incoming connection"
by Paolo Abeni
use is_mptcp instead of 'subflow->mp_capable'
---
net/mptcp/protocol.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 70e28cc0dbe0..283e7dc2d25e 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -243,7 +243,6 @@ static struct sock *mptcp_accept(struct sock *sk, int flags, int *err,
bool kern)
{
struct mptcp_sock *msk = mptcp_sk(sk);
- struct mptcp_subflow_context *subflow;
struct socket *listener;
struct sock *newsk;
@@ -258,13 +257,14 @@ static struct sock *mptcp_accept(struct sock *sk, int flags, int *err,
if (!newsk)
return NULL;
- subflow = mptcp_subflow_ctx(newsk);
- pr_debug("msk=%p, new subflow=%p, ", msk, subflow);
+ pr_debug("msk=%p, subflow is mptcp=%d", msk, tcp_sk(newsk)->is_mptcp);
- if (subflow->mp_capable) {
+ if (tcp_sk(newsk)->is_mptcp) {
+ struct mptcp_subflow_context *subflow;
struct sock *new_mptcp_sock;
struct sock *ssk = newsk;
+ subflow = mptcp_subflow_ctx(newsk);
lock_sock(sk);
local_bh_disable();
@@ -295,8 +295,6 @@ static struct sock *mptcp_accept(struct sock *sk, int flags, int *err,
bh_unlock_sock(new_mptcp_sock);
local_bh_enable();
release_sock(sk);
- } else {
- tcp_sk(newsk)->is_mptcp = 0;
}
return newsk;
--
2.21.0
2 years, 7 months
[RFC PATCH 3/4] Squash-to: "mptcp: Implement MPTCP receive path"
by Paolo Abeni
deal with fallback: we must reset sk callback to the TCP one.
Use the cached ptr in the old ctx.
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
---
net/mptcp/protocol.h | 13 ++++++++++++-
net/mptcp/subflow.c | 11 ++++++++---
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index e4fce9f0ad65..7f3cc7952227 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -121,7 +121,10 @@ struct mptcp_subflow_context {
struct sock *tcp_sock; /* tcp sk backpointer */
struct sock *conn; /* parent mptcp_sock */
const struct inet_connection_sock_af_ops *icsk_af_ops;
- void (*tcp_sk_data_ready)(struct sock *sk);
+ void (*tcp_data_ready)(struct sock *sk);
+ void (*tcp_state_change)(struct sock *sk);
+ void (*tcp_write_space)(struct sock *sk);
+
struct rcu_head rcu;
};
@@ -159,6 +162,14 @@ bool mptcp_subflow_data_available(struct sock *sk);
void mptcp_subflow_init(void);
int mptcp_subflow_create_socket(struct sock *sk, struct socket **new_sock);
+static inline void mptcp_subflow_tcp_fallback(struct sock *sk,
+ struct mptcp_subflow_context *ctx)
+{
+ sk->sk_data_ready = ctx->tcp_data_ready;
+ sk->sk_state_change = ctx->tcp_state_change;
+ sk->sk_write_space = ctx->tcp_write_space;
+}
+
extern const struct inet_connection_sock_af_ops ipv4_specific;
#if IS_ENABLED(CONFIG_MPTCP_IPV6)
extern const struct inet_connection_sock_af_ops ipv6_specific;
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 48bf0b1d8d28..3ac1764f276b 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -504,7 +504,7 @@ static void subflow_data_ready(struct sock *sk)
struct sock *parent = subflow->conn;
if (!parent || !subflow->mp_capable) {
- subflow->tcp_sk_data_ready(sk);
+ subflow->tcp_data_ready(sk);
if (parent)
parent->sk_data_ready(parent);
@@ -652,7 +652,9 @@ static int subflow_ulp_init(struct sock *sk)
if (sk->sk_family == AF_INET6)
icsk->icsk_af_ops = &subflow_v6_specific;
#endif
- ctx->tcp_sk_data_ready = sk->sk_data_ready;
+ ctx->tcp_data_ready = sk->sk_data_ready;
+ ctx->tcp_state_change = sk->sk_state_change;
+ ctx->tcp_write_space = sk->sk_write_space;
sk->sk_data_ready = subflow_data_ready;
sk->sk_write_space = subflow_write_space;
sk->sk_state_change = subflow_state_change;
@@ -683,6 +685,7 @@ static void subflow_ulp_clone(const struct request_sock *req,
if (!subflow_req->mp_capable ||
(new_ctx = subflow_create_ctx(newsk, priority)) == NULL) {
+ mptcp_subflow_tcp_fallback(newsk, old_ctx);
tcp_sk(newsk)->is_mptcp = 0;
return;
}
@@ -690,7 +693,9 @@ static void subflow_ulp_clone(const struct request_sock *req,
new_ctx->conn = NULL;
new_ctx->conn_finished = 1;
new_ctx->icsk_af_ops = old_ctx->icsk_af_ops;
- new_ctx->tcp_sk_data_ready = old_ctx->tcp_sk_data_ready;
+ new_ctx->tcp_data_ready = old_ctx->tcp_data_ready;
+ new_ctx->tcp_state_change = old_ctx->tcp_state_change;
+ new_ctx->tcp_write_space = old_ctx->tcp_write_space;
new_ctx->mp_capable = 1;
new_ctx->fourth_ack = 1;
new_ctx->remote_key = subflow_req->remote_key;
--
2.21.0
2 years, 7 months
[Weekly meetings] MoM - 19th of December 2019
by Matthieu Baerts
Hello,
On Thursday, we had our 80th meeting with Mat, Peter and Ossama (Intel
OTC), Paolo (RedHat) 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
- By Paolo Abeni, Matthieu Baerts
1214271 Squash-to: "tcp: coalesce/collapse must respect MPTCP extension
1214225 Squash-to: "mptcp: Add MPTCP to skb extensions"
1213556 [v3] Squash-to: "tcp: Prevent coalesce/collapse when skb has MP
1212550 Squash-to: "mptcp: Add MPTCP socket stubs"
1212331 [2/2] Squash-to: "mptcp: Implement MPTCP receive path"
1212314 [1/2] Squash-to: "mptcp: Add MPTCP socket stubs"
1212209 Squash-to: "mptcp: recvmsg() can drain data from multiple subfl
1211460 Squash-to: "mptcp: Add key generation and token tree"
1211244 Squash-to: "sock: Make sk_protocol a 16-bit value"
1210776 Squash-to: "mptcp: Implement MPTCP receive path"
1210775 Squash-to: "mptcp: Handle MP_CAPABLE options for outgoing conne
1210697 [v2] Squash-to: "mptcp: cope with later TCP fallback"
1210382 Squash-to: tcp: Check for filled TCP option space before SACK
1210375 Squash-to: "sock: Make sk_protocol a 16-bit value"
1209395 Re: [PATCH] mptcp: cope with later TCP fallback.
Pending patches:
- The list of pending patches can be seen on PatchWork:
https://patchwork.ozlabs.org/project/mptcp/list/?state=*
- By Paolo Abeni, Matthieu Baerts, Peter Krystad
1194592: Changes Requested: [RFC,1/1] mptcp: Optimize struct mptcp_recei
1196109: RFC: [10/10,RFC] selftests:mptcp: decrease timeout to 100 sec
1214280: Changes Requested: [RFC,1/4] Squash-to: "mptcp: Handle MP_CAPAB
1214277: Changes Requested: [RFC,2/4] Squash-to "mptcp: Create SUBFLOW s
1214278: Changes Requested: [RFC,3/4] Squash-to: "mptcp: Implement MPTCP
1214279: Changes Requested: [RFC,4/4] Squash-to: "mptcp: cope with later
FYI: Current Roadmap:
- Part 1 (mainly TCP changes, will be sent with Part 2):
- Sent to Netdev, in review
- Part 2 (minimum set for MPTCP, up to KSelftests, one subflow):
- Sent to Netdev, in review, waiting for Part 1 to be ready
- Part 3 (MPTCPv1):
- Ready to be sent to Netdev, waiting for Part 2 to be ready
- Part 4 (to be sent before the end of the merge window or more
probably at the next one)
- Full DATA_FIN support [WIP]
- Shared recv window (drop data received on other subflows) [TODO]
- Active backup support [WIP]
- Opti in TCP option structures (unions) [to be rebased)
- Part 5 (to fully support MPTCP):
- Shared recv window (full support)
- IPv6 - IPv4 mapped support
- not dropping MPTCP options (ADD_ADDR, etc.)
- FAST_CLOSE
- full MPTCP v1 support (reliable add_addr, etc.)
- after a few attempts of failed MPTCP, we fallback to TCP
(like TFO is doing)
- Part 6 (extra needed for prod):
- opti/perfs
- TFO
Initial submission to net-next:
- Part 1:
- We got some reviews from Eric Dumazet and recommendations
from Davem
- v1 has been sent on Friday:
- comments from Eric about patch 2 (struct sock) and patch
9 (SACK)
- v2 has been sent on Monday:
- v1 -> v2: sk_pacing_shift left as a regular struct member
(patch 2), and modified SACK space check based on recent -net fix (patch 9).
- comment from Eric about patch 2 again (struct sock)
- v3 has been sent on Tuesday:
- v2 -> v3: Ensure sk_type alignment in struct sock (patch 2)
- discussions on: tcp: Prevent coalesce/collapse when skb
has MPTCP extensions:
- Eric: This seems a very pessimistic change to me. Are
you planing later to refine this limitation ? Surely if a sender sends
TSO packet, we allow all the segments being aggregated at receive side
either by GRO or TCP coalescing.
- Davem: This turns off absolutely crucial functional
elements of our TCP stack, and will avoid all of the machinery that
avoids wastage in TCP packets sitting in the various queues.
skb->truesize management, etc. I will not apply these patches with such
a non-trivial regression in place for MPTCP streams, sorry.
- Paolo has just added support of coalescing for MPTCP:
- to coalesce the ones with the same options
- some room to improvement (DSN/ACK in sequence)
but additional hooks needed and it will increase the complexity
- here we address Eric concerns
- for the moment we are checking the bit-field on
each packet. We can optimise this later. Compiler can optimise stuff but
maybe not to that point.
- *Paolo* will check what the binary looks like
just after the meeting → The compiler did well his job!
- v4 & v5 have been sent on Thursday after the meeting:
- We got a full review from Eric (except the last patch)
- v6 is ready but will be sent in January
- Part 2:
- v1 was sent on Friday
- v2 was sent on Wednesday (rebase) but rejected until part 1
is applied. →
https://lore.kernel.org/netdev/20191218.124244.864160487872326152.davem@d...
- Part 3:
- v1 was not sent on Wednesday, David Miller prefers to wait.
- We are not going to send Part 3 until part 1 & 2 are merged,
not even as an RFC
Other WIP items:
- Mostly on hold, focusing on part 1 → 3
mptcpd:
- mptcpd 0.3: Beta release
- https://github.com/intel/mptcpd/releases/tag/v0.3
- mainly plugin API, fixes, stabilisation, it's now a beta!
- could be nice to stress it (and the kernel part) to see if we can
use it for servers with a lot of connections (we can lose netlink messages)
Perfs figures:
- saw issues with the unblocked connect → mptcp_finish_connect()
can set msk fields async. In a specific sequences from the userspace, we
can have issues.
- we can address that later
- tests were done with MPTCP, one subflow, loopback, same machine
- we are close to TCP so that's good!
Plan for the next weeks:
- Rest
- Enjoy the end of the year! Merry Xmas and Happy New Year everybody!
- Check patches from Part 1, ideally around the 2nd/3rd of January
- Tag "netdev-v6-part1" using:
$ git fetch origin
$ git tag -sfm "Multipath TCP part 1: Prerequisites, version 6" \
netdev-v6-part1 $(git log -1 --format=%H --grep \
'^skb: add helpers to allocate ext independently from s' \
origin/net-next..origin/export)
$ git tag -sfm "Multipath TCP: full working branch, version 7" \
netdev-v7-full origin/export
- Send part 1 v6 to netdev, ideally around the 2nd/3rd of January
Misc:
- Let's do it!
https://www.tessares.net/a-key-step-for-mptcp-integration-in-linux-5-x/
Next meeting:
- We decided to *skip the two next meetings* (26th / 2nd)
- We propose to have the next meeting on Thursday, the 9th of January.
- Usual time: 17:00 UTC (9am PST, 6pm CET)
- Still open to everyone!
- https://annuel2.framapad.org/p/mptcp_upstreaming_20200109
Feel free to comment on these points and propose new ones for the next
meeting!
Merry Xmas and Happy New Year everybody!
Talk to you next year,
Matt
--
Matthieu Baerts | R&D Engineer
matthieu.baerts(a)tessares.net
Tessares SA | Hybrid Access Solutions
www.tessares.net
1 Avenue Jean Monnet, 1348 Louvain-la-Neuve, Belgium
2 years, 7 months
[PATCH] Squash-to: "tcp: coalesce/collapse must respect MPTCP extensions"
by Paolo Abeni
clarify mptcp ext usage
to be added to squashed commit changelog:
"""
v5 -> v6:
- clarify MPTCP must always be cleared at allocation time
"""
---
include/net/mptcp.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/net/mptcp.h b/include/net/mptcp.h
index 7d693d0a38ff..8825da7538dd 100644
--- a/include/net/mptcp.h
+++ b/include/net/mptcp.h
@@ -48,6 +48,9 @@ static inline void mptcp_skb_ext_move(struct sk_buff *to,
static inline bool mptcp_ext_matches(const struct mptcp_ext *to_ext,
const struct mptcp_ext *from_ext)
{
+ /* MPTCP always clear the ext when adding it to the skb, so
+ * holes do not bother us here
+ */
return !from_ext ||
(to_ext && from_ext &&
!memcmp(from_ext, to_ext, sizeof(struct mptcp_ext)));
--
2.21.0
2 years, 7 months
[PATCH] Squash-to: "mptcp: Add MPTCP to skb extensions"
by Paolo Abeni
address upstream feedback
rebased tree available at:
https://github.com/pabeni/mptcp/tree/mptcp_net-next_export_v5
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
---
include/net/mptcp.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/net/mptcp.h b/include/net/mptcp.h
index f9f668ac4339..326043c29c0a 100644
--- a/include/net/mptcp.h
+++ b/include/net/mptcp.h
@@ -21,7 +21,8 @@ struct mptcp_ext {
data_fin:1,
use_ack:1,
ack64:1,
- __unused:2;
+ __unused:3;
+ /* one byte hole */
};
#endif /* __NET_MPTCP_H */
--
2.21.0
2 years, 7 months
[RFC PATCH 4/4] Squash-to: "mptcp: cope with later TCP fallback"
by Paolo Abeni
Now we can fully restore the subflow status on late tcp fallback
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
---
net/mptcp/protocol.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 71e82fd326c5..14c0bd79a534 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -52,10 +52,10 @@ static struct socket *__mptcp_fallback_to_tcp(struct mptcp_sock *msk,
lock_sock(ssk);
sock_graft(ssk, sock);
if (subflow->conn) {
- /* Clearing the 'conn' field will make the ULP-overriden
- * ops behaving like plain TCP ones.
- * Note: we can't release the ULP data on a live socket.
+ /* We can't release the ULP data on a live socket,
+ * restore the tcp callback
*/
+ mptcp_subflow_tcp_fallback(ssk, subflow);
sock_put(subflow->conn);
subflow->conn = NULL;
}
--
2.21.0
2 years, 7 months
Git: modification of commit messages
by Matthieu Baerts
Hi,
Here are the last modifications in the commit messages:
1/11:
- [t/net-Make-sock-protocol-value-checks-more-specific 66e251bd0df8]
tg:msg: add Eric's Reviewed-by
2/11:
- [t/sock-Make-sk_protocol-a-16-bit-value 84c37b7e1c18] tg:msg: add
Eric's Reviewed-by
3/11:
- [t/tcp-Define-IPPROTO_MPTCP 0f2af3970219] tg:msg: add Eric's Reviewed-by
4/11:
- [t/tcp-Add-MPTCP-option-number d54316644a67] tg:msg: add Eric's
Reviewed-by
5/11:
- [t/tcp-ulp-Add-clone-operation-to-tcp_ulp_ops fa0ed52c3a20] tg:msg:
add note about return code
- [t/tcp-ulp-Add-clone-operation-to-tcp_ulp_ops 09d10fe722fd] tg:msg:
add changelog
- No RevB
6/11:
- [t/mptcp-Add-MPTCP-to-skb-extensions 1bbe046c3d79] tg:msg: add changelog
- note: this change is not in the code yet, coming soon
- No RevB
7/11:
- [t/tcp-Prevent-coalesce-collapse-when-skb-has-MPTCP-extensions
83747ff24c84] tg:msg: add changelog
- note: this change is not in the code yet, coming soon
- No RevB
8/11:
- [t/tcp-Export-TCP-functions-and-ops-struct 909512591df0] tg:msg: add
Eric's Reviewed-by
9/11:
- [t/tcp-Check-for-filled-TCP-option-space-before-SACK c9505a319286]
tg:msg: add Eric's Reviewed-by
10/11:
- [t/tcp-clean-ext-on-tx-recycle c6ad811986c7] tg:msg: add Eric's
Reviewed-by
11/11:
- No RevB
- 6454fec75495..d6d41dde162a: result (empty as expected)
Cheers,
Matt
--
Matthieu Baerts | R&D Engineer
matthieu.baerts(a)tessares.net
Tessares SA | Hybrid Access Solutions
www.tessares.net
1 Avenue Jean Monnet, 1348 Louvain-la-Neuve, Belgium
2 years, 7 months
[PATCH net-next v5 00/11] Multipath TCP: Prerequisites
by Mat Martineau
v4 -> v5: Cover letter subject fix. No changes to commits.
v3 -> v4: Update coalesce/collapse of incoming MPTCP skbs (patch 7)
v2 -> v3: Ensure sk_type alignment in struct sock (patch 2)
v1 -> v2: sk_pacing_shift left as a regular struct member (patch 2), and
modified SACK space check based on recent -net fix (patch 9).
The MPTCP upstreaming community has been collaborating on an
upstreamable MPTCP implementation that complies with RFC 8684. A minimal
set of features to comply with the specification involves a sizeable set
of code changes, so David requested that we split this work in to
multiple, smaller patch sets to build up MPTCP infrastructure.
The minimal MPTCP feature set we are proposing for review in the v5.6
timeframe begins with these three parts:
Part 1 (this patch set): MPTCP prerequisites. Introduce some MPTCP
definitions, additional ULP and skb extension features, TCP option space
checking, and a few exported symbols.
Part 2: Single subflow implementation and self tests.
Part 3: Switch from MPTCP v0 (RFC 6824) to MPTCP v1 (new RFC 8684,
publication expected in the next few days).
We plan to send those over the next week. Additional patches for
multiple subflow support, path management, active backup, and other
features are in the pipeline for submission after making progress with
the above reviews.
Clone/fetch:
https://github.com/multipath-tcp/mptcp_net-next.git (tag: netdev-v5-part1)
Browse:
https://github.com/multipath-tcp/mptcp_net-next/tree/netdev-v5-part1
Thank you for your review. You can find us at mptcp(a)lists.01.org and
https://is.gd/mptcp_upstream
Mat Martineau (9):
net: Make sock protocol value checks more specific
sock: Make sk_protocol a 16-bit value
tcp: Define IPPROTO_MPTCP
tcp: Add MPTCP option number
tcp, ulp: Add clone operation to tcp_ulp_ops
mptcp: Add MPTCP to skb extensions
tcp: coalesce/collapse must respect MPTCP extensions
tcp: Export TCP functions and ops struct
tcp: Check for filled TCP option space before SACK
Paolo Abeni (2):
tcp: clean ext on tx recycle
skb: add helpers to allocate ext independently from sk_buff
MAINTAINERS | 10 ++++
include/linux/skbuff.h | 6 +++
include/net/mptcp.h | 81 +++++++++++++++++++++++++++++++++
include/net/sock.h | 12 ++---
include/net/tcp.h | 22 +++++++++
include/trace/events/sock.h | 5 +-
include/uapi/linux/in.h | 2 +
net/ax25/af_ax25.c | 2 +-
net/core/skbuff.c | 42 ++++++++++++++++-
net/decnet/af_decnet.c | 2 +-
net/ipv4/inet_connection_sock.c | 2 +
net/ipv4/tcp.c | 6 +--
net/ipv4/tcp_input.c | 11 +++--
net/ipv4/tcp_ipv4.c | 2 +-
net/ipv4/tcp_output.c | 12 +++--
net/ipv4/tcp_ulp.c | 12 +++++
net/ipv6/tcp_ipv6.c | 6 +--
tools/include/uapi/linux/in.h | 2 +
18 files changed, 211 insertions(+), 26 deletions(-)
create mode 100644 include/net/mptcp.h
--
2.24.1
2 years, 7 months