Administer > SA remote communications administration > SA Bandwidth Configuration Management tool

SA Bandwidth Configuration Management tool

SA BCM is not supported SA Cores/Satellites running Solaris or Red Hat Enterprise Linux 3 x86.

The BCM tool requires that your firewall allows SA network traffic on ports 3001 and 8086. If you plan to use the BCM tool administrative interface, port 8089 must also be open.

This section describes using the BCM tool to create bandwidth management configurations. These configuration can then be automatically synchronized across peer gateways.

Only administrative users who have root access to the gateway host can perform Gateway configuration push operation with the BCM tool.

Although the BCM tool is installed with a default configuration file:

/etc/opt/opsware/gateway_name/BWT.conf

You should not modify that file directly. Make a copy of the file and edit it to suit your configuration. You can then push the modified configuration file to all the gateway(s) in the realm using the gwctl –f command. See Invoking the Bandwidth Management Configuration tool.

Specified bandwidth configurations are saved to a configuration file. The following is an example of a typical Gateway configuration file:

enabled

# Branch offices have only 3M bytes per sec connections, SA should never use
# more than 512K bytes per sec.

queue branch_office bandwidth 512KB

 

# Branch offices A and B (non standard addresses)

class 192.168.1.[1-5,10-15,20,30] for branch_office

 

# Other branch offices

class 192.168.2.0/24 for branch_office

Invoking the Bandwidth Management Configuration tool

You invoke the BCM tool as a command line tool.

On the Satellite whose SA Agent configuration you want to manage, use the following commands:

gwctl: [OPTIONS] ...

Bandwidth Configuration Management tool options

Option

Description

-?, --help

Display usage.

-p, --port

When specified with -l. lists the agent gateway proxy port (default 3001).

When specified with other options (such -d, -e, -f, -v, -c, -s, etc.), displays the bandwidth throttle configuration port (default 8086).

-l, --list_gws

List all the gateways in this realm.

-f, --conf

Configuration file.

-v, --verify_conf

Verify configuration file and exit; Do not push it to the gateways.

Note This option is used only with the -f <conf_path> option.

-c, --cksum

Display the checksum of the configuration file.

Note This option is used only with the -f <conf_path> option.

-e, --enable_bwt

Enable bandwidth throttling for this realm.

-d, --disable_bwt

Disable bandwidth throttling for this realm.

-r, --request_conf

Request the configuration from the given gateway.

-s, --signature

Request the configuration signatures from the given gateway.

-z, --verbose

Display all messages.

The following are example commands.

To list the gateways in the realm:

gwctl -l

To specify a different agent gateway port:

gwctl --port 2003 -l

To verify the configuration file only:

gwctl -f myconf.conf -v

To push the configuration file to all Agent Gateways in the realm (including localhost):

gwctl -f mytconf.conf

Enabling or disabling remote connection bandwidth management

You must enable or disable remote connection bandwidth management in one of two ways:

  • By pushing a bandwidth configuration file containing the enabled or disabled keyword as the first entry in the file. Each configuration file must contain enabled or disabled as first line in the file, indicating the status of bandwidth throttling.
  • From the command line using gwctl –e to enable bandwidth management or gwctl –d to disable bandwidth management. The bandwidth management state of enabled or disabled persists in the bandwidth management configuration file with no version upgrade.

Bandwidth configuration grammar

The Context Free Grammar (CFG) of Bandwidth Configuration in EBNF format:

config : ((queue | class | version | config_source | config_user | disabled | 
comment)? '\n')\*
 
queue  : 'queue' queue_name 'bandwidth' d_number bandwidth_spec 
('rtt' d_number)? ('parent' queue_name 'borrow')?
 
queue_name : "[a-zA-Z0-9_]+"
 
class  : 'class' pattern (',' pattern)* 'for' queue_name
 
pattern : ipv4 | ipv4_cidr
 
ipv4 : ipv4_address_pattern_element ('.' ipv4_address_pattern_element)@1:3
 
ipv4_cidr : d_number ('.' d_number)@1:3 '/' d_number
 
ipv4_address_pattern_element : single_number | range | range_class | wildcard range_class : '[' (number ('-' number)? ',')+ ']'
 
wildcard : '*'
 
range : '[' number '-' number ']'
 
single_number : d_number
 
number : d_number
 
d_number : "[0-9]+"
 
x_number : "[a-fA-F0-9]+"
 
bandwidth_spec : "[GMK]?[bB]"
 
config_source : 'config-source' ':' "[a-zA-Z0-9.:\-]+"
 
config_user   : 'config-user' ':' "[a-zA-Z0-9_!@#$%^&*();.`~\-\\]+"
 
disabled : 'disabled'
 
comment  : '#' "[^\n]*"