 |
Index for Section 8 |
|
 |
Alphabetical listing for I |
|
 |
Bottom of page |
|
iftcntl(8)
NAME
iftcntl - 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
interface
Specifies the name of the interface on which to add a flow.
addflow
Adds a flow on the interface specified by the interface parameter.
service
Specifies the service on which to add a flow. The valid value is cl
(Controlled-Load) service. See RFC 2211 for more information.
parameters
For the cl service, the following parameters are mandatory:
r Specifies the average data rate in bytes per second.
p 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.
b 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.
m Specifies the minimum policed unit in bytes.
M 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
Syntax:
iftcntl interface delflow rhandle
interface
Specifies the name of the interface on which to delete a flow.
delflow
Deletes a flow reservation on the interface specified by the interface
parameter. This also deletes any filters associated with the
reservation.
rhandle
Specifies the reservation handle of the flow.
Displaying a Flow
Syntax:
iftcntl interface showflow -r rhandle
interface
Specifies the name of the interface.
showflow
Displays the flow reservation on the interface specified by the
interface parameter and with the reservation handle specified in the
following option.
-r rhandle
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:
policed
Packets not conforming to the given traffic specification.
dropped
Policed packets that had to be dropped. This is subset of the
number of policed packets.
good
Packets conforming to the traffic specification.
Displaying All Flows
Syntax:
iftcntl interface listflows
interface
Specifies the name of the interface.
listflows
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
Syntax:
iftcntl addfilter rhandle filter_spec
addfilter
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.
rhandle
Specifies the name of the flow with which to associate the filter.
filter_spec
Specifies one of the following filter specifications:
dest dest_port proto
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).
dest dest_port proto src src_port
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.
-flowlabel src flowlabel
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
Syntax:
iftcntl delfilter rhandle fhandle
delfilter
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.
rhandle
Specifies the reservation handle of the filter.
fhandle
Specifies the filter handle of the filter.
Configure Parameters
Syntax:
iftcntl interface config [param_name [value]]
interface
Specifies the name of the interface.
config
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.
param_name
Displays the specified parameter, unless a value parameter (value) is
also specified. See the DESCRIPTION section for a list of parameters.
value
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)
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 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
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:
ipv4_wf_hashtsize
Specifies the number of hash buckets.
ipv4_wf_maxentries
Specifies the maximum number of filters.
ipv4_portfilt_hashtsize
Specifies the number of hash buckets.
ipv4_portfilt_maxentries
Specifies the maximum number of filters.
ipv6_flowfilt_hashtsize
Specifies the number of hash buckets.
ipv6_flowfilt_maxentries
Specifies the maximum number of filters.
The following parameters configure an interface for Controlled-Load traffic
control:
max_nonconform_queue_len
Specifies the size of an interface output queue that is to hold policed
packets. Packets on this queue have a lower priority than best-effort
packets. If you set this value to zero, all policed packets are dropped
immediately.
max_total_r
Specifies the maximum total amount of bandwidth (in bits per second)
available for reservations. The default is half the link rate.
max_total_b
Specifies the maximum total amount of token bucket space (in bytes)
that can be allocated to reservations.
max_nr_flows
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 Architecture:
an Overview
RFC 2211, Specification of the Controlled-Load Network Element Service
RFC 2216, Network Element Service Specification Template
 |
Index for Section 8 |
|
 |
Alphabetical listing for I |
|
 |
Top of page |
|