QoS Policy Accounting
First Published: February 26, 2010
Last Updated: March 23, 2011
The QoS Policy Accounting feature helps you accurately account for traffic on your system. It also provides greater flexibility in assigning Quality of Service (QoS) configurations to subscribers.
Finding Feature Information
Your software release may not support all the features documented in this module. For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the "Feature Information for the QoS Policy Accounting Feature" section.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Contents
•Prerequisites for the QoS Policy Accounting Feature
•Restrictions for the QoS Policy Accounting Feature
•Information About the QoS Policy Accounting Feature
•How to Use the QoS Policy Accounting Feature
•Configuration Examples for the QoS Policy Accounting Feature
•Additional References
•Feature Information for the QoS Policy Accounting Feature
Prerequisites for the QoS Policy Accounting Feature
•PPP over Ethernet (PPoE) or PPP over Ethernet over ATM (PPoEoA) sessions are enabled.
•The RADIUS server is configured.
•Authentication, authorization, and accounting (AAA) is enabled.
•The subscriber's user profile on the RADIUS server has been created.
•A policy map is configured.
•A service template is configured.
•Traffic classes have been created.
Restrictions for the QoS Policy Accounting Feature
•On system failover, the following occurs:
–For QoS accounting configured statically at the policy map, QoS accounting statistics reset to zero.
–For QoS accounting configured dynamically using service templates, sessions no longer exist on the new active route processor.
•The following QoS actions are not supported in service templates:
–account
–fair-queue
–netflow-sampler
–random-detect
•The following QoS filters are not supported in service templates:
–atm
– class-map
– cos
– destination-address
– discard-class
–fr-de
–fr-dlci
–input-interface
–mpls
–not
–packet
–source-address
–vlan
•Service template definition lines may not exceed maximum configuration line length allowed by the Cisco IOS CLI. You may need to shorten shell variables names to stay within this limit.
•After activating a template service on a session, you may not change it. Instead, you can deactivate it and activate a different template service.
•A legacy complex parameterized string may not be used to change the QoS policy active on a session after activating a template service.
•IP address parameterization is supported only for IPv4 and only for named ACLs without remarks. IP addresses specified in the parameterized service activation are always added to the cloned ACL in this fixed pattern: "permit ip network mask any" and "permit ip any network mask".
•Service templates are supported only for PPP sessions and may not be activated on subinterfaces.
•Only one turbo button service can be active on a session at any given time. Turbo button service is any service that changes a QoS action other than "service-policy xxxx" (changing the child policy) in class-default of the parent policy.
•Shell variable, QoS class-map, and ACL names may not have the following characters:
–!
–$
–#
–-
–,
–>
–<
•Service names are echoed back in the accounting records only for group accounting (when you use $_acctgrp in the service template).
•The IN/OUT QoS policy name active on a session is formed by concatenating the previously active QoS policy (or the static QoS policy specified in the last multiservice CoA or Access-Accept).
•Two template services instantiated from the same service template may not be activated on the session at the same time. However, multiple template services instantiated from unrelated service templates can be active on a session at the same time.
•Template service support is available only for locally terminated PPP and PPP forwarded sessions on the LAC.
•For PPP forwarded sessions on the LAC, to apply template services via Access-Accept, use the following configurations:
–vpdn authen-before-forward:
–Specify template services only in the user authorization profile (Access-Accept that is received after PPP authentication), not in the authentication profile.
•Only activate template services on child policy under parent class-default (only two levels) and on parent policy (turbo button service).
•The default QoS policy can only be two levels deep (Parent + Child under class-default) and should not have a child policy configured under any class other than class-default.
•A child policy should be configured under the default parent policy class-default in order for template services to be activated at the child level.
•Only rollback due to syntax error checking is supported.
–When multiple service activations/deactivations are included in a single CoA message, the failure of any operation (activation/deactivation) while processing the CoA must roll back (undo) all previous operations to restore the session state to before the CoA processing started. In other words, we must process either all the operations successfully in a CoA or none at all. A CoA Nack is sent to the RADIUS.
–For rollback to work during Access-Accept processing, "subscriber service multiple-accept" must be configured. The failure to process a service in an Access-Accept should roll back (undo) all previous services in the Access-Accept. The session will come up even if Access-Accept service processing fails.
–Errors originating deep down in the platform/data plane will not trigger rollback. In this case, it is possible to be stuck with an incomplete service.
•Do not modify a service template if its template services in use or active on sessions. Use the
show subscriber policy ppm-shim-db command to see which template services are in use.
Information About the QoS Policy Accounting Feature
RADIUS is a networking protocol that provides AAA management. Among other things, each RADIUS accounting message includes ingress and egress counters. The QoS Policy Accounting feature helps you resolve any inaccuracies between counters.
QoS Policy Accounting Feature in Groups
The QoS Policy Accounting feature collects and reports the following information to the RADIUS server per-session:
•Acct-Session-Id
•Parent-Session-Id
•Policy name and class or group name (if the QoS Policy Accounting feature is enabled on the group)
•Ingress and egress packets/bytes/gigawords, packets, and bytes of successfully transmitted packets
•Username
•Service name
When you enable the QoS Policy Accounting feature on a group and assign it a group name, this feature aggregates packets that are the following:
•Classified by traffic classes in the same group
•Included in the ingress or egress QoS policy applied on the same target
Separate Accounting Streams
If you do not assign a traffic class to a group, but instead to an AAA method list, separate QoS policy accounting streams are created for each traffic class. Separate accounting streams allow you to differentiate between traffic that matches more than one class. Each unique target, direction, policy name, and class name has a unique RADIUS Acct-Session-Id value.
Service Templates
Service templates allow you to dynamically change QoS parameters without defining a new QoS policy on the CLI. You can change QoS policy when a session begins or any time after the session is established. When dynamically modifying an active QoS, first deactivate the current service.
To understand service templates, learn the following terms:
•Service templates:
–Are Cisco IOS shell functions
–Have IN QoS policy-map definitions
–Have OUT QoS policy-map definitions
–Are programmatically invoked
–Specify default values for shell variables
•Template services:
–Are QoS service names with parenthesis in them
–Have a matching "shell map" template definition
–Are created dynamically during service template shell function execution
•IN Net effect policy map
•OUT Net effect policy map
For the QoS Policy Accounting feature, we focus on how the IOS shell overrides default values of variables used in service template shell functions. QoS policy definitions inside a shell map may have shell variables in place of QoS action parameter values.
Service templates allow you to configure the following parameterization features:
•Example: Action Parameter Override
•Example: Action Parameterization Default Parameters
•Example: Class Name Override
•Example: IP Address Parameterization
•Example: Turbo Button Service
•Example: Overriding Interim Accounting Interval
Subscriber Accounting Accuracy
Subscriber accounting data is sent to AAA servers during the following:
•Session teardown
•Service logoff
•At assigned intervals during the lifetime of the session or service
Subscriber Accounting Accuracy guarantees that the Input/Ouput Packet/Byte statistics in the accounting Stop record are accurate to 1 second.
How to Use the QoS Policy Accounting Feature
By default, the QoS Policy Accounting feature is not assigned to traffic classes.
Assigning a Group or AAA Method List to a Traffic Class
Prerequisites
Ensure the group or AAA method list already exists. If you try to add an undefined group or AAA method list to a traffic class, you will receive an error message.
SUMMARY STEPS
1. enable
2. configure terminal
3. aaa authentication ppp list-name method1
4. aaa accounting network methodlist-name
5. action-type start-stop
6. periodic interval value
7. accounting group group-name list list-name
8. policy-map policy-map-name
9. class class-default
10. accounting aaa list list-name [group name]
11. end
12. show policy-map session
13. show accounting group group-name
DETAILED STEPS
|
|
|
Step 1 |
enable
Router> enable |
Enables privileged EXEC mode. •Enter your password if prompted. |
Step 2 |
configure terminal
Router# configure terminal |
Enters global configuration mode. |
Step 3 |
aaa authentication ppp list-name method1
Router(config)# aaa authentication ppp group
radius
|
Specifies a valid AAA authentication method. •group RADIUS enables global RADIUS authentication. |
Step 4 |
aaa accounting network methodlist-name
Router(config)# aaa accounting network list1
|
Enables AAA of services when you use RADIUS. •The algorithm determining the interim interval for a class or group uses the method list specified here. |
Step 5 |
Router(config)# action-type start-stop
|
Sends a "start" accounting notice at the beginning of a process and a "stop" accounting notice at the end of a process. |
Step 6 |
Router(config)# periodic interval 1
|
Adds the interim interval value (1 to 71,582 minutes) in the method list, if specified. •If you do not define an interim interval, the global value defined by AAA is used. •If the method list disables interim updates, the accounting flows using the method list do not generate an interim update. |
Step 7 |
accounting group group_name list list-name
Router(config)# accounting group group_name AAAmethodlist AAAmethodlist1 |
Sets properties in the AAA method list. You can make per-session changes to existing traffic classes by temporarily overwriting properties in the groups or AAA method lists to which they are assigned. This allows you to provide dynamic customized QoS configuration to each subscriber. |
Step 8 |
policy-map policy-map-name
Router(config)# policy-map p1 |
Creates a policy map. |
Step 9 |
class class-default
Router(config)# class class-default |
Creates a traffic class. |
Step 10 |
accounting aaa list list-name [group name]
Router(config)# accounting aaa list AAAmethodlist1 |
Assigns the traffic class to a group or an AAA method list. •This example shows the QoS Policy Accounting feature enabled for instances of a traffic class using list AAAmethodlist1 with no group. |
Step 11 |
|
Exits interface configuration mode and returns to privileged EXEC mode. |
Step 12 |
Router# show policy-map session
|
(Optional) Displays the QoS Policy Accounting feature information for traffic classes with a group or an AAA method list. |
Step 13 |
show accounting group group_name
Router# show accounting group
|
(Optional) Displays all group-to-method list associations. •Enter a group name to view information specific to that group. |
Using Service Templates
The contents of a shell map block are treated as text. Write the service template in a text editor, and then copy it to the CLI.
When defining service-template policy maps (policy map $_outgoing/$_incoming), there is no:
•Parser auto completion
•Command options
•Range help
•Syntax checking
•Editor a mistake means that you must delete the complete service template and configure it again
For examples, see: "Service Template Examples" section.
Verifying Service Templates
When you write a service template, there is no syntax checking. Before activating your service template, verify it. Replace "voice-service1" with your service template name to verify.
(shell map voice-service1 police_rate=100000 prec_value=4 queue_size=1)
no policy-map test-svc_IN <-------- Removes previous service template verifications.
no policy-map test-svc_OUT <-------- Removes previous service template verifications.
no aaa-accounting group test_svc_GRP <-------- Removes previous service template
verifications.
trigger voice-service1 _incoming=test-svc_IN _outgoing=test-svc_OUT _acctgrp=test-svc_GRP
show policy-map test-svc-IN <--------
Ensure that the output matches the expected service
template template service with default values.
show policy-map test-svc-OUT <--------
Ensure that the output matches the expected service
template template service with default values.
Troubleshooting Service Templates
SUMMARY STEPS
1. enable
2. show subscriber policy ppm-shim-db
DETAILED STEPS
|
|
|
Step 1 |
enable
Router> enable |
Enables privileged EXEC mode. •Enter your password if prompted. |
Step 2 |
show subscriber policy ppm-shim-db
Router(config)# show subscriber policy ppm-shim-db |
Displays reference counts (usage) of all template service policy-maps and Net Effect policy-maps on the router. |
Removing Service Templates
To remove a service template, at the command line enter:
no shell map voice-service1 police_rate=100000 prec_value=4 queue_size=1
in_h=class-default out_h=class-default
Where voice-service1 is the name of your service template.
Service Template Examples
•Example: Service Template
•Example: Action Parameter Override
•Example: Action Parameterization Default Parameters
•Example: Class Name Override
•Example: IP Address Parameterization
•Example: Turbo Button Service
•Example: Turbo Button Activation
•Example: Turbo Button Deactivation
•"Example: Turbo Button Override" section
•Example: Turbo Button Override Deactivation
•Example: Overriding Interim Accounting Interval
Example: Service Template
This example shows a sample service template:
accounting group $_acctgrp list default
police $police_rate 60625 0 conform-action transmit exceed-action drop
violate-action drop
set precedence $prec_value
aaa-accounting group $_acctgrp
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action
drop
queue-limit $queue_size packets
aaa-accounting group $_acctgrp
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action
drop
aaa-accounting group $_acctgrp
police 112000 21000 0 conform-action transmit exceed-action transmit
violate-action drop
aaa-accounting group $_acctgrp
Example: Action Parameter Override
Action Parameter Override is a type of service template where shell variables are used in place of parameters for QoS actions like police, shape, and bandwidth, configurations entered under a class in a QoS policy.
When you deactivate a template service, the previously active QoS policy is restored. The QoS policy name may be different but is structurally and functionally identical to the QoS policy active before the template service was activated.
This example generates the service with the following parameters:
Reserved variable initialization before executing the service template shell function:
$_incoming = voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN
$_outgoing = voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT
$_acctgrp = aaa-accounting group
voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP list default
OUT QoS policy active on the session:
service-policy output_child
IN QoS policy active on the session:
service-policy input_child
After activating the voice-service1(police_rate=200000,prec_value=5,queue_size=32) on the target session, this is the active OUT policy:
policy-map
output_parent$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_
OUT$class-default
service-policy
output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-defau
lt
policy-map
output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-defau
lt
police 200000 60625 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group
voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
police 112000 1000 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group
voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
After activating voice-service1(police_rate=200000,prec_value=5,queue_size=32) on the target session, this is the active IN policy:
policy-map
input_parent$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_I
N$class-default
police cir 10000000 bc 312500 conform-action transmit exceed-action drop
service-policy
input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
policy-map
input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action
drop
aaa-accounting group
voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
police 112000 21000 0 conform-action transmit exceed-action transmit
violate-action drop
aaa-accounting group
voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
Example: Action Parameterization Default Parameters
Action Parameterization Default Paramteres is a type of service template where shell variables are used in place of parameters for QoS actions like police, shape, and bandwidth, configurations entered under a class in a QoS policy.
When you deactivate a template service, the previously active QoS policy is restored. The QoS policy name maybe different but is structurally and functionally identical to the QoS policy active before the template service was activated.
service-policy output_child
service-policy input_child
ip access-list extended voip-acl
permit ip 10.1.1.0 0.0.0.255 any
ip access-list extended voip-control-acl
permit ip 10.2.2.0 0.0.0.255 any
match access-group name voip-acl
class-map match-any voip-control
match access-group name voip-control-acl
shell map voice-service1 police_rate=100000 prec_value=4 queue_size=1 in_h=class-default
out_h=class-default
accounting group $_acctgrp list default
police $police_rate 60625 0 conform-action transmit exceed-action drop
violate-action drop
set precedence $prec_value
aaa-accounting group $_acctgrp
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action
drop
queue-limit $queue_size packets
aaa-accounting group $_acctgrp
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action
drop
aaa-accounting group $_acctgrp
police 112000 21000 0 conform-action transmit exceed-action transmit
violate-action drop
aaa-accounting group $_acctgrp
After activating voice-service1 on the target session, this is the active OUT policy:
policy-map output_parent$class-default$voice-service1><_OUT$class-default
class class-default
shape average 10000000
service-policy output_child$voice-service1><_OUT$class-default
policy-map output_child$voice-service1><_OUT$class-default
class voip
police 10000 60625 0 conform-action transmit exceed-action drop violate-action drop
priority level 1
queue-limit 8 packets
set precedence 4
set cos 6
aaa-accounting group voice-service1><_GRP
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action drop
queue-limit 16 packets
set precedence 6
aaa-accounting group voice-service1><GRP
class class-default
After activating voice-service1 on the target session, this is the active IN policy:
policy-map input_parent$class-default$voice-service1><_IN$class-default
class class-default
police cir 10000000 bc 312500 conform-action transmit exceed-action drop
service-policy input_child$voice-service1><_IN$class-default
policy-map input_child$voice-service1><_IN$class-default
class voip
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 5
aaa-accounting group voice-service1><_GRP
class voip-control
police 112000 21000 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 7
aaa-accounting group voice-service1><_GRP
class-default
Example: Class Name Override
Class name override is a type of service template where shell variables are used in place of parameters for QoS actions like police, shape, and bandwidth, configurations entered under a class in a QoS policy. Shell variables may also be used in place of class names in service template policy definitions. Shell variables may completely substitute a class name or may be configured as a variable suffix with a constant prefix.
When you deactivate a template service, the previously active QoS policy is restored. The QoS policy name may be different but is structurally and functionally identical to the QoS policy active before the template service was activated.
service-policy output_child
service-policy input_child
! Pre-configured ACLs/class-maps
ip access-list extended aol_classifier_acl ! Locally pre-configured
permit ip host 10.1.30.194 any
class-map match-all voice-control-aol_classifier_reference ! Locally pre-configured
match access-group name aol_classifier_acl
! Other pre-configured ACLs/classes here (e.g., voice-aol_classifier_reference,
voice-t_online, etc.)
shell map voice-aol-service1 prec_value=3 police_rate=100000 class_ref=t_online
in_h=class-default out_h=class-default
accounting group $_acctgrp list default
class voice-control-$class_ref
police 112000 1000 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group $_acctgrp
police $poice_rate 60625 0 conform-action transmit exceed-action drop
violate-action drop
set precedence $prec_value
aaa-accounting group $_acctgrp
class voice-control-$class_ref
police 112000 21000 0 conform-action transmit exceed-action transmit
violate-action drop
aaa-accounting group $_acctgrp
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action
drop
set precedence $prec_value
aaa-accounting group $_acctgrp
After activating voice-aol-service1(class_ref=aol_classifier_reference) on the target session, this is the active OUT policy:
policy-map
output_parent$class-default$voice-aol-service1<class_ref=aol_classifier_reference>_OUT$cla
ss-default
service-policy
output_child$voice-aol-service1<class_ref=aol_classifier_reference>_OUT$class-default
policy-map
output_child$voice-aol-service1<class_ref=aol_classifier_reference>_OUT$class-default
class voice-control-aol_classifier_reference ! Reference to pre-configured class
police 112000 1000 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group voice-aol-service1<class_ref=aol_classifier_reference>_GRP
class voice-aol_classifier_reference ! reference to pre-configured class
police 100000 60625 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group voice-aol-service1<class_ref=aol_classifier_reference>_GRP
After activating voice-aol-service1(class_ref=aol_classifier_reference) on the target session, this is the active IN policy:
policy-map
input_parent$class-default$voice-aol-service1<class_ref=aol_classifier_reference>_IN$class
-default
police cir 10000000 bc 312500 conform-action transmit exceed-action drop
service-policy
input_child$voice-aol-service1<class_ref=aol_classifier_reference>_IN$class-default
policy-map
input_child$voice-aol-service1<class_ref=aol_classifier_reference>_IN$class-default
class voice-control-aol_classifier_reference ! reference to pre-configured class
police 112000 21000 0 conform-action transmit exceed-action transmit
violate-action drop
aaa-accounting group voice-aol-service1<class_ref=aol_classifier_reference>_GRP
class voice-aol_classifier_reference ! reference to pre-configured class
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action
drop
aaa-accounting group voice-aol-service1<class_ref=aol_classifier_reference>_GRP
Example: IP Address Parameterization
IP Address Parameterization is a type of Action Parameterization service template in which classifiers may be dynamically modified by adding more entries to ACLs. The entries to be added in an ACL are a list of IP addresses in a shell variable.
When you deactivate a template service, the previously active QoS policy is restored. The QoS policy name may be different but is structurally and functionally identical to the QoS policy active before the template service was activated.
Note Classes must be predefined; they are not dynamically created.
service-policy output_child
service-policy input_child
ip access-list extended IPOne-control-acl ! Base ACL locally pre-configured
permit ip any host 10.0.132.118
permit ip host 10.0.132.118 any
permit ip any host 10.1.245.122
permit ip host 10.1.245.122 any
ip access-list extended IPOne-combined-acl ! Base ACL pre-configured
permit ip any 10.0.132.0 0.0.0.127
permit ip 10.0.132.0 0.0.0.127 any
permit ip any 10.1.245.64 0.0.0.63
permit ip 10.1.245.64 0.0.0.63 any
class-map match-any voice-control ! Base class map pre-configured
match access-list name IPOne-control-acl ! Match on the base ACL
class-map match-any voice ! base class-map pre-configured
match access-list name IPOne-combined-acl ! Match on the base ACL
shell map voice-toi prec_value=3 police_rate=100000 ip_list=10.2.1.0/28,10.2.1.0/29
in_h=class-default out_h=class-default
classmap-template voice-control $ip_list
classmap-template voice $ip_list
! Service parameter templates:
class voice-control-$ip_list ! class names MUST end with -$ip_list
police 112000 1000 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group IPOne-aol
police $police_rate 60625 0 conform-action transmit exceed-action drop
violate-action drop
set precedence $prec_value
aaa-accounting group IPOne-aol
class voice-control-$ip_list
police 112000 21000 0 conform-action transmit exceed-action transmit
violate-action drop
aaa-accounting group IPOne-aol
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action
drop
set precedence $prec_value
aaa-accounting group IPOne-aol
After activating voice-toi(ip_list=10.1.30.0/28,10.1.40.0/29) on the target session, this is the active OUT QoS policy :
policy-map output_parent$class-default$
voice-toi>ip_list=10.1.30.0/28,10.1.40.0/29<_OUT$class-default
service-policy
output_child$voice-toi>ip_list=10.1.30.0/28,10.1.40.0/29<_OUT$class-default
policy-map output_child$voice-toi>ip_list=10.1.30.0/28,10.1.40.0/29<_OUT$class-default
class voice-control-10.1.30.0/28,10.1.40.0/29
police 112000 1000 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group IPOne-aol
class voice-10.1.30.0/28,10.1.40.0/29
police 100000 60625 0 conform-action transmit exceed-action drop violate-action
drop
aaa-accounting group IPOne-aol
After activating voice-toi(ip_list=10.1.30.0/28,10.1.40.0/29) on the target session, this is the active IN QoS policy :
policy-map
input_parent$class-default$voice-toi>ip_list=10.1.30.0/28,10.1.40.0/29<_IN$class-default
police cir 10000000 bc 312500 conform-action transmit exceed-action drop
service-policy
input_child$voice-toi>ip_list=10.1.30.0/28,10.1.40.0/29<_IN$class-default
policy-map input_child$voice-toi>ip_list=10.1.30.0/28,10.1.40.0/29<_IN$class-default
class voice-control-10.1.30.0/28,10.1.40.0/29
police 112000 21000 0 conform-action transmit exceed-action transmit
violate-action drop
aaa-accounting group IPOne-aol
class voice-10.1.30.0/28,10.1.40.0/29
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action
drop
aaa-accounting group IPOne-aol
NOTE: the following configurations are dynamically created:
! Internally created ACLs:
ip access-list extended IPOne-control-acl-10.1.30.0/28,10.1.40.0/29
permit ip any host 10.0.132.118
permit ip host 10.0.132.118 any
permit ip any host 10.1.245.122
permit ip host 10.1.245.122 any
permit ip 10.1.30.0 0.0.0.15 any ! ACEs derived from $ip_list
permit ip any 10.1.30.0 0.0.0.15
permit ip 10.1.40.0 0.0.0.7 any
permit ip any 10.1.40.0 0.0.0.7
ip access-list extended IPOne-combined-acl-10.1.30.0/28,10.1.40.0/29
permit ip any 10.0.132.0 0.0.0.127
permit ip 10.0.132.0 0.0.0.127 any
permit ip any 10.1.245.64 0.0.0.63
permit ip 10.1.245.64 0.0.0.63 any
permit ip 10.1.30.0 0.0.0.15 any ! ACEs derived from $ip_list
permit ip any 10.1.30.0 0.0.0.15
permit ip 10.1.40.0 0.0.0.7 any
permit ip any 0.0.0.7 10.1.40.0
! internally created class-maps:
class-map match-any voice-control-10.1.30.0/28,10.1.40.0/29
match access-group name IPOne-control-acl-10.1.30.0/28,10.1.40.0/29
class-map match-any voice-10.1.30.0/28,10.1.40.0/29
match access-group name IPOne-combined-acl-10.1.30.0/28,10.1.40.0/29
Example: Turbo Button Service
Turbo Button Service is a type of Action Parameterization service template in which only policy parameters in INPUT parent class-default and shape parameters in OUT parent class-default can be dynamically modified.
This example shows how to create a service template for the Turbo Button service:
service-policy output_child
service-policy input_child
shell map turbo-button in_police_val=20000000 $out_shape=20000000
{
configure terminal
accounting group $_acctgrp list default
policy-map $_outgoing
class class-default
shape average $out_shape
aaa-accounting group $_acctgrp
policy-map $_incoming
class class-default
police $in_police_val
aaa-accounting group $_acctgrp
}
Example: Turbo Button Activation
This example shows how to activate the Turbo Button service using the default values:
service-policy output_child
service-policy input_child
accounting group turbo-button>< list default
! Service outgoing:
policy-map turbo-button><_OUT
class class-default
shape average 20000000
aaa-accounting group turbo-button>< list default
! Service incoming:
policy-map turbo-button><_IN
class class-default
police 20000000
aaa-accounting group turbo-button>< list default
After activating the service on the target session, this is the active OUT policy:
policy-map output_parent$turbo-button><_OUT$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class class-default
shape average 20000000
aaa-accounting group turbo-button>< list default
service-policy output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
policy-map output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class voip
police 200000 60625 0 conform-action transmit exceed-action drop violate-action drop
priority level 1
queue-limit 8 packets
set precedence 5
set cos 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action drop
queue-limit 32 packets
set precedence 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class class-default
After activating the service on the target session, this is the active IN policy:
policy-map input_parent$turbo-button><_IN$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class class-default
police cir 20000000 bc 312500 conform-action transmit exceed-action drop
aaa-accounting group turbo-button>< list default
service-policy input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
policy-map input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class voip
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 5
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 21000 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 7
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class-default
Example: Turbo Button Deactivation
This example shows how to deactivate the Turbo Button service using the default values of
VSA 252 0c "turbo-button()":
service-policy output_child
service-policy input_child
After activating the service on the target session, this is the active OUT policy:
policy-map output_parent$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class class-default
shape average 10000000
service-policy output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
policy-map output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class voip
police 200000 60625 0 conform-action transmit exceed-action drop violate-action drop
priority level 1
queue-limit 8 packets
set precedence 5
set cos 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action drop
queue-limit 32 packets
set precedence 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class class-default
After activating the service on the target session, this is the active IN policy:
policy-map input_parent$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class class-default
police cir 10000000 bc 312500 conform-action transmit exceed-action drop
service-policy input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
policy-map input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class voip
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 5
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 21000 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 7
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class-default
Example: Turbo Button Override
This example shows how to activate the Turbo Button service using the default values of
VSA 250 "Aturbo-button(in_police_val=30000000, out_shape_val=30000000)" (Activation from Access-Accept)
or
VSA 252 0b "turbo-button(in_police_val=30000000, out_shape_val=30000000)" (Activation from CoA):
service-policy output_child
service-policy input_child
accounting group turbo-button>in_police_val=30000000#out_shape_val=30000000 list default
! Service outgoing:
policy-map turbo-button>in_police_val=30000000#out_shape_val=30000000<_OUT
class class-default
shape average 30000000
accounting group turbo-button>in_police_val=30000000#out_shape_val=30000000
! Service incoming:
policy-map turbo-button>in_police_val=30000000#out_shape_val=30000000<_IN
class class-default
police 30000000
accounting group turbo-button>in_police_val=30000000#out_shape_val=30000000
After activating the service on the target session, this is the active OUT policy:
policy-map output_parent$turbo-button> in_police_val=30000000#out_shape_val=30000000<_OUT$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class class-default
shape average 20000000
accounting group turbo-button>in_police_val=30000000#out_shape_val=30000000
service-policy output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
policy-map output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class voip
police 200000 60625 0 conform-action transmit exceed-action drop violate-action drop
priority level 1
queue-limit 8 packets
set precedence 5
set cos 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action drop
queue-limit 32 packets
set precedence 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class class-default
After activating the service on the target session, this is the active IN policy:
policy-map input_parent$turbo-button>in_police_val=30000000#out_shape_val=30000000<_IN$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class class-default
police cir 20000000 bc 312500 conform-action transmit exceed-action drop
accounting group turbo-button>in_police_val=30000000#out_shape_val=30000000
service-policy input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
policy-map input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class voip
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 5
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 21000 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 7
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class-default
Example: Turbo Button Override Deactivation
This example shows how to deactivate the Turbo Button override using the default values of
VSA 252 0c "turbo-button (in_police_val=30000000, out_shape_val=30000000)":
service-policy output_child
service-policy input_child
After activating the service on the target session, this is the active OUT policy:
policy-map output_parent$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class class-default
shape average 10000000
service-policy output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
policy-map output_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_OUT$class-default
class voip
police 200000 60625 0 conform-action transmit exceed-action drop violate-action drop
priority level 1
queue-limit 8 packets
set precedence 5
set cos 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action drop
queue-limit 32 packets
set precedence 6
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class class-default
After activating the service on the target session, this is the active IN policy:
policy-map input_parent$class-default$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class class-default
police cir 10000000 bc 312500 conform-action transmit exceed-action drop
service-policy input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
policy-map input_child$voice-service1>police_rate=200000#prec_value=5#queue_size=32<_IN$class-default
class voip
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 5
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class voip-control
police 112000 21000 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 7
aaa-accounting group voice-service1>police_rate=200000#prec_value=5#queue_size=32<_GRP
class-default
Example: Overriding Interim Accounting Interval
Overriding Interim Accounting Interval is a type of Action Parameterization service template in which you can use the shell variables in place of interim interval values in the accounting method list definition, allowing the account interim value to be dynamically modified.
This example shows how to do an accounting group override using the default values of: VSA 252 0b "voice-service1(police_rate=200000,prec_value=5,acct_interval=600)".
This example generates a service with the following parameters:
! Global AAA method list and accounting group parameters
aaa accounting network list-600
action-type start-stop periodic interval 600
accounting group voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_GRP list list-600
! OUT policy-map:
policy-map voice-service1>policy_rate=200000#prec_value-5#acct_interval=600 <_OUT
class voip
police 200000 60625 0 conform-action transmit exceed-action drop violate-action drop
priority level 1
queue-limit 8 packets
set precedence 5
set cos 6
aaa-accounting group voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_GRP
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action drop
queue-limit 32 packets
set precedence 6
aaa-accounting group
service-policy output_child
service-policy input_child
After activating the service on the target session, this is the active OUT policy:
policy-map output_parent$class-default$voice-service1>policy_rate=200000#prev_value=5#acct_interval=600 <_OUT$class-default
class class-default
shape average 10000000
service-policy output_child$voice-service1>policy_rate=200000#prev_value=5#acct_interval=600 <_OUT$class-default
policy-map output_child$voice-service1>policy_rate=200000#prev_value=5#acct_interval=600 <_OUT$class-default
class voip
police 200000 60625 0 conform-action transmit exceed-action drop violate-action drop
priority level 1
queue-limit 8 packets
set precedence 5
set cos 6
aaa-accounting group voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_GRP
class voip-control
police 112000 1000 0 conform-action transmit exceed-action drop violate-action drop
queue-limit 32 packets
set precedence 6
aaa-accounting group voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_GRP
class class-default
After activating the service on the target session, this is the active IN policy:
policy-map input_parent$class-default$voice-service1>policy_rate=200000#prec_value-5#acct_interval=600 <_IN$class-default
class class-default
police cir 10000000 bc 312500 conform-action transmit exceed-action drop
service-policy input_child$voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_IN$class-default
policy-map input_child$voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_IN$class-default
class voip
police 200000 9216 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 5
aaa-accounting group voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_GRP
class voip-control
police 112000 21000 0 conform-action transmit exceed-action transmit violate-action drop
set precedence 7
aaa-accounting group voice-service1>policy_rate=200000#prec_value=5#acct_interval=600 <_GRP
class class-default
Activating Subscriber Accounting Accuracy
SUMMARY STEPS
1. enable
2. configure terminal
3. subscriber accounting accuracy value
DETAILED STEPS
|
|
|
Step 1 |
enable
Router> enable |
Enables privileged EXEC mode. •Enter your password if prompted. |
Step 2 |
configure terminal
Router# configure terminal |
Enters global configuration mode. |
Step 3 |
subscriber accounting accuracy value
Router(config)# subscriber accounting accuracy
1000
|
Sets the value for the Subscriber Accounting Accuracy feature. •The default value is 1000 milliseconds. |
Configuration Examples for the QoS Policy Accounting Feature
Example: Using the QoS Policy Accounting Feature in Groups
The following example shows grouping:
policy-map my-policy
class voip
aaa-accounting group premium-services
aaa-accounting group premium-services
Example: Generating Separate Accounting Streams
The following example shows two classifiers called class voip and class voip-control. The classifiers are assigned to one policy associated with one target. This generates two separate QoS Policy Accounting streams.
policy-map my-policy
class voip
accounting aaa list AAA-LIST
police 100000
accounting aaa list AAA-LIST
Additional References
Related Documents
Standards
|
|
No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature. |
— |
MIBs
|
|
No new or modified MIBs are supported by this feature, and support for existing MIBs has not been modified by this feature. |
To locate and download MIBs for selected platforms, Cisco software releases, and feature sets, use Cisco MIB Locator found at the following URL: http://www.cisco.com/go/mibs |
RFCs
|
|
RFC 2866 |
RADIUS Accounting |
Technical Assistance
|
|
The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password. |
http://www.cisco.com/cisco/web/support/index.html |
Feature Information for the QoS Policy Accounting Feature
Table 1 lists the release history for this feature.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Note Table 1 lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Table 1 Feature Information for the QoS Policy Accounting Feature
|
|
|
QoS Policy Accounting |
Cisco IOS XE Release 2.6 Cisco IOS XE Release 3.2S |
The QoS Policy Accounting feature helps you accurately account for traffic on your system. It also provides greater flexibility in assigning QoS configurations to subscribers. Static CLI-driven accounting is supported. In Cisco IOS XE Release 2.6, this feature was introduced on the Cisco ASR 1000 Series Aggregation Services Routers. In Cisco IOS XE Release 3.2S, the service template, subscriber subsecond accuracy, dynamic CoAs, and uninterrupted accounting in case of services untouched by the dynamic activation are supported. The following commands were added: show subscriber policy ppm-shim-db and subscriber accounting accuracy. |
Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at www.cisco.com/go/trademarks. Third party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1005R)
Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.
© 2011 Cisco Systems, Inc. All rights reserved.