cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
938
Views
0
Helpful
5
Replies

ASR9000 QoS hierarchy for BNG / PPPoE sessions

Hello

I am trying to understand the ASR9K combines QoS in a hierarchy that has multiple PPPoE subinterfaces. In the network setup we PPPoE subscribers
and for all of them we need to provide LLQ for VoIP traffic (upto e.g. 150kbps priority). The problem is that for the majority of them we do not know
the sync speed we cannot perform any shaping. We have build a basic policy that just assigns the VoIP traffic to the priority queue

policy-map PLAIN
 class VOIP
  priority level 2
  police rate 150 kbps
  !
 !
!

In the same vlan subinterface we also have some business customers for which besides the VoIP prioritization we need to allocate some bw. We
know the xDSL sync rate for them (the use a fixed rate) so shaping is possible

policy-map BUSINESS_30M
 class class-default
  service-policy BUSINESS_CHILD
  bandwidth 30 mbps
  shape average 30 mbps
 !
 end-policy-map
!

policy-map BUSINESS_CHILD
 class VOIP
  priority level 2
 !
 class BRONZE
  bandwidth remaining percent 75
 !
 class class-default
  queue-limit 1000 packets
 !
 end-policy-map
!

The problem we face is that when plain and business customers coexist in the same VLAN the bw allocation for the latter does not take effect.
The throughput for business subscriber is < 30 mbps during congestion.

I am trying to explain this behaviour, has anyone come across a similar scenario? For both types of subscribers we see that queues are created for the class-default. I cannot understand how the ASR9k allocates the bw among class-default-queues of different PPPoE sessions

When we make some changes to the policy-map PLAIN (configure it with two levels of hierarchy with an arbitrary high shaping rate) we have

the expected results

policy-map PLAIN_NEW
 class class-default
  service-policy SUBSCRIBER_CHILD
  shape average 200 mbps
 !
 end-policy-map
!


Is there a way to achieve the desired effect ( be able to prioritize Voip for all and also allocate BW for specific subscribers) without having to
apply shaping to all of them?

5 Replies 5

Aleksandar Vidakovic
Cisco Employee
Cisco Employee

Hi Alejandro,

use the "show qos interface" to see what was configured in HW. That will help you understand the bandwidths and weights assigned to the subscriber interface.

Refer to these documents for more info:

If you configure a priority level 1 class without explicit policer, we allocate implicitly 80% of BW to that class. That's why we highly recommend always configuring a policer in the priority queue.

hope this helps,

/Aleksandar

Hello Aleksandar

The BRKSPG-2904 document is very informative. With the command show qos interface I see that the policies created for BUSINESS_30M and PLAIN have different hierarchies:

PLAIN:


RP/0/RSP0/CPU0:lab3#sh qos interface bundle-Ether 100.101.pppoe11172 output member g0/0/0/0             
Mon Oct  3 22:38:37.972 EEST
Interface: GigabitEthernet0_0_0_0 output
Bandwidth configured: 1000000 kbps Bandwidth programed: 1000000 kbps
ANCP user configured: 0 kbps ANCP programed in HW: 0 kbps
Port Shaper programed in HW: 0 kbps
Policy: PLAIN Total number of classes: 2
----------------------------------------------------------------------
Level: 0 Policy: PLAIN Class: VOIP
QueueID: 513 (Priority 2)
Queue Limit: 368 kbytes Abs-Index: 49 Template: 0 Curve: 6
Shape CIR Profile: INVALID
Policer Profile: 61 (Single)
Conform: 150 kbps (150 kbps) Burst: 3750 bytes (0 Default)
Child Policer Conform: TX
Child Policer Exceed: DROP
Child Policer Violate: DROP
----------------------------------------------------------------------
Level: 0 Policy: PLAIN Class: class-default
QueueID: 514 (Priority Normal)
Queue Limit: 12224 kbytes Abs-Index: 126 Template: 0 Curve: 0
Shape CIR Profile: INVALID
WFQ Profile: 0/9 Committed Weight: 10 Excess Weight: 10
Bandwidth: 0 kbps, BW sum for Level 0: 0 kbps, Excess Ratio: 1
----------------------------------------------------------------------



BUSINESS_30M

