|
|
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.
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.
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.
Only releases 8.2.5, 8.4, and 8.5 of Switch Software are supported.
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.
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.
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).
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.
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.
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.
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 -cThe 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% unGroupThe 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 ****************************************************************
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:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Posted: Thu Nov 4 21:22:42 PST 1999
Copyright 1989-1999©Cisco Systems Inc.