# Example: Service and User Rate-Limit Hierarchy Overlap Hierarchical Policy Configuration

In the service and user rate-limit hierarchy overlap configuration example:

- The service provider has to enforce a bandwidth limit on a video service over a VLAN and wants to limit the maximum bandwidth of each user's total traffic.
- There are two terminated sessions and their corresponding IP interfaces are I1 and I2.
- Each session contains a video flow classified by C1 and all other traffic is classified by an asterisk (*).
- All video flows over the VLAN are rate-limited to a common rate of 1Mbps.
- Each session is individually rate-limited by 2 Mbps.
- You can attach policies at interface I1-I2.

  Figure 16: Interface Stack for Service and User Rate-Limit Hierarchy Overlap

This example uses the following:

- At I1 and I2:
  - USER_RATE, Committed Rate: 2 Mbps
  - Peak Rate: 0 Mbps
  - Committed Action: transmit final
  - Conformed Action: drop
  - Exceeded Action: drop
- Both C1 and C2 feed into a single policer with the following configuration:
  - AGG_VIDEO, Committed Rate: 1 Mbps
  - Peak Rate: 0 Mbps
  - Committed Action: transmit conditional
  - Conformed Action: drop
  - Exceeded Action: drop

    Figure 17: Service and User Rate-Limit Hierarchy Overlap Configuration

1. Create an aggregate rate limit that can be applied to each IP session. Create an external parent group to hold this rate limit.
   host1(config)#rate-limit-profile USER_RATE two-rate hierarchical host1(config-rate-limit-profile)#committed-rate 2000000 host1(config-rate-limit-profile)#committed-action transmit final host1(config-rate-limit-profile)#exit
   host1(config)#parent-group EPG2 host1(config-parent-group)#rate-limit-profile USER_RATE host1(config-parent-group)#exit
2. Create an aggregate rate limit that can be shared across multiple video streams. Create an external parent group to hold this rate limit.
   host1(config)#rate-limit-profile AGG_VIDEO two-rate hierarchical host1(config-rate-limit-profile)#committed-rate 1000000 host1(config-rate-limit-profile)#committed-action transmit conditional host1(config-rate-limit-profile)#exit
   host1(config)#policy-parameter B hierarchical host1(config-policy-parameter)#exit
   host1(config)#parent-group EPG1 host1(config-parent-group)#next-parent EPG2 parameter B host1(config-parent-group)#rate-limit-profile AGG_VIDEO host1(config-parent-group)#exit
3. Create a policy list to be attached to each IP session.
   host1(config)#ip classifier-list VIDEO_CLACL udp any any eq 4000
   host1(config)#policy-parameter A hierarchical host1(config-policy-parameter)#exit
   host1(config)#ip policy-list IP_POL host1(config-policy-list)#classifier-group VIDEO_CLACL external parent-group EPG1 parameter A host1(config-policy-list-classifier-group)#forward host1(config-policy-list-classifier-group)#exit host1(config-policy-list)#classifier-group * external parent-group EPG2
   parameter B host1(config-policy-list-classifier-group)#forward host1(config-policy-list-classifier-group)#exit host1(config-policy-list)#exit
4. Attach IP_POL to each IP session. Specify the same ID for parameter A, but a different ID for parameter B.
   host1(config)#interface fastEthernet 3/0.1 host1(config-interface)#vlan id 1 host1(config-interface)#exit
   host1(config)#interface ip 3/0.1.1 host1(config-interface)#ip policy-parameter hierarchical A vlan host1(config-interface)#ip policy-parameter hierarchical B forwarding host1(config-interface)#ip policy input IP_POL statistics enable host1(config-interface)#exit
   host1(config)#interface ip 3/0.1.2 host1(config-interface)#ip policy-parameter hierarchical A vlan host1(config-interface)#ip policy-parameter hierarchical B forwarding host1(config-interface)#ip policy input IP_POL statistics enable host1(config-interface)#exit