Fix: Reset snd_nxt when falling back to infinite

snd_nxt must be reset too, to have correct accounting afterwards.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: Update copied_seq when purging rcv-queue upon csum-failure

Otherwise, copied_seq is out of sync with the rest. It is safer, to
update it correctly.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: mptcp_skb_split_tail allocate a tcp-header

We need a tcp-header because we are accessing the fin-flag.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: When falling back to infinite, don't use the subseq from the DSS

The middlebox messed up with our mapping. We can only rely on the
mapping in the tcp-header.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Final fix to infinite mapping

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>

Conflicts:
	net/ipv4/tcp_output.c

Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Build-Fix

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

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: Infinite fallback - replace csum_error by send_mp_fail

Otherwise we will not stop sending mp_fails, because csum_error is set
to 1.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: Allow to resend on same subflow if all possibilities expired

We must allow resending on the same subflow, if no other possibility
exists. Otherwise, we cannot reinject data that is missing at the
destination through a middlbox that randomly removes DSS-options.

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

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Fix: Fully fallback to infinite, if first data is without DSS

We have to do seamless bidirectional fallback, when the first data is without
DSS.
Bidirectional fallback has been introduced in c00e8536517 (Final fix to
infinite mapping)

Reported-by: Krishna Khanal <erkrishna.khanal@gmail.com>
Tested-by: Krishna Khanal <erkrishna.khanal@gmail.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>