my dummynet adventures (spoiler alert: everyone just dies at the end)

Eugene M. Zheganin emz at norma.perm.ru
Wed Mar 29 10:50:54 UTC 2017


Hi,


Recently I had to move from Ultimate and Perfect pf (because it's not 
the Ultimate and Perfect when it comes to gigabit/s speeds, due to 
legacy TX in Intel drivers and associated problems)  [back] to ipfw. I 
was terribly disappointed, because after 10 years with pf I felt myself 
like being traveled to a stone age, with relic and unuseable spears and 
arrows instead of pulse rifles and railguns. Seems like nothing changed 
for 10 years there:

- "ipfw pipe show" still isn't documented. Like at all.

- "ipfw pipe show" output is weird and cryptic and nobody understands it 
without reading sources. Even after reading sources few understand it (I 
don't). Our local FreeBSD guru is able to explain the output field 
meaning, but first time he explains it wrong, then he consult the 
sources (and does it each time), then he explains again, correcting the 
mistakes (and the guy really rocks, I mean - if it's not intuitive to 
him, who could understand it).

Looks like nobody of the ipfw developers haven't seen "pfctl -vvvs queue 
show" output (which is a state of the art, really), so everyone who's 
using ipfw pipes have to cut and torture themselves. I asked same local 
FreeBSD guru "How can I prove to myself that this thing even works ?" 
and I've been told to just .... measure the traffic after it has flown 
through the shaper ! Same thing with drops measuring. "ipfw pipe show" 
shows zero drops (although I expect some), so I've been told to add the 
counter rules after pipe ones, and to switch the net.inet.ip.fw.one_pass 
to 0. Just to count the drops (it really counts it, so it's a mystery 
why the "ipfw pipe show" does show nothing). Furthermore, "ipfw pipe 
show" shows almost nothing when there's no traffic going through the 
pipe - and it really would be just logical to store the cumulative 
statistics there.

Concluding, ipfw dummynet interface resembles an unfinished student 
work, it's stuck in early 2000's, and it really does not look like 
something of a production-ready system. I know that nobody owes noone 
anything, bit it really looks like both "modern" FreeBSD packet filters 
are lying in ruins, and people using ipfw had to scavenge some long ago 
broken instruments on the junkyards (like in Mad max series) and use sun 
and stars just to determine whether it's working or not.

I didn't mention that both still use 32-bit integers, thus limiting the 
actual bandwidth to 4 Gigs/sec. Jesus.


Eugene.



More information about the freebsd-net mailing list