cc/td/doc/product/rtrmgmt/cwm/9_2_06
hometocprevnextglossaryfeedbacksearchhelp
PDF

Table of Contents

unGroup Connections Tool

unGroup Connections Tool

This appendix describes the installation and use of the unGroup script. This script is designed to allow a network administrator to automatically ungroup all grouped PVCs on an BPX®8600 series or IGX 8400 node.

The purpose of the unGroup script is to support the switch software upgrades to version 9.1. Grouped connections are no longer supported in switch software version 9.1. The primary motivation for the development of this tool is to allow users to easily ungroup PVCs before upgrading, thereby allowing a switch software upgrade without losing any PVCs.


Note If the unGroup script is invoked toward a network that has no grouped connections, (regardless of the switch software release in use), a message is received stating that there was an error accessing the CWM database.

Feature Overview

Prior to ungrouping connections, the script checks to make sure that the lcon limit for a given switch would not be exceeded while ungrouping the connections (see table in section 5.0). The script will ungroup Frame Relay, ATM, and Service Interworking connections. All parameters for each connection will be saved in a log file for error recovery. Preferred routes will be preserved for each connection.

Operational Overview

The script will first use node and connection information from the CWM database to determine, for each node, if the lcon limit would be exceeded by ungrouping all grouped connections on that node. Then for each node, the script using SNMP will get all the groups for that node, and ungroup each group one at a time. For each connection in a group, the connection parameters are retrieved from the node, and the connection is deleted. Using the saved parameters, the connection is then re-added. Once all connections are ungrouped, the empty group is deleted.

Supported Switch Software Releases

Only releases 8.2.5, 8.4, and 8.5 of Switch Software are supported.

Operating Environment

The unGroup script must be installed and run on a workstation which is running Solaris, and which is running StrataView Plus version 8.4, 9.0, 9.1, or CWM 9.2. Since the CWM database is used, CWM must be running and in sync with the network.


Note AIX is not supported.

Required Directories

This script is actually one binary, and two SQL scripts - three files in all. They must be installed on a CWM workstation, in the /usr/users/svplus/tools directory.

Note that all log files generated by the unGroup script are automatically placed in the /usr/users/svplus/log directory. This directory must already exist on the workstation. It will not be created if it does not already exist and the script will not run.

File Ownerships and Modes

The ownership and group of the files should be the user svplus and the group svplus. The script must be run by the user svplus from the directory /usr/users/svplus/tools. To launch the script, enter ./unGroup.

All files must be configured to be executable (typically using modes 755 or 777).

Accessing the IGX and BPX Nodes

In an in-band network management configuration, the IP-Relay addresses of all nodes are obtained from the CWM database, and used for executing SNMP requests to the nodes.

Theory of Operation

When the script starts, it first accesses the CWM database to obtain node and connection information. Specifically it gets the node name, IP address, node type, switch software release, number of virtual connections, and number of groups. Only nodes which are an IGX or BPX, and are active and reachable, are retrieved from the database. Then for each node a SNMP GET request is made to get the switch to get the amount of RAM on the active processor card. If no processor card is found to be in the active state, an error is printed and this node is skipped. Note that all SNMP requests are made using the IP address from the database.

Next, for each node a check is done to see if the switch lcon limit would be exceeded if all grouped connections were ungrouped on that node. Using the node type, switch software release, and RAM size on the active processor card, the following table is indexed for the lcon limit.

BCC 32 BCC64 NPC 16 NPC 32&64 NPM 32 NPM 64
8.2.5

1000

n/a

850

1000

1000

1000

8.4

7000

12000

850

1500

1500

1500

8.5

7000

12000

850

1500

2750

3500

The lcon limit is compared with the VC count from the CWM database. If the limit would be exceeded, this node is marked, so as not to be ungrouped.


Note To check the number of lcons using the switch CLI, use the command: dlcon t. To check the number of PVCs using the switch CLI use the command: dvc t.

Next, for each node which has grouped connections (as determined from the CWM database), and not marked as "limit exceeded", SNMP GETNEXTs are used to obtain all the groups for this node. These include all local (master end) and remote empty groups, and all local (master end) nonempty groups. All empty groups are deleted first, then for each nonempty local (master end) group all PVCs are ungrouped

For each PVC to be ungrouped, SNMP GETs are used to obtain all of the current configuration parameters pertaining to the PVC. The SNMP responses received are included in the log file.

Next, an SNMP SET is used to delete the PVC. It is necessary to delete the existing PVC before adding the new PVC in order to free the resources at the other end of the PVC.

Finally, SNMP SETs are used to add the new PVC using all the same parameters as the old PVC. These include end point parameters, class of service, and preferred route.

Once this process has completed for all connections in a given group, that empty group is then deleted.

