xref: /freebsd/share/man/man4/dummynet.4 (revision 2e3f49888ec8851bafb22011533217487764fdb0)
1.\"
2.Dd September 10, 2021
3.Dt DUMMYNET 4
4.Os
5.Sh NAME
6.Nm dummynet
7.Nd traffic shaper, bandwidth manager and delay emulator
8.Sh DESCRIPTION
9The
10.Nm
11system facility permits the control of traffic
12going through the various network interfaces, by applying bandwidth
13and queue size limitations, implementing different scheduling and queue
14management policies, and emulating delays and losses.
15.Pp
16The user interface for
17.Nm
18is implemented by the
19.Xr dnctl 8
20utility, so please refer to the
21.Xr dnctl 8
22manpage for a complete description of the
23.Nm
24capabilities and how to use it.
25.Ss Kernel Options
26The following options in the kernel configuration file are related to
27.Nm
28operation:
29.Pp
30.Bl -tag -width ".Dv IPFIREWALL_VERBOSE_LIMIT" -offset indent -compact
31.It Dv IPFIREWALL
32enable ipfirewall (if
33.Nm
34is to be used with ipfw)
35.It Dv IPFIREWALL_VERBOSE
36enable firewall output
37.It Dv IPFIREWALL_VERBOSE_LIMIT
38limit firewall output
39.It Dv DUMMYNET
40enable
41.Nm
42operation
43.It Dv HZ
44set the timer granularity
45.El
46.Pp
47Generally, the following options are required:
48.Bd -literal -offset indent
49options IPFIREWALL
50options DUMMYNET
51options HZ=1000		# strongly recommended
52.Ed
53.Pp
54Additionally, one may want to increase the number
55of mbuf clusters (used to store network packets) according to the
56sum of the bandwidth-delay products and queue sizes of all configured
57pipes.
58.Sh SEE ALSO
59.Xr setsockopt 2 ,
60.Xr if_bridge 4 ,
61.Xr ip 4 ,
62.Xr ipfw 8 ,
63.Xr dnctl 8 ,
64.Xr pf.conf 5 ,
65.Xr sysctl 8
66.Sh HISTORY
67The
68.Nm
69facility
70was initially implemented as a testing tool for
71.Tn TCP
72congestion control by
73.An Luigi Rizzo Aq Mt luigi@iet.unipi.it ,
74as described on ACM Computer Communication Review, Jan.97 issue.
75Later it has been modified to work at the
76.Tn IP
77and bridging levels, integrated with the
78.Xr ipfw 4
79packet filter, and extended to
80support multiple queueing and scheduling policies.
81