Cisco – QoS bandwith calculation

bandwidthciscoh-qosqos

Please explain:

I have two routers with QoS on them.. Both WAN-facing interfaces have a bandwidth command with the same value (100000) but the priority queue (also the other reservations) calculates a different amount of kbps for this queue? I would think that when the bandwidth is the same the calculated result of kbps per queue should be the same?

The fist router (lets call it router a) is at the main office and has a multi-point connection to 3 other routers at branch offices. The real bandwidth at the main office is 300Mbit and at the branches its 100Mbit. I made a HQos script to shape the bandwidth
at the main to 100mbit per site (parent) and then the QoS queues (child). I put the bandwidth on the main to 100Mbit to make sure it would calculate the bandwidth (all in percentages) in the correct way (e.g. 100mbit per site). I know i could use a strict amount of bandwidth but I wonder why this is not functioning the way I think it should..

main router (A):

interface GigabitEthernet0/0
 description WAN
 bandwidth 100000
 ip address 172.16.2.1 255.255.255.0
 ip flow ingress
 ip flow egress
 ip ospf message-digest-key 1 md5 7 
 duplex full
 speed 1000
 service-policy output 300Mb-forward-qos
end



Service-policy output: 300Mb-forward-qos

Class-map: site1-100Mb-forward-qos (match-all)
  97350980 packets, 60719394859 bytes
  5 minute offered rate 1891000 bps, drop rate 0 bps
  Match: access-group name site1
  Queueing
  queue limit 64 packets
  (queue depth/total drops/no-buffer drops) 0/864/0
  (pkts output/bytes output) 97350116/60718176568
  shape (peak) cir 97000000, bc 388000, be 388000
  target shape rate 194000000

  Service-policy : forward-qos

    queue stats for all priority classes:

      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 148794/7659376

    Class-map: forward-qos-class-prec5 (match-all)
      148794 packets, 7659376 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: ip precedence 5
      Priority: 10% (2500 kbps), burst bytes 62500, b/w exceed drops: 0
      !^^^^^^^^^^^^^^^^^^^^^^^^

Router at branch (B)

interface GigabitEthernet0/0
 description WAN
 bandwidth 100000
 ! ^^^^^^^^^^^^^^
 ip address 172.16.2.4 255.255.255.0
 ip ospf message-digest-key 1 md5 7 12480603150C02573E
 duplex auto
 speed auto
 service-policy output 100Mb-forward-qos
end



  Service-policy : forward-qos

    queue stats for all priority classes:

      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 3873239/716718654

    Class-map: forward-qos-class-prec5 (match-all)
      3873238 packets, 716718440 bytes
      5 minute offered rate 123000 bps, drop rate 0 bps
      Match: ip precedence 5
      Priority: 10% (5000 kbps), burst bytes 125000, b/w exceed drops: 0
      !^^^^^^^^^^^^^^^^^^^^^^^^

Best Answer

There is no need to put a bandwidth statement on the router (A) interface. If you're doing H-QoS then you shape to 100Mb on the parent, while the child policies then inherit that shaped value.

Like so:

policy-map parent
 class class-default
  shape average 100m
  service-policy child

policy-map child
 class EF
  priority percent 5

If you put bandwidth statement on the physical interface you mess up the H-QoS calculation. It's fine for the branches as they are not running H-QoS