Home > Articles > Networking

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

QoS Policy Propagation

Cisco Express Forwarding (CEF) and the forwarding information base (FIB) were discussed in Chapter 2. A FIB leaf has three policy parameters:

  • Precedence

  • QoS-group ID

  • Traffic index

All three parameters can be used to provide differential treatment to an IP packet in forwarding or accounting. The precedence is as defined in the IPv4 header. After it is reset in IP packets, it can influence QoS treatment in other routers. The other two parameters are used by the local router only to differentiate traffic.

BGP can set these parameters when certain BGP prefixes and attributes are matched. With this information in CEF, policies can be created and accounted. Policy accounting using BGP is discussed in the section "BGP Policy Accounting."

QoS Policy Propagation via BGP (QPPB) lets you map BGP prefixes and attributes to CEF parameters that can be used to enforce traffic policing. Compared to other QoS methods, QPPB allows BGP policy set in one location of the network to be propagated via BGP to other parts of the network, where appropriate QoS policies can be created.

Configuring QPPB generally involves the following steps:

Step 1

Identify BGP prefixes that require preferential treatment, and tag them with appropriate BGP attributes.

Step 2

Set appropriate FIB policy parameters for each type of traffic.

Step 3

Configure FIB address lookups for the tagged prefixes as packets are received on an interface, and set appropriate QoS policies.

Step 4

Enforce policing based on the lookups and settings done in Step 3 for packets received or transmitted.

The following sections describe each step in greater detail. Configuration examples appear later.

Identifying and Tagging BGP Prefixes That Require Preferential Treatment

Figure 4-8 shows how this process works. Assume that AS 100 wants to create a special forwarding policy for traffic between AS 200 and AS 300 for prefix When the prefix is first received from R1 via BGP, R2 tags the prefix with special BGP attributes, such as a specific community value.

Figure 8Figure 4-8 How QoS Policy Propagation via BGP Works

Setting FIB Policy Entries Based on BGP Tagging

As the prefix is propagated via BGP inside AS 100 to R4, the attributes are propagated as well. When R4 receives the prefix with the matching attributes, it can set various FIB policy entries using the table-map command in BGP. For QPPB, either or both Precedence and QoS-group ID (a parameter internal to the router) can be set. The Precedence can have eight values, 0 to 7, and the QoS-group ID can have 99 values, 1 to 99. Each value or a combination of both values can represent one class of traffic. Note that these settings have no impact on traffic forwarding until they are used to classify and police the traffic (as discussed next).


Changes to the FIB/RIB tables are made when the IP RIB is cleared using clear ip route *, the BGP session is reset, or a router is reloaded. All of these actions can be disruptive to the traffic.

Within the FIB entry for the prefix, the following mappings are possible, depending on the table map configuration:

  • Precedence

  • QoS-group ID

  • Precedence and QoS-group ID

Configuring Traffic Lookup on an Interface and Setting QoS Policies

The next step is to classify the incoming traffic from an interface based on the FIB policy entries. The definition of the incoming interface depends on the traffic's direction. If traffic is destined for from AS 300, the incoming interface is the link between R4 and R5; if the traffic is destined for AS 300 from (the return traffic), the incoming interface is the link between R3 and R4. On the incoming interfaces on R4, enable FIB policy lookup using the following command:

bgp-policy {source | destination} {ip-prec-map | ip-qos-map}

The keywords source and destination indicate whether to use the source or the destination IP address of an incoming packet to look up the FIB entries. On the link between R4 and R5, the incoming traffic is destined for, so you should use destination. On the link between R3 and R4, the incoming traffic is sourced from, so you should use source.

With this configuration command, appropriate QoS policies are also set if there is a match for both the address and QoS parameters. The interface map keyword specifies which of the two policy FIB entries to set for the packet. If ip-prec-map is specified, the IP precedence bits are set for the matching packets; if ip-qos-map is specified, the QoS-group ID is set. Note that setting IP precedence bits here might affect the QoS treatment of these packets on other routers.

