FAQ’s

Frequently asked questions

Have a questions? We are here to help.

General

To uninstall the software, please follow the instructions below:

Windows:

1) Open Programs and Features by clicking the Start button, clicking Control Panel, clicking Programs, and then clicking Programs and Features.
2) Select the SimpleSoft program, and then click Uninstall. 

Linux:

1) Find the uninstall script under the /bin directory.
2) Execute the uninstall script to unsinstall the SimpleSoft software.
To uninstall the software, please follow the instructions below:

Windows:

1) Open Programs and Features by clicking the Start button, clicking Control Panel, clicking Programs, and then clicking Programs and Features.
2) Select the SimpleSoft program, and then click Uninstall. 

Linux:

1) Find the uninstall script under the /bin directory.
2) Execute the uninstall script to unsinstall the SimpleSoft software.

SimpleTester

The MIB compiler provided by SimpleSoft is fairly stringent in checking for syntax errors. This helps you make sure that the MIBs provided by you to your customers are error free and will compile with most third party mib compilers.
Typical MIB errors are different names, and data types for MIB variables in the tableEntry declaration, versus actual columnar definitions.

Example:
 
aNewDataType ::=OCTET STRING
tableEntry OBJECT-TYPE
SYNTAX TableEntryA
….
TableEntryB ::=
SEQUENCE {
column1
INTEGER,
column2
Counter,
….
}
….
columnA OBJECT-TYPE
SYNTAX INTEGER {
Up (1),
almost_down(2),
down(3)
}

column 2 OBJECT-TYPE
SYNTAX Gauge

The above Example contains 6 errors:

1. User defined data types like “aNewDataType” should start with a capital letter. The valid way would be “ANewDataType”.
2. The SYNTAX of table Entry is of type “TableEntryA”, while later on “TableEntryB” is defined instead of “TableEntryA”. Make sure that the strings match.
3. The object descriptor “column1” is used in the definition of the SEQUENCE for tableEntry, while the words “columnA” are used in the column definition itself. Make sure that the object descriptors are the same.
4. One of the labels for the values in the enumerated integer columnA starts with a upper case character (“Up(1)”) The correct way is “up”(1).
5. One of the labels for the values in the enumerated integer contains an underscore “_”.(“almost_down(2)”) Underscore characters are not allowed. A possible valid alternative would be “almost-down(2)”.
6. The column2 is defined as a Counter in the SEQUENCE, but defined as a GAUGE in the actual OBJECT TYPE definition.
Warnings from the MIB Compiler are suggestions for a better MIB definition file, but dealing with them can be postponed, if desired. You can also compile the MIBs in a lenient mode.
The MIB compiler provided by SimpleSoft is fairly stringent in checking for syntax errors. This helps you make sure that the MIBs provided by you to your customers are error free and will compile with most third party mib compilers.
Typical MIB errors are different names, and data types for MIB variables in the tableEntry declaration, versus actual columnar definitions.

Example:
 
aNewDataType ::=OCTET STRING
tableEntry OBJECT-TYPE
SYNTAX TableEntryA
….
TableEntryB ::=
SEQUENCE {
column1
INTEGER,
column2
Counter,
….
}
….
columnA OBJECT-TYPE
SYNTAX INTEGER {
Up (1),
almost_down(2),
down(3)
}

column 2 OBJECT-TYPE
SYNTAX Gauge

The above Example contains 6 errors:

1. User defined data types like “aNewDataType” should start with a capital letter. The valid way would be “ANewDataType”.
2. The SYNTAX of table Entry is of type “TableEntryA”, while later on “TableEntryB” is defined instead of “TableEntryA”. Make sure that the strings match.
3. The object descriptor “column1” is used in the definition of the SEQUENCE for tableEntry, while the words “columnA” are used in the column definition itself. Make sure that the object descriptors are the same.
4. One of the labels for the values in the enumerated integer columnA starts with a upper case character (“Up(1)”) The correct way is “up”(1).
5. One of the labels for the values in the enumerated integer contains an underscore “_”.(“almost_down(2)”) Underscore characters are not allowed. A possible valid alternative would be “almost-down(2)”.
6. The column2 is defined as a Counter in the SEQUENCE, but defined as a GAUGE in the actual OBJECT TYPE definition.
Warnings from the MIB Compiler are suggestions for a better MIB definition file, but dealing with them can be postponed, if desired. You can also compile the MIBs in a lenient mode.
it is easier to start off by testing one MIB at time. Once all the MIBs are tested, you can test the complete Agent.
When you first test a particular MIB in a testAgent, select First Row only option for Walk Rows field in the Get Variables to Test screen and select First Row only option for Test Rows field in the Settings screen.
This will retrieve and test the first rows in a table only. Now run all the tests, and fix the errors found. The reason for doing that is if a table has 100 rows, the routines that implement the first row will most likely be the same as the routines that implement the 100th row. So rather than seeing the error reported 100 times, for the 100 instances, you can see it only once, and fix it.
After the tests in the test suites run without unaccountable errors, create a script file using the Script Generator with the Test Operation field set to “Set and Check” only. Run the created script in the Script Runner, with the Output Field set to Errors only. Look at the errors in the output file and then fix all the unaccountable errors.
Now you can do the full blown tests, with the Walk Rows field in the Get Variables to Test screen set to All Rows, and the Test Rows field in the Settings screen set to All Rows as well.
it is easier to start off by testing one MIB at time. Once all the MIBs are tested, you can test the complete Agent.

