Loading include/linux/tcp.h +6 −0 Original line number Diff line number Diff line Loading @@ -343,6 +343,12 @@ struct tcp_sock { __u32 seq; __u32 time; } rcvq_space; /* TCP-specific MTU probe information. */ struct { __u32 probe_seq_start; __u32 probe_seq_end; } mtu_probe; }; static inline struct tcp_sock *tcp_sk(const struct sock *sk) Loading include/net/inet_connection_sock.h +0 −2 Original line number Diff line number Diff line Loading @@ -114,8 +114,6 @@ struct inet_connection_sock { /* Information on the current probe. */ int probe_size; __u32 probe_seq_start; __u32 probe_seq_end; } icsk_mtup; u32 icsk_ca_priv[16]; #define ICSK_CA_PRIV_SIZE (16 * sizeof(u32)) Loading net/ipv4/tcp_input.c +2 −2 Original line number Diff line number Diff line Loading @@ -2054,7 +2054,7 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, /* MTU probe failure: don't reduce cwnd */ if (icsk->icsk_ca_state < TCP_CA_CWR && icsk->icsk_mtup.probe_size && tp->snd_una == icsk->icsk_mtup.probe_seq_start) { tp->snd_una == tp->mtu_probe.probe_seq_start) { tcp_mtup_probe_failed(sk); /* Restores the reduction we did in tcp_mtup_probe() */ tp->snd_cwnd++; Loading Loading @@ -2284,7 +2284,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, __s32 *seq_rtt_p) /* MTU probing checks */ if (icsk->icsk_mtup.probe_size) { if (!after(icsk->icsk_mtup.probe_seq_end, TCP_SKB_CB(skb)->end_seq)) { if (!after(tp->mtu_probe.probe_seq_end, TCP_SKB_CB(skb)->end_seq)) { tcp_mtup_probe_success(sk, skb); } } Loading net/ipv4/tcp_output.c +2 −2 Original line number Diff line number Diff line Loading @@ -1238,8 +1238,8 @@ static int tcp_mtu_probe(struct sock *sk) update_send_head(sk, tp, nskb); icsk->icsk_mtup.probe_size = tcp_mss_to_mtu(sk, nskb->len); icsk->icsk_mtup.probe_seq_start = TCP_SKB_CB(nskb)->seq; icsk->icsk_mtup.probe_seq_end = TCP_SKB_CB(nskb)->end_seq; tp->mtu_probe.probe_seq_start = TCP_SKB_CB(nskb)->seq; tp->mtu_probe.probe_seq_end = TCP_SKB_CB(nskb)->end_seq; return 1; } Loading Loading
include/linux/tcp.h +6 −0 Original line number Diff line number Diff line Loading @@ -343,6 +343,12 @@ struct tcp_sock { __u32 seq; __u32 time; } rcvq_space; /* TCP-specific MTU probe information. */ struct { __u32 probe_seq_start; __u32 probe_seq_end; } mtu_probe; }; static inline struct tcp_sock *tcp_sk(const struct sock *sk) Loading
include/net/inet_connection_sock.h +0 −2 Original line number Diff line number Diff line Loading @@ -114,8 +114,6 @@ struct inet_connection_sock { /* Information on the current probe. */ int probe_size; __u32 probe_seq_start; __u32 probe_seq_end; } icsk_mtup; u32 icsk_ca_priv[16]; #define ICSK_CA_PRIV_SIZE (16 * sizeof(u32)) Loading
net/ipv4/tcp_input.c +2 −2 Original line number Diff line number Diff line Loading @@ -2054,7 +2054,7 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, /* MTU probe failure: don't reduce cwnd */ if (icsk->icsk_ca_state < TCP_CA_CWR && icsk->icsk_mtup.probe_size && tp->snd_una == icsk->icsk_mtup.probe_seq_start) { tp->snd_una == tp->mtu_probe.probe_seq_start) { tcp_mtup_probe_failed(sk); /* Restores the reduction we did in tcp_mtup_probe() */ tp->snd_cwnd++; Loading Loading @@ -2284,7 +2284,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, __s32 *seq_rtt_p) /* MTU probing checks */ if (icsk->icsk_mtup.probe_size) { if (!after(icsk->icsk_mtup.probe_seq_end, TCP_SKB_CB(skb)->end_seq)) { if (!after(tp->mtu_probe.probe_seq_end, TCP_SKB_CB(skb)->end_seq)) { tcp_mtup_probe_success(sk, skb); } } Loading
net/ipv4/tcp_output.c +2 −2 Original line number Diff line number Diff line Loading @@ -1238,8 +1238,8 @@ static int tcp_mtu_probe(struct sock *sk) update_send_head(sk, tp, nskb); icsk->icsk_mtup.probe_size = tcp_mss_to_mtu(sk, nskb->len); icsk->icsk_mtup.probe_seq_start = TCP_SKB_CB(nskb)->seq; icsk->icsk_mtup.probe_seq_end = TCP_SKB_CB(nskb)->end_seq; tp->mtu_probe.probe_seq_start = TCP_SKB_CB(nskb)->seq; tp->mtu_probe.probe_seq_end = TCP_SKB_CB(nskb)->end_seq; return 1; } Loading