Configuring Guaranteed Minimum Bandwidth (GMB) for outbound traffic


[NOTE: ]

NOTE: Earlier software releases supported GMB configuration on a per-port basis. Beginning with software release 15.18, the HP 5400R and 3800 switches also support GMB configuration on static trunks. (GMB configuration is not supported on dynamic LACP or distributed (DT) trunks.)

GMB configuration on static trunks is not supported on switches running software release K.15.xx (3500/3500yl, 5400zl, 6200yl, 6600, and 8200zl).


For any port, group of ports, or static trunk you can use the default minimum bandwidth settings for each outbound priority queue or a customized bandwidth profile. It is also possible to disable the feature entirely.


[NOTE: ]

NOTE: For application to static trunk interfaces, GMB enforcement is applied individually to each port belonging to the trunk, and not to the trunk as a whole.


By default, GMB is configured with a recommended profile for outgoing traffic that prevents higher-priority queues from starving lower-priority traffic. In the eight-queue configuration, the default values per priority queue are:

  • Queue 1 (low priority): 2%

  • Queue 2 (low priority): 3%

  • Queue 3 (normal priority): 30%

  • Queue 4 (normal priority): 10%

  • Queue 5 (medium priority): 10%

  • Queue 6 (medium priority): 10%

  • Queue 7 (high priority): 15%

  • Queue 8 (high priority): 20%

The value for each of the queues indicates the minimum percentage of port throughput that is guaranteed for that queue. If a given queue does not require its guaranteed minimum in a given service window, any extra bandwidth is allocated to the other queues, beginning with the highest-priority queue.

The actual number of queues can be two, four, or eight, depending on either the system default or the value set by the latest instance of the qos queue-config <n-queues> command. Per-queue values must be specified starting with queue 1 being the lowest priority and queue 8 being the highest priority. If desired, the highest-priority queue may be put into “strict” mode by specifying strict rather than a percentage value. In strict mode, the highest-priority queue gets all the bandwidth it needs, and any remaining bandwidth is shared among the non-strict queues based on their need and their configured bandwidth profiles. If no guaranteed minimum bandwidth is configured (i.e., the settings for all queues are 0), the traffic is serviced strictly by priority. In practice, this may cause complete starvation of some or all lower-priority queues during any periods where the output port traffic is over-subscribed.

This is an Interface context command. It can be called directly from the interface context, or following the interface <PORT-LIST> command. For most applications, HP recommends having the same GMB profile on all the ports on a switch so that the outbound traffic profile is consistent for all outbound traffic. However, there may be instances where it may be advantageous to configure special profiles on connections to servers or to the network infrastructure (such as links to routers, other switches, or to the network core).

For more details on GMB operation, see Guaranteed minimum bandwidth (GMB).

Syntax

[no] int <PORT-LIST|TRK-LIST> bandwidth-min output

Configures the default minimum bandwidth allocation for the outbound priority queue for each port in the PORT-LIST.

Syntax for non-default GMB settings

[no] int <PORT-LIST|TRK-list> bandwidth-min output queue1_% | queue2_% | queue3_% | queue_4% | queue5_% | queue6_% | queue7_% | queue8_% strict


[NOTE: ]

NOTE: The queueN_% setting can be a value from 0 to 100.

The strict option applies only to the highest-priority (last) outbund queue for each port affected by the command.


The no form of the command disables GMB for all ports in the PORT-LIST. In this state, which is the equivalent of setting all outbound queue minimum guarantees on a port to 0 (zero), a high level of higher-priority traffic can starve lower-priority queues, which can slow or halt lower-priority traffic in the network.

You can configure bandwidth minimums from either the global configuration level (as shown above) or from the port context level, however you must configure one minimum bandwidth percent setting for each outbound queue.

For ports in PORT-LIST (including static trunks) this command, specifies the minimum outbound guaranteed bandwidth as a percent of the total bandwidth for each outbound queue. The queues receive service in descending order of priority. For example, to configure GMB on port A10 and trunk trk1, you would use a command with bandwidth values similar to the following:

HP Switch# int a10,trk1 bandwidth-min output 2 3 30 10 10 10 15 20


[NOTE: ]

NOTE: For application to static trunk interface such as trk1 in the above example, GMB enforcement is applied individually to each port belonging to the trunk, and not to the trunk as a whole.


You must specify a bandwidth percent value for all except the highest priority queue, which may instead be set to "strict" mode. The sum of the bandwidth percentages below the top queue cannot exceed 100%. ( 0 can be used as a value for a queue percentage setting.)

Configuring a total of less than 100% across the outbound queue set results in unallocated bandwidth that remains harmlessly unused unless a given queue becomes oversubscribed. In this case, the unallocated bandwidth is apportioned to oversubscribed queues in descending order of priority.

For example, if you configure a minimum of 10% for queues 1 to 7 and 0% for queue 8, the unallocated bandwidth is available to all eight queues in the following prioritized order:

Queue 7 (high priority)
Queue 6 (medium priority)
Queue 5 (medium priority)
Queue 4 (normal priority)
Queue 3 (normal priority)
Queue 2 (low priority)
Queue 1 (low priority)
Queue 8 (high priority)