When you first test a particular MIB in a testAgent, select First Row only option for Walk Rows field in the Get Variables to Test screen and select First Row only option for Test Rows field in the Settings screen.

This will retrieve and test the first rows in a table only. Now run all the tests, and fix the errors found. The reason for doing that is if a table has 100 rows, the routines that implement the first row will most likely be the same as the routines that implement the 100th row. So rather than seeing the error reported 100 times, for the 100 instances, you can see it only once, and fix it.

After the tests in the test suites run without unaccountable errors, create a script file using the Script Generator with the Test Operation field set to “Set and Check” only. Run the created script in the Script Runner, with the Output Field set to Errors only. Look at the errors in the output file and then fix all the unaccountable errors.

Now you can do the full blown tests, with the Walk Rows field in the Get Variables to Test screen set to All Rows, and the Test Rows field in the Settings screen set to All Rows as well.
To uninstall the software, please follow the instructions below:
Windows:
1) Open Programs and Features by clicking the Start button, clicking Control Panel, clicking Programs, and then clicking Programs and Features.
2) Select the SimpleSoft program, and then click Uninstall. Linux:
Linux:
1) Find the uninstall script under the /bin directory.
2) Execute the uninstall script to unsinstall the SimpleSoft software.
To uninstall the software, please follow the instructions below:

Windows:

1) Open Programs and Features by clicking the Start button, clicking Control Panel, clicking Programs, and then clicking Programs and Features.
2) Select the SimpleSoft program, and then click Uninstall.

Linux:

1) Find the uninstall script under the /bin directory.
2) Execute the uninstall script to unsinstall the SimpleSoft software.

SimpleAgentPro

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The SimpleAgentPro uses a fairly stringent MIB compiler that catches a lot of errors in the MIBs. You need to fix these errors before the SimpleAgentPro can use the information in the MIBs. In Version 1.4 and above a file called “miberrs.out” is created in the current working directory that contains all the errors and warnings produced by the MIB compiler/sorter programs. The warning can be ignored, but not the errors. The errors also cause the compiled MIB file (cmf file) to be partially complete, which might make the SimpleAgentPro work incorrectly.

Typical MIB errors are different names, and data types for MIB variables in the tableEntry declaration, versus actual columnar definitions.

Example:

mY-MIB DEFINITIONS ::= BEGIN … aNewDataType ::=OCTET STRING tableEntry OBJECT-TYPE SYNTAX TableEntryA …. TableEntryB ::= SEQUENCE { column1 INTEGER, column2 Counter, …. } …. columnA OBJECT-TYPE SYNTAX INTEGER { Up (1), almost_down(2), down(3) } … column 2 OBJECT-TYPE SYNTAX Gauge …

The above Example contains 7 errors:

1. MIB Names like “mY-MIB” should start with a capital letter. The valid way would be “MY-MIB”. 2. User defined data types like “aNewDataType” should start with a capital letter. The valid way would be “ANewDataType”. 3. The SYNTAX of table Entry is of type “TableEntryA”, while later on “TableEntryB” is defined instead of “TableEntryA”. Make sure that the strings match. 4. The object descriptor “column1” is used in the definition of the SEQUENCE for tableEntry, while the words “columnA” are used in the column definition itself. Make sure that the object descriptors are the same. 5. The column2 is defined as a Counter in the SEQUENCE, but defined as a GAUGE in the actual OBJECT TYPE definition. 6. One of the labels for the values in the enumerated integer columnA starts with a upper case character (“Up(1)”) The correct way is “up”(1). 7. One of the labels for the values in the enumerated integer contains an underscore “_”.(“almost_down(2)”) Underscore characters are not allowed. A possible valid alternative would be “almost-down(2)”. Warnings from the MIB Compiler are suggestions for a better MIB definition file, but dealing with them can be postponed, if desired.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The SimpleAgentPro installation includes a sample modeling file called “dev1.tcl” which has example code that you can use to send a cold start trap at initialization time. Typically the enterpriseid field of a cold start trap is set the value of sysObjectId.0. The tcl script first gets this value at startup and then sends a cold start trap to a specified trap receipient manager, say 128.100.100.60.

