Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Aug 2020 13:17:48 -0400
From:      Ryan Stone <rysto32@gmail.com>
To:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Is anybody using ng_pipe?
Message-ID:  <CAFMmRNxgoSNX2%2BLd=eEXRH0q7-XFzSF=b2GPzZgNW1LDCvq5Xw@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
I recently needed to be able to simulate a lossy, high-latency network
in an environment where dummynet wasn't possible.  I gave ng_pipe a
try, and hit some major issues

1. Instead of configuring a packet drop rate, you configure a bit
error rate, which I found significantly less intuitive
2. The use of BER makes for a very inconvenient implementation, as
ng_pipe has to maintain a table of packet drop rates for every
possible packet size
3. The table implementation isn't sized right for LRO or TSO, leading
to ng_pipe going out of bounds of the array and panicking the system
4. The table calculation had two integer truncation bugs and used the
wrong formula.  I'm reasonably sure it would never calculate a
probability other than 0 due a 64-bit constant being truncated to
32-bits.

I'd like to dump all of this and just implement a packet loss rate,
which would simplify all this immensely.  Is anybody using ng_pipe
with a non-zero BER who would object to this?  Given this litany of
issues I doubt it, but I thought that I'd be sure.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFMmRNxgoSNX2%2BLd=eEXRH0q7-XFzSF=b2GPzZgNW1LDCvq5Xw>