iftcntl(8)iftcntl(8)NAMEiftcntl - View and modify network interface traffic control settings
SYNOPSIS
/usr/sbin/iftcntl interface command parameters
OPTIONS
This section is organized by the tasks you can perform with the iftcntl
command. Each task subsection provides the iftcntl command syntax and
the options to use to complete the tasks.
Adding a Flow
Syntax: iftcntl interface addflow service parameters
Specifies the name of the interface on which to add a flow. Adds a
flow on the interface specified by the interface parameter. Specifies
the service on which to add a flow. The valid value is cl (Controlled-
Load) service. See RFC 2211 for more information. For the cl service,
the following parameters are mandatory: Specifies the average data rate
in bytes per second. Specifies the peak data rate in bytes per second.
This parameter is typically ignored by Controlled-Load implementations,
and is assumed to be the maximum line rate. Specifies the bucket depth
in bytes. This value should be several times greater than the size of
the data packets, even for a constant data stream. This ensures data
packet conformance with the given traffic specification, even in cases
of unavoidable slight jitter. Specifies the minimum policed unit in
bytes. Specifies the maximum packet size in bytes.
The following example adds a flow on tu0 for the cl service and
shows the successful completion of the command. The example
shows a reservation suitable for a data source that sends a con‐
stant 500-byte packet data stream at 1 megabit per second
(Mbit/s), or 125,000 bytes per second, using the User Datagram
Protocol (UDP) and IPv4. The UDP and IPv4 headers create an
overhead of 28 bytes, which results in 528-byte packets and a
data rate of 132,000 bytes per second. # iftcntl tu0 addflow cl
132000 0 4000 528 528 rhandle 0xfffffc00053ff9a0
In the previous example, the second line, printed on stdout,
contains the reservation handle (rhandle), and indicates that
the command was accepted by admission control. To make this
flow reservation effective, you must add a filter. This enables
the packet classifier to identify which packets belong to the
flow. See the Adding a Filter section.
Deleting a Flow
Syntax: iftcntl interface delflow rhandle
Specifies the name of the interface on which to delete a flow. Deletes
a flow reservation on the interface specified by the interface parame‐
ter. This also deletes any filters associated with the reservation.
Specifies the reservation handle of the flow.
Displaying a Flow
Syntax: iftcntl interface showflow -r rhandle
Specifies the name of the interface. Displays the flow reservation on
the interface specified by the interface parameter and with the reser‐
vation handle specified in the following option. Specifies the reser‐
vation handle of the flow.
The following example displays the flow reservation for inter‐
face tu0 and with the reservation handle 0xfffffc00053ff9a0: #
iftcntl tu0 showflow 0xfffffc00053ff9a0 rhandle
policestyle orig service bitrate
-------------------------------------------------------
0xfffffc00053ff9a0 CL.EtherBasic MGMT 5 1100176
tspec r=132000 p=0 b=4000 m=528 M=528
policed 0/0, dropped 0/0, good 0/0, refcount=1, no filters
In the previous example, MGMT in the orig column indicates the
iftcntl addflowmr as the originator of the flow. If RSVP origi‐
nated the flow, RSVP would appear in the orig column. The
bitrate column indicates the (worst case) data rate (in bits per
second) of the flow including the link layer overhead (for exam‐
ple, the Ethernet header).
The second line for each flow displays service specific parame‐
ters of the flow. The third line displays statistics, expressed
as the number of packets/number of bytes, for the following
packets: Packets not conforming to the given traffic specifica‐
tion. Policed packets that had to be dropped. This is subset
of the number of policed packets. Packets conforming to the
traffic specification.
Displaying All Flows
Syntax: iftcntl interface listflows
Specifies the name of the interface. Displays all existing flow reser‐
vations on the interface specified by the interface parameter, unless
one of the following options is specified.
The following example displays all flow reservations for inter‐
face tu0: # iftcntl tu0 listflows rhandle policestyle
orig service bitrate
-------------------------------------------------------
0xfffffc0003f0e960 CL.EtherBasic RSVP 5 1141760
0xfffffc00053ff9a0 CL.EtherBasic MGMT 5 1100176
In the previous example, two reservations exist. The orig column
indicates the originator of the flow, in this case RSVP and MGMT
(manually by using the iftcntl addflow command. The bitrate
column indicates the (worst case) data rate (in bits per second)
of the flow including the link layer overhead (for example, the
Ethernet header).
Adding a Filter
Syntax: iftcntl addfilter rhandle filter_spec
Adds a filter association to a flow specified by the rhandle parameter.
The packet classifier in the IP output path of the kernel uses filter
to decide whether a given packet is part of any flow for which a reser‐
vation exists. You can associate multiple filters with a single flow.
Specifies the name of the flow with which to associate the filter.
Specifies one of the following filter specifications: Matches packets
with the given IP destination address (dest), destination port number
(dest_port), and protocol number (proto). Valid proto values include 17
(UDP) and 6 (TCP). Matches packet as in the previous filter specifica‐
tion, but also restricts the source IP address (src) and port number
(src_port) to the given values. Matches IPv6 packets with the given
source address and flowlabel.
The following example adds a filter to flow 0xfffffc000220e140
and shows the successful completion of the command. # iftcntl
tu0 addfilter 0xfffffc000220e140 16.32.128.43 \ 4364 6
16.32.64.1 12865 fhandle 0x50000da01
In the previous example, the last line, printed on stdout, con‐
tains the filter handle (fhandle), and indicates that the com‐
mand was successful.
Deleting a Filter
Syntax: iftcntl delfilter rhandle fhandle
Deletes a filter with the filter handle specified by the rhandle and
fhandleparameters. If you delete all filters associated with a flow,
the flow reservation remains; it is not deleted. Specifies the reser‐
vation handle of the filter. Specifies the filter handle of the fil‐
ter.
Configure Parameters
Syntax: iftcntl interface config [param_name [value]]
Specifies the name of the interface. Displays the current, minimum,
maximum, and default values for all traffic control parameters for the
interface specified by the interface parameter, unless one of the fol‐
lowing parameters is specified. Displays the specified parameter,
unless a value parameter (value) is also specified. See the DESCRIP‐
TION section for a list of parameters. Sets the parameter specified by
the param_name parameter to the value value.
The following example displays all traffic control parameters
for interface tu0. See the Traffic Control Parameters section
for a description of each parameter.
# iftcntl tu0 config ipv4_wf_hashtsize = 229 (0..4294967295,
default = 229) ipv4_wf_maxentries = 458 (0..4294967295, default =
458) ipv4_portfilt_hashtsize = 229 (0..4294967295, default = 229)
ipv4_portfilt_maxentries = 458 (0..4294967295, default = 458)
ipv6_flowfilt_hashtsize = 229 (0..4294967295, default = 229)
ipv6_flowfilt_maxentries = 458 (0..4294967295, default = 458) max_non‐
conform_queue_len = 24 (0..2147483647, default = 24) max_total_r
= 5000000 (0..18446744073709551615,
default = 5000000) max_total_b = 1000000
(0..18446744073709551615,
default = 1000000) max_nr_flows = 500 (0..4294967295,
default = 500)
DESCRIPTION
The iftcntl command installs flows and filters on network interfaces
that support traffic control. The Resource ReSerVation Protocol (RSVP)
typically performs this dynamically when it receives an application
request. However, you can use iftcntl if you need to manually estab‐
lish a reservation. If invoked manually, no RSVP signaling occurs and
only the specified interface is affected. The iftcntl command operates
independently from RSVP.
The iftcntl command fails on interfaces with no traffic control sup‐
port.
You can use the iftcntl to configure traffic control parameters in
order to constrain the amount of resources that RSVP is able to
reserve. If you want this to occur each time the system is booted,
place the appropriate iftcntl command lines in the /etc/inet.local
file.
If problems occur with RSVP reservations, use iftcntl showflow command
to debug them. The rsvpstat -T command displays the reservation han‐
dles for each reservation managed by RSVP. You then use the iftcntl
showflow command and specify the reservation handle to display the sta‐
tistics for the flow.
Traffic Control Parameters
There are two types of traffic control parameters: those that configure
the packet classifier and those that configure interfaces. The follow‐
ing parameters configure the packet classifier: Specifies the number of
hash buckets. Specifies the maximum number of filters. Specifies the
number of hash buckets. Specifies the maximum number of filters.
Specifies the number of hash buckets. Specifies the maximum number of
filters.
The following parameters configure an interface for Controlled-Load
traffic control: Specifies the size of an interface output queue that
is to hold policed packets. Packets on this queue have a lower prior‐
ity than best-effort packets. If you set this value to zero, all
policed packets are dropped immediately. Specifies the maximum total
amount of bandwidth (in bits per second) available for reservations.
The default is half the link rate. Specifies the maximum total amount
of token bucket space (in bytes) that can be allocated to reservations.
Specifies the maximum number of flows for which reservations will be
granted.
SEE ALSO
Commands: rsvpd(8), rsvpstat(8)
Files: inet.local(4)
Networking: RSVP(7)
Specifications: RFC 1633, Integrated Services in the Internet Architec‐
ture: an Overview
RFC 2211, Specification of the Controlled-Load Network Element Service
RFC 2216, Network Element Service Specification Template
iftcntl(8)