logo
 
 
 
fb-icon   twi-icon   youtube   in-icon
 
 
  Support
  Support Home  
  FAQs  
  Training  
  Other Resources  
  Contact Support  
     
 
  Testimonials
  "SimpleAgentPro is a vital part of a test environment that we are dependent on to meet our scalability requirements. We have found SimpleSoft support to be very knowledgeable and very responsive."  
  -Gareth McKenna, Group Manager
   Cisco Systems
 
  More...  
 
Simulator Overview
 
Frequently Asked Questions
 
Answers to many of the commonly asked questions are provided below to assist our existing customers quickly resolve problems.  
 
SimpleTester  
  1. When I try to compile my MIBs, I get errors....
  2. If an Agent supports multiple MIBs, what is the best way to test it...
  3. I am using the dongle based licensing, and I have connected the dongle to the parallel port, but the software does not detect it.
 
   
SimpleAgentPro  
  1. On UNIX platforms, when I click on the "Compile" button during MIB compilation, nothing happens.
  2. On Solaris 2.5.1 platform, the "Browse" dialog box is difficult to use with beginning of the full path name displayed, instead of just the file name.
  3. The MIB compilation did not work and gave a lot of errors and warnings.
  4. How do I make the simulated agents send a cold start trap when they are started?
  5. When I start the SimpleAgentPro, I get an error that says "Cannot bind to port 161".
  6. How can I run multiple invocations of the SimpleAgentPro?
  7. What do I have to do to support dynamic row creation? Can I then add rows using the tcl commands?
  8. How can I share one .var file among many devices, yet have the correct values returned for tables such as the ipAddrTable in MIB2?
  9. What are the restrictions on the IP address that can be assigned to the devices being simulated?
  10. How can my management application talk with the simulated devices if they have IP addresses on a different subnet?
  11. How many devices can be in one map?
  12. Basic Troubleshooting on Windows NT
  13. Basic Troubleshooting on Solaris
  14. What can I do if I do not want the users of SimpleAgentPro to be root on Solaris?
 
SimpleAgent
  1. When I try to compile my MIBs, I get errors....
 
SimpleTester
When I try to compile my MIBs, I get errors....
  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.
 
2) If an Agent supports multiple MIBs, what is the best way to test it...
  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.  
     
3) I am using the dongle based licensing, and I have connected the dongle to the parallel port, but the software does not detect it.
  On Windows NT/2000, it is necessary to install the device drivers for the dongle for the software to be able to "see" the dongle. The device drivers are present in the stester32/dongle sub-directory. For Windows NT/2000, go the stester32/dongle/win_nt sub-directory and launch the progam "setupx86.exe". Choose its Functions menu item, and select "Install Device Driver". Click on OK on the path, and then reboot the machine when the installation of the device driver is completed.  
     
  Sometimes, even if the device driver is installed, the software is unable to detect the dongle. In this case, check if the parallel port is disabled in the BIOS.  
     
SimpleAgentPro
 
1) On UNIX platforms, when I click on the "Compile" button during MIB compilation, nothing happens.
  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.  
 
2) On Solaris 2.5.1 platform, the "Browse" dialog box is difficult to use with beginning of the full path name displayed, instead of just the file name.
  Check the "Frequently Asked Questions" section in the built-in help for the answer.  
     
 
3) The MIB compilation did not work and gave a lot of errors and warnings.
  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.  
     
4) How do I make the simulated agents send a cold start trap when they are started ?
  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
 
 
5) When I start the SimpleAgentPro, I get an error that says "Cannot bind to port 161".
  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:  
     
 
  1. 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.
  2. 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)  
     
6) How can I run multiple invocations of the SimpleAgentPro?
  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.  
     
7) What do I have to do to support dynamic row creation? Can I then add rows using the tcl commands?
  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."  
     
8) How can I share one .var file among many devices, yet have the correct values returned for tables such as the ipAddrTable in MIB2 ?
  Check the "Frequently Asked Questions" section in the built-in help for the answer.  
     
9) What are the restrictions on the IP address that can be assigned to the devices being simulated ?
  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.  
     
10) How can my management application talk with the simulated devices if they have IP addresses on a different subnet ?
  Check the "Frequently Asked Questions" section in the built-in help for the answer.  
 
11) How many devices can be in one map ?
Check the "Frequently Asked Questions" section in the built-in help for the answer.
 
12) Basic Troubleshooting on Windows NT
  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.
 
     
13) Basic Troubleshooting on Solaris
  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.
 
     
14) What can I do if I do not want the users of SimpleAgentPro to be root on Solaris ?
  Check the "Frequently Asked Questions" section in the built-in help for the answer.  
 
SimpleAgent
1) When I try to compile my MIBs, I get errors....
  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.  
 
 
 
   
SimpleAgentPro SimpleTester SimpleSleuth
SimpleAgentEnterprise SimpleTesterPro  
SimpleIoTSimulator  
SimpleAgent    
     
SimpleMIBEditor SimpleTester SimpleSnmpProxy
SimpleMIBEditorPro SimpleMIBBrowser SimpleIoTProxy
SimpleMIBBrowser SimpleAgent SimpleIoTDecoy
     
 
Support
FAQs
Training
Instructional Videos
Other Resources
Contact Support
 
Demo Software for Windows
Demo Software for Linux
Evaluation EULA
Product Tours
White Papers
SNMP Tutorial
Upgrades
About Us
Company
Partners
Careers
Success Stories
  
 
News
Press Releases
Product Updates
Blog
 
Contact
Contact SimpleSoft
Request More Information
WebEx Meeting Center
 
Copyright © 2023 SimpleSoft, Inc. All rights reserved. Privacy