[NOTE: ]

NOTE: In practice, the above priorities are the result of the configured minimum of 10% for queues 1 through 7 and 0% for queue 8. However, the switch does check queue 8 periodically and services it any time the bandwidth needed in a lower-priority queue goes below its minimum.


A setting of 0 (zero percent) on a queue means that no bandwidth minimum is specifically reserved for that queue for each of the ports in the <PORT-LIST>.

Also, there is no benefit to setting the high-priority queue (queue 8) to 0 (zero) unless you want the medium queue (queue 4) to be able to support traffic bursts above its guaranteed minimum.

Using Strict mode

Strict mode provides the ability to configure the highest priority queue as strict. Per-queue values must be specified in priority order, with queue 1 having the lowest priority and queue 8 (or 4, or 2) having the highest priority. (The highest queue is determined by how many outbound queues are configured on the switch. Two, four, and eight queues are permitted. (See the qos queue-config command.) The strict queue is provided all the bandwidth it needs. Any remaining bandwidth is shared among the non-strict queues based on need and configured bandwidth profiles. (The profiles are applied to the leftover bandwidth in this case.) The total sum of percentages for non-strict queues must not exceed 100.


[NOTE: ]

NOTE: Configuring 0% for a queue can result in that queue being starved if any higher queue becomes over-subscribed and is then given all unused bandwidth.

The switch applies the bandwidth calculation to the link speed the port is currently using. For example, if a 10/100 Mbs port negotiates to 10 Mbps on the link, it bases its GMB calculations on 10 Mbps, not 100 Mbps.

Use show bandwidth output<PORT-LIST|TRK-LIST> to display the current GMB configuration. (The show config and show running commands do not include GMB configuration data.)


Example

For example, suppose you want to configure the following outbound minimum bandwidth availability for ports A1 through A5:

Priority of outbound port queue Minimum bandwidth % Effect on outbound bandwidth allocation
8 20%

Queue 8 has the first priority use of all outbound bandwidth not specifically allocated to queues 1 to 7.

If, for example, bandwidth allocated to queue 5 is not being used and queues 7 and 8 become oversubscribed, queue 8 has first-priority use of the unused bandwidth allocated to queue 5.

7 15%

Queue 7 has a GMB of 15% available for outbound traffic. If queue 7 becomes oversubscribed and queue 8 is not already using all of the unallocated bandwidth, queue 7 can use the unallocated bandwidth.

Also, any unused bandwidth allocated to queues 6 to queue 1 is available to queue 7 if queue 8 has not already claimed it.

6 10%

Queue 6 has a GMB of 10% and, if oversubscribed, is subordinate to queues 8 and 7 in priority for any unused outbound bandwidth available on the port.

5 10%

Queue 5 has a GMB of 10% and, if oversubscribed, is subordinate to queues 8, 7, and 6 for any unused outbound bandwidth available on the port.

4 10%

Queue 4 has a GMB of 10% and, if oversubscribed, is subordinate to queues, 8, 7, 6, and 5 for any unused outbound bandwidth available on the port.

3 30%

Queue 3 has a GMB of 30% and, if oversubscribed, is subordinate to queues, 8, 7, 6, 5, and 4 for any unused outbound bandwidth available on the port.

2 3%

Queue 2 has a GMB of 3% and, if oversubscribed, is subordinate to queues, 8, 7, 6, 5, 4, and 3 for any unused outbound bandwidth available on the port.

1 2%

Queue 1 has a GMB of 2% and, if oversubscribed, is subordinate to all the other queues for any unused outbound bandwidth available on the port.

Either of the following commands configures ports A1 through A5 with bandwidth settings:

HP Switch(config) # int a1-a5 bandwidth-min output 2 3 30 10 10 10 15 strict
HP Switch(eth-A1-A5) # bandwidth-min output 2 3 30 10 10 10 15 strict

Viewing the current GMB configuration

This command displays the per-port GMB configuration in the running-config file.

Syntax

show bandwidth output <PORT-LIST|TRK-LIST>

Without PORT-LIST, this command lists the GMB configuration for all ports on the switch.

With PORT-LIST, this command lists the GMB configuration for the specified ports.

This command operates the same way in any CLI context. If the command lists Disabled for a port, there are no bandwidth minimums configured for any queue on the port.

Example

To display the GMB configuration resulting from either of the above commands:

Listing the GMB configuration

(HP_Switch_name#) show bandwidth output a1-a5

 Outbound Guaranteed Minimum Bandwidth %

  Port   Q1  Q2     Q3  Q4     Q5  Q6  Q7  Q8
  ------ --- ------ --- ------ --- --- --- ------
  A1     2   3      30  10     10  10  15  strict
  A2     2   3      30  10     10  10  15  strict
  A3     2   3      30  10     10  10  15  strict
  A4     2   3      30  10     10  10  15  strict
  A5     2   3      30  10     10  10  15  strict

The following figure shows how the preceding listing of the GMB configuration would appear in the startup-config file.

GMB settings listed in the show config output

(HP Switch#) show config status
Running configuration is same as the startup configuration
(HP Switch#) show config

Startup configuration:
; J9821A configuration Editor; Created on release #KB.15.18.0001

hostnme “HP Switch”
module 1 type J9986A
snmp-server community “public” Unrestricted
vlan 1
   name “DEFAULT_VLAN”
   untagged A1-A24
   ip address dhcp-bootp 
   exit
interface A1
   bandwidth-min output 2 3 30 10 10 10 15 strict
   exit 
interface A2
   bandwidth-min output 2 3 30 10 10 10 15 strict 
   exit
interface A3
   bandwidth-min output 2 3 30 10 10 10 15 strict
   exit 
interface A4
   bandwidth-min output 2 3 30 10 10 10 15 strict 
   exit
interface A5
   bandwidth-min output 2 3 30 10 10 10 15 strict
   exit

Output when trunk name specified

HP-5406zl# show bandwidth output Trk1
Outbound Guaranteed Minimum Bandwidth %
 
Port   Q1  Q2     Q3  Q4     Q5  Q6  Q7  Q8
------ --- ------ --- ------ --- --- --- ------
Trk1   10  15     10  15     10  15  10  15

Output when no port list specified

HP-5406zl# show bandwidth output
Outbound Guaranteed Minimum Bandwidth %

Port   Q1  Q2     Q3  Q4     Q5  Q6  Q7  Q8
 ------ --- ------ --- ------ --- --- --- ------
A1     2   3      30  10     10  10  15  20
A2     10  15     10  15     10  15  10  15
A3     2   3      30  10     10  10  15  20
A4     2   3      30  10     10  10  15  20
A5     2   3      30  10     10  10  15  20
A6     2   3      30  10     10  10  15  20
A7     2   3      30  10     10  10  15  20
A8     2   3      30  10     10  10  15  20
A9     2   3      30  10     10  10  15  20
A10    2   3      30  10     10  10  15  20
A11    2   3      30  10     10  10  15  20
A12    2   3      30  10     10  10  15  20
A13    2   3      30  10     10  10  15  20
A14    2   3      30  10     10  10  15  20
A15    2   3      30  10     10  10  15  20
A16    2   3      30  10     10  10  15  20
A17    2   3      30  10     10  10  15  20
A18    2   3      30  10     10  10  15  20
A19    2   3      30  10     10  10  15  20
A20    2   3      30  10     10  10  15  20
A21    2   3      30  10     10  10  15  20
A22    2   3      30  10     10  10  15  20
A23    2   3      30  10     10  10  15  20
A24    2   3      30  10     10  10  15  20
F1     2   3      30  10     10  10  15  20
F2     2   3      30  10     10  10  15  20
F3     2   3      30  10     10  10  15  20
F4     2   3      30  10     10  10  15  20
F5     2   3      30  10     10  10  15  20
F6     2   3      30  10     10  10  15  20
F7     2   3      30  10     10  10  15  20
F8     2   3      30  10     10  10  15  20
F9     2   3      30  10     10  10  15  20
F10    2   3      30  10     10  10  15  20
F11    2   3      30  10     10  10  15  20
F12    2   3      30  10     10  10  15  20
F13    2   3      30  10     10  10  15  20
F14    2   3      30  10     10  10  15  20
F15    2   3      30  10     10  10  15  20
F16    2   3      30  10     10  10  15  20
F17    2   3      30  10     10  10  15  20
F18    2   3      30  10     10  10  15  20
F19    2   3      30  10     10  10  15  20
F20    2   3      30  10     10  10  15  20
F21    2   3      30  10     10  10  15  20
F22    2   3      30  10     10  10  15  20
F23    2   3      30  10     10  10  15  20
F24    2   3      30  10     10  10  15  20
Trk1   10  15     10  15     10  15  10  15
Trk2   15  10     15  10     15  10  15  10

Validation rules

Validation

Error/Warning/Prompt

Rate-limit queues out percent command

Valid port number?

Invalid port number

Valid trunk interface?

Invalid trunk interface

Trunk type supported?

Unsupported trunk type

Maximum bandwidth value is greater than the minimum bandwidth configured for a queue?

Invalid maximum value.

Bandwidth-min output command

Valid trunk interface?

Invalid trunk interface

Trunk type supported?

Unsupported trunk type

Minimum bandwidth value is lesser than the maximum bandwidth configured for a queue?

Invalid minimum value.

Show rate-limit queues command

Valid port number?

Invalid port number

Valid trunk interface?

Invalid trunk interface

Trunk type supported?

Unsupported trunk type

Show bandwidth output command

Valid trunk interface?

Invalid trunk interface

Trunk type supported?

Unsupported trunk type

Event log

Event

Message

Invalid port number

The port number <port num> entered is invalid.

Invalid trunk interface

The trunk <trunk name> entered is invalid.

Unsupported trunk type

This command is not supported on distributed or dynamic trunks.

Invalid maximum value

The maximum bandwidth value <max value > entered should be greater than the minimum bandwidth value <min value> configured.