1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-03-09 15:40:20 +00:00

Merge branch 'pr/22' into testdevelop

This commit is contained in:
suyuan 2020-12-04 14:24:31 +08:00
commit 71eff29ea4
7 changed files with 460 additions and 29 deletions

View file

@ -3288,14 +3288,14 @@ diff -aurN linux-5.4.64/net/ipv4/syncookies.c linux-5.4.64.mptcp/net/ipv4/syncoo
* the ACK carries the same options again (see RFC1122 4.2.3.8)
*/
@@ -387,15 +421,15 @@
/* Try to redo what tcp_v4_send_synack did. */
req->rsk_window_clamp = tp->window_clamp ? :dst_metric(&rt->dst, RTAX_WINDOW);
(req->rsk_window_clamp > full_space || req->rsk_window_clamp == 0))
req->rsk_window_clamp = full_space;
- tcp_select_initial_window(sk, tcp_full_space(sk), req->mss,
- tcp_select_initial_window(sk, full_space, req->mss,
- &req->rsk_rcv_wnd, &req->rsk_window_clamp,
- ireq->wscale_ok, &rcv_wscale,
- dst_metric(&rt->dst, RTAX_INITRWND));
+ tp->ops->select_initial_window(sk, tcp_full_space(sk), req->mss,
+ tp->ops->select_initial_window(sk, full_space, req->mss,
+ &req->rsk_rcv_wnd, &req->rsk_window_clamp,
+ ireq->wscale_ok, &rcv_wscale,
+ dst_metric(&rt->dst, RTAX_INITRWND));
@ -4028,16 +4028,6 @@ diff -aurN linux-5.4.64/net/ipv4/tcp.c linux-5.4.64.mptcp/net/ipv4/tcp.c
#ifdef CONFIG_MMU
case TCP_ZEROCOPY_RECEIVE: {
struct tcp_zerocopy_receive zc;
@@ -3862,7 +4143,9 @@
if (sk->sk_state == TCP_SYN_SENT || sk->sk_state == TCP_SYN_RECV)
TCP_INC_STATS(sock_net(sk), TCP_MIB_ATTEMPTFAILS);
+ WARN_ON(sk->sk_state == TCP_CLOSE);
tcp_set_state(sk, TCP_CLOSE);
+
tcp_clear_xmit_timers(sk);
if (req)
reqsk_fastopen_remove(sk, req, false);
@@ -3878,6 +4161,8 @@
int tcp_abort(struct sock *sk, int err)
@ -6715,14 +6705,14 @@ diff -aurN linux-5.4.64/net/ipv6/syncookies.c linux-5.4.64.mptcp/net/ipv6/syncoo
goto out_free;
@@ -241,15 +259,15 @@
}
(req->rsk_window_clamp > full_space || req->rsk_window_clamp == 0))
req->rsk_window_clamp = full_space;
req->rsk_window_clamp = tp->window_clamp ? :dst_metric(dst, RTAX_WINDOW);
- tcp_select_initial_window(sk, tcp_full_space(sk), req->mss,
- tcp_select_initial_window(sk, full_space, req->mss,
- &req->rsk_rcv_wnd, &req->rsk_window_clamp,
- ireq->wscale_ok, &rcv_wscale,
- dst_metric(dst, RTAX_INITRWND));
+ tp->ops->select_initial_window(sk, tcp_full_space(sk), req->mss,
+ tp->ops->select_initial_window(sk, full_space, req->mss,
+ &req->rsk_rcv_wnd, &req->rsk_window_clamp,
+ ireq->wscale_ok, &rcv_wscale,
+ dst_metric(dst, RTAX_INITRWND));

View file

@ -3204,7 +3204,7 @@ index 88b987ca9ebb..c3538bd0d008 100644
- (meta_tp->rcv_nxt - meta_tp->copied_seq < meta_sk->sk_rcvlowat ||
- tp->ops->__select_window(sk) >= tp->rcv_wnd)) ||
+ (meta_tp->rcv_nxt - meta_tp->copied_seq < meta_sk->sk_rcvlowat ||
+ tp->ops->__tcp_select_window(sk) >= tp->rcv_wnd))) ||
+ tp->ops->__select_window(sk) >= tp->rcv_wnd))) ||
/* We ACK each frame or... */
tcp_in_quickack_mode(sk) ||
/* Protocol state mandates a one-time immediate ACK */
@ -3237,10 +3237,10 @@ index be6d22b8190f..4943f96aade8 100644
+
+ /* Set buff tx.in_flight as if buff were sent by itself. */
+ inflight_prev = TCP_SKB_CB(skb)->tx.in_flight - old_factor;
+ if (WARN_ONCE(inflight_prev < 0,
+ /* if (WARN_ONCE(inflight_prev < 0,
+ "inconsistent: tx.in_flight: %u old_factor: %d",
+ TCP_SKB_CB(skb)->tx.in_flight, old_factor))
+ inflight_prev = 0;
+ TCP_SKB_CB(skb)->tx.in_flight, old_factor)) */
+ if (inflight_prev < 0) inflight_prev = 0;
+ TCP_SKB_CB(buff)->tx.in_flight = inflight_prev +
+ tcp_skb_pcount(buff);
}