tail head cat sleep
QR code linking to this page

Manual Pages  — DUMMYNET


dummynet – traffic shaper, bandwidth manager and delay emulator



The dummynet system facility permits the control of traffic going through the various network interfaces, by applying bandwidth and queue size limitations, implementing different scheduling and queue management policies, and emulating delays and losses.

The user interface for dummynet is implemented by the ipfw(8) utility, so please refer to the ipfw(8) manpage for a complete description of the dummynet capabilities and how to use it.

Kernel Options

The following options in the kernel configuration file are related to dummynet operation:

IPFIREWALL enable ipfirewall (required for dummynet)
IPFIREWALL_VERBOSE enable firewall output
  limit firewall output
DUMMYNET enable dummynet operation
HZ set the timer granularity

Generally, the following options are required:

options DUMMYNET
options HZ=1000         # strongly recommended

Additionally, one may want to increase the number of mbuf clusters (used to store network packets) according to the sum of the bandwidth-delay products and queue sizes of all configured pipes.


setsockopt(2), if_bridge(4), ip(4), ipfw(8), sysctl(8)


The dummynet facility was initially implemented as a testing tool for TCP congestion control by Luigi Rizzo <Mt luigi@iet.unipi.it>, as described on ACM Computer Communication Review, Jan.97 issue. Later it has been modified to work at the IP and bridging levels, integrated with the ipfw(4) packet filter, and extended to support multiple queueing and scheduling policies.

DUMMYNET (4) October 28, 2002

tail head cat sleep
QR code linking to this page

Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
— Maurice Wilkes