Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Aug 2024 18:21:43 -0700
From:      Navdeep Parhar <np@FreeBSD.org>
To:        Alan Somers <asomers@freebsd.org>, FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: Monitoring packet loss
Message-ID:  <88167c63-773c-42d2-93b6-f2f028f8aebb@FreeBSD.org>
In-Reply-To: <CAOtMX2hLaYEhVpoPG5HtJ7Qj030PvGOBFeo78fqmRxPMJAfxmQ@mail.gmail.com>
References:  <CAOtMX2hLaYEhVpoPG5HtJ7Qj030PvGOBFeo78fqmRxPMJAfxmQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 8/7/24 7:06 AM, Alan Somers wrote:
> I'd like to track the rate of packet loss for outbound packets from
> some production servers.  Obviously, that's impossible.  But I think
> that the rate of TCP retransmissions should be a close proxy for
> packet loss.  Currently I can only observe TCP retransmissions by
> using wireshark, a slow and laborious process.  But it seems to me
> that the network stack should already have that information

The kernel already maintains a VNET-virtualized tcpstat structure for 
aggregate TCP stats.  netstat and systat grab these using the 
net.inet.tcp.stats sysctl.  This might work for you if you're okay with 
global and not per-interface information.

VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat);	/* tcp statistics */

$ netstat -sp tcp | grep -iE 'retr|rexm'
$ systat -tcp

Regards,
Navdeep

 > Would it
> be possible to add a sysctl to expose the total number of
> retransmissions since boot?  This information would be very useful.
> It could reveal for example problems with a model of NIC, or
> congestion on one network segment but not another, or a regression in
> the OS.
> 
> -Alan
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?88167c63-773c-42d2-93b6-f2f028f8aebb>