# example of initial action that causes a cold start trap to

# be emitted to the associated trap manager

%init_action set varbind [SA_getvar {sysObjectID.0}]

set vb1 [lindex $varbind 0]

set val1 [lindex $vb1 2]

set args [list $val1 0 0 ]

SA_settrapmgrs 128.100.100.60

SA_sendtrap $argsac

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The SimpleAgentPro by default tries to open up port 161 on the local machine. Only one process can bind to a specific port at a time. On your machine you probably have a snmp daemon process running that is currently bound to port 161. The easiest way is to kill this snmp daemon process, and then run the SimpleAgentPro. Do a “ps -e | grep snmp” and see if there is any snmp daemon process running.

Sometimes, it is not possible to kill the local snmp daemon. On systems where HP OpenView is also running, the snmp daemon is used for other management tasks. In this case do the following:

Edit the config.inp file and add the line “HPOV = YES”. This tells the SimpleAgentPro not to open up port 161 on the local machine. It will open up port 161 only for the simulated devices. In this mode, SimpleAgentPro does not support community string based proxys.

Kill the snmpd process started by HP OpenView. Now start the SimpleAgentPro and its map. Then start the snmpd process once again by typing “snmpd”. You can also start the snmpd on another port just to be sure by using the command “snmpd -Port 3000”. The reason for killing the snmpd, starting SimpleAgentPro, and then re-starting the snmpd is that the way the snmpd does a bind, it ends up binding with port 161 on all the multi-homed addresses, instead of just port 161 on the local worstation address. Killing it, and starting SimpleAgentPro allows the SimpleAgentPro to bind with port 161 on the other multi-homed addresses that it is simulating.

On NT machines, you should make sure that the SNMP service is not running (Control Panel/Services)

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

To run multiple invocations of SimpleAgentPro, you must have the line “HPOV = YES” present in your config.inp. This makes the SimpleAgentPro not open up port 161 on the local machine and thus removes the conflict of two SimpleAgentPros’ trying to open the same port. Proxy mode is not supported in this case.

If you are running on the SUN Solaris platform, you also need to set the starting interface number so that the two invocations do not overwrite each others multi-homed IP definitions. For example, if the first invocation of the SimpleAgentPro has a map with 18 addresses, and the next one has a map with 7 addresses, then:

1. Start the first map. 2. After the first map has started, start another invocation of the SimpleAgentPro. In this invocation, under Map->Start Interface., change the starting interface number from 0 to 20 (since the first map has used up 18 interfaces from 1-18, and using two numbers for a safety padding). Now start the next map. It will use up interfaces 21-27.

Additional maps can be started in the same manner.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The dynamic row templates in the .var file tell the SimpleAgentPro that a particular table support dynamic row creation. To make the SimpleAgentPro create dynamic row templates, select the “Create dynamic row templates” box, when creating variables from MIB or learning variables from device. To create templates for tables that have read-only columns, add the line %DYNROW ALL to the default rules file used during the variable file creation.

Once the templates are created, you need to remove the starting hash sign to make use of them. By default, they are created as comments. Following is an example of a dynamic row template for the ipNetToMedia table followed by a tcl script to add rows to it.

Part of the .var file:

===================== # template for dynamic row. # To use, please remove the starting hash signs %drow 1.3.6.1.2.1.4.22.1 newinstance %dcol ipNetToMediaIfIndex NotReq Integer RW dfixed(1) %dcol ipNetToMediaPhysAddress Req OctetString RW \ r_lastset(6, 6, 0x010203040506) %dcol ipNetToMediaNetAddress NotReq IpAddress RW \ dfixed(1.2.3.4) %dcol ipNetToMediaType Req Integer RW \ r_lastset(1, 4, 1) %setaction ipNetToMediaType Integer 2 deleterow() # Please note that the starting hash signs have been removed and the has been changed to an actual value. A tcl script that adds a row to this table with ifIndex of 3, and IP Address of 128.100.100.120 would look like: SA_setvar{{ipNetToMediaPhysAddress.3.128.100.100.120 OctetString \ 0x01203040909 } {ipNetToMediaType.3.128.100.100.120 Integer 1}} Please note that only the Required columns have been specified. To delete the row from the table, setting the ipNetToMediaType to 2 will cause the row to be deleted, as per the setaction line in the dynamic row template. SA_setvar {{ipNetToMediaType.3.128.100.100.120 Integer 2}} In the case of tables supporting the “RowStatus” columns, the dynamic row templates created by the SimpleAgentPro will be different. The %setaction line will not be necessary in that case, since the SimpleAgentPro understands the semantics of the different values of “RowStatus” like “destroy.”

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

