iftcntl - View and modify network interface traffic control
settings
/usr/sbin/iftcntl interface command parameters
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 [Toc] [Back]
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 constant 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 [Toc] [Back]
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 parameter. This also deletes any
filters associated with the reservation. Specifies the
reservation handle of the flow.
Displaying a Flow [Toc] [Back]
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 reservation handle specified in the
following option. Specifies the reservation handle of the
flow.
The following example displays the flow reservation
for interface 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 originated 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 example, the Ethernet header).
The second line for each flow displays service specific
parameters 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 specification.
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 [Toc] [Back]
Syntax: iftcntl interface listflows
Specifies the name of the interface. Displays all existing
flow reservations on the interface specified by the
interface parameter, unless one of the following options
is specified.
The following example displays all flow reservations
for interface 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 [Toc] [Back]
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 reservation 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
specification, 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, contains the filter handle (fhandle), and
indicates that the command was successful.
Deleting a Filter [Toc] [Back]
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 reservation handle of the
filter. Specifies the filter handle of the filter.
Configure Parameters [Toc] [Back]
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 following parameters
is specified. Displays the specified parameter,
unless a value parameter (value) is also specified. See
the DESCRIPTION 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_nonconform_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)
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 establish 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 support.
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 handles for each reservation managed
by RSVP. You then use the iftcntl showflow command
and specify the reservation handle to display the statistics
for the flow.
Traffic Control Parameters [Toc] [Back]
There are two types of traffic control parameters: those
that configure the packet classifier and those that configure
interfaces. The following 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 priority than besteffort
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.
Commands: rsvpd(8), rsvpstat(8)
Files: inet.local(4)
Networking: RSVP(7)
Specifications: RFC 1633, Integrated Services in the
Internet Architecture: an Overview
RFC 2211, Specification of the Controlled-Load Network
Element Service
RFC 2216, Network Element Service Specification Template
iftcntl(8)
[ Back ] |