How to Configure Flow Control in the IPQoS Configuration File
To control the rate at which a particular traffic flow is released onto the network, you must define parameters for the meter. You can use either of the two meter modules, tokenmt or tswtclmt, in the IPQoS configuration file.
The next procedure continues to build the IPQoS configuration file for the application server in Example 34-3. In the procedure, you configure not only the meter but also two marker actions that are called within the meter action statement.
Before You Begin
The steps assume that you have already defined a class and a filter for the application to be flow-controlled.
Open the IPQoS configuration file that you have created for the applications server.
In the /var/ipqos/BigAPPS.qos file, you begin after the following marker action:
action { module dscpmk name markAF21 params { global_stats FALSE dscp_map{0-63:18} next_action continue } }
Create a meter action statement to flow-control traffic of the ftp class.
action { module tokenmt name meterftp
module tokenmt
Invokes thetokenmt meter.
name meterftp
Gives the name meterftp to the action statement.
Add parameters to configure the meter's rate.
params { committed_rate 50000000 committed_burst 50000000
committed_rate 50000000
Assigns a transmission rate of 50,000,000 bps to traffic of the ftp class.
committed_burst 50000000
Commits a burst size of 50,000,000 bits to traffic of the ftp class.
For an explanation of tokenmt parameters, refer to Configuring tokenmt as a Two-Rate Meter.
Add parameters to configure traffic conformance precedences:
red_action markAF31 green_action_name markAF22 global_stats TRUE } }
red_action_name markAF31
Indicates that when the traffic flow of the ftp class exceeds the committed rate, packets are sent to the markAF31 marker action statement.
green_action_name markAF22
Indicates that when traffic flows of class ftp conform to the committed rate, packets are sent to the markAF22 action statement.
global_stats TRUE
Enables metering statistics for the ftp class.
For more information about traffic conformance, see Meter Module.
Add a marker action statement to assign a per-hop behavior to nonconformant traffic flows of class ftp.
action { module dscpmk name markAF31 params { global_stats TRUE dscp_map{0-63:26} next_action continue } }
module dscpmk
Invokes the marker module dscpmk.
name markAF31
Gives the name markAF31 to the action statement.
global_stats TRUE
Enables statistics for the ftp class.
dscp_map{0-63:26}
Assigns a DSCP of 26 to the packet headers of the traffic class ftp whenever this traffic exceeds the committed rate.
next_action continue
Indicates that no further processing is required on packets of the traffic class ftp. Then these packets can return to the network stream.
The DSCP of 26 instructs the marker to set all entries in the dscp map to the decimal value 26 (binary 011010). The DSCP of 26 sets the AF31 per-hop behavior. The marker marks packets of the ftp traffic class with the DSCP of 26 in the DS field.
AF31 assures that all packets with a DSCP of 26 receive a low-drop precedence, but with only Class 3 priority. Therefore, the possibility of nonconformant FTP traffic being dropped is low. For a table of possible AF codepoints, refer to Table 37-2.
Add a marker action statement to assign a per-hop behavior to ftp traffic flows that conform to the committed rate.
action { module dscpmk name markAF22 params { global_stats TRUE dscp_map{0-63:20} next_action continue } }
name markAF22
Gives the name markAF22 to the marker action.
dscp_map{0-63:20}
Assigns a DSCP of 20 to the packet headers of the traffic class ftp whenever ftp traffic conforms to its configured rate.
The DSCP of 20 tells the marker to set all entries in the dscp map to the decimal value 20 (binary 010100). The DSCP of 20 sets the AF22 per-hop behavior. The marker marks packets of the ftp traffic class with the DSCP of 20 in the DS field.
AF22 assures that all packets with a DSCP of 20 receive a medium-drop precedence with Class 2 priority. Therefore, conformant FTP traffic is assured a medium-drop precedence among flows that are simultaneously released by the IPQoS system. However, the router gives a higher forwarding priority to traffic classes with a Class 1 medium-drop precedence mark or higher. For a table of possible AF codepoints, refer to Table 37-2.
Add the DSCPs that you have created for the application server to the appropriate files on the Diffserv router.
See Also
To activate the IPQoS configuration file, refer to How to Apply a New Configuration to the IPQoS Kernel Modules.
To add configuration information for web servers, refer to How to Create the IPQoS Configuration File and Define Traffic Classes.
To configure flow accounting, refer to How to Enable Accounting for a Class in the IPQoS Configuration File.
To configure forwarding behaviors on a router, refer to How to Configure a Router on an IPQoS-Enabled Network.
Providing Differentiated Services on a Router
To provide true differentiated services, you must include a Diffserv-aware router in your network topology, as described in Hardware Strategies for the Diffserv Network. The actual steps for configuring Diffserv on a router and updating that router's files are outside the scope of this guide.
This section gives general steps for coordinating the forwarding information among various IPQoS-enabled systems on the network and the Diffserv router.
How to Configure a Router on an IPQoS-Enabled Network
The next procedure uses as its example the topology in Figure 33-4.
Before You Begin
The next procedure assumes that you have already configured the IPQoS systems on your network by performing the previous tasks in this chapter.
Review the configuration files for all IPQoS-enabled systems on your network.
Identify each codepoint that is used in the QoS various policies.
List the codepoints, and the systems and classes, to which the codepoints apply. The next table can illustrate areas where you might have used the same codepoint. This practice is acceptable. However, you should provide other criteria in the IPQoS configuration file, such as a precedence selector, to determine the precedence of identically marked classes.
For example, for the sample network that is used in the procedures throughout this chapter, you might construct the following codepoint table.
System
Class
PHB
DS Codepoint
Goldweb
video
EF
46 (101110)
Goldweb
goldweb
AF11
10 (001010)
Userweb
webout
AF12
12 ( 001100)
BigAPPS
smtp
AF13
14 ( 001110)
BigAPPS
news
AF18
18 ( 010010)
BigAPPS
ftp conformant traffic
AF22
20 ( 010100)
BigAPPS
ftp nonconformant traffic
AF31
26 ( 011010)
Add the codepoints from your network's IPQoS configuration files to the appropriate files on the Diffserv router.
The codepoints that you supply should help to configure the router's Diffserv scheduling mechanism. Refer to the router manufacturer's documentation and web sites for instructions.