This process continues for all groups on a given node, and for all nodes.

Script Operation

To run the unGroup script, make sure you are logged into the directory which contains the files.

host% ls -l

-r-xr-xr-x  1 svplus   1204224 Feb 26 11:33 unGroup
-r-xr-xr-x  1 svplus 9011 Feb 26 11:33 gconn.sql
-r-xr-xr-x  1 svplus 1390 Feb 26 11:33 pref.sql
host%
 

The unGroup script options: unGroup [-c] [-n nodename] [-t timeout]

The "-c" option will "check" all nodes to see if the lcon limit for that node would be exceeded if all groups on that node were ungrouped. It will produce a report, with a line for each node, and then the script will exit. This option is used to determine if ungrouping is possible.

The "-n nodename" option will only ungroup connections on that node.

The "-t timeout" option is for setting the SNMP timeout value. This can be used if the default value of 30 seconds is not enough. The value of "timeout" should be in seconds.

With no option, the unGroup script will check all nodes for lcon limits, and print a report as before, then begin prompting the user for confirmation on each node to be ungrouped.

To begin execution of the unGroup script to check all nodes, and produce a lcon limit report, simply type:

host% unGroup -c

The script clears the current window, displays an information banner, and then reads the node, and connection information from the CWM database. The script will then get the active processor card ram size, for each node, check lcon limits, and produce a report:

      ******************************************************************
      ** unGroup                                                      **
      ** ~~~~~~~                                                      **
      ** This is a tool which can  be used for ungrouping all grouped **
      ** connections for all nodes in the network. The groups are     **
      ** ungrouped by deleting and readding the connections, one at   **
      ** time.                                                        **
      **                                                              **
      ******************************************************************
 
      Log file name: /usr/users/svplus/log/ungconn.log.980204_104834
 
      Getting node information from the CWM database...
      Checking lcon limits for all nodes...
 
      Node: nmsbpx02   Lcon limit:  7000, VC count:    33 - OK
      Node: nmsipx15   Lcon limit:  1500, VC count:    73 - OK
      Node: nmsbpx06   Lcon limit:  7000, VC count:    73 - OK
 
 
      All nodes have enough lcons for ungrouping.
 
 

The following is the contents of the log file for the example above:

STARTING ungconn  : Time - 10:48:34
Getting node information from the CWM database...
Checking lcon limits for all nodes...
Node: nmsbpx02 release:8.4.1.1 ram size: 32 lcon_limit:  7000 VC count:    33 - OK
Node: nmsipx15 release:8.4.1.1 ram size: 16 lcon_limit:  1500 VC count:    73 - OK
Node: nmsbpx06 release:8.4.1.1 ram size: 32 lcon_limit:  7000 VC count:    73 - OK
All nodes have enough lcons for ungrouping.
 
CHECKING LCON LIMITS COMPLETE : Time - 10:48:37
 

If one the the nodes lcon limits was exceeded, the following messages would be printed to the console and log file:

Node: nmsbpx02   Lcon limit:  7000, VC count:    33 - OK
  --> Node: nmsipx15   Lcon limit:  1500, VC count:  1510 - LIMIT EXCEEDED
      Node: nmsbpx06   Lcon limit:  7000, VC count:    73 - OK
 
      ONE OR MORE NODES WILL EXCEED LCON LIMIT IF CONNECTIONS ARE UNGROUPED.
 

To begin execution of the unGroup script to ungroup connections for all nodes, simply type:

host% unGroup

The script will as before get information from the database, check lcon limits, and the prompt the user for the first node to be ungrouped:

      ******************************************************************
      ** unGroup                                                      **
      ** ~~~~~~~                                                      **
      ** This is a tool which can  be used for ungrouping all grouped **
      ** connections for all nodes in the network. The ungrouping is  **
      ** done by deleting and readding each connection one at a time. **
      **                                                              **
      ******************************************************************
 
      Log file name: /usr/users/svplus/log/ungconn.log.980204_163037
 
      Getting node information from the CWM database...
      Checking lcon limits for all nodes...
 
Do you want to ungroup connections on nmsbpx02 ? (Y/N): 
 

