[Top] [Prev] [Next] [Bottom]

Using Ethernet Quality of Service (EQOS) Mapping


This document describes the Ethernet Quality of Service (EQOS) feature, which is available in OpenROUTE 5.6 and above. It has the following sections:

Introducing Ethernet QOS

EQOS Standards and RFC Compliance

EQOS Interaction with Other QOS Features

EQOS Interaction with IPSec

The Mapping Process

Filter Configuration for IP_PREC Mapping to IP_DSCP

Configuring Event Logging for EQOS

Entering Commands

Ethernet QOS Commands

Introducing Ethernet QOS

The Ethernet Quality of Service feature enhances the ability of Nx Networks routers to tag IP traffic on Ethernet interfaces with priority and virtual LAN information. Based on the DiffServe Code Point (DSCP) field in the header of an IP packet, Ethernet QOS works together with other QOS features (such as IP filtering and BRS) to support interoperability with 802.1-compliant switches.

Note: The term DiffServe refers to the definition and interpretation of the field in the IP header originally called Type of Service (TOS) and more recently redefined as the Differentiated Services Code Point (DSCP) field.

Prior releases of router software can filter a particular traffic flow and tag it with an IP DSCP or Precedence value. Furthermore, the router can treat this tagged traffic flow with a BRS tag to apply appropriate bandwidth and priority assignments to the flow. This is a form of Quality of Service at the IP level. Using TOS/DiffServe Quality of Service (QOS) Policies provides a detailed description of this type of QOS detailed procedures.

Ethernet QOS goes a step further than this type of QOS. Using EQOS, the router can send priority information on an Ethernet interface over media access control (MAC) bridges that have no ability to signal priority information at the MAC protocol level. You can define inbound and outbound mappings between MAC user_priority values and IP DSCP or Precedence values on a per interface basis. Ethernet QOS also supports the full range of VLAN IDs for interoperability with existing 802.1 switches.

EQOS Standards and RFC Compliance

In addition to the differentiated services described in Using TOS/DiffServe Quality of Service (QOS) Policies, EQOS software provides a useful set of features that conform to the Virtual LAN and MAC bridge standards. The router software supports the 12-bit VLAN ID within the tagged frame format and the eight user_priority values within the MAC tagged frame format as required in these standards.

In addition, router software supports the Expedited Forwarding Per Hop Behavior (PHB) described in [EF] Assured Forwarding PHB Group, RFC 2597, June 1999.

EQOS Interaction with Other QOS Features

Ethernet QOS supplements the QOS features described in Using TOS/DiffServe Quality of Service (QOS) Policies, which are implemented with IP Filters and the Bandwidth Reservation System (BRS). EQOS lets you add user priority information from the DSCP field to frames carried on media access control (MAC) bridges, and to add user priority information from MAC frames to the DSCP field. This makes it possible for the router to send priority information over bridges that have no ability to signal priority information at the MAC protocol level.

Ethernet QOS reads and writes IP Filter's DSCP Tags. The IP Filter's set of classifying rules include the DSCP or Precedence field, so that IP Filter can act as a DiffServe packet classifier. An IP Filter rule can set a buffer's tag. As the buffer moves through the router, this tag is preserved and the Ethernet QOS and BRS features can detect the tag.

EQOS Interaction with IPSec

If the IPSec tunnel endpoint is an Ethernet interface on the router, EQOS reads all arriving packets before IPSec processing. The IPSec engine decrypts, authenticates, and decompresses the inner IP packet and then presents it to the routing engine as though it had arrived on an ordinary physical interface.

IPSec and EQOS work together in this way:

The Mapping Process

Ethernet QOS mapping occurs at the edge of the router's connection to the IP network. Separate mappings apply to inbound and outbound traffic over a specific Ethernet interface. In combination with an IP filter policy and bandwidth reservation system, Ethernet QOS can determine the priority of Ethernet traffic in the network. Figure 1 illustrates an inbound and outbound mapping strategy.

Figure 1 Sample Ethernet QOS Mapping of MAC Layer Information

