Saturday, 12 June 2010

QoS - Bandwidth, Bandwidth Percent, Bandwidth Remaining Percent

OK, I need to get this firmly lodged in my brain. What exactly are the differences in all of the bandwidth statements when using Modular QoS CLI (MQC)?

Let's start with two values:

The actual total bandwidth of the interface which we'll call int-bw.

The maximum bandwidth that can be reserved on an interface (default 75%) which we'll call max-resv-bw.

There are 3 bandwidth statements that can be used in MQC but note that you must only use one type of bandwidth statement per policy map (e.g. you cannot use bandwidth and bandwidth percent in the same policy map).

The first statement is simply bandwidth [kbps] which reserves the value specified from the actual total bandwidth, int-bw. Remember that the total value of all of the bandwidth statements cannot exceed the maximum bandwidth that can be reserved max-resv-bw.

The second statement is bandwidth percent [percent] which reserves the specified percentage of the actual total bandwidth, int-bw. Remember that the total value of all of the bandwidth percent statements cannot exceed the maximum bandwidth that can be reserved max-resv-bw.

The third statement is bandwidth remaining percent [percent] which reserves the specified percentage of the remaining maximum reservable bandwidth. Remember that the total value of all of the bandwidth remaining percent statements cannot exceed the maximum bandwidth that can be reserved max-resv-bw.

This is probably all better served with an example. Let's say that we have a policy-map with two classes in there, class1 and class2, applied to an interface whose bandwidth is 256kbps. We have the following two values:

int-bw = 256kbps
max-resv-bw = 256kbps * 0.75 = 192kbps

Note 0.75 in the max-resv-bw calculation as by default max-resv-bw is 75% of int-bw.

Let's see how the bandwidth statement affects the policy map:

class class1
bandwidth 64
class class2
bandwidth 32

Quite simply, class1 will be reserved a minimum of 64kbps and class2 will be reserved a minimum of 32kbps. However, if the total of all of the bandwidth statements exceeded the max-resv-bw of the interface (192kbps in this case) Cisco IOS would not allow the policy-map to be applied to the interface. In the example above the total of all of the bandwidth statements is 96kbps which is less than the max-resv-bw of 192kbps.

Let's see how the bandwidth percent statement affects the policy map:

class class1
bandwidth percent 20
class class2
bandwidth percent 10

In this case, class1 will be reserved a minimum of 20% of int-bw which is 52kbps in this example and class2 will be reserved a minimum of 10% of int-bw which is 25.6kbps. However, if the total of all of the bandwidth percent statements exceeded the max-resv-bw of the interface (192kbps in this case) Cisco IOS would not allow the policy-map to be applied to the interface. In the example above the total of all of the bandwidth statements is 77.6kbps which is less than the max-resv-bw of 192kbps.

Let's see how the bandwidth remaining percent statement affects the policy map:

class class1
bandwidth remaining percent 20
class class2
bandwidth remaining percent 10

In this case, class1 will be reserved a minimum of 20% of max-resv-bw which is 38.4kbps in this example and class2 will be reserved a minimum of 10% of max-resv-bw which is 19.2kbps. However, if the total of all of the bandwidth remaining percent statements exceeded the max-resv-bw of the interface (192kbps in this case) Cisco IOS would not allow the policy-map to be applied to the interface. In the example above the total of all of the bandwidth statements is 57.6kbps which is less than the max-resv-bw of 192kbps.

In essence the following formulas hold true:

Bandwidth - Reserves value specified. Total of all statements in same policy map cannot exceed max-resv-bw.

Bandwidth Percent - Reserves specified percentage of int-bw. Total of all statements in same policy-map cannot exceed max-resv-bw.

Bandwidth Remaining Percent - Reserves specified percentage of max-resv-bw. Total of all statements in same policy-map cannot exceed max-resv-bw.

Finally, you can change the value of max-resv-bw at the interface level. However, Cisco does not recommend that you do this as to allow for control traffic. To do this use the max-reserved-bandwidth [percent] command. For example, if I wanted to be able to reserve 85% of Serial 0/0 bandwidth I would do the following:

interface Serial0/0
max-reserved-bandwidth 85

I hope this has helped you as much as it has helped me bt typing it out.

Good luck with your studies!