Check the “Frequently Asked Questions” section in the built-in help for the answer.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

The restrictions are different on different platforms.

On HPUX 10.1, the IP addresses assigned to the different devices in a map have to be on the same subnet as the HP workstation on which the SimpleAgentPro is running.

On Solaris 2.5.1, the IP addresses have no restrictions. Any IP address, provided it is not already in use, can be assigned. If an IP address on a different subnet is assigned, a route may be needed to be added manually on the machine that is running the management application, to tell it how to get to this subnet. The IP address of the SUN workstation on which the SimpleAgentPro is running can be used as the gateway address. The next question goes into the specifics.

On Windows95/NT, the IP addresses have no restrictions either. Any IP address, provided it is not already in use can be assigned. If an IP address on a different subnet is assigned, a route may be needed to be added manually on the machine that is running the management application, to tell it how to get to this subnet. The IP address of the SimpleAgentPro’s UDP/IP stack can be used as a gateway address. The next question goes into the specifics.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

Check the “Frequently Asked Questions” section in the built-in help for the answer.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

Check the “Frequently Asked Questions” section in the built-in help for the answer.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

Following are some of the basic trouble shooting steps to get the SimpleAgentPro up and running on a Windows NT system. Providing answers to these questions when contacting Simplesoft support, would help SimpleSoft support quickly resolve your problems.

1. What is the IP Address for the Microsoft TCP/IP stack. Lets assume it is SubnetA.1

2. What is the IP Address of the SimpleSoft UDP/IP stack. Lets assume it is SubnetA.2 (Check if your UDP/IP stack address is on the same subnet as the NT machine, but is DIFFERENT from the Microsoft TCP/IP stack address, and is also not in use by some else)

3. After the stack is installed, and the machine rebooted, can you in a DOS box on the Windows NT machine ping SubnetA.2 ie: ping the UDP/IP stack. It should respond.

4. If the above does not work, please let SimpleSoft know the adapter card type in your PC, Windows NT vesion, and service paks installed, and if you are running the stack in promiscuous or directed mode.

5. When the SimpleAgentPro is started, create a new map called “abc”, and add two devices to it with IP Addresses SubnetA.3 and SubnetA.4 Use mib2.cmf and dev1.var (files that come with the installation) for the compiled mib file and variable file for both the devices.

6. When you click on the Start button, the SimpleAgentPro should display “Map started…..” on the status window, and new executable sathrd will get launched. Please check if all these things happen.

7. Go to the DOS console/box on the NT machine and ping the two addresses SubnetA.3 and SubnetA.4. They should respond.

8. Run another invocation of the SimpleAgentPro. Do not start the map but this time go to the Variables->Learn from Device submenu and specify an output file as junk.var, the teacher’s IP Address as SubnetA.3. Start the learn and see if the SNMP Agent in the simulated device is responding.

9. Look at the Map->Statistics menu to see if the simulated device is indeed getting the requests.

10. Also check if the SNMP service is currently running on the NT box. If it is running, stop the service permanently and reboot the machine and then try these steps once again.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

Following are some of the basic trouble shooting steps to get the SimpleAgentPro up and running on a Solaris system. Providing answers to these questions when contacting Simplesoft support, would help SimpleSoft support quickly resolve your problems.

1. What is the IP Address for the SUN Workstation Lets assume it is SubnetA.1

2. What is the interface name of the network card ? Run ifconfig -a command and see what the second entry is called (the one after lo0 (loopback) entry). It might be something like le0 or hme0

3. Make sure the config.inp file in the sapro/bin directory has a entry INTERFACE = hme0 if your interface name is hme0

4. Make sure you are running as root on the local machine.

5. When the SimpleAgentPro is started, create a new map called “abc”, and add two devices to it with IP Addresses SubnetA.3 and SubnetA.4 Use mib2.cmf and dev1.var (files that come with the installation) for the compiled mib file and variable file for both the devices.

6. When you click on the Start button, the SimpleAgentPro should display “Map started…..” on the status window, and new executable sathrd will get launched. Please check if all these things happen.