Inbound Mapping

When Ethernet QOS is enabled for an Ethernet interface and inbound mapping is configured, processing is as follows:

1. The router reads the user_priority in each incoming MAC packet.

2. The inbound mapping configuration for that interface maps the user_priority to the corresponding IP DSCP value.

3. Ethernet QOS applies the new IP DSCP value to the IP header.

4. When the packet reaches IP Filter, a filter (either static or dynamic) tests the header for a match to an IP DSCP value and applies a tag to the buffer.

5. Based on the tag, BRS assigns the packet to a bandwidth class.

For backward compatibility with TOS, you can configure either DSCP or Precedence values; however, when the map is populated, all values are converted to DSCP equivalent numbers. For example, IP Precedence value 1 is converted to DSCP value 8, IP Precedence value 2 to DSCP value 16, IP Precedence value 3 to DSCP value 24, and so on.

There is no default mapping with Ethernet QOS. Therefore, if a MAC user_priority value is received and you have not defined a DSCP or Precedence value to which it will map, the IP DSCP field does not change. These received packets are included in the output of the list counters command.

Outbound Mapping

When Ethernet QOS is enabled for an Ethernet Interface and outbound mapping is configured, processing is as follows:

1. IP Filter tests each outgoing IP packet for a match to an outgoing filter that assigns a DSCP value to the packet.

2. When the packet reaches the MAC layer, the router reads the DSCP value.

3. The outgoing mapping configuration for the interface maps the DSCP value to a MAC user_priority value.

4. Ethernet QOS applies the new MAC user_priority to the MAC header.

You can configure either DSCP or Precedence values; however, when the map is populated, all values are converted to DSCP equivalent numbers. For example, IP Precedence value 1 is converted to DSCP value 8, IP Precedence value 2 to DSCP value 16, IP Precedence value 3 to DSCP value 24, and so on.

There is no default mapping with Ethernet QOS. Therefore, if an IP DSCP value is received, and you have not defined a MAC user_priority to which it will map, a Tagged Frame header will not be prepended to the head of the packet. These received packets are included in the results of the list counters command.

Filter Configuration for IP_PREC Mapping to IP_DSCP

If your EQOS mapping involves IP_PREC, you need to use both the isprec and the isdscp option when configuring IP filters for the interface. This is necessary because, for inbound traffic, the MAC user_priority is mapped to the DSCP equivalent of the user configured IP_PREC value.

Below is a listing of the EQOS mappings for this application:

INBOUND MAPPING (ENABLED)
---------------
MAC_PRIORITY 1 IP_PREC 7 VLAN ID 0

OUTBOUND MAPPING (ENABLED)
----------------
IP_PREC 7 MAC_PRIORITY 1 VLAN ID 0

Below is a listing of an IP filter profile called qos, which uses four filters.

Name Dir Address Port Protocol Idle
Action
--------------------------------------------------------------------------------
qos.mac0 Both isPrec=BestEffort Any Prec=Network Ctrl(7)
Pass Off
qos.mac1 Both isPrec=NetworkCtrl(7) Any Prec=BestEffort
Pass Off
qos.mac2 Both isDscp=0 Any dscp=56
Pass Off
qos.mac3 Both isDscp=56 Any dscp=0 Off
Pass

The isprec and isdscp options are explained in detail in Example DiffServe Configuration.

Configuring Event Logging for EQOS

Turning on ELS messages and observing the router's behavior is the way to tell whether things are working correctly. EQOS ELS messages in the Ethernet subsystem can confirm that packets are being properly mapped. There are two EQOS messages, ETH.49 and ETH.50

To enable these messages, enter the following commands at the Config prompt:

Config>event
Event Logging System user configuration

ELS config>display event eth.049
ELS config>display event eth.050

Here is an example of each type of message:

ETH.050: dscp 2 -> 802.1 QTAG usr_pri 1, cfi 0 vlan 14 nt 0 int Eth/0

