IPQoS Configuration File
This section contains full details about the parts of the IPQoS configuration file.
The IPQoS boot-time activated policy is stored in the file /etc/inet/ipqosinit.conf. Although you
can edit this file, the best practice for a new IPQoS system is
to create a configuration file with a different name. Tasks for applying and
debugging an IPQoS configuration are in Chapter 34, Creating the IPQoS Configuration File (Tasks).
The syntax of the IPQoS configuration file is shown in Example 37-3. The
example uses the following conventions:
computer-style type – Syntactical information that is provided to explain the parts of the configuration file. You do not type any text that appears in computer-style type.
bold type – Literal text that you must type in the IPQoS configuration file. For example, you must always begin the IPQoS configuration file with fmt_version.
italic type – Variable text that you replace with descriptive information about your configuration. For example, you must always replace action-name or module-name with information that pertains to your configuration.
Example 37-3 Syntax of the IPQoS Configuration File
file_format_version ::= fmt_version version
action_clause ::= action {
name action-name
module module-name
params-clause | ""
cf-clauses
}
action_name ::= string
module_name ::= ipgpc | dlcosmk | dscpmk | tswtclmt | tokenmt | flowacct
params_clause ::= params {
parameters
params-stats | ""
}
parameters ::= prm-name-value parameters | ""
prm_name_value ::= param-name param-value
params_stats ::= global-stats boolean
cf_clauses ::= class-clause cf-clauses |
filter-clause cf-clauses | ""
class_clause ::= class {
name class-name
next_action next-action-name
class-stats | ""
}
class_name ::= string
next_action_name ::= string
class_stats ::= enable_stats boolean
boolean ::= TRUE | FALSE
filter_clause ::= filter {
name filter-name
class class–name
parameters
}
filter_name ::= string
The remaining text describes each major part of the IPQoS configuration file.
action Statement
You use action statements to invoke the various IPQoS modules that are described
in IPQoS Architecture and the Diffserv Model.
When you create the IPQoS configuration file, you must always begin with the
version number. Then, you must add the following action statement to invoke the
classifier:
fmt_version 1.0
action {
module ipgpc
name ipgpc.classify
}
Follow the classifier action statement with a params clause or a class
clause.
Use the following syntax for all other action statements:
action {
name action-name
module module-name
params-clause | ""
cf-clauses
}
- name action_name
Assigns a name to the action.
- module module_name
Identifies the IPQoS module to be invoked, which must be one of the modules in Table 37-5.
- params_clause
Can be parameters for the classifier to process, such as global statistics or the next action to process.
- cf_clauses
A set of zero or more class clauses or filter clauses
Module Definitions
The module definition indicates which module is to process the parameters in the
action statement. The IPQoS configuration file can include the following modules.
Table 37-5 IPQoS Modules
Module Name |
Definition |
ipgpc |
IP classifier |
dscpmk |
Marker
to be used to create DSCPs in IP packets |
dlcosmk |
Marker to be used
with VLAN devices |
tokenmt |
Token bucket meter |
tswtclmt |
Time-sliding window meter |
flowacct |
Flow-accounting module |
class Clause
You define a class clause for each class of traffic.
Use this syntax to define the remaining classes in the IPQoS configuration:
class {
name class-name
next_action next-action-name
}
To enable statistics collection on a particular class, you must first enable global
statistics in the ipgpc.classify action statement. For more information, refer to action Statement.
Use the enable_stats TRUE statement whenever you want to turn on statistics collection for
a class. If you do not need to gather statistics for a class,
you can specify enable_stats FALSE. Alternatively, you can eliminate the enable_stats statement.
Traffic on an IPQoS-enabled network that you do not specifically define is relegated
to the default class.
filter Clause
Filters are made up of selectors that group traffic flows into classes. These
selectors specifically define the criteria to be applied to traffic of the class
that was created in the class clause. If a packet matches all selectors
of the highest-priority filter, the packet is considered to be a member of
the filter's class. For a complete list of selectors that you can use
with the ipgpc classifier, refer to Table 37-1.
You define filters in the IPQoS configuration file by using a filter clause,
which has the following syntax:
filter {
name filter-name
class class-name
parameters (selectors)
}
params Clause
The params clause contains processing instructions for the module that is defined in
the action statement. Use the following syntax for the params clause:
params {
parameters
params-stats | ""
}
In the params clause, you use parameters that are applicable to the module.
The params-stats value in the params clause is either global_stats TRUE or global_stats FALSE. The global_stats TRUE
instruction turns on UNIX style statistics for the action statement where global statistics
is invoked. You can view the statistics by using the kstat command. You must
enable action statement statistics before you can enable per-class statistics.