Cleanup tcp_v4_destroy_sock

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: Stall if SACK is disabled and an RTO happens

RFC6582 specifies that TCP should not exit the loss-state unless
something more than high_seq has been acknowledged. (high_seq is the
snd_nxt when the RTO occured)
However, as soon as an RTO occurs MPTCP will stop sending on this
subflow. Thus, the snd_una can NEVER EVER go beyond high_seq. So, MPTCP
will stall on this subflow.

This commit fixes it by taking this here into consideration.

Reported-by: David Zats <dzats2008@gmail.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
First attempt at fixing infinite mapping

When accessing baidu.com, it replies with the MP_CAPABLE option (because
it seems to just echo back any unknown option to the sender). However,
further baidu.com off course does not support MPTCP and will reply to
our data-seq without a data-ack. This is an easy scenario to trigger a
fallback to infinite through Section 3.6 of the RFC.

This is a first attempt to contacting baidu.com work.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: Stop retransmitting third ack after fourth ack without data-ack

RFC 6824 says that any fourth ack should stop the retransmission of the
third ack with MP_JOIN.

This patch fixes it, as previously we only stopped retransmitting if the
fourth ack had a DATA_ACK.

Reported-by: Varun Taneja <sunvarun@gmail.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix further infinite mapping

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Cleanup

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: GCC warning

net/mptcp/mptcp_ipv6.c: In function 'mptcp_v6v4_syn_recv_sock':
net/mptcp/mptcp_ipv6.c:235:2: warning: value computed is not used [-Wunused-value]

Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: Don't use tcp_v4_send_reset in mptcp_send_reset.

If we use tcp_v4_send_reset, the skb will be modified. However, the skb
is already enqueued in the sk_receive-queue. We thus should never modify
it!

So, we use tcp_send_active_reset.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Merge branch 'mptcp_3.4.0' into mptcp_3.4.y