RP/0/RSP0/CPU0:lab3#sh qos interface bundle-Ether 100.101.pppoe11173 output member g0/0/0/0
Mon Oct  3 22:39:17.695 EEST
Interface: GigabitEthernet0_0_0_0 output
Bandwidth configured: 1000000 kbps Bandwidth programed: 1000000 kbps
ANCP user configured: 0 kbps ANCP programed in HW: 0 kbps
Port Shaper programed in HW: 0 kbps
Policy: BUSINESS_30M Total number of classes: 4
----------------------------------------------------------------------
Level: 0 Policy: BUSINESS_30M Class: class-default
QueueID: N/A
Shape CIR Profile : 0/2(S) Scale: 195 CIR: 99840 kbps (100 mbps) CBS: 1248000 bytes
Shape PIR Profile : 0/2(S) Scale: 195 PIR: 99840 kbps  PBS: 1248000 bytes
WFQ Profile: 0/9 Committed Weight: 10 Excess Weight: 10
Bandwidth: 100000 kbps, BW sum for Level 0: 100000 kbps, Excess Ratio: 1
----------------------------------------------------------------------
Level: 1 Policy: BUSINESS_CHILD Class: VOIP
Parent Policy: BUSINESS_30M Class: class-default
QueueID: 145 (Priority 2)
Queue Limit: 1280 kbytes Abs-Index: 74 Template: 0 Curve: 6
Shape CIR Profile: INVALID
----------------------------------------------------------------------
Level: 1 Policy: BUSINESS_CHILD Class: BRONZE
Parent Policy: BUSINESS_30M Class: class-default
QueueID: 146 (Priority Normal)
Queue Limit: 48 kbytes Abs-Index: 16 Template: 0 Curve: 0
Shape CIR Profile: INVALID
WFQ Profile: 0/68 Committed Weight: 75 Excess Weight: 75
Bandwidth: 0 kbps, BW sum for Level 1: 0 kbps, Excess Ratio: 75
----------------------------------------------------------------------
Level: 1 Policy: BUSINESS_CHILD Class: class-default
Parent Policy: BUSINESS_30M Class: class-default
QueueID: 147 (Priority Normal)
Queue Limit: 254 kbytes (1000 packets) Abs-Index: 41 Template: 0 Curve: 0
Shape CIR Profile: INVALID
WFQ Profile: 0/24 Committed Weight: 25 Excess Weight: 25
Bandwidth: 0 kbps, BW sum for Level 1: 0 kbps, Excess Ratio: 25
----------------------------------------------------------------------

For PLAIN we have two queues created directly under the interface

while for BUSINESS_30 I see class_default "scheduler" created and underneath it the 3 queues.

I do not know how the interface allocates the available bw between

"Level: 0 Policy: PLAIN Class: class-default"

and

"Level: 0 Policy: BUSINESS_30M Class: class-default"

(It does not seem to take into account the bw I have defined for the latter)

----------------------------------------------------------------------------------------------

Should I use a two level hierarchy for plain subscribers to avoid these problems?

Thinking to use

policy-map PLAIN
 class class-default
  service-policy PLAIN_CHILD
  bandwidth remaining ratio 1
 !
 end-policy-map
!
policy-map PLAIN_CHILD
 class VOIP
  priority level 2
 !
 class class-default
  queue-limit 1000 packets
 !
 end-policy-map

(Avoid using shaping since I do not know the sync speed, use just a generic value for bw remaining ratio

hi Alejandro,

I'm glad you found the CiscoLive deck informative! :)

The policies BUSINESS_30M and PLAIN have independent level 0 in the output of "sh qos interface" because they are attached to different subscriber interfaces. Level 0 of these two policies don't interact directly. At lower levels the scheduler hierarchy ensures that priority level 1 has precedence over priority level 2, which has precedence over traffic within BW guarantee, which has precedence over traffic that exceeds BW guarantee.

In your sample config you should introduce a parent level shaper if you want to limit the total BW that a single subscriber can consume.

regards,

/Aleksandar

Hello Aleksandar

Sorry for persiting on this but I have some interesting results from the tests I ran.

It seems that the shaping is needed in parent level for PLAIN policy as you mention - I am not sure I understand the reason for this yet.

Specifically I run some tests with multiple PPPoE streams using the PLAIN policy (without shaping) and the prioritization was ok

policy-map PLAIN
 class class-default
  service-policy PLAIN_CHILD
  bandwidth remaining ratio 1 !!!!I just need some scheduling command here, bw remaining !!!! ratio seemed not to cause any problems, so I chose it
 !
 end-policy-map
!

So I started added extra services / streams in the same physical interface on top of existing PPPOE streams. Specifically an IPoE service with a bw reservation of 100Mbps and prioritization for this bw between VOIP / BRONZE / Best-effort

policy-map IPOE_100M
 class class-default
  service-policy IPOE_CHILD
  shape average 100 mbps
  bandwidth 100 mbps
 !
policy-map IPOE_CHILD
 class IPOE_VOIP
  priority level 2
  police rate percent 20
   exceed-action drop
  !
 !
 class IPOE_BRONZE
  bandwidth remaining percent 75
 !
 class class-default
 !

When only the IPOE streams were active I saw that the bw was allocated correctly between VOIP, BRONZE and class-default.

But as soon as I started the PPPoE streams something strange happened. The total IPOE traffic passing through remained 100mbps (as expressed by the policy IPOE) but the ratio between "IPOE_BRONZE" and class_default was not 3/1 as it supposed to be. The higher the traffic rate from PPPoE sessions the less bw passed for class "IPOE_BRONZE".

As soon as I added, as you suggested, a shaper for the PPPOE qos-policy (with an arbitrary high rate) everything returned to normal. (The ratio "IPOE_BRONZE" / class default remained 3/1 no matter the rate of the PPPOE traffic)

policy-map PLAIN
 class class-default
  service-policy PLAIN_CHILD
  shape average 500 mbps !!!! instead of bandwidth remaining ratio I used earlier
 !
 end-policy-map
!

It is not clear to me how that usage of shaping in PPPoE subinterfaces (level 0) affected the way bw was allocated between level 1 queues for another subinterface.

But is it safe to say that when we apply a qos policy at a subintreface we should always apply shaping at level0 (even to an arbitrary high rate)?

hi Alejandro,

the explanation should be deduced from the "show qos interface" and "show policy-map interface <interface>" outputs. Without the parent shaper on policy map PLAIN you allow that class to consume the full bandwidth of the physical interface.

Level 0 in "show qos interface" actually corresponds to Level 3 in the Cisco Live slide deck. Both policies converge on Level 1 (physical interface).

/Aleksandar