HQoS adjustment

HQoS Adjustment is required in the scenarios where subscriber multicast traffic flow is disassociated from subscriber queues. In other words, the unicast traffic for the subscriber is flowing through the subscriber queues while at the same time multicast traffic for the same subscriber is explicitly (through redirection) or implicitly (per-sap replication mode) redirected through a separate non-subscriber queue. In this case HQoS Adjustment can be deployed where preconfigured multicast bandwidth per channel is artificially included in HQoS. For example, bandwidth consumption per multicast group must be known in advance and configured within the 7450 ESS and 7750 SR. By keeping the IGMP state per host, the bandwidth for the multicast group (channel) to which the host is registered is known and is deducted as consumed from the aggregate subscriber bandwidth.

The multicast bandwidth per channel must be known (this is always an approximation) and provisioned in the BNG node in advance.

In PPPoE and in IPoE per-host replication environment, HQoS Adjustment is not needed as multicast traffic is unicast to each subscriber and therefore is flowing through subscriber queues.

For HQoS Adjustment, the channel bandwidth definition and association with an interface is the same as in the MCAC case. This is a departure from the legacy HT channel bandwidth definition which is done by a multicast-info-policy.

Example of HQoS adjustment:

Channel definition:

configure
    router 
        mcac
            policy <name>
                <channel definition>

Channel bandwidth definition policy can be applied under:

Enabling HQoS adjustment:

configure
    subscriber-management
        igmp-policy <name>
            egress-rate-modify [egress-aggregate-rate-limit | scheduler <name>]

Applying HQoS adjustment to the subscriber:

configure
    subscriber-management
        sub-profile <subscriber-profile-name>
            igmp-policy <name>

To activate HQoS adjustment on the subscriber level, the sub-mcac-policy must be enabled under the subscriber with the following CLI:

configure
    subscriber-management
        sub-mcac-policy <pol-name>
            no shutdown

configure
    subscriber-management
        sub-profile <subscriber-profile-name>
            sub-mcac-policy <pol-name> 

The adjusted bandwidth during operation can be verified with the following commands (depending whether agg-rate-limit or scheduler-policy is used):

*B:BNG-1# show service active-subscribers subscriber "sub-1" detail  
===============================================================================
Active Subscribers
===============================================================================
-------------------------------------------------------------------------------
Subscriber sub-1 
-------------------------------------------------------------------------------
I. Sched. Policy : up-silver             
E. Sched. Policy : N/A                              E. Agg Rate Limit: 4000
I. Policer Ctrl. : N/A                              
E. Policer Ctrl. : N/A                              
Q Frame-Based Ac*: Disabled                         
Acct. Policy     : N/A                              Collect Stats    : Enabled
Rad. Acct. Pol.  : sub-1-acct                         
Dupl. Acct. Pol. : N/A                              
ANCP Pol.        : N/A                              
HostTrk Pol.     : N/A                              
IGMP Policy      : sub-1-IGMP-Pol                     
Sub. MCAC Policy : sub-1-MCAC                          
NAT Policy       : N/A                              
Def. Encap Offset: none                             Encap Offset Mode: none
Avg Frame Size   : N/A                              
Preference       : 5                                
Sub. ANCP-String : "sub-1"
Sub. Int Dest Id : ""
Igmp Rate Adj    : -2000                            
RADIUS Rate-Limit: N/A                              
Oper-Rate-Limit  : 2000
...
-------------------------------------------------------------------------------
*B:BNG-1#

Consider a different example with a scheduler instead of agg-rate-limit:

*A:Dut-C>config>subscr-mgmt>sub-prof# info 
----------------------------------------------
            igmp-policy "pol1"
            sub-mcac-policy "smp"
            egress
                scheduler-policy "h1"
                    scheduler "t2" rate 30000  
                exit
            exit
----------------------------------------------

*A:Dut-C>config>subscr-mgmt>igmp-policy# info 
----------------------------------------------
            egress-rate-modify scheduler "t2"
            redirection-policy "mc_redir1"
----------------------------------------------

Assume that the subscriber joins a new channel with bandwidth of 1 Mb/s (1000 kb/s).

A:Dut-C>config>subscr-mgmt>sub-prof>egr>sched# show qos scheduler-hierarchy subscrib
er "sub_1" detail 
===============================================================================
Scheduler Hierarchy - Subscriber sub_1
===============================================================================
Ingress Scheduler Policy: 
Egress Scheduler Policy : h1
-------------------------------------------------------------------------------
Legend :
(*) real-time dynamic value
(w) Wire rates
B   Bytes
-------------------------------------------------------------------------------
Root (Ing)
|
No Active Members Found on slot 1