7. Check if there are error messages in the shell where you started the SimpleAgentPro. If there are error messages, check if you have a snmp daemon process running that has bound to port 161. If you have a snmp daemon process running kill it. Also get a valid license key from SimpleSoft if required.

8. Go to the shell window on the Solaris machine and ping the two addresses SubnetA.3 and SubnetA.4. They should respond.

9. Run another invocation of the SimpleAgentPro. Do not start the map but this time go to the Variables->Learn from Device submenu and specify an output file as junk.var, the teacher’s IP Address as SubnetA.3. Start the learn and see if the SNMP Agent in the simulated device is responding.

10. Look at the Map->Statistics menu to see if the simulated device is indeed getting the requests.

The SimpleAgentPro uses standard utilities like “xterm” and “vi” to carry out some of the tasks. Find out where the utility “xterm” is located on your system and then make sure that your PATH variable includes that directory.

Check the “Frequently Asked Questions” section in the built-in help for the answer.

SimpleAgent

The MIB compiler provided by SimpleSoft is fairly stringent in checking for syntax errors. This helps you make sure that the MIBs provided by you to your customers are error free and will compile with most third party mib compilers.
Typical MIB errors are different names, and data types for MIB variables in the tableEntry declaration, versus actual columnar definitions.
Example:
aNewDataType ::=OCTET STRING
tableEntry OBJECT-TYPE
SYNTAX TableEntryA
….
TableEntryB ::=
SEQUENCE {
column1
INTEGER,
column2
Counter,
….
}
….
columnA OBJECT-TYPE
SYNTAX INTEGER {
Up (1),
almost_down(2),
down(3)
}

column 2 OBJECT-TYPE
SYNTAX Gauge

The above Example contains 6 errors:
1. User defined data types like “aNewDataType” should start with a capital letter. The valid way would be “ANewDataType”.
2. The SYNTAX of table Entry is of type “TableEntryA”, while later on “TableEntryB” is defined instead of “TableEntryA”. Make sure that the strings match.
3. The object descriptor “column1” is used in the definition of the SEQUENCE for tableEntry, while the words “columnA” are used in the column definition itself. Make sure that the object descriptors are the same.
4. One of the labels for the values in the enumerated integer columnA starts with a upper case character (“Up(1)”) The correct way is “up”(1).
5. One of the labels for the values in the enumerated integer contains an underscore “_”.(“almost_down(2)”) Underscore characters are not allowed. A possible valid alternative would be “almost-down(2)”.
6. The column2 is defined as a Counter in the SEQUENCE, but defined as a GAUGE in the actual OBJECT TYPE definition.
Warnings from the MIB Compiler are suggestions for a better MIB definition file, but dealing with them can be postponed, if desired. You can also compile the MIBs in a lenient mode.
The MIB compiler provided by SimpleSoft is fairly stringent in checking for syntax errors. This helps you make sure that the MIBs provided by you to your customers are error free and will compile with most third party mib compilers.
Typical MIB errors are different names, and data types for MIB variables in the tableEntry declaration, versus actual columnar definitions.
Example:
aNewDataType ::=OCTET STRING
tableEntry OBJECT-TYPE
SYNTAX TableEntryA
….
TableEntryB ::=
SEQUENCE {
column1
INTEGER,
column2
Counter,
….
}
….
columnA OBJECT-TYPE
SYNTAX INTEGER {
Up (1),
almost_down(2),
down(3)
}

column 2 OBJECT-TYPE
SYNTAX Gauge

The above Example contains 6 errors:
1. User defined data types like “aNewDataType” should start with a capital letter. The valid way would be “ANewDataType”.
2. The SYNTAX of table Entry is of type “TableEntryA”, while later on “TableEntryB” is defined instead of “TableEntryA”. Make sure that the strings match.
3. The object descriptor “column1” is used in the definition of the SEQUENCE for tableEntry, while the words “columnA” are used in the column definition itself. Make sure that the object descriptors are the same.
4. One of the labels for the values in the enumerated integer columnA starts with a upper case character (“Up(1)”) The correct way is “up”(1).
5. One of the labels for the values in the enumerated integer contains an underscore “_”.(“almost_down(2)”) Underscore characters are not allowed. A possible valid alternative would be “almost-down(2)”.
6. The column2 is defined as a Counter in the SEQUENCE, but defined as a GAUGE in the actual OBJECT TYPE definition.
Warnings from the MIB Compiler are suggestions for a better MIB definition file, but dealing with them can be postponed, if desired. You can also compile the MIBs in a lenient mode.
“SimpleSoft’s simulation, test, development and management tools help make the job of creating and managing today’s complex networks simpler.”