WSL2-Linux-Kernel/net/ipv4
Marcelo Ricardo Leitner 2efd055c53 tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info
This patch tracks the total number of inbound and outbound segments on a
TCP socket. One may use this number to have an idea on connection
quality when compared against the retransmissions.

RFC4898 named these : tcpEStatsPerfSegsIn and tcpEStatsPerfSegsOut

These are a 32bit field each and can be fetched both from TCP_INFO
getsockopt() if one has a handle on a TCP socket, or from inet_diag
netlink facility (iproute2/ss patch will follow)

Note that tp->segs_out was placed near tp->snd_nxt for good data
locality and minimal performance impact, while tp->segs_in was placed
near tp->bytes_received for the same reason.

Join work with Eric Dumazet.

Note that received SYN are accounted on the listener, but sent SYNACK
are not accounted.

Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-05-21 23:25:21 -04:00
..
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2015-05-18 14:47:36 -04:00
Kconfig geneve: Rename support library as geneve_core 2015-05-13 15:59:13 -04:00
Makefile geneve: Rename support library as geneve_core 2015-05-13 15:59:13 -04:00
af_inet.c net: Modify sk_alloc to not reference count the netns of kernel sockets. 2015-05-11 10:50:18 -04:00
ah4.c
arp.c
cipso_ipv4.c
datagram.c
devinet.c
esp4.c
fib_frontend.c
fib_lookup.h
fib_rules.c
fib_semantics.c
fib_trie.c switchdev: s/netdev_switch_/switchdev_/ and s/NETDEV_SWITCH_/SWITCHDEV_/ 2015-05-12 18:43:52 -04:00
fou.c
geneve_core.c geneve_core: identify as driver library in modules description 2015-05-13 15:59:13 -04:00
gre_demux.c
gre_offload.c
icmp.c
igmp.c net: Export IGMP/MLD message validation code 2015-05-04 14:49:23 -04:00
inet_connection_sock.c tcp: improve REUSEADDR/NOREUSEADDR cohabitation 2015-05-21 18:55:32 -04:00
inet_diag.c
inet_fragment.c
inet_hashtables.c inet_hashinfo: remove bsocket counter 2015-05-21 18:55:32 -04:00
inet_lro.c
inet_timewait_sock.c tcp/dccp: tw_timer_handler() is static 2015-05-13 15:21:33 -04:00
inetpeer.c
ip_forward.c
ip_fragment.c IPv4: skip ICMP for bridge contrack users when defrag expires 2015-05-19 00:15:27 -04:00
ip_gre.c
ip_input.c
ip_options.c
ip_output.c bridge_netfilter: No ICMP packet on IPv4 fragmentation error 2015-05-19 00:15:39 -04:00
ip_sockglue.c
ip_tunnel.c
ip_tunnel_core.c ip_tunnel: Report Rx dropped in ip_tunnel_get_stats64 2015-05-14 22:30:54 -04:00
ip_vti.c
ipcomp.c
ipconfig.c
ipip.c ipip: fix one sparse error 2015-05-17 13:08:29 -04:00
ipmr.c
netfilter.c
ping.c
proc.c tcp: add TCPWinProbe and TCPKeepAlive SNMP counters 2015-05-09 16:42:32 -04:00
protocol.c
raw.c
route.c net: ipv4: route: Fix sending IGMP messages with link address 2015-05-04 00:04:08 -04:00
syncookies.c
sysctl_net_ipv4.c tcp: add rfc3168, section 6.1.1.1. fallback 2015-05-19 16:53:37 -04:00
tcp.c tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info 2015-05-21 23:25:21 -04:00
tcp_bic.c
tcp_cong.c
tcp_cubic.c
tcp_dctcp.c
tcp_diag.c
tcp_fastopen.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: allow one skb to be received per socket under memory pressure 2015-05-17 22:45:49 -04:00
tcp_ipv4.c tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info 2015-05-21 23:25:21 -04:00
tcp_lp.c
tcp_memcontrol.c
tcp_metrics.c
tcp_minisocks.c tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info 2015-05-21 23:25:21 -04:00
tcp_offload.c
tcp_output.c tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info 2015-05-21 23:25:21 -04:00
tcp_probe.c
tcp_scalable.c
tcp_timer.c tcp: introduce tcp_under_memory_pressure() 2015-05-17 22:45:48 -04:00
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c
tcp_yeah.c
tunnel4.c
udp.c
udp_diag.c
udp_impl.h
udp_offload.c
udp_tunnel.c net: Modify sk_alloc to not reference count the netns of kernel sockets. 2015-05-11 10:50:18 -04:00
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c
xfrm4_policy.c
xfrm4_protocol.c
xfrm4_state.c
xfrm4_tunnel.c