ETH.049: 802.1 QTAG usr_pri 1, cfi 0 vlan 14 -> dscp 2 nt 0 int Eth/0

The first example lists an outgoing packet that EQOS has tagged with a MAC user priority. The second example lists an incoming packet that EQOS has tagged with a DSCP value. ETH.050 denotes outgoing and ETH.049 denotes incoming.

DSCP Value

The DSCP value for the packet on entry or exit from the interface.

Direction

The direction of the transfer; right arrow denotes outgoing; left arrow denotes incoming.

MAC User Priority

The MAC user_priority of the packet on entry or exit from the interface.

CFI

The canonical format indicator.

VLAN ID

The virtual LAN ID for the incoming or outgoing packet.

nt

The network number.

int

The interface name.

Entering Commands

It is wise to save a backup of the configuration in either the router's local memory or on an external TFTP server before you change your configuration. You can do so at the Boot configuration prompt.

Config>boot
TFTP Boot/dump configuration
Boot config>

Using the Configuration Prompts

The configuration EQOS policies may affect a number of router subsystems, and we recommend implementing them at the QOS Config> prompts so that service is not interrupted while you are entering the new configuration. The new configuration does not take affect until you restart the router or execute the revert command at the QOS> prompt.

Using the Monitor Prompts

You can also enter the EQOS commands at the QOS> prompt, but each change takes effect immediately, possibly affecting the operation of the router adversely. Once a configuration is up and running, using the monitor process to make minor alterations is useful.

If you do enter commands at the monitor prompts, be sure to save each subsystem's changes before restarting the router, or they will be lost. If you are working in the monitor process, you can revert to your saved configuration using the revert command or by restarting the router without first saving your changes.

Configuring and Enabling Ethernet QOS

To configure parameters for Ethernet QOS, follow these steps:

1. Configure Ethernet QOS mappings for the inbound and outbound routes on Ethernet interface 1 These create the mapping shown in Figure 1.

*config
Gateway user configuration
Config>network 1
Ethernet interface configuration
ETH config>qos
Ethernet QOS User Configuration
QOS Config <Ethernet1> add mapping inbound mac_priority=0-2 ip_dscp=8
QOS Config <Ethernet1> add mapping inbound mac_priority=3-6 ip_prec=6
QOS Config <Ethernet1> add mapping inbound mac_priority=7 ip_dscp=0
QOS Config <Ethernet1> add mapping outbound ip_dscp=0-23 mac_priority=0
QOS Config <Ethernet1> add mapping outbound ip_dscp=24-39 mac_priority=6
QOS Config <Ethernet1> add mapping outbound ip_dscp=40-63 mac_priority=0

2. Enable Ethernet QOS in both directions on Interface 1.

QOS Config <Ethernet1> enable outbound
QOS Config <Ethernet1> enable inbound
QOS Config <Ethernet1> exit
ETH config>exit
Config>

3. Restart the router for the above changes to take affect.

Config> <CTRL-P>
*restart
Are you sure you want to restart the gateway? (Yes or [No]): yes

Note: You can avoid restarting the router if you have done the configuration under QOS Config>. Go to the QOS menu and execute the revert command. The run-time configuration is refreshed from the permanent configuration, which reflects the changes that you made.

4. To display the messages that the trace profile generates, configure ELS as described in Configuring Event Logging for EQOS and turn on ELS to follow the operation of Ethernet QOS mapping. For example

ELS config> display subsystem eth all

Note: Remember, enabling lots of ELS messages can generate a lot of message output. The router discards messages that overflow its message buffer, so such broad message enabling is useful only in controlled situations.

Displaying the EQOS Configuration

Once you have restarted the router, you can display the IP filters as follows:

Config>network 1
Ethernet interface configuration
ETH config>qos
Ethernet QOS User Configuration
QOS Config <Ethernet1> list

INBOUND MAPPING (DISABLED)
---------------
MAC_PRIORITY 7 IP_DSCP 0 VLAN ID 0
MAC_PRIORITY 3-6 IP_PREC 6 VLAN ID 0
MAC_PRIORITY 0-2 IP_DSCP 8 VLAN ID 0

