multipath-tcp / mptcp

⚠️⚠️⚠️ Deprecated 🚫 Out-of-tree Linux Kernel implementation of MultiPath TCP. 👉 Use https://github.com/multipath-tcp/mptcp_net-next repo instead ⚠️⚠️⚠️
https://github.com/multipath-tcp/mptcp_net-next
Other
889 stars 335 forks source link

MPTCPv0.95 can't send package with URG #433

Closed lebron89wu closed 3 years ago

lebron89wu commented 3 years ago

Hi MPTCP team

We used mptcp to send urgent messages, and no URG flag was found in the captured messages. Check the code, the comment says "MPTCP urgent data is not yet supported", so I want to ask why we can't send urgent data and whether we can make mptcp send urgent data?

Thanks!

kernel/common/net/ipv4/tcp_input.c

/* This is the 'fast' part of urgent handling. */
_static void tcp_urg(struct sock *sk, struct sk_buff *skb, const struct tcphdr *th)
{
    struct tcp_sock *tp = tcp_sk(sk);

    /* MPTCP urgent data is not yet supported */
    if (mptcp(tp))
        return;_
...
}
matttbe commented 3 years ago

Hi @lebron89wu

I think you are reporting the issue in the wrong repository. There is no such code here in MPTCP Upstream project: https://github.com/multipath-tcp/mptcp_net-next/blob/export/net/ipv4/tcp_input.c#L5553

Please see our wiki about the different implementations: https://github.com/multipath-tcp/mptcp_net-next/wiki#upstream-vs-out-of-tree-implementations

matttbe commented 3 years ago

Regarding the issue, it seems the URG flag is not supported at MPTCP level. I cannot be enabled if the checksum feature is enabled. We could have URG flag at the subflow level but it is an optional feature that I guess is not supported by this project.

Please see the RFC:

(...) checksumming relies on the TCP subflow containing contiguous data; therefore, a TCP subflow MUST NOT use the Urgent Pointer to interrupt an existing mapping. Further note, however, that if Urgent data is received on a subflow, it SHOULD be mapped to the data sequence space and delivered to the application, analogous to Urgent data in regular TCP.

https://www.rfc-editor.org/rfc/rfc8684.html#section-3.3.1-9

If there is a need, do not hesitate to share patches!

lebron89wu commented 3 years ago

Thank for matttbe's answer, wish your best!