Passing on, and copying of this document, use and communication of its contents is not permitted without written authorization
from THOMSON. The content of this document is furnished for informational use only, may be subject to change without notice,
and should not be construed as a commitment by THOMSON. THOMSON assumes no responsibility or liability for any errors or
inaccuracies that may appear in this document.
The following trademarks are used in this document:
SpeedTouch™ is a trademark of THOMSON.
Microsoft®, MS-DOS®, Windows® and Windows NT® are either registered trademarks or trademarks of Microsoft Corpora-
tion in the United States and/or other countries.
UNIX® is a registered trademark of UNIX System Laboratories, Incorporated.
Apple® and Mac OS® are registered trademarks of Apple Computer, Incorporated, registered in the United States and other
countries.
Adobe, the Adobe logo, Acrobat and Acrobat Reader are trademarks or registered trademarks of Adobe Systems, Incorpo-
rated, registered in the United States and/or other countries.
Netscape® and Netscape Navigator® are registered trademarks of Netscape Communications Corporation.
Ethernet™ is a trademark of Xerox Corporation.
UPnP™ is a certification mark of the UPnP™ Implementers Corporation.
Wi-Fi® and the Wi-Fi logo are registered trademarks of the Wi-Fi Alliance. "Wi-Fi CERTIFIED", "Wi-Fi ZONE", "Wi-Fi Alli-
ance", their respective logos and "Wi-Fi Protected Access" are trademarks of the Wi-Fi Alliance.
Other products may be trademarks or registered trademarks of their respective manufacturers.
This routing configuration guide explains how routes can/must be used in
SpeedTouch™ R5.3 products. To explain the use of routes, a distinction is made
between standard IP forwarding and packet-based classification.
All examples start from a clean SpeedTouch™ configuration.
A note provides additional information about a topic.
A tip provides an alternative method or short-cut to perform an action.
A caution warns you about potential problems or specific precautions that
SpeedTouch™ 605 Business Multi-user ADSL gateway.
SpeedTouch™ 608 Business DSL router.
Generally, all these SpeedTouch™620 products will be referred to as SpeedTouch™ in
this IPQoS Configuration Guide, unless a specific device is mentioned.
On some products the expert web pages are not available, almost the same
functionality is offered through CLI configuration.
Typographical
Conventions
Documentation and
software updates
E-NIT-CTC-20041213-0013 v0.5
When we display interactive input and output we’ll show our typed input in a bold font and the computer output
Comments are added in italics.
Example:
=>language list
CODE LANGUAGE VERSION FILENAME
en* english 4.2.0.1 <system>
Bold is also used in the output to emphasize a specific section.
THOMSON continuously develops new solutions, but is also committed to improve
its existing products.
For more information on THOMSON's latest technological innovations, documents
and software releases, visit us at:
like this.
Only one language is available
www.speedtouch.com
7
About this IPQoS Configuration Guide
8
E-NIT-CTC-20041213-0013 v0.5
Document scope
1Document scope
IntroductionThe SpeedTouch™ Release 5.3.0 has a strong Quality of Service (QoS) base that
allows classification and forwarding of data to a single or multiple ATM VPI/VCIs
with each a set of ATMQoS parameters. IP Quality of Service is an extension to this
QoS framework. This configuration guide presents:
An introduction on IPQoS
An overview of the IPQoS framework
An overview of the labels, rules and expressions
An overview of the queue, meters and IPQoS commands
Some IPQoS application examples and how to configure them
A “Residential Scenario” using a single LAN segment with different
services.
A “Business Scenario” using multiple LAN segment with different services
and priorities.
A “Rate Limiting Scenario” using interface based rate limiting.
Chapter 1
E-NIT-CTC-20041213-0013 v0.5
9
Chapter 1
Document scope
2Introduction
IntroductionThis chapter gives a general description and use of Quality of Service.
In this chapter
Topi cPag e
2.1 What is Quality of Service? 12
2.2 Relative versus Guaranteed QoS 14
Chapter 2
Introduction
E-NIT-CTC-20041213-0013 v0.5
11
Chapter 2
Introduction
2.1What is Quality of Service?
DefinitionQuality of Service is the ability for an application to obtain the network service it
requires for successful operation.
Nowadays the total amount of data traffic increases, while new types of data
emerge, like: voice data, video data, audio data. These new types of data pose new
requirements for data transport, e.g. low latency, low data loss… To meet these
requirements, the entire network must ensure them via a connection service
guarantee. Such a connection service guarantee can both be applied to connectionoriented networks (connection based) and to packet-oriented networks (data-stream
or data type based).
Quality of Service allows specifying a connection service guarantee via a set of
connection parameters. Throughout the network, this set of connection parameters
will be used to handle the connection data in a way to achieve the connection
service guarantee. This handling includes reserving bandwidth, priority based
queuing, scheduling, modifying data characteristics, …
Examples of connection parameters include the maximum amount of bandwidth that
may be used, the guaranteed amount of bandwidth that will always be available, the
maximum delay the data can experience throughout the network, a priority
indication,…
MisunderstandingsA common misunderstanding about QoS is that QoS is about gaining a superior level
of network service for particular individuals.
The example below illustrates this.
The best illustration of why it is pointless to give enhanced network service to
particular individuals is shown by video-conferencing. Imagine John: he sees a
horrible quality image of the other video conference participant; but the other
participant sees John’s face perfectly. This is obviously not the desired result.
For John to also see a high-quality image, all participants in the video conference
need appropriate network service, not only John.
IP QoS provides such service. With IP QoS voice and/or video traffic can get a higher
priority then data traffic. This way good voice and video quality is guaranteed.
Note that QoS is no solution for overloaded networks, it only helps to shape
!
bursty peaks on the network. (See Bandwidth versus QoS )
12
E-NIT-CTC-20041213-0013 v0.5
Bandwidth versus QoSQuality of Service is really best noticed when the Best Effort service encounters
congestion. So a common question is "why not provide more bandwidth, use Best
Effort, and get rid of complicated QoS architectures?"
There are four answers:
First of all, it is less economic to use more bandwidth than to use QoS. Many
congestion problems can be resolved by using QoS.
The second reason is, Denial of Service (DoS) attacks can always fill links. Even
a 10Gbps link can be flooded by ten compromised gigabit ethernet hosts. QoS
allows Voice traffic to work perfectly even at the peak of a DoS incident.
The third reason is, a scavenger service (also known as a "worst effort" or "less
than best effort" service) gives Best Effort traffic such as web browsing priority
over traffic such as large downloads.
Last but not least, we can use quality of service to ameliorate the effect of TCP
unfriendly traffic, such as unauthenticated video (UDP). This amelioration can
prevent congestion collapse of Best Effort traffic due to excessive video load.
Using QoS for this function is in no way as satisfactory as modifying video
stream and video multicast protocols to become TCP friendly. But using QoS
does ameliorate the worst effect of these TCP unfriendly protocols.
Chapter 2
Introduction
Bandwidth does improve the latency for data, but may still require QoS for
congestion management and “guaranteed QoS”.
E-NIT-CTC-20041213-0013 v0.5
13
Chapter 2
Introduction
2.2Relative versus Guaranteed QoS
Typ es of QoSThere are two different approaches to achieve QoS:
Guaranteed QoS:
Measurable connection parameters are specified for certain data or for a
connection, for example a guaranteed amount of bandwidth or delay across the
network. This allows for an exact specification and measurement of the Quality
of Service of data or a connection.
Examples of “guaranteed QoS” are Integrated Services (IntServ) and ATM QoS
like VBR and CBR connections.
Relative QoS (also referred to as differentiated QoS):
A priority indication is given as connection parameter to certain data or to a
connection, so that this data or connection will be handled with precedence
over data or connections with less priority. Obviously this approach guarantees
no specified bandwidth or latency, but it is the easiest approach to achieve
some level of QoS for high priority data.
Examples of “relative QoS” are Differentiated Services (DiffServ, DS) and
Ethernet VLAN user priority indication.
The guaranteed QoS approach is slightly more complicated than Relative
QoS because the connection parameters have to be specified and may be
verified throughout the entire network.
In case of relative QoS, data is often specified to belong to a certain Class of
Service (CoS) instead of QoS. Treatment and priority of data throughout the
network is configured for each supported CoS.
14
E-NIT-CTC-20041213-0013 v0.5
3Basic QoS Concepts
IntroductionThis chapter provides a brief explanation about:
Basic concepts of Quality of Service in general.
Precedence and TOS in general
The Differentiated Services architecture in detail
In this chapter
Topi cPag e
3.1 Precedence and TOS 16
3.2 Differentiated Services 18
3.3 Classification and conditioning principles 20
Chapter 3
Basic QoS Concepts
3.4 Differentiated Services Code Point (DSCP) 22
E-NIT-CTC-20041213-0013 v0.5
15
Chapter 3
Basic QoS Concepts
3.1Precedence and TOS
IntroductionThere are two generations of quality of service architectures in the Internet Protocol.
The interpretation of the Type of Service Octet in the Internet Protocol header varies
between these two generations.
The figure below shows the Internet Protocol header.
The Type of Service Octet is the second 8-bit octet of the Internet Protocol header.
04
VersionHeader
Length
IdentificationDM
Time to LiveProtocolHeader Chuckles
Type of ServiceTotal Length
Source Address
Destination Address
First generationPrecedence and Type of Service bits.
The initial definition of the Type of Service Octet looked like this:
01234567
PrecedenceDTRC
Most Precedence descriptions are obscure: they relate to message handling priorities
of US military communications in the 1960s. The essence is that higher values of
Precedence lead to higher levels of network service.
To prevent high link utilisation causing routing traffic to be lost, it is traditional to use
Precedence = 7 for interior routing protocols, such as OSPF and RIP and to use
Precedence = 6 for exterior routing protocols such as BGP.
The D type of service bit can be a value of 0 to request normal delay, a value of 1 to
request a low delay service.
The T type of service bit can be a value of 0 to request normal throughput, a value of
1 to request a high throughput service.
The R type of service bit can be a value of 0 to request normal reliability, a value of 1
to request a high reliability service.
The C type of service bit can be a value of 0 to request normal costs, a value of 1 to
request a low cost service.
The D,T,R and C type of service bit is defined in RFC791 (Internet Protocol)
81631
OFF
16
E-NIT-CTC-20041213-0013 v0.5
Precedence valuesThe table below gives the precedence values:
PrecedencePurpose
0Routine
1Priority
2Immediate
3Flash
4Flash Override
5CRITIC/ECP
6Internetwork Control
7Network Control
Chapter 3
Basic QoS Concepts
Note that IP Precedence is obsolete and is only implemented to provide
backwards compatibility.
Second generationThe Differentiated Service Code Point is a selector for router's per-hop behaviours.
01234567
Differentiated Service Code PointECTCE
The fields ECT and CE are spare bits in the IP header used by Explicit Congestion
Notification (RFC3168).
As can be seen, the DSCP field supersedes the old Precedence field. So the values of
DSCP provide limited backwards compatibility with Precedence.
This leads to notions of "class", each class being the group of DSCPs with the same
Precedence value. Values within a class would offer similar network services but
with slight differences (used to create different levels of service such as "gold",
"silver" and "bronze").
E-NIT-CTC-20041213-0013 v0.5
17
Chapter 3
Basic QoS Concepts
3.2Differentiated Services
IntroductionDifferentiated Services (DiffServ) is an architecture which allows service providers to
offer different kinds of services to different customers and their traffic streams.
Differentiated Services is a framework for scalable service discrimination and allows
an approach to modular IPQoS objectives for the needs of various types of
applications.
The premise to DiffServ networks is that routers within the core of the network are
capable to forward the packets of different traffic streams in different Per-Hop
Behaviours (PHB). The PHB for the packets is indicated by a Differentiated Services
Codepoint (DSCP) in the IP header. The DiffServ architecture does not use any
signalling between the routers but all the forwarding behaviour is defined by using
the DSCP.
TerminologyBefore we continue we will explain the abbreviations used in this section.
Behaviour Aggregate (BA):
Is a collection of packets with the same Differentiated Services codepoint, thus
receiving the same PHB, crossing a DiffServ node in a particular direction.
Differentiated Services CodePoint (DSCP):
Is the value in the IP header in the DS field, used to select the PHB.
Per-Hop Behaviour (PHB):
Is the forwarding behaviour for the packet applied at DiffServ compliant nodes
to a DiffServ BA.
Service Level Specification (SLS):
Is a set of parameters and their values which together define the service offered
to a traffic stream by a DiffServ domain.
Traffic Conditioning Specification (TCS):
Is a set of parameters and their values which together specify a set of classifier
rules.
18
E-NIT-CTC-20041213-0013 v0.5
Chapter 3
e
Basic QoS Concepts
Differentiated Services
domain
A DiffServ domain consists of a set of DiffServ nodes which can provide the
common service and which have a set of PHBs implemented on each node. The
DiffServ domain has two types of nodes:
boundary nodes at the edges of the domain
interior nodes inside of the domain.
The boundary nodes are the access routers and edge routers that directly peer with
customers (either individual users or other ISPs).
SpeedTouch™
as boundary nod
Router at ISP as
interior node
Interior nodes only connect to other interior nodes or boundary nodes within the
same DiffServ domain.
Both DiffServ node types must be able to apply the appropriate PHB to packets,
according to the DSCP. The boundary nodes are required to perform traffic
conditioning functionality when the functionality of the interior nodes may be limited.
Boundary nodes act both as DiffServ ingress and DiffServ egress node, depending on
the direction of the traffic.
In practice this means that the boundary node makes sure that the TOS/DSCP byte is
set correctly.
E-NIT-CTC-20041213-0013 v0.5
19
Chapter 3
Basic QoS Concepts
Traffic classificationA packet is classified as belonging to a "class of service". This classification is done
3.3Classification and conditioning principles
IntroductionPackets go through a number of phases as they transit the network: classification,
marking, shaping, policing and queuing. These phases can occur a number of times
at each QoS-aware router in the path of the packet.
For example, a host might mark outgoing traffic as "best effort", "scavenger",
"discard at edge" or "discard at paid link". The hosts router might then police the
host's traffic to ensure that these are the only markings applied to traffic, and remark
invalidly marked packets as "best effort".
The traffic conditioners are usually located in DiffServ boundary nodes, so interior
nodes do not need to perform any traffic conditioning.
by the boundary nodes.
The BA classifier classifies the packets by the DSCP. Classification is based on the
value of combination of one or more IP header fields, such as source and destination
addresses, source and destination ports, protocol ID and other information like
incoming interface.
For example, we might classify data from a VoIP gateway as being "voice" traffic.
Traffic conditioningTraffic conditioning includes metering, policing, shaping and possibly re-marking to
ensure that the traffic stream entering the DiffServ domain conforms to the rules
specified in the SLS. The traffic conditioning policies are negotiated between the
networks and vary from simple re-marking to complex policing and shaping
operations.
The traffic conditioner includes meter, marker, shaper and dropper. The packets are
directed from the traffic classifier to the logical instance of traffic conditioner.
meter
packet
stream
The figure above shows that the packets travel from the classifier either to the meter
or to the marker.
The meter measures the rate at which packets of one BA pass the meter. It is used
to measure the traffic stream against the traffic profile.
The marker adds the packet to the appropriate BA according to the DSCP. The DSCP
may be changed by the marker, i.e. re-marked.
Shapers shape the packet stream to fit in the used traffic profile. The shaper may
also act as a dropper by dropping packets to fit the stream into the profile.
classifier
marker
shaper/dropper
20
E-NIT-CTC-20041213-0013 v0.5
Basic QoS Concepts
MarkingOnce classified, a packet is marked to avoid repeated re-classifications. The marking
is made to the Differentiated Services Code Point (DSCP). The DSCP is trusted by
later routers, so that the high cost of classifying traffic occurs only once.
ShapingAt the outgoing network edge, traffic is shaped to meet the traffic contract.
MeteringAt the outgoing network edge, traffic is metered to meet the traffic profile. This
means that the bandwidth can be limited for certain traffic.
PolicingAt the incoming network edge traffic is measured and traffic in excess of the traffic
contract is either re-marked to "best effort" or discarded.
Chapter 3
E-NIT-CTC-20041213-0013 v0.5
21
Chapter 3
Basic QoS Concepts
3.4Differentiated Services Code Point (DSCP)
IntroductionA small bit-pattern, called the DS field, in each IP packet is used to mark the packets
that should receive a particular forwarding treatment. The DS field uses the space of
the former ToS byte in the IPv4 IP header and the traffic class byte in the IPv6
header. All network traffic inside of a domain receives a service that depends on the
traffic class that is specified in the DS field.
The structure of the DS field is shown below:
7 6 5 4 3 2 1 0
DSCPECN
A six-bit field, known as the Differentiated Services Code Point (DSCP), in the DS
field specifies the PHB for a given flow of packets. The DSCP is composed of the six
most significant bits of the DS field. The two least significant bits of the DS field are
used for Explicit Congestion Notification (ECN) by DiffServ-capable nodes that
support ECN. The ECN field contains 2 bits, the ECT bit and the CE bit.
The ECT bit is set to 1 to advertise to the network that the node is an ECN capable
node.
The CE bit is set to 1 incase the node experiences congestion.
Refer to RFC2474 for more information on the definition of the DS field.
Per Hop BehaviourRouters look at the DSCP to select a per-hop behaviour, such as a queueing
algorithm and its parameters.
A PHB defines a DiffServ router’s externally observable forwarding behaviour (in
terms of buffer/bandwidth resource allocation) related to a BA. This is essentially
defined by the queuing/scheduling/buffer management in the forwarding path.
PHBs are implemented in DiffServ nodes by means of some buffer management and
packet scheduling mechanism. The PHB definition is not depending on the
mechanism that offers the service but in terms of behaviour characteristics relevant
to service provisioning policy.
For example, "voice" traffic might select a "strict" queuing algorithm with a
parameter of "place in top priority queue".
Refer to RFC2475 for more information.
Standardized PHBsThe following specific PHBs and recommended DSCPs for each PHB have been
standardized by the IETF:
Default PHB.
Expedited Forwarding PHB.
Class Selector (CS) PHB.
Assured Forwarding PHB.
22
E-NIT-CTC-20041213-0013 v0.5
Chapter 3
Basic QoS Concepts
E-NIT-CTC-20041213-0013 v0.5
23
Chapter 3
Basic QoS Concepts
Assured Forwarding
(AF) PHB Group:
The Assured Forwarding (AF) PHB group allows a provider to offer different levels of
forwarding assurances for IP packets. The delivery of IP packets is provided in four
independently forwarded AF classes (AF1x through AF4x). Each AF class is allocated
a certain amount of forwarding resources (buffer space and bandwidth) in a DS node.
Within each AF class, there are three drop probabilities: Low, Medium and High drop
precedence (the higher the precedence, the higher the probability the packet will be
dropped in case of congestion).
Packets can be selected for a PHB based on required throughput, delay, jitter, loss, or
according to priority of access to network services.
The table below illustrates the recommended DSCP coding for specifying the AF
class with the drop probability. The AF value, the decimal value and the binary value
are shown for each DSCP.
Drop PrecedenceClass 1
AF1
LowGold
AF11
10
(001010)
MediumSilver
AF12
12
(001100)
Class 2
AF2
Gold
AF21
18
(010010)
Silver
AF22
20
(010100)
Class 3
AF3
Gold
AF31
26
(011010)
Silver
AF32
28
(011100)
Class 4
AF4
Gold
AF41
34
(100010)
Silver
AF42
36
(100100)
HighBronze
AF13
14
(001110)
For more information on the AF PHB, refer to RFC2597.
Bronze
AF23
22
(010110)
Bronze
AF33
30
(011110)
Bronze
AF43
38
(100110)
24
E-NIT-CTC-20041213-0013 v0.5
IP QoS Framework Overview
4IP QoS Framework Overview
IntroductionThis chapter presents an overview of the main components of the IP QoS framework
within the SpeedTouch™.
In this chapter
Topi cPag e
4.1 Main Framework Components 26
4.2 Resource Management 27
Chapter 4
E-NIT-CTC-20041213-0013 v0.5
25
Chapter 4
W
IP QoS Framework Overview
Graphical overviewThe figure below shows a graphical overview of the main components in the
4.1Main Framework Components
upstream datapath.Notice that there are two main blocks, the input and output.
In between these two blocks the IP packets go through a series of processes like
firewall, nat etc.
INPUTOUTPUT
MANAGEMENT
ETH
ireless
LAN
USB
RESOURCE
Classification
IP forwarding
destination
or
label-based
QoS ComponentsThe main QoS components are:
Resource Management: The main purpose of this module is to assure that
arriving low priority data cannot consume all the internal memory resources. In
case of congestion and resource starvation, this module will deny low priority
data from consuming memory resources. The Resource Management module
also maps the Layer 2 VLAN user priority to an internal Class.
Classification: The classification module classifies incoming data. Data that
matches the classification criteria will be labelled. A label is only of internal
significance and can be used in forwarding and QoS definition. Each label can
have an internal QoS class associated with it. Data will experience treatment
(queuing and scheduling) according to its QoS class. The SpeedTouch™
Business DSL Router support 16 internal classes which are linked to the 6
queues. The 6 queues are:
The Real Time queue (EF)
The Weight Fair queue 4 (WFQ4)
The Weight Fair queue 3 (WFQ3)
The Weight Fair queue 2 (WFQ2)
The Weight Fair queue 1 (WFQ1)
The Best Effort queue (BE)
There are 6 queues defined per ATM interface. So each ATM interface
can have different QoS settings.
Packect
handeling
MANAGEMENT
RESOURCE
IP QoS
queueing
+
scheduling
+
rate limiting
ATM
QoS
DSL
IP Forwarding: IP forwarding supports the use of labels to forward classified
data to any IP interface. This allows, for example, to forward data based upon
port(-ranges), IP addresses, protocol, source interface, Differentiated Services
Code Point (DSCP), … (see the “Routing Configuration Guide” for more details
on routing and forwarding)
IP QoS Queuing, Scheduling and Rate Limiting: This module implements the
internal IP QoS queues and scheduling and maps the internal class (set during
classification or set by the Resource management module) to one of these
queues. Rate-limiting can be configured for the fixed priority real-time queue.
This queue has fixed priority over other queues. This ensures a low latency but
could lead to starvation of lower priority queues. By configuring a percentage of
the total available interface bandwidth, data from this queue will be limited to
this bandwidth in case of congestion.
ATM QoS: The ATM Quality of Service module holds the extensive ATM QoS
features, starting with per ATM VP/VC queuing and shaping, per ATM QoS
class queuing and scheduling, performing connection admission control.
26
E-NIT-CTC-20041213-0013 v0.5
Chapter 4
IP QoS Framework Overview
4.2Resource Management
IntroductionThe RM module reserves memory for four independent traffic classes. Resources are
reserved for each RM-class, both in the upstream and in the downstream direction (8
reservations in total). The figure below shows the Resource Management
reservations.
Dynamic Memory Pool
resource
reservation
For incoming data towards the IP host, this module copies the VLAN user priority
field into the packet internal class indication. The module also sets (or raises) the
internal class indication based upon the ATM VP/VC QoS category for reassembled
frames.
As a result, incoming low priority UBR (Unspecified Bit Rate) traffic will not be able to
consume all resources because resources are reserved for VBR (Variable Bit Rate)
and CBR (Constant Bit Rate) data. Similarly, low priority VLAN frames won't be able
to consume all resources because resources are reserved for high priority (based
upon the VLAN user priority field) VLAN frames.
0123
UPSTREAM
0123
DOWNSTREAM
E-NIT-CTC-20041213-0013 v0.5
27
Chapter 4
IP QoS Framework Overview
Mapping to internal
class
The RM module maps packets to the an internal class depending on ATM QoS, VLAN
priority or DSCP settings. The table below shows the relation between these
settings. Once the mapping to the internal classes has been completed the packet
goes through a number of processes like firewall, nat etc. Finally once the packet is
ready for output it will be put in one of the 6 queues based upon its internal class.
INPUT
ATM QoS
Category
CBR7CS6,CS7
VBR-rt6
VBR-nrt
(low CDVT)
GFR
(low CDVT)
VBR-nrt
(high CDVT)
GFR
(high CDVT)
VLAN User
Priority
-
-
-
5
DiffServ
DSCP
EF
CS5
AF41
CS4
AF42,AF4
3
AF31
CS3
AF32,AF3
3
MappingOUTPUT
Internal
Class
15
14
13
12
11
10
QueueLabel
5
4WFQ4
3WFQ3
Real
Time
--
-4
UBR BCS 7-
ABR /UBR
BCS 6
UBR-mdcr /
UBR BCS 5
UBR / UBR
BCS 4
UBR BCS 3--3
UBR BCS 22-2
UBR BCS 1--1
UBR BCS 01-0
3
--
0
AF21
CS2
AF22,AF2
3
AF11
CS1
AF12,AF1
3
CS0
Best Effort
9
2WFQ2
8
7
1WFQ1
6
5
4
0
Best
Effort
28
E-NIT-CTC-20041213-0013 v0.5
Packet Classification and Labelling
5Packet Classification and Labelling
IntroductionThis chapter will explain in detail how packets are classified. This classification is
configured via rules in a packet filter mechanism.
When a packet hits a rule, it will be marked with the label that is associated with this
rule. Like this, packets with certain properties can be given a common name.
Next to the name of the label, also some parameters are linked to the packet(s).
These parameters can be QoS values, priorities and actions like ToS marking etc.
In this chapter
Topi cPag e
5.1 Classification 30
5.2 Labels 33
Chapter 5
5.3 Rules 42
5.4 Chains 49
5.5 Expressions 52
E-NIT-CTC-20041213-0013 v0.5
29
Chapter 5
Packet Classification and Labelling
5.1Classification
IntroductionThe basic objective of the Classification module in the SpeedTouch™ is the following:
TerminologyLabelling means assigning a user friendly name to classified types of connections for
Identifying certain data (on IP or layer 3 level) (called classification)
Stating the importance (or priority) of the data, optionally overruling the priority
already indicated by the layer 2 network (setting the internal class)
The internal class is an internal indication (from 0..15) of the importance/
priority of data, this determines how the data will be treated (to which queue
it will be mapped).
internal usage.
The outcome of packet classification is a label. This label can be used within the
router to refer to particular classified data.
Classification allows to "label" data based upon a set of packet filter rules.
Rules have an action to assign a label to all packets to which one particular rule
applies.
Expressions are user friendly names to represent Services, Interfaces and IP
concepts.
30
E-NIT-CTC-20041213-0013 v0.5
Chapter 5
qos_default_rule_n
_1
_2
Routing classification
Packet Classification and Labelling
5.1.1Order of classification rules
IntroductionThe SpeedTouch™ will first check the routing rules and assign a routing-label when a
rule is hit. Secondly the packet will go through the QoS rules and a qos-label will be
assigned if a rule is hit. So each packet can get two labels assigned.
The figure below shows an example of the hierarchical order of classification rules:
0
rt_user_labels
1
rt_default_labels
0
rt_user_rule_1
1
rt_user_rule_2
0
rt_default_rule_1
1
rt_default_rule_2
QoS classification
0
qos_user_labels
1
qos_default_labels
The order of the classification rules (determined by the rule index) is very
!
important. The first rule that applies to a packet determines which label will
be assigned to that packet. When a rule applies to a packet in the routing
classification, the rule matching process stops and the QoS classification
starts untill the first rule is hit and a label is assigned.
0
qos_user_rule_1
1
qos_user_chain_1
2
qos_user_rule_2
3
qos_user_rule_n
0
qos_default_rule_1
1
qos_default_rule_2
2
chain_rule
chain_rule
Sub-chainsIn case sub-chains are linked within a chain, these sub-chains have an index and the
E-NIT-CTC-20041213-0013 v0.5
sub-chain rules are matched before the rules with the following index in the parent
chain.
Routing parameters only apply to routing labels; QoS parameters only apply
to QoS labels
31
Chapter 5
Packet Classification and Labelling
ExampleSo, in the example shown in the previous figure, the rules will be applied to incoming
packets in the following order:
1routing labels
1routing user labels
2routing default labels
2qos labels
1qos user labels
2qos default labels
No rules should be created in the chain _default_labels, because this chain is
!
reserved for automatically created rules that substitute source-routes where
needed. When creating classification rules, only create them in the chain
_user_labels or in newly created sub-chains in the chain _user_labels.
32
E-NIT-CTC-20041213-0013 v0.5
Chapter 5
Packet Classification and Labelling
5.2Labels
IntroductionThis section will explain in detail how to configure labels through the CLI.
As mentioned before labels are used to assign a user friendly name to a packet for
internal usage.
The same label can be used in both Routing label rules and QoS label rules.
!
Its name/ID will be used for forwarding, its parameters will be used for QoS
related queuing, rate-limiting or marking.
CLI Command groupsThe label command group is build up out of one main group called label and two sub-
groups called chain and rule. The sub-group rule has one more sub-group called
debug.
The command group and sub-groups in detail.
Label command group
labeladd
modify
delete
list
flush
chain
rule
Chain command group
chainadd
delete
list
flush
Rule command group
E-NIT-CTC-20041213-0013 v0.5
ruleadd
delete
modify
list
flush
debug
33
Chapter 5
Packet Classification and Labelling
Adding a labelExecute the following CLI command to add a label:
Label parametersNow that we have added a label we can configure its parameters.
Debug command group
debugtraceconfig
stats
clear
{Administrator}=>:label add name mylabel
The example above will add a label with the name “mylabel”
The following label parameters can be configured:
ParameterDescription
nameThe name of a label to modify.
classificationThe Method of classification.
defclassThe default class of assigned connection.
ackclassThe class of ACK segments of TCP connection.
bidirectionalThe label is also valid for return stream.
inheritanceThe label is also valid for corresponding stream of child
connection.
tosmarkingEnable/disable TOS marking.
tosThe Type Of Service specification in the IP packet (used for
tos-marking).
dscpThe diffserv code point (part of tos, used for tos-marking).
precedenceThe precedence (part of tos, used for tos-marking).
ttloverwriteEnable/disable ttl overwrite.
ttlThe Time To Live in the IP packet (used for ttl-overwrite).
traceEnable/disable IP tracing for this label.
34
The TTL parameters are only used for packet routing and the trace parameter is used
for debugging.
E-NIT-CTC-20041213-0013 v0.5
Chapter 5
Packet Classification and Labelling
5.2.1Label parameters explained
IntroductionThis section will explain in detail the label parameters and their values.The first part
explains the parameters used to set the priority for internal use like mapping to one
of the 16 internal classes. The second part will explain the parameters that need to
be set to enable QoS throughout the entire network.
ClassificationThe classification parameter determines whether the label classification will set the
internal class (used to determine the IPQoS queue).
Classification valuesDescription
ignoreIf set to "ignore", the label classification will ignore the
existing packet class and will not set or overwrite the
internal class.
overwriteIf set to "overwrite", the label classification will set the
packet class based upon the configured class
parameter, regardless of what the existing packet
class value is.
increaseIf set to "increase", the label classification will only set
the packet class IF the configure class parameter is
higher than the existing packet class value.
DefclassThe defclass parameter is used to select the DiffServ queue if DiffServ is enabled on
the destination interface on which the data is forwarded. By default 4, being the
best-effort queue.
Defclass valuesDescription
0..15The internal class number.
dscpIf this value is used the defclass value is set to the
dscp value. The diffserv code point is automatically
mapped to an internal class corresponding to the DSCP
PHB.
defaultIf selected the defclass value is set to the
SpeedTouch™ default value of 4.
E-NIT-CTC-20041213-0013 v0.5
35
Chapter 5
Packet Classification and Labelling
AckclassThe ackclass parameter is used to select the DiffServ queue for single ACK segments
BidirectionalBi-directional labeling of connections is used to copy the label (Routing and/or QoS)
of a TCP connection.
Ackclass valuesDescription
0..15The internal class number.
prioritizeIf selected the ACK segments will be given a higher
priority than the defclass. (Ackclass +2)
defclassIf selected the same class will be used as defined in
the defclass parameter.
from the initiator stream to the returning stream. Bi-directional labels cannot be used
in the forwarding table.
Bidirectional valuesDescription
disableDisables the label for the return stream.
enableEnables the label for the return stream.
InheritanceWhen inheritance is enabled, this label will be copied to streams of all child
connections in the same direction (so for a bi-directional label to all child streams).
This allows to automatically classify (label) child streams and/or connections using
any supported ALG
A child connection is a connection that is setup automatically by a parrent
connection.
Inheritance valuesDescription
disableDisables the label for child connections.
enableEnables the label for child connections.
ExampleIn active mode FTP the client connects from a random unprivileged port (N > 1024)
to the FTP server's command port, port 21. Then, the client starts listening to port
N+1 and sends the FTP command PORT N+1 to the FTP server. The server will
then connect back to the client's specified data port from its local data port, which is
port 20.
From the server-side firewall's standpoint, to support active mode FTP the following
communication channels need to be opened:
FTP server's port 21 from anywhere (Client initiates connection)
FTP server's port 21 to ports > 1024 (Server responds to client's control port)
FTP server's port 20 to ports > 1024 (Server initiates data connection to
client's data port)
FTP server's port 20 from ports > 1024 (Client sends ACKs to server's data
port)
36
E-NIT-CTC-20041213-0013 v0.5
Packet Classification and Labelling
In this case the child connection would be the connection on port 20 of the FTP
server.
Chapter 5
E-NIT-CTC-20041213-0013 v0.5
37
Chapter 5
Packet Classification and Labelling
5.2.2Using TOS, DSCP or Precedence
IntroductionIn this section we will explain the parameters that need to be set to enable QoS
TOSmarkingWhen using TOS a very fine definition of the Quality of Service can be made. This is
throughout the entire network. This means that these values are only of significance
for outgoing fraffic. The tables below describe the values used when configuring
IPQoS by setting the TOS byte, using DSCP or by setting the Precedence bits.
Only one type of of IPQoS can be used at the time.
!
only of use when the whole network supports QoS by TOS.
TOSmarking valuesDiscription
disableDisables the TOS marking.
enableEnables the TOS marking.
TOS
Precedence
TOS valuesDescription
1..255Sets the TOS bits in the IP header to the coresponding
value.
When using Precedence the QoS definition is narrowed down to 8 values
Precedence valuesDescription
routinewill set the precedence bits to 000. (lowest
priority)
prioritywill set the precedence bits to 001.
immediatewill set the precedence bits to 010.
flashwill set the precedence bits to 011.
flash-overridewill set the precedence bits to 100.
CRITIC-ECPwill set the precedence bits to 101.
internetwork-controlwill set the precedence bits to 110.
network-controlwill set the precedence bits to 111.(highest priority)
38
number 0..7 0..7.
E-NIT-CTC-20041213-0013 v0.5
Packet Classification and Labelling
DSCPWhen using DSCP the QoS definition is narrowed down to 21 values. This is the
most common value used to define QoS. This definition is also backwards compatible
with TOS and Precedence.
The srcip parameter is used to the source address of
the packet, this can be any ip address. If the source ip
parameter is left open any source address is valid.
The dstip parameter specifies the destination address
of the packet.
This can be used for point to point connections.
If the dstip parameter is left open any destination
address is valid.
The serv parameter defines the service used, this can
be any given service or a specific service like HTTP,
FTP, TELNET etc. These services can be defined in the
expression command group wich will be explained in
detail further on.
44
E-NIT-CTC-20041213-0013 v0.5
Log
State
Chapter 5
Packet Classification and Labelling
Log valuesDescription
enableEnables logging when this rule applies. This can be
used for debugging.
disableDisables logging
State valuesDescription
enableEnables this rule.
disableDisables this rule.
Label
Label valueDescription
noneIf no label needs to be assigned.
linkLink is used incase the clink parameter is used.
label nameThe name of the label you want to assign to a packet
when the rule applies.
Modifying a rule
Rules that have been created can be modified with the modify command. The
parameters for the modify command are exactly the same as those for the add
command.
The list commandThe list command can be used to view a list of the rules created. This command can
be refined with the following parameters:
chain
format.
With the chain suffix a chain name can be specified, so only the rules that apply to
that chain will be shown.
With the format suffix we can select the output format. The default format is pretty,
the other option is cli
Example. Execute the following CLI command to view the rules that are related to
the chain qos_default_labels:
E-NIT-CTC-20041213-0013 v0.5
{Administrator}=>:label rule list chain=qos_default_labels format=cli
This will add a link between the user chain my_chain and the qos_user_labels.
The chain structure now looks like this:
os_labels
1
qos_user_labels
2
qos_default_labels
3
1
1
2
3
4
5
my_chain
rule_1
rule_2
rule_3
rule_4
rule_5
1
rule
2
rule
E-NIT-CTC-20041213-0013 v0.5
51
Chapter 5
Packet Classification and Labelling
5.5Expressions
DefinitionExpressions are used in rules for source and destination interface, source and
destination IP address (es) (ranges) and services.
There are three types of expressions :
Interface related expressions. These are expressions related to an interface like:
lan, wan,ipoa, pppoe, pppoa etc.
IP related expressions. These are expressions related to an IP address or range.
Service related expressions. These are expressions related to a service like
HTTP, FTP, IKE, SIP, etc.
Expressions command
The command group expressions (expr) consists of the following commands :
group
Expression command group
expradd
delete
modify
list
flush
Adding an expressionExecute the following CLI command to add an expression:
{Administrator}=>:expr add name ftp type serv proto tcp dstport 20
This command has added an expression of the type service with the name ftp using
protocol tcp and destination port 20.
52
E-NIT-CTC-20041213-0013 v0.5
Chapter 5
Packet Classification and Labelling
E-NIT-CTC-20041213-0013 v0.5
53
Chapter 5
Packet Classification and Labelling
Bridgeport
bridgeport valueDescription
numberA bridge port can be selected by using the bridge port
number
The bridgeport number can be found in the eth subgroup. Under the eth bridge
subgroup. Execute the following CLI command to find the bridgeport number:
{Administrator}=>:eth bridge iflist
The command will give an output like this :
OBC : dest : Internal
Connection State: connected Retry: 10
Port: OBCPortNr: 0PortState: forwardingInterface: up
RX bytes: 24774 frames: 163
ethport1 : dest : ethif1
Connection State: connected Retry: 10
Port: ethport1PortNr: 1PortState: forwardingInterface: up
TX bytes: 27352 frames: 163 dropframes: 0
TX bytes: 0 frames: 0 dropframes: 0
RX bytes: 0 frames: 0
AddrThe following parameter is the only parameter used when selecting ip as type.
TosAll of the following parameters can be used to configure an expression of the type
Precedence
addr valueDescription
ip-range or addressThe IP address or range to which the expression is
related.
serv.
tos valueDescription
number (0..255)The tos byte value can also be used to define an
expression related to this value.
precedence valueDescription
routine,priority,
immediate,flash, flash-
One of these values can be used to define an
expression related to the precedence in the IP packet.
One of these values can be used to define an
expression related to the ICMP value in a packet.
56
E-NIT-CTC-20041213-0013 v0.5
Icmpcode
Icmpcodeend
Chapter 5
Packet Classification and Labelling
icmpcode valueDescription
number (0..15)A number can be used to define an expression related
to the ICMP code. This value is used to define the start
of the ICMP code range.
icmpcodeend valueDescription
number (0..15)A number can be used to define an expression related
to the ICMP code. This value is used to define the end
of the ICMP code range.
Delete an expression
Execute the following CLI command to delete an expression :
{Administrator}=>:expr delete name ftp index 2
This command will delete the expression with the name ftp and index 2. An index
number needs to be provided as an expression name can have more than one index.
For example: there can be two expressions with the name ftp.
The first with name=ftp index=1 and dst-prt=20
The second with name=ftp index=2 and dst-prt=21
The command above will only delete the expression with name ftp and index 2.
Modify an expressionA created expression can be modified by using the modify command. With the
modify command all the parameters that can be configured with the add command
can be modified.
E-NIT-CTC-20041213-0013 v0.5
57
Chapter 5
Packet Classification and Labelling
List an expressionExecute the following CLI command to view a list with all the expressions:
The output will look like this :
There are expressions that start with _ like _10.0.0.138. These are dynamically
generated. Expressions are generated dynamically mainly for firewall use but can be
used for other purposes as well.
The list command can be refined by adding the expression name and/or type
Execute the following CLI command to list a
58
E-NIT-CTC-20041213-0013 v0.5
Meters, queues and IPQoS
6Meters, queues and IPQoS
IntroductionIn this chapter we will have a closer look at the IPQoS command group. This
command group is used to configure the IPQoS parameters like the meters and
queues.
In this chapter
Topi cPag e
6.1 Meters and queues 60
6.2 The IPQoS command group 61
6.3 EF timers 63
6.4 Meter command group 67
6.5 Queue command group 75
Chapter 6
6.6 IPQoS Command group 81
E-NIT-CTC-20041213-0013 v0.5
59
Chapter 6
Meters, queues and IPQoS
6.1Meters and queues
MetersMeters are used to limit the bandwidth for a certain interface.
This is done by setting a drop and a mark rate. How this is done will be discussed
later on in this chapter.
QueuesAs seen before in “ Mapping to internal class” the SpeedTouch™ supports up to 6
queues. These queues are used to prioritize data. Each queue handles a range of
internal classes. As seen before a packet is associated with an internal class by
means of embedded priority indicators as DSCP, VLAN priority or by defining your
own specific rules.
The table below shows these relations more in detail.
INPUTMappingOUTPUT
VLAN User
Priority
7CS6,CS715
6
-
-
-
5AF32,AF33
-
4AF22,AF23
-
3AF12,AF13
--5
DiffServ
DSCP
EF
CS5
AF41
CS4
AF42,AF43
AF31
CS3
AF21
CS2
AF11
CS1
Internal
Class
14
13
12
11
10
9
8
7
6
QueueDefault
Label
5Real Time
4WFQ4
3WFQ3
2WFQ2
1WFQ1
60
0
--3
2-2
--1
1-0
CS0
Best Effort
4
0
E-NIT-CTC-20041213-0013 v0.5
Best
Effort
Meters, queues and IPQoS
6.2The IPQoS command group
OverviewThe queues,meters and EF timers can be configured through the IPQoS command
group. The IPQoS command group contains the following commands and sub groups
:
IPQoS command group
ipqosef
meter
queue
config
list
Chapter 6
EF command group
efconfig
list
stats
meter command group
meteradd
config
delete
list
start
stop
flush
stats
clear
E-NIT-CTC-20041213-0013 v0.5
61
Chapter 6
Meters, queues and IPQoS
queue command group
queueconfig
list
stats
clear
62
E-NIT-CTC-20041213-0013 v0.5
Chapter 6
Meters, queues and IPQoS
E-NIT-CTC-20041213-0013 v0.5
63
Chapter 6
Meters, queues and IPQoS
64
E-NIT-CTC-20041213-0013 v0.5
Chapter 6
Meters, queues and IPQoS
MTU explained.In this section we will have a closer look at the MTU values and what exactly does it
do.
Sometimes it might be usefull to lower the MTU of a link when EF data is to be sent.
The reason is that, even if an EF packet gets top priority, it might still get stuck
behind a large data packet that has just started to go out.
The MTU typically needs to be changed on links with a slow uplink (<128Kb/s). The
MTU is set to 1500 bytes by default.
If a default packet of 1500 bytes, is send over a 64Kb link, it takes 18ms before it is
send completly. This could cause delay/jitter for time sensitive data like voice. This is
called serialization delay. By decreasing the MTU, IP packets (with a normal lenght
of 1500 bytes) will be fragmented in smaller packets to meet the defined MTU size.
The example below can illustrate this:
The problem : A voice-packet gets highest priority but gets stuck
behind a large data -packet that is being sent out.
Real time MTU
Elastic Traffic MTU
214 ms transfer time for 1500 byte frame
at 56kbps
The solution: fragment packets when EF exists
Elastic MTURea l time MTUReal time MTUElastic MTU
E-NIT-CTC-20041213-0013 v0.5
65
Chapter 6
Meters, queues and IPQoS
The table below shows the delay a packet can experience depending on the MTU and
link speed.
MTU
56
kb/s
64
kb/s
128
kb/s
256
kb/s
Line Speed
512
kb/s
768
kbps
64
Bytes
9ms18ms36ms72ms144ms214ms
8ms16ms32ms64ms128ms187ms
4ms8ms16ms32ms64ms93ms
2ms4ms8ms16ms32ms48ms
1ms2ms4ms8ms16ms23ms
640µse
c
128
Bytes
256
Bytes
512
Bytes
1024
Bytes
1.2ms2.6ms5ms10ms15ms
The higher the MTU the higher the delay will be. Also the lower the bandwidth the
higher the delay.
EF stats commandThe ef stats command is used to display the statistics of the ef meter.
The output of this command will look like this :
1500
Bytes
{Administrator}=>:ipqos ef stats
Interface State Remain
(ms)
loop disabled 0
Internet disabled 0
lan1 disabled 0
EF list commandThe ef list command displays all the ef meters configured.
The output of this command will look like this:
{Administrator}=>:ipqos ef list
Interface State Timeout MTU
(ms) (bytes)
loop disabled 1000 65535
Internet disabled 1000 1500
lan1 disabled 1000 1500
66
E-NIT-CTC-20041213-0013 v0.5
Meters, queues and IPQoS
6.4Meter command group
IntroductionThe meter command group is used to configure rate limiting. This allows aggregated
data to be policed to pre-configured bandwidths. This rate limiting can be configured
for a specific interface, ip address or service. A meter can be selected by a label or
can be interface specific. In case the meter is configured for a specific interface no
label is needed. Data in excess of the configured parameters will be discarded or
optinally re-marked to a lower priority.
Adding a meterExecute the following CLI command to add a meter:
{Administrator}=>:ipqos meter add name my_meter
This command will add a meter with the name “my_meter”.
Subsequently we need to configure the meter parameters. The section below shows
and explains the different parameters needed to configure a meter.
Chapter 6
E-NIT-CTC-20041213-0013 v0.5
67
Chapter 6
Meters, queues and IPQoS
Meter parametersThe table below shows all the parameters that can be configured by using the
6.4.1Meter config command
meter config command.
ParameterDescription
nameThe name of the IPQoS meter.
labelThe name of the label.
intfThe name of the interface.
droprateThe drop rate in kilobits per second (Kb/s).
markrateThe mark rate in kilobits per second (Kb/s).
burstThe burst size in kilobytes (KB).
dropactionThe drop action.
Meter config
parameters explained
Name
Label
markactionThe mark action.
tosmarkingEnable tos marking for marked packets.
tosThe type of service used for tos marking.
dscpThe diffserv code point (part of tos, used for tos-marking).
precedenceThe precedence (part of tos, used for tos-marking).
classificationThe type of classification for marked packets.
classThe class or offset used for classification.
In this section we will explian the meter parameters in detail and how to configure a
meter.
name valueDescription
stringThis is the name of the IPQoS meter.
68
label valueDescription
BE, DSCP, EF,
Interactive,
Management, etc
The label to which the meter applies.
E-NIT-CTC-20041213-0013 v0.5
Intf
Chapter 6
Meters, queues and IPQoS
intf valueDescription
Droprate
Markrate
Burst
loop, ipoa1, pppoe,
pppoa, LocalNetwork
droprate valueDescription
number (0..102400)The drop rate in kilobits per second (Kb/s). Packets in
markrate valueDescription
number (0..102400)The mark rate in kilobits per second (Kb/s). Packets in
The interface to which the meter applies.
excess of this value will be dropped or counted
depending on the drop action.
excess of this value will be marked or counted
depending on the mark action.
burst value Description
number (0..64)The burst size in kilobytes (KB).
Rate limiting is done by means of a token bucket. A token bucket is a formal
definition of a rate of transfer. It has three components: a burst size, a drop rate, and
a time interval.
Here are some definitions of these terms:
Drop rate:
Specifies how much data can be sent or forwarded per unit time on average.
Burst size:
Specifies in bits (or bytes) per burst how much traffic can be sent within a
given unit of time to not create scheduling concerns.
Time interval:
Specifies the time quantum in seconds per burst. This parameter can not be
changed or defined by the user.
In the token bucket metaphor, tokens are put into the bucket at a certain rate. The
bucket itself has a specified capacity. If the bucket fills to capacity, newly arriving
tokens are discarded. Each token is a permission for the source to send a certain
number of bits into the network. To send a packet, the regulator must remove from
the bucket a number of tokens equal in representation to the packet size.
If not enough tokens are in the bucket to send a packet, the packet either waits until
the bucket has enough tokens or the packet is dropped or marked down.
E-NIT-CTC-20041213-0013 v0.5
69
Chapter 6
Meters, queues and IPQoS
Dscp
Chapter 6
Meters, queues and IPQoS
dscp valueDescription
Precedence
ef, af11, af12, af13,
af21, af22, af23, af31,
af32, af33, af41, af42,
af43, cs0, cs1, cs2,
cs3, cs4, cs5, cs6, cs7
or a number
precedence valueDescription
routinewill set the precedence bits to 000. (lowest
prioritywill set the precedence bits to 001.
immediatewill set the precedence bits to 010.
flashwill set the precedence bits to 011.
flash-overridewill set the precedence bits to 100.
CRITIC-ECPwill set the precedence bits to 101.
internetwork-controlwill set the precedence bits to 110.
network-controlwill set the precedence bits to 111.(highest priority)
The diffserv code point value to be set.
priority)
Classification
Class
number 0..7 0..7.
classification valueDescription
ignoreNo changes are made to the classification.
overwriteThe internal priority will be overwritten, no matter
what is the value is.
decreaseThe internal priority will only be overwritten if the
value defined is lower than the value upon arrival.
offsetThis will lower the priority setting with a relative
offset. The offset value is defined in the class value.
class valuedescription
number (0..15)The class or offset used for classification.
E-NIT-CTC-20041213-0013 v0.5
71
Chapter 6
Meters, queues and IPQoS
Meter delete commandThe delete command is used to delete a meter from the meters list.
Meter list commandThe list command will display a list of all meters configured.
For example: the following CLI command will delete the meter with name “test2”
from the meter list.
{Administrator}=>:ipqos meter delete name my_meter
{Administrator}=>:ipqos meter list
The output could look something like this :
my_meter [STOPPED]: LABEL: INTF:
DROP : droprate : 102400kbps burst: 64KB action: drop
MARK : markrate : 102400kbps burst: 64KB action: count
tosmarking : enabled type : tos tos : 0
classification: decrease class: 0
The meter listed above is not active as it’s state is [STOPPED]
Meter start commandBy using the start command a meter can be activated.
For example: the command below will start the meter with name “my-meter”
{Administrator}=>:ipqos meter start name my_meter
If no start command is given the meter will not be active and rate limiting will not
occur.
To check if the meter is running or not you can use the list command.
{Administrator}=>:ipqos meter list
my_meter [STARTED]: LABEL: INTF:
DROP : droprate : 102400kbps burst: 64KB action: drop
MARK : markrate : 102400kbps burst: 64KB action: count
tosmarking : enabled type : tos tos : 0
classification: decrease class: 0
Notice that the meter listed above is now active as it’s state is [STARTED]
72
E-NIT-CTC-20041213-0013 v0.5
Meters, queues and IPQoS
Meter stop commandBy using the stop command a meter can be deactivated.
For example: the command below will stop the meter with name “my_meter”
{Administrator}=>:ipqos meter stop name my_meter
To check if the meter is stopped or not you can use the list command.
{Administrator}=>:ipqos meter list
my_meter [STOPPED]: LABEL: INTF:
DROP : droprate : 102400kbps burst: 64KB action: drop
MARK : markrate : 102400kbps burst: 64KB action: count
tosmarking : enabled type : tos tos : 0
classification: decrease class: 0
The meter listed above is now in-active as it’s state is [STOPPED]
Meter flush commandThe flush command can be used to delete all meters defined by a single command.
For example: the command below will delete all meters defined.
Chapter 6
{Administrator}=>:ipqos meter flush
Meter stats commandTo view the meter statistics ( number of packets dropped / marked) the stats
command can be used.
For example: the command below will show the statistics for the meters defined.
IllustrationThe figure below illustrates the packet flow in case label based metering is used.
Packet
Data
1
MeterClassificationMeter
no
LAN
StageDescription
Classification
Metering
yes
2
Action
Action
queue
Drop
Packet is
dropped
3
Mark
no
no
Classification
yes
4
Set Clas s
6
Queue
scheduling
7
ATM Q oS
WAN
yes
Drop
no
MarkTos markingSet tos byte
no
5
Count
yesyes
Count
Map class to
1A packet arrives in the resource management module and gets
classified based upon a rule set. The packet gets a label assigned.
In case the label refers to a meter the packet gets forwarded to the
meter module. If not, the packet is forwarded back to the LAN or to
the WAN after queuing and scheduling.
2Packets in excess of the drop rate will be dropped or counted
depending on the settings of the dropaction parameter.
3If the mark rate is exceeded the packet will be marked or counted
depending on the settings of the markaction parameter. If a packet is
marked, the tos byte can be set or the internal class can be changed.
If classification has been enabled the internal class will be set.
4The class is set. This will place packets in a specified queue.
5 Based upon the destination (LAN/WAN) the packet gets forwarded to
the proper interface.
6In case the packet will be sent out to the WAN side, the packet gets
assigned to the corresponding queue.
7Finally the ATMQoS parameters are taken into account and the
packet is ready to be sent to the WAN.
74
E-NIT-CTC-20041213-0013 v0.5
Chapter 6
Meters, queues and IPQoS
6.5Queue command group
IntroductionWith the queue command group the queues can be individually configured.
Parameters like queue propagation, ENC marking and queue size can be defined here.
The parameters that can be configured through this command group are mainly used
for advanced tuning of the queues.
Queue config commandAs seen before, the SpeedTouch™ has 6 build-in queues per ATM interface . These
queues are pre-defined. The following parameters can be modified by using the
config command in the queue subgroup :
ParameterDescription
destThe name of the interface of which you want to change the
parameters. Typically, a phonebook entry.
queueThe number of the subqueue.
propagatePropagate the packets in lower priority queue instead of
dropping them.
ecnmarkingEnable Explicit Congestion Notification for IP packets in this
subqueue.
ackfilteringEnable filtering of TCP ACK packets.
maxpacketsThe maximum number of packets in the subqueue.
maxbytesThe maximum subqueue size in kilo bytes (KB).
respacktesThe reserved number of packets in the subqueue.
resbytesThe reserved subqueue size in kilo bytes (KB).
holdThe hold time in micro-seconds for early discard strategy.
markprobThe maximum packet marking probability in parts per mille for
early discard strategy.
E-NIT-CTC-20041213-0013 v0.5
75
Chapter 6
Meters, queues and IPQoS
6.5.1Queue config parameters explained
In this section we will have a closer look at the different parameters and their values.
Dest
dest valueDescription
phonebook entryThe name of the interface you want to configure.
Queue
queue valueDescription
number (0..5)The number of the subqueue you want to configure,
where 0 is the best effort queue and 5 is the real time
(EF) queue
Propagate
Ecnmarking
propagate valueDescription
enabledIf the propagate function is enabled an overflow to a
lower priority queue will created in case the initial
queue is full.
disabledIf the propagate function is disabled packets in excess
of the queue size will be dropped.
ecnmarking valueDescription
enabledIf the encmarking function is enabled the congestion
Experienced (CE) codepoint in the ECN field is set. This
means that when a queue is congested the EC
codepoint will be set instead of dropping the packet.
disabledIf the encmarking is disabled packets will be dropped if
the queue is congested.
76
E-NIT-CTC-20041213-0013 v0.5
Ackfiltering
Chapter 6
Meters, queues and IPQoS
ackfiltering valueDescription
enabledIf the ackfiltering option is enabled duplicate ACK
packets in a queue will only be sent once. Meaning
that the last duplicate ACK packet will be sent and the
other ACK packets will be dropped
disabledIf the ackfiltering option is disabled all ACK packets
will be sent in their original sequence.
Example
The figure below illustrates how ack filtering is done.
DataACK1DataDataACK2
An upload data stream is exists (data packets). Meanwhile a download TCP
connection is generated as well. TCP-based downloads can only continue if the
remote site receives ACK packets for each data packet it sends. As we can see in
the figure above there are two ACK packets in the queue. To avoid delay we will only
send the second ACK packet and drop the first ACK packet. If the remote site
receives ACK2 it will know that everything that was sent before was OK. If ACK
filtering is turned off both the ACK will be send, causing delay.
ACK filtering happens on a per TCP-connection base.
E-NIT-CTC-20041213-0013 v0.5
77
Chapter 6
Meters, queues and IPQoS
Maxpackets
maxpackets valueDescription
number (0..255)The maximum number of packets in the subqueue.
As we will see further on there is a maxpackets parameter in the IPQoS settings
which sets the max number of packets that can be placed in all queues (0..5) at one
time. If the maxpackets parameter for each seperate queue is set to 100 this would
mean that the maximum number of packets in that queue would be 100. If this is set
for the 5 queues this would mean that a total of 500 packets could be placed in the
queues.
The maxpackets value can not be more than 250, so we could never place 500
packets in the queues. For example:
The total size for queuing is 250 packets.(IP QoS maxpackets)
Each of the 6 queues can hold a maximum of 100 packets. (queue maxpackets)
Each of the 6 queues has 13 packets reserved incase they are empty. (queue
respackets)
The rest of the total size (250-(6*13)) will be used by means of priority.
If 100 packets are placed in the EF queue this would leave us with 98 packets that
can still be placed in an other queue.
250 (maxpackets) -100 (EF queue)=150
150 - (5*13respackets)=85 packets that can be place in a queue
The total number of packets that can still be placed in 1 queue will now be
85+13=98
100(EF)+98+(4*13)=250
This is used to avoid queue starvation. If no reserved packets would be defined, one
queue could use up all availlable queue space.
Maxbytes
Respackets
maxbytes valueDescription
number (0..64)The maximum size in kilo bytes (KB) of the subqueue.
respackets valueDescription
number (0..250)The reserved number of packets in the subqueue. This
is the space reserved in the subqueue to allow
packets.
78
E-NIT-CTC-20041213-0013 v0.5
Resbytes
Hold
Chapter 6
Meters, queues and IPQoS
resbytes valueDescription
number (0..64)The reserved subqueue size in kilo bytes (KB).
This has the same function as the respackets
parameter but uses size in kilo bytes instead of
packets.
hold valueDescription
numberThe hold time in microseconds for early discard
strategy.
Markprob
markprob value Description
number (0..1000)The maximum packet marking probability in parts per
mille for early discard strategy.
The early discard strategy will calculate the drop probability based on the BLUE
algorithm, which uses packet loss and link utilization history to manage congestion.
BLUE maintains a single probability, which it uses to mark (or drop) packets when
they are queued. If the queue is continually dropping packets due to buffer overflow,
BLUE increments the marking probability, thus increasing the rate at which it sends
back congestion notification. Conversely, if the queue becomes empty or if the link is
idle, BLUE decreases its marking probability.
E-NIT-CTC-20041213-0013 v0.5
79
Chapter 6
Meters, queues and IPQoS
Queue list commandThe list command will show you a listing of all queues and their configuration
settings.
This command can be refined by adding the dest parameter. This way only the
queues of one ATM interface can be shown.
Queue clear commandThe clear command, resets the counters of the queue stats command.
{Administrator}=>:ipqos queue clear
80
E-NIT-CTC-20041213-0013 v0.5
Meters, queues and IPQoS
6.6IPQoS Command group
IntroductionThe IPQoS command group is used to configure the common parameters for a set of
queues instantiaded per interface.
ipqos config commandThe following parameters can be configured in the IPQoS command group:
ParameterDescription
destThe name of the interface of which you want to configure
IPQoS. Typically, a phonebook entry.
stateEnable, disable IPQoS for the interface.
discardThe packet discard strategy in case of congestion.
priorityThe subqueue priority algorithm.
realtimerateThe percentage of the bandwith.
Chapter 6
burstsizeBurst size in kilo bytes (KB).
weight1The weight of queue 1 used for weighted fair queueing (WFQ)
or weighted round robin (WRR).
weight2The weight of queue 2 used for weighted fair queueing (WFQ)
or weighted round robin (WRR).
weight3The weight of queue 3 used for weighted fair queueing (WFQ)
or weighted round robin (WRR).
weight4The weight of queue 4 used for weighted fair queueing (WFQ)
or weighted round robin (WRR).
maxpacketsThe maximum number of packets in all queues.
maxbytesThe maximum size in kilo bytes (KB) in all queues.
E-NIT-CTC-20041213-0013 v0.5
81
Chapter 6
Meters, queues and IPQoS
IntroductionIn this section we will have a closer look at the different parameters and their values.
6.6.1Ipqos config parameters explained
Dest
dest valueDescription
phonebook entryThe name of the interface. Typically, a phonebook
entry to which the queues belong.
State
state valueDescription
enabledThis enables IPQoS on the interface
Discard
disabledThis disables IPQoS on the interface
The IP QoS policy can only be changed on disconnected (detached)
!
interfaces.
discard valueDescription
tailIn case of tail drop as discard strategy, arriving
packets will be dropped as soon as the destination
queue is in an overflow state.
earlyIn case of early drop as discard strategy, the used
queue management algorithm will be BLUE
82
E-NIT-CTC-20041213-0013 v0.5
Priority
Chapter 6
Meters, queues and IPQoS
priority valueDescription
strictIn case strict is selected as scheduling algorithm, each
queue will be served as long as data is present in the
queue. This could mean heavy delay.
WFQIn case WFQ is selected as scheduling algorithm the
queues (WFQ4 .. WFQ1) are being served based upon
weight and time. The higher the weight the higher the
priority. The longer the time a packet spends in the
queue the higher the priority.
WRRIn case WRR is selected as scheduling algorithm the
queues (WFQ4 .. WFQ1) are being served based upon
weight only. The higher the weight the higher the
priority.
Realtimerate
Burstsize
realtimerate valueDescription
number (0..100)The percentage of the available bandwidth that is
allowed to be used to serve the real time queue. If set
to 100 the other queues will not be served in case of
congestion and they will experience starvation.
burstsize valueDescription
number (1..64)Burst size in kilo bytes (KB).
E-NIT-CTC-20041213-0013 v0.5
83
Chapter 6
Meters, queues and IPQoS
Weight
weight1 valueDescription
number (1..97)Percentage to define the weight of queue 1 used for
weighted fair queuing (WFQ) or weighted round robin
(WRR)
weight2 valueDescription
number (1..97)Percentage to define the weight of queue 2 used for
weighted fair queuing (WFQ) or weighted round robin
(WRR)
weight3 valueDescription
number (1..97)Percentage to define the weight of queue 3 used for
weighted fair queuing (WFQ) or weighted round robin
(WRR)
Maxpackets
Maxbytes
Ipqos list command
weight4 valueDescription
number (1..97)Percentage to define the weight of queue 4 used for
weighted fair queuing (WFQ) or weighted round robin
(WRR)
maxpackets valueDescription
number (1..250)The maximum number of packets in all queues for this
interface.
maxbytes valueDescription
number (0..64)The maximum size in kilo bytes (KB) in all queues.
The list command is used to display the ipqos settings configured.
{Administrator}=>:ipqos list
84
This command should give you an output like this :
{Administrator}=>:ipqos list
Name State Discard Priority Size Size Rate Burst Weights
(Packets) (KBytes) (%) (KBytes) Weights
atm_pvc_0_35 enabled early wfq 250 56 80% 2 25% 25% 25% 25%
atm_pvc_8_35 enabled early wfq 250 56 80% 2 25% 25% 25% 25%
Now that we have seen all commands to configure IPQoS we will give a few
examples on how to use the different commands to get to the desired result.
E-NIT-CTC-20041213-0013 v0.5
Scenario 1: Residential user.
7Scenario 1: Residential user.
IntroductionIn this chapter describes an example of how IP QoS might be used in a typical
residential user scenario.
This user uses the following applications:
A VoIP device that uses Expedited Forwarding (for example the ST190)
A Windows application that uses Assured Forwarding (AF for example
Messenger)
An interactive Windows application (for example Web surfing)
Windows applications that use Best Effort as client (for example peer-to-peer
program) and as server (for example an FTP server).
Expected resultIn this case the desired behavior is that the EF traffic has strict priority on the AF-
and-interactive traffic, and the AF-and-interactive traffic on the BE traffic. The
desired behavior is also that, even on an asymmetric link like ADSL, the client and
server BE traffic fairly share the available bandwidth.
Chapter 7
ConfigurationLet’s start with the components needed to configure the quality of service to meet
the requirements above.
We will need 3 labels :
A VoIP label for Voice packets.
A DSCP label for the AF packets.
An Interactive label for Interactive packets.
All other packets will be treated as Best Effort.
We will need a set of rules to assign the labels to the packets.
For voice packets we will need 2 rules, one for SIP and one for H323
For AF packets we will need only one rule.
For Interactive packets we will need a total of 14 rules. (telnet, http,smtp,
pop,ect)
We will need a set of expressions to be used in the rules.
For voice we will need a total of 8 expressions.
For AF we only need 1 expression.
For Interactive we will need a total of 14 expressions.
E-NIT-CTC-20041213-0013 v0.5
85
Chapter 7
Scenario 1: Residential user.
IntroductionWe will now have a closer look at the parameters needed to configure classification
The web interfaceThe SpeedTouch™ can be configured in two way’s:
7.1Configuring labels and rules for VoIP.
for Voice over IP.
Since voice traffic is very sensitive to delay and jitter we would like to give our voice
traffice absolute priority over all other traffic.
Via the command line interface (CLI)
Via the web interface (GUI)
In this chapter we willl use the GUI to configure the SpeedTouch™, at the end of this
chapter a CLI command list will be given as well.
To enter the GUI open a web browser and surf to the following webpage : http://
192.168.1.254 or http://SpeedTouch
This is the default IP address of the SpeedTouch™.
LabelsGo to the classification menu by clicking:
Expert mode -> IP Router -> Classification
Select the Labels tab a list of labels which have been created, if a default
configuration is used.
In this list we can see a label named VoIP.
Packets who get this label assigned will have their internal class set to 14. This
means that these packets will be placed in the Real Time queue. The Real Time
queue is used for traffic with the highest priority. The TCP ack packets will be
treathed with the same priority. TOS Marking for these packets has been disabled.
86
E-NIT-CTC-20041213-0013 v0.5
Chapter 7
Scenario 1: Residential user.
RulesSelect the IP QoS Rules tab to define one or more rules to get this label assigned to
the proper packets.
By default only the user defined IP QoS rules are shown. To see the default IP QoS
rules click expand
In the list that is now shown you will see two rules with label name VoI P.
The first rule has index 2 and service sip. It applies to all traffic from any Interface
with any IP address to any IP address.
The second rule has index 3 and service h232. It applies to all traffic from any
Interface with any IP address to any IP address.
The services SIP and H232 are defined in the expressions page.
E-NIT-CTC-20041213-0013 v0.5
87
Chapter 7
Scenario 1: Residential user.
ExpressionsWe will now have a look at these two expressions. Therefore go to the expression
page and select the service tab.
Expert mode -> IP Router -> Expressions
This will show you a list of service expressions which have been created, if a default
configuration is used.
When we click on the + next to the SIP expression we can see the definitions used
for this expression.
Here we can see that the expression SIP is used for packets :
of type UDP (proto=17) with destination port 5060.
of type TCP (proto=6) with destination port 5060.
These two expressions define the protocol and ports used by SIP.
Meaning that when UDP traffic on port 5060 is transmitted the SpeedTouch™ knows
that this is SIP traffic. This also applies for TCP traffic on port 5060.
At the bottom of the page you can see the actual protocol instead of the number.
88
E-NIT-CTC-20041213-0013 v0.5
Chapter 7
Scenario 1: Residential user.
When we click on the + next to the H323 expression we can see the definitions used
for this expression.
Here we can see that the expression h323 is used for packets :
of the type TCP (proto=6) with destination port 1720.
of the type UDP (proto=17) with destination port 1720.
of the type TCP (proto=6) with destination port 1718.
of the type UDP (proto=17) with destination port 1718.
of the type TCP (proto=6) with destination port 1719.
of the type UDP (proto=17) with destination port 1719.
These six expressions define the protocol and ports used by H323.
Meaning that when TCP traffic on port 1720 is transmitted the SpeedTouch™ knows
that this is H323 traffic. This also applies for UDP traffic on port 1720. By defining
these expressions we help the SpeedTouch™ to determine the service used.
Again at the bottom of the page you can see the actual protocol instead of the
number.
These are all parameters needed to enable classification for VoIP. The actual
Quality of Service is defined later on.
E-NIT-CTC-20041213-0013 v0.5
89
Chapter 7
Scenario 1: Residential user.
IntroductionWe will now have a closer look at the parameters needed to configure classification
7.2Configuring labels and rules for DSCP.
for packets with DSCP set.
LabelsGo to the classification menu and select the Labels tab.
Expert mode -> IP Router -> Classification
You will now see a list of labels which have been created, if a default configuration is
used.
In this list we can see a label named DSCP.
Packets who get this label assigned will have their internal class set to the class that
matches with the DSCP setting (see “ Mapping to internal class” on page 28). This
means that these packets will be placed in the queue matching the DSCP setting.
The TCP ack packets will be treated with the same priority. TOS Marking for these
packets has been disabled.
RulesGo to the classification menu and select the IP QoS tab.
Expert mode -> IP Router -> Classification
Here we have to define one or more rules to get this label assigned to the proper
packets.
In this screen you will see the user defined IP QoS rules, to see the default IP QoS
rules click expand.
90
In the list that is now shown you will see one rule with label name DSCP.
This rule has index 1 and service DiffServ. It applies to all traffic from any Interface
with any IP address to any IP address.
The service DiffServ is defined in the expressions page.
E-NIT-CTC-20041213-0013 v0.5
Chapter 7
Scenario 1: Residential user.
ExpressionsWe will now have a look at this expression. Therefore go to the expression page and
select the Service tab:
Expert mode -> IP Router -> Expressions
This will show you a list of service expressions defined, if a default configuration is
used.
When we click on the + next to the DiffServ expression name we can see the
definitions used for this expression.
Here we can see that the expression DiffServ is used for packets:
with the dscp set to a value different from 0. (dscp=!0)
The ! sign means that the value is allowed to be anything but 0.
These are all parameters needed to enable classification for packets with
DSCP set. The actual Quality of service is defined later on.
E-NIT-CTC-20041213-0013 v0.5
91
Chapter 7
Scenario 1: Residential user.
IntroductionWe will now have a closer look at the parameters needed to configure classification
7.3Configuring labels and rules for Interactive
traffic.
for interactive traffic.
With interactive traffic we mean traffic like websurfing, e-mail,telnet etc.
LabelsGo to the classification menu an select the Labels tab:
Expert mode -> IP Router -> Classification
You will now see a list of labels which have been created by default.
In this list we can see a label named Interactive.
Packets who get this label assigned will have their internal class set to 8. This means
that these packets will be placed in the WFQ2 queue (see “ Mapping to internal
class” on page 28). The TCP ack packets will be treated with the same priority. TOS
Marking for these packets has been disabled.
92
E-NIT-CTC-20041213-0013 v0.5
Chapter 7
Scenario 1: Residential user.
E-NIT-CTC-20041213-0013 v0.5
93
Chapter 7
Scenario 1: Residential user.
ExpressionsWe will now have a look at the http expression. Go to the expression page and select
the Service tab.
Expert mode -> IP Router -> Expressions
This will show you a list of service expressions defined by default.
When we click on the + next to the HTTP expression name we can see the
definitions used for this expression.
Here we can see that the expression http is used for packets :
of the type TCP (proto=6) with destination port 80.
Again at the bottom of the page you can see the actual protocol instead of the
number.
If desired you can have a look at all the different expressions used for interactive
traffic. We will not discuss all the expressions here as the configuration principle is
the same for all of them. They all define a protocol and a port used by the service.
94
E-NIT-CTC-20041213-0013 v0.5
Chapter 7
Scenario 1: Residential user.
E-NIT-CTC-20041213-0013 v0.5
95
Chapter 7
Scenario 1: Residential user.
IP QoS queuesGo to the IP QoS menu and select the Queues tab.
Expert mode -> IP Router -> IP QoS
This section on the IPQoS page is used to configure propagation of the queues, ECN
marking and ACK filtering.
We do not use propagation, ECN marking or ACK filtering in this scenario.
This concludes the configuration of IP QoS for a typical residential user.
96
E-NIT-CTC-20041213-0013 v0.5
Chapter 8
Scenario 2: Business user with TOS marking.
8Scenario 2: Business user with TOS marking.
IntroductionIn this chapter we will explain on how IP QoS for a business user can be configured.
In our example we will use the following configuration:
On the LAN three groups of devices "Gold", "Silver" and "Bronze".
Some Expedited Forwarding applications.
The CPE is remotely managed.
The CPE is the trusted edge device and performs the TOS/DiffServ marking for
the Gold, Silver, Bronze and Remote Management traffic.
Expected resultIn this case the desired behavior is that the EF traffic has strict priority over all the
other traffic, but with an overflow to a lower priority queue in case the EF traffic
exceeds 50 percentage of the available upstream bandwidth.
Weigthed fair queuing is used between the Remote Management, the Gold and the
Silver traffic; this traffic is AF marked by the CPE.
The Bronze traffic is BE marked by the CPE and gets lower priority than all other
traffic.
E-NIT-CTC-20041213-0013 v0.5
97
Chapter 8
Scenario 2: Business user with TOS marking.
ConfigurationThe illustration below helps us to visualise e the setup.
We will use three different LAN segements.
1The “GOLD” segment using IP adresses in the range of 10.0.0.0/24.
2The “SILVER”segment using IP adresses in the range of 11.0.0.0/24.
3The “BRONZE” segment using IP adresses in the range of 12.0.0.0/24.
We will assume that these three segments are already configured on the
SpeedTouch™ (for more information see “SpeedTouch™ user’s guide”.
All three groups have voice services.
!
INTE RNET
98
E-NIT-CTC-20041213-0013 v0.5
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.