OUTBOUND MAPPING (DISABLED)
----------------
IP_DSCP 40-63 MAC_PRIORITY 0 VLAN ID 0
IP_DSCP 24-39 MAC_PRIORITY 6 VLAN ID 0
IP_DSCP 0-23 MAC_PRIORITY 0 VLAN ID 0

Ethernet QOS Commands

You can enter Ethernet QOS commands at either the QOS Config> prompt or the QOS> prompt. Nx Networks recommends that you enter these commands at the configuration prompt. See Using the Configuration Prompts and Using the Monitor Prompts for more information.

Table 2 describes the Ethernet QOS commands. Enter help for information about using the command line interface.

[C] means the command is available at the QOS Config <NET-#> prompt.

[M] means the command is available at the QOS <NET-#> prompt.

Table 2 Ethernet Quality of Service Commands

Command Function
Add Mapping [C] [M] Adds inbound or outbound mapping to an Ethernet interface.

Clear_counters [M] Resets packet counters for received packets to zero.

Delete Mapping [C] [M] Deletes inbound or outbound mapping from an Ethernet interface.

Disable [C] [M] Disables configured EQOS mappings on the interface.

Enable [C] [M] Enables configured EQOS mappings on the interface.

List [C] Displays the configured EQOS mappings for an interface.

List [M] Displays the configured EQOS mappings and statistics for an interface.

Set Mapping [C] [M] Changes the vlan_id setting for an existing inbound or outbound mapping.

Add Mapping [C] [M]

Adds new inbound and outbound Ethernet Quality of Service mappings to an Ethernet interface.

Syntax: add mapping inbound | outbound

mac_priority
ip_dscp
ip_prec
vlan_id
inbound|outbound

The direction of the media access concentrator (MAC) user_priority mapping. Inbound maps from one or more mac_priority to a single ip_dscp or ip_prec. Outbound maps from one or more ip_dscp or ip_prec to a single mac_priority. The syntax for mac_priority, ip_dscp, and ip_prec is different for inbound and outbound mapping.

For inbound, mac_priority is a single value, a comma separated list of values, or a range of values of the form x - y. You use a single value, not a list or range of values, for ip_dscp and ip_prec.

For outbound, ip_dscp and ip_prec are single values or a comma separated list of values. In addition, ip_dscp can be a range of values of the form x - y. You use a single value, not a list or range of values, for mac_priority.

mac_priority

The media access concentrator (MAC) user_priority. Possible values are integers 0 through 7 corresponding exactly to the MAC user_priority.

ip_dscp

The Diffserve code point to (or from) which the specified mac_priority will map. Possible values are integers in the range 0 to 63.

ip_prec

The TOS precedence to (or from) which the specified mac_priority will map. Possible values are integers in the range 0 to 15.

vlan_id

The virtual LAN ID for this mapping. Possible values are integers in the range 0 - 4094. If no value is specified, the default value is 0.

Example: add mapping inbound mac_priority=6 ip_dscp=39

Example: add mapping outbound ip_prec=6 mac_priority=3

Clear_counters [M]

Resets to zero the count of packets received with a tag.

Syntax: clear_counters

Example: clear_counters

Ethernet Quality of Service Counters have been cleared.

Delete Mapping [C] [M]

Deletes existing inbound and outbound Ethernet QOS mappings. You must specify the mapping to be deleted exactly as it is shown in the list command. The virtual LAN ID is not an argument to the delete mapping command. If all inbound or outbound mappings are deleted, no mapping takes place even if Ethernet QOS is enabled.

Syntax: delete mapping inbound | outbound

mac_priority
ip_dscp
ip_prec
Example: delete mapping inbound mac_priority=6 ip_dscp=39

Disable [C] [M]

Disables the configured inbound and outbound Ethernet Quality of Service Mappings.

Syntax: disable inbound | outbound

Example: disable inbound

Enable [C] [M]

