aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp.c')
-rw-r--r--net/ipv4/tcp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 5a5ce6da4792..4022073b0aee 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -3167,6 +3167,8 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info)
3167 rate64 = tcp_compute_delivery_rate(tp); 3167 rate64 = tcp_compute_delivery_rate(tp);
3168 if (rate64) 3168 if (rate64)
3169 info->tcpi_delivery_rate = rate64; 3169 info->tcpi_delivery_rate = rate64;
3170 info->tcpi_delivered = tp->delivered;
3171 info->tcpi_delivered_ce = tp->delivered_ce;
3170 unlock_sock_fast(sk, slow); 3172 unlock_sock_fast(sk, slow);
3171} 3173}
3172EXPORT_SYMBOL_GPL(tcp_get_info); 3174EXPORT_SYMBOL_GPL(tcp_get_info);
@@ -3180,7 +3182,7 @@ struct sk_buff *tcp_get_timestamping_opt_stats(const struct sock *sk)
3180 u32 rate; 3182 u32 rate;
3181 3183
3182 stats = alloc_skb(7 * nla_total_size_64bit(sizeof(u64)) + 3184 stats = alloc_skb(7 * nla_total_size_64bit(sizeof(u64)) +
3183 5 * nla_total_size(sizeof(u32)) + 3185 7 * nla_total_size(sizeof(u32)) +
3184 3 * nla_total_size(sizeof(u8)), GFP_ATOMIC); 3186 3 * nla_total_size(sizeof(u8)), GFP_ATOMIC);
3185 if (!stats) 3187 if (!stats)
3186 return NULL; 3188 return NULL;
@@ -3211,9 +3213,12 @@ struct sk_buff *tcp_get_timestamping_opt_stats(const struct sock *sk)
3211 nla_put_u8(stats, TCP_NLA_RECUR_RETRANS, inet_csk(sk)->icsk_retransmits); 3213 nla_put_u8(stats, TCP_NLA_RECUR_RETRANS, inet_csk(sk)->icsk_retransmits);
3212 nla_put_u8(stats, TCP_NLA_DELIVERY_RATE_APP_LMT, !!tp->rate_app_limited); 3214 nla_put_u8(stats, TCP_NLA_DELIVERY_RATE_APP_LMT, !!tp->rate_app_limited);
3213 nla_put_u32(stats, TCP_NLA_SND_SSTHRESH, tp->snd_ssthresh); 3215 nla_put_u32(stats, TCP_NLA_SND_SSTHRESH, tp->snd_ssthresh);
3216 nla_put_u32(stats, TCP_NLA_DELIVERED, tp->delivered);
3217 nla_put_u32(stats, TCP_NLA_DELIVERED_CE, tp->delivered_ce);
3214 3218
3215 nla_put_u32(stats, TCP_NLA_SNDQ_SIZE, tp->write_seq - tp->snd_una); 3219 nla_put_u32(stats, TCP_NLA_SNDQ_SIZE, tp->write_seq - tp->snd_una);
3216 nla_put_u8(stats, TCP_NLA_CA_STATE, inet_csk(sk)->icsk_ca_state); 3220 nla_put_u8(stats, TCP_NLA_CA_STATE, inet_csk(sk)->icsk_ca_state);
3221
3217 return stats; 3222 return stats;
3218} 3223}
3219 3224