[TCP]: Report congestion control algorithm in tcp_diag.
Enhancement to the tcp_diag interface used by the iproute2 ss command to report the tcp congestion control being used by a socket. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
7c99c909fa
commit
056ede6cfa
@@ -99,9 +99,10 @@ enum
|
|||||||
TCPDIAG_MEMINFO,
|
TCPDIAG_MEMINFO,
|
||||||
TCPDIAG_INFO,
|
TCPDIAG_INFO,
|
||||||
TCPDIAG_VEGASINFO,
|
TCPDIAG_VEGASINFO,
|
||||||
|
TCPDIAG_CONG,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TCPDIAG_MAX TCPDIAG_VEGASINFO
|
#define TCPDIAG_MAX TCPDIAG_CONG
|
||||||
|
|
||||||
|
|
||||||
/* TCPDIAG_MEM */
|
/* TCPDIAG_MEM */
|
||||||
@@ -123,5 +124,4 @@ struct tcpvegas_info {
|
|||||||
__u32 tcpv_minrtt;
|
__u32 tcpv_minrtt;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif /* _TCP_DIAG_H_ */
|
#endif /* _TCP_DIAG_H_ */
|
||||||
|
@@ -65,6 +65,11 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
|
|||||||
if (ext & (1<<(TCPDIAG_INFO-1)))
|
if (ext & (1<<(TCPDIAG_INFO-1)))
|
||||||
info = TCPDIAG_PUT(skb, TCPDIAG_INFO, sizeof(*info));
|
info = TCPDIAG_PUT(skb, TCPDIAG_INFO, sizeof(*info));
|
||||||
|
|
||||||
|
if (ext & (1<<(TCPDIAG_CONG-1))) {
|
||||||
|
size_t len = strlen(tp->ca_ops->name);
|
||||||
|
strcpy(TCPDIAG_PUT(skb, TCPDIAG_CONG, len+1),
|
||||||
|
tp->ca_ops->name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
r->tcpdiag_family = sk->sk_family;
|
r->tcpdiag_family = sk->sk_family;
|
||||||
r->tcpdiag_state = sk->sk_state;
|
r->tcpdiag_state = sk->sk_state;
|
||||||
|
Reference in New Issue
Block a user