Root (Egr)
| slot(1)
|--(S) : t1  
|   |    AdminPIR:90000      AdminCIR:10000     
|   |
|   |
|   |    [Within CIR Level 0 Weight 0]
|   |    Assigned:0          Offered:0         
|   |    Consumed:0         
|   |
|   |    [Above CIR Level 0 Weight 0]
|   |    Assigned:0          Offered:0         
|   |    Consumed:0         
|   |    TotalConsumed:0         
|   |    OperPIR:90000     
|   |
|   |    [As Parent]
|   |    Rate:90000     
|   |    ConsumedByChildren:0         
|   |                                 
|   |
|   |--(S) : t2  
|   |   |    AdminPIR:29000      AdminCIR:10000(sum)       <==== bw 1000 from igmp s
ubstracted
|   |   |
|   |   |
|   |   |    [Within CIR Level 0 Weight 1]
|   |   |    Assigned:10000      Offered:0         
|   |   |    Consumed:0         
|   |   |
|   |   |    [Above CIR Level 1 Weight 1]
|   |   |    Assigned:29000      Offered:0                 <==== bw 1000 from igmp s
ubstracted    
|   |   |    Consumed:0         
|   |   |
|   |   |
|   |   |    TotalConsumed:0         
|   |   |    OperPIR:29000                                 <==== bw 1000 from igmp s
ubstracted
|   |   |
|   |   |    [As Parent]
|   |   |    Rate:29000                                     <==== bw 1000 from igmp 
substracted
|   |   |    ConsumedByChildren:0         
|   |   |
|   |   |
|   |   |--(S) : t3  
|   |   |   |    AdminPIR:70000      AdminCIR:10000     
|   |   |   |
|   |   |   |
|   |   |   |    [Within CIR Level 0 Weight 1]
|   |   |   |    Assigned:10000      Offered:0         
|   |   |   |    Consumed:0         
|   |   |   |
|   |   |   |    [Above CIR Level 1 Weight 1]
|   |   |   |    Assigned:29000      Offered:0         
|   |   |   |    Consumed:0         
|   |   |   |
|   |   |   |
|   |   |   |    TotalConsumed:0         
|   |   |   |    OperPIR:29000     
|   |   |   |
|   |   |   |    [As Parent]
|   |   |   |    Rate:29000           
|   |   |   |    ConsumedByChildren:0         
|   |   |   |

*A:Dut-C>config>subscr-mgmt>igmp-policy# show service active-subscribers sub-mcac 
===============================================================================
Active Subscribers Sub-MCAC
===============================================================================
Subscriber                             : sub_1
MCAC-policy                            : smp (inService)
In use mandatory bandwidth             : 1000
In use optional bandwidth              : 0
Available mandatory bandwidth          : 1147482647
Available optional bandwidth           : 1000000000
-------------------------------------------------------------------------------
Subscriber                             : sub_2
MCAC-policy                            : smp (inService)
In use mandatory bandwidth             : 0
In use optional bandwidth              : 0
Available mandatory bandwidth          : 1147483647
Available optional bandwidth           : 1000000000
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Number of Subscribers : 2
===============================================================================
*A:Dut-C# 

*A:Dut-C# show service active-subscribers subscriber "sub_1" detail 
===============================================================================
Active Subscribers
===============================================================================
-------------------------------------------------------------------------------
Subscriber sub_1 (1)
-------------------------------------------------------------------------------
I. Sched. Policy : N/A                              
E. Sched. Policy : h1                               E. Agg Rate Limit: Max
I. Policer Ctrl. : N/A                              
E. Policer Ctrl. : N/A                              
Q Frame-Based Ac*: Disabled                         
Acct. Policy     : N/A                              Collect Stats    : Disabled
Rad. Acct. Pol.  : N/A                              
Dupl. Acct. Pol. : N/A                              
ANCP Pol.        : N/A                              
HostTrk Pol.     : N/A                              
IGMP Policy      : pol1                             
Sub. MCAC Policy : smp                              
NAT Policy       : N/A                              
Def. Encap Offset: none                             Encap Offset Mode: none
Avg Frame Size   : N/A                              
Preference       : 5                                
Sub. ANCP-String : "sub_1"
Sub. Int Dest Id : ""
Igmp Rate Adj    : N/A                              
RADIUS Rate-Limit: N/A                              
Oper-Rate-Limit  : Maximum                          
...
===============================================================================
*A:Dut-C# 


*A:Dut-C# show subscriber-mgmt igmp-policy "pol1" 
===============================================================================
IGMP Policy pol1
===============================================================================
Import Policy                         : 
Admin Version                         : 3
Num Subscribers                       : 2
Host Max Group                        : No Limit
Host Max Sources                      : No Limit
Fast Leave                            : yes
Redirection Policy                    : mc_redir1
Per Host Replication                  : no
Egress Rate Modify                    : "t2"
Mcast Reporting Destination Name      : 
Mcast Reporting Admin State           : Disabled
===============================================================================
*A:Dut-C#