Enables the configured inbound and outbound Ethernet Quality of Service Mappings. There is no default mapping; only the defined mappings are performed.

Syntax: enable inbound | outbound

Example: enable inbound

List [C]

Lists configured inbound and outbound Ethernet QOS mappings. The listing also shows if inbound and outbound mapping is enabled or disabled. Only configured mappings are displayed. Values for which no mapping is defined are not in the listing.

Syntax: list

Example: list

INBOUND MAPPING (ENABLED)
---------------
MAC_PRIORITY: 0-3 IP_DSCP: 0
MAC_PRIORITY: 4,6 IP_DSCP: 52
MAC_PRIORITY: 5 IP_PREC: 0
MAC_PRIORITY: 7 IP_DSCP: 2

OUTBOUND MAPPING (DISABLED)
----------------
IP_DSCP: 0-2, 4-22 MAC_PRIORITY: 3
IP_PREC: 3 MAC_PRIORITY: 4
IP_DSCP: 50,55,63 MAC_PRIORITY: 6

In the example, an outbound mapping is not defined for IP_DSCP values 23-49. These values, if received, will not be mapped to a MAC priority.

List [M]

Lists the runtime inbound and outbound Ethernet Quality of Service Mappings and the statistical counters showing the number of inbound and outbound packets organized by their MAC user priority and IP_DSCP values.

Syntax: list

counters
mappings
counters

Lists Ethernet QOS Statistics

mappings

Lists the Ethernet QOS Mappings. Results are the same as a list command entered at the config> prompt.

counters

Lists the number of packets that have been received with a tag, the number of packets that have been mapped, and the value to which the packets mapped. For values that have no mapping defined, the NUM RCVD column may have a number while the NUM MAPPED column will not.This shows the values received, versus the values mapped.

Syntax: list counters

Example: list counters

INBOUND
------------
MAC_PRIORITY PKTS RCVD PKTS MAPPED DSCP MAPPED TO
--------------- ----------- ------------- ------------------
0 10 0
1 10 10 0
2 100 100 10
3 0 0
4 150 150 0
5 200 200 20
6 0 0
7 50 50 60

OUTBOUND
--------------
DSCP PKTS RCVD PKTS MAPPED MAC_PRIORITY MAPPED TO
----- ----------- -------------- ---------------------------
0 0 0
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 50 50 7
11 20 20 7
12 100 100 7
13 24 24 7
14 30 30 7
15 40 40 7
16 10 10 7
17 200 200 7
18 3 3 7
19 49 49 7
20 28 28 7
21 10 0
22 30 0
23 10 0
24 40 0
25 25 0
26 0 0
27 0 0
28 0 0
29 0 0
30 0 0
31 0 0
32 0 0
33 0 0
34 0 0
35 0 0
36 0 0
37 0 0
38 0 0
39 0 0
40 0 0
41 0 0
42 20 0
43 10 0
44 50 0
45 70 0
46 20 0
47 10 0
48 0 0
49 0 0
50 0 0
51 0 0
52 0 0
53 0 0
54 0 0
55 0 0
56 0 0
57 0 0
58 0 0
59 0 0
60 0 0
61 0 0
62 0 0
63 0 0

In this example, no outbound mapping is defined for IPDSCP values 23-49. These values, if received, are not mapped to a MAC priority.

mappings

Lists the runtime mapping configuration for the interface. The format of the listed information is the same as the output for the list command entered at the Config> prompt.

Syntax: list mappings

Example: list mappings

Set Mapping [C] [M]

Changes the vlan_id setting for an existing inbound or outbound mapping. When using this command the exact mac_priority and ip_dscp or ip_prec values for the existing mapping must be used.

Syntax: set mapping

vlan_id
vlan_id

The virtual LAN ID for this mapping. Possible values are integers in the range 0 - 4094.

Example: set mapping inbound mac_priority = 2 ip_dscp = 20 vlan_id = 4



[Top] [Prev] [Next] [Bottom]

Copyright © 2001, Nx Networks, Inc. All rights reserved.