If the user types no or n, the script will skip to the next node. If the user types quit or q, the script will exit. If confirmed by typing yes (or y) then the groups for that node are ungrouped:

      Do you want to ungroup connections on nmsbpx02? (Y/N/Q): y
      Determining number of groups...
 
      Starting to ungroup 10 groups on nmsbpx02
      Deleting empty group : D1.nmsipx15.9 successful
      Deleting empty group : D1.nmsipx15.1 successful
      Deleting empty group : D1.nmsipx15.2 successful
      Deleting empty group : D1.nmsipx15.12 successful
      Deleting empty group : D1.nmsipx15.14 successful
      Conn: D1.nmsbpx02.11.2.109.101 - D1.nmsipx15.5.1.118:  successful.
      Conn: D1.nmsbpx02.11.2.109.100 - D1.nmsipx15.5.1.117:  successful.
      Deleting empty group : D1.nmsipx15.7 successful
      Conn: D1.nmsbpx02.11.1.100.409 - D1.nmsbpx06.11.1.100.409:  successful.
      Conn: D1.nmsbpx02.11.1.100.411 - D1.nmsbpx06.11.1.100.411:  successful.
      Conn: D1.nmsbpx02.11.1.100.410 - D1.nmsbpx06.11.1.100.410:  successful.
      Deleting empty group : D1.nmsbpx06.9 successful
      Conn: D1.nmsbpx02.11.2.107.103 - D1.nmsbpx06.11.1.107.103:  successful.
      Conn: D1.nmsbpx02.11.2.107.102 - D1.nmsbpx06.11.1.107.102:  successful.
      Conn: D1.nmsbpx02.11.2.107.101 - D1.nmsbpx06.11.1.107.101:  successful.
      Deleting empty group : D1.nmsbpx06.10 successful
      Conn: D1.nmsbpx02.11.1.111.303 - D1.nmsipx15.5.1.303:  successful.
      Conn: D1.nmsbpx02.11.1.111.302 - D1.nmsipx15.5.1.302:  successful.
      Deleting empty group : D1.nmsipx15.20 successful
      Conn: D1.nmsbpx02.11.1.111.305 - D1.nmsipx15.5.1.305:  successful.
      Conn: D1.nmsbpx02.11.1.111.304 - D1.nmsipx15.5.1.304:  successful.
      Deleting empty group : D1.nmsipx15.21 successful
 
      All 10 groups successfully ungrouped
 
      Do you want to ungroup connections on nmsipx15 ? (Y/N/Q): 
 

This process will continue for all nodes that have groups, and nodes where the lcon limit would not be exceeded.

The following is the log file content for the first PVC ungrouped in the example above:

STARTING ungconn  : Time - 16:30:37
Getting node information from the CWM database...
Checking lcon limits for all nodes...
Node: nmsbpx02 release:8.4.1.1 ram size: 32 lcon_limit:  7000 VC count:    33 - OK
Node: nmsipx15 release:8.4.1.1 ram size: 16 lcon_limit:  1500 VC count:    73 - OK
Node: nmsbpx06 release:8.4.1.1 ram size: 32 lcon_limit:  7000 VC count:    73 - OK
All nodes have enough lcons for ungrouping.
 
Getting all group id's from the connTable Mib table
Starting to ungroup 10 groups  on nmsbpx02
 
**** DELETING EMPTY GROUPS *************************************
 
Deleting Empty group: group_name = D1.nmsipx15.9
 
Deleting Empty group: group_name = D1.nmsipx15.1
 
Deleting Empty group: group_name = D1.nmsipx15.2
 
Deleting Empty group: group_name = D1.nmsipx15.12
 
Deleting Empty group: group_name = D1.nmsipx15.14
 
##### UNGROUPING GROUP D1.nmsipx15.7 #####
 
****************************************************************
UNGROUPING CONNECTION 1
endPtIndex = 16, connIndex = 0
 
RETRIEVING INFO FROM THE atmEndPt TABLE
atmEndptIndex             = 16
atmEndptDesc              = D1.nmsbpx02.11.2.109.101
atmOtherEndptIndex        = 43
atmOtherEndptDesc         = D1.nmsipx15.5.1.118
atmEndptAdminStatus       = 5
atmEndptOperStatus        = 1
atmNoRouteFoundFailure    = 1
atmBumpFailure            = 1
atmEndPointFailure        = 1
atmTestFailure            = 1
atmConnPtr                = .1.3.6.1.4.1.351.100.4.3.4.1.1.0
atmNextPtr                = .1.3.6.1.4.1.351.100.4.3.8.1.1.1
atmNextOnPortPtr          = .1.3.6.1.4.1.351.100.4.3.8.1.1.1
atmEndptTrkAvoidType      = 1
atmEndptTrkAvoidZCS       = 1
atmEndptSubType           = 1
atmEndptVcQSize           = 1366
atmEndptEfciQSize         = 100
atmEndptQIR               = 10
atmEndptPercUtil          = 100
atmEndptCBS               = 1000
atmEndptIBS               = 1
atmEndptCCDV              = 10000
atmEndptHiCLP             = 100
atmEndptLoCLP             = 90
atmEndptOeVcQSize         = 1366
atmEndptOeEfciQSize       = 100
atmEndptOeQIR             = 10
atmEndptOePercUtil        = 100
atmEndptOeCBS             = 1000
atmEndptOeIBS             = 1
atmEndptOeCCDV            = 10000
atmEndptOeHiCLP           = 100
atmEndptOeLoCLP           = 90
atmEndptCLPTagging        = 1
atmEndptEnableFST         = 2
atmEndptRateUpICA         = 2000
atmEndptRateDnICA         = 87
atmEndptToQIR             = 10000
atmEndptMinAdjustICA      = 100
atmEndptGroupFlag         = 2
atmEndptOamStatus         = 2
atmEndptBCM               = 2
atmEndptFGCRA             = 1
atmEndptLocLpbkState      = 2
atmEndptLpbkStatus        = -1
atmEndptTestType          = 2
atmEndptRtdTestDelay      = 0
atmEndptOeBCM             = 2
atmEndptOeFGCRA           = 1
atmEndptGroupDesc         = D1.nmsipx15.7
atmEndptLocRmtLpbkState   = 2
atmEndptNRM               = 32
atmEndptFRTT              = 0
atmEndptTBE               = 1048320
atmEndptVSVD              = 1
atmEndptPolicing          = 3
atmEndptPCR               = 10
atmEndptOePCR             = 10
atmEndptSCR               = 10
atmEndptOeSCR             = 10
atmEndptMCR               = 10
atmEndptOeMCR             = 10
 