Enforcing Policing on an Interface as Traffic Is Received and Transmitted

The last step of QPPB configuration is to create traffic policing on the interface to AS 300. This can be accomplished by using Committed Access Rate (CAR) and Weighted Random Early Detection (WRED). The policing can be done on the input to the router for traffic destined for or on the output from the router for the return traffic sourced from The policing is created based on the result of the policy lookup and settings done previously.

An Example of QPPB

Figure 4-9 shows a simple topology that demonstrates how to configure QPPB. Within AS 100, special treatment is needed for traffic between AS 200 and AS 300 to and from the prefix On R2, prefix from R1 is tagged with a community of 100:200, and the prefix is propagated to R3 via iBGP. The FastEthernet 10/0 interface on R3 is used to demonstrate how QoS policing can be set for traffic destined for

Figure 9Figure 4-9 Example of QoS Policy Propagation

Example 4-31 shows a sample BGP configuration on R3. The router number is used as the host address. The route map Set-policy sets the FIB QoS-group ID to 2 for prefixes matching the community 100:200, which is tagged for by R2.

Example 4-31 Sample BGP Configuration on R3

router bgp 100
 table-map Set-policy
 neighbor remote-as 100
 neighbor remote-as 300
ip community-list 1 permit 100:200
route-map Set-policy permit 10
 match community 1
 set ip qos-group 2

Examples 4-32 and 4-33 show the IP RIB and FIB entries, respectively. Note that prefix is now set with qos-group 2.

Example 4-32 IP RIB Entry for

R3#show ip route
Routing entry for
 Known via "bgp 200", distance 200, metric 0, qos-group 2, type internal

 Last update from 00:32:34 ago
 Routing Descriptor Blocks:
 *, from, 00:32:34 ago
   Route metric is 0, traffic share count is 1
   AS Hops 1, BGP network version 0

Example 4-33 FIB Entry for

R3#show ip cef, version 23, cached adjacency
0 packets, 0 bytes, qos-group 2

 via, 0 dependencies, recursive
  next hop, GigabitEthernet6/0 via
  valid cached adjacency

To enable FIB lookup for the traffic destined for, policy lookup is enabled on the interface of FastEthernet 10/0. The keyword destination is used in the command. If there is a match for the destination address, a check is made into the FIB to determine if there are any matching QoS entries. In this example, ip-qos-map is configured for the interface, and QoS-group ID is set to 2 in FIB, which means that the QoS-group ID can be used to set QoS policies. An input CAR is configured for traffic matching a QoS-group ID of 2. A sample configuration is shown in Example 4-34.

Example 4-34 Sample Interface Configuration for QPPB

interface FastEthernet10/0
 ip address
 no ip directed-broadcast
 bgp-policy destination ip-qos-map
 rate-limit input qos-group 2 5000000 4000 8000 conform-action transmit
 exceed-action drop

Example 4-35 shows the IP interface status. Example 4-36 shows traffic policing using CAR. A similar configuration can be made for the traffic sourced from to AS 300 (not shown). The incoming interface then is GigabitEthernet 6/0. An outbound CAR should be configured on the interface of FastEthernet 10/0 to enforce the QoS policy.

Example 4-35 IP Interface Status of FastEthernet 10/0

R3#show ip interface FastEthernet 10/0 | include BGP
 BGP Policy Mapping is enabled (output ip-qos-map)

Example 4-36 Interface CAR Status

R3#show interface FastEthernet 10/0 rate-limit
  matches: qos-group 2
   params: 5000000 bps, 4000 limit, 8000 extended limit
   conformed 112 packets, 168448 bytes; action: transmit
   exceeded 0 packets, 0 bytes; action: drop
   last packet: 1300ms ago, current burst: 0 bytes
   last cleared 00:13:15 ago, conformed 1694 bps, exceeded 0 bps
  • + Share This
  • 🔖 Save To Your Account