RETRIEVING INFO FROM THE Connection TABLE
connIndex                 = 0
connLclEndptDesc          = D1.nmsipx15.7
connType                  = 2
connOeIndex               = 6
connRmtEndptDesc          = No Remote Connection Descriptor for a Grouped Connection
connMasterFlag            = 2
connClassOfService        = 0
connGroupFlag             = 2
connAdminStatus           = 4
connOperStatus            = 1
connNoRouteFoundFailure   = 1
connBumpFailure           = 1
connFirstEndptPtr         = .1.3.6.1.4.1.351.100.4.3.8.1.1.1
connCurrRouteDesc         = nmsbpx023.1--0.0nmsbpx060.0-- 8nmsipx15
connPrefRouteDesc         = Not Configured
connMstOSpacePkts         = 14620
connMstOSpaceCells        = 78343
connMstOSpaceBdaCmax      = 65534
connMstOSpaceBdbCmax      = 65534
connSlvOSpacePkts         = 2147483647
connSlvOSpaceCells        = 78384
connSlvOSpaceBdaCmax      = 65534
connSlvOSpaceBdbCmax      = 65534
connIcaRTD                = 0
connGroupDesc             = D1.nmsipx15.7
 
SUCCESSFULLY DELETED CONNECTION
endPtIndex = 16, connIndex = 0, D1.nmsbpx02.11.2.109.101 - D1.nmsipx15.5.1.118
 
ADDING CONNECTION
atmEndptDesc             : D1.nmsbpx02.11.2.109.101
atmOtherEndptDesc        : D1.nmsipx15.5.1.118
atmEndptAdminStatus      : 1
atmEndptTrkAvoidType     : 1
atmEndptTrkAvoidZCS      : 1
atmEndptSubType          : 1
atmEndptVcQSize          : 1366
atmEndptEfciQSize        : 100
atmEndptPercUtil         : 100
atmEndptCBS              : 1000
atmEndptIBS              : 1
atmEndptCCDV             : 10000
atmEndptOeVcQSize        : 1366
atmEndptOeEfciQSize      : 100
atmEndptOePercUtil       : 100
atmEndptOeCBS            : 1000
atmEndptOeIBS            : 1
atmEndptOeCCDV           : 10000
atmEndptPolicing         : 3
atmEndptPCR              : 10
atmEndptOePCR            : 10
atmEndptSCR              : 10
atmEndptOeSCR            : 10
 
CONN SUCCESSFULLY UNGROUPED
New EndPtIndex = 16, New connId = 3
All EndPt ConnInfo freed
****************************************************************
 

Limitations

The local and remote loopback states of a connection will not be preserved. All connections will not be in loopback after ungrouping.

If any error occurs while the script is running, an error is printed to the console and logged and the script exits. Corrective action can be taken and the script can be restarted.

Only one script should be run at a time, since running two scripts in parallel might cause one script to stop if it tries to delete a connection or group that was already deleted by the other script.

If the unGroup script is aborted while it is in the process of ungrouping connections, it will attempt to finish ungrouping the current connection it is on before exiting.

If an SNMP error or timeout occurs, it is possible for a connection to be deleted but not re-added. If this situation occurs, all of the information needed to manually rebuild the PVC is contained in the log file.

Due to the switch occasionally returning frame relay values that are not divisible by 100, the following MIB variables are converted:


hometocprevnextglossaryfeedbacksearchhelp
Posted: Thu Nov 4 21:22:42 PST 1999
Copyright 1989-1999©Cisco Systems Inc.