Customer Login

InterWorking Labs

SilverCreek Frequently Asked Questions Print E-mail

 

Last updated: December 4, 2006 

Loading MIBs
Where can I find MIB files?
How do you compile multiple MIBS that have dependencies on each other?
Can I set up multiple MIB directory paths so I can maintain different set of MIBs?
What are the minimal set of MIBs I should load?
BITS must not be imported?

SNMP Testing
What are scalar and columnar objects?
What do the built-in tests that come with SilverCreek cover?
How do I limit testing only to my enterprise MIBs?
My private MIBs do not appear in the test suite tree, why not?
Does SilverCreek Cover CERT Advisory CA-2002-03?
What if read-write objects are implemented as read-only?
Why is lexicographical ordering important?
What is non-minimal basic encoding?

Notification Monitor
Failed to set trap callback. Port 162 is already in use by some other applications

Connecting to a SNMPv3 Agent Under Test
What fields should I enter when connecting to a SNMPv3 agent?
Getting an error "Received engineID xxx does not match the configured engineID yyy" when I open a previously saved agent configuration file

Writing Your Own Test Scripts
Does SilverCreek Pro support C++, VB, etc. languages?
How do I create my own tests?

Automation (CLI, GUI)
Can I automatically test several agents (v1/v2c/v3) by doing some simple setting on the GUI?
Can I automatically test several agents (v1/v2c/v3) in command line interface (CLI) by writing a simple script?

Performance Testing
Does SilverCreek do performance testing?
What is the normal SNMP performance range suppose to be?

Windows Remote Desktop
My SilverCreek GUI does not function properly if viewed in a XP remote desktop

Where can I find MIB files?

The latest IANAifType-MIB can be found at  http://www.iana.org/assignments/ianaiftype-mib
Standard track RFC MIBs can be found at http://www.ietf.org/rfc.html
For Enterprise MIBs you should contact respective vendors.

All MIBs shipped with SilverCreek can be found in the "mibs" sub-directory in your SilverCreej installation. The files with .tmp extension are actual MIB modules. The files with .defs extension are their correspondent compiled forms used by SilverCreek MIB store.

How do you compile multiple MIBS that have dependencies on each other

Normally, loading mibs into SilverCreek does not require you do anything particular. SilverCreek will try to resolve dependency after all mibs are loaded. If there is something missing, then SilverCreek would report  a message like below:

The following objects can not be linked under any branch in the Object Identifier (OID) tree. The definition for these objects is incomplete due to the fact that their parent objects (or MIB) have not been loaded. For instance: If a MIB module has an OID, for example 'enterprises.311.1' but the MIB module that defines the object at 'enterprises.311' has not been loaded then the OID 'enterprises.311.1' cannot be fully resolved.

The parent MIBs of a MIB are usually listed in the 'IMPORT' clauses at the beginning of that MIB file. See MIB file for more information.

To compile and load multiple mibs, just put all of them in the mibs directory under your SilverCreek root directory and then start SilverCreek. All mibs will be compiled and loaded if no critical errors are detected.

 

Can I set up multiple MIB directory paths so I can maintain different set of MIBs

If you have a large number of private MIBs or multiple people testing different MIBs, you may wish to maintain them in different directories. To use a different directory than the default "mibs" directory create an environment variable MIB_PATH and point it to the location of the directory that holds your MIBs.

You case force MIBs shipped by SilverCreek to be always loaded by checking the option "always load MIBs in SilverCreek mibs directory...." found in Tools->Options->Misc tab.

Using MIB_PATH and SilverCreek's initialization file you can maintain different sets of MIBs in different directories and instruct SilverCreek to use the desired set of MIBs when it starts up.

By default, if you place the MIBs for different releases in different directories, you need to redefine the environment variable "MIB_PATH" and restart SilverCreek every time when you want switching to test a different agent release that implements a different set of MIBs.
To avoid this, you can customize SilverCreek init file scinit.tcl (or ssinit.tcl, slinit.tcl, sbinit.tcl depending on your SilverCreek Edition) that is used to start SilverCreek.
For instance, say you have three set of MIBs stored in three different directories such as "c:/release_1_mibs", "c:/release_3_mibs", "c:/release_3_mibs" respectively.

You can create three SilverCreekinit files by making copies of the original scinit.tcl under SilverCreek's home (root) directory:
scinit_release1.tcl, scinit_release2.tcl, scinit_release3.tcl

Then add "::env(MIB_PATH)" definitions at the beginning of each of these files.

#For scinit_release_1.tcl, at the beginning, insert the line
set ::env(MIB_PATH) "c:/release_1_mibs"
#Original contents start here

# For scinit_release_2.tcl, at the beginning, insert the line
set ::env(MIB_PATH) "c:/release_2_mibs"
#Original contents start here

# For scinit_release_3.tcl, at the beginning, insert the line
set ::env(MIB_PATH) "c:/release_3_mibs"
#Original contents start here

Finally on Windows you can create three different "SilverCreek" icons (shortcuts) via "Copy and Paste", then you can right click on each new icon (shortcut), select "Properties", and then edit "Target" field to:

"C:\Program Files\InterWorking Labs, Inc\SilverCreek Pro SP10\BIN\wish84.exe" ./tkcon.tcl -root . ./scinit_release1.tcl
"C:\Program Files\InterWorking Labs, Inc\SilverCreek Pro SP10\BIN\wish84.exe" ./tkcon.tcl -root . ./scinit_release3.tcl
"C:\Program Files\InterWorking Labs, Inc\SilverCreek Pro SP10\BIN\wish84.exe" ./tkcon.tcl -root . ./scinit_release3.tcl
...

On Unix like platforms, you can copy the existing startup script bin/test-agent into three new files: bin/test-agent1, bin/test-agent2, bin/test-agent3 and then simply modify the last line " wish8.4 ./tkcon.tcl -root . ./scinit.tcl -- $*" in bin/test-agent1, bin/test-agent2, bin/test-agent3 to something like:
wish8.4 ./tkcon.tcl -root . ./scinit_release_1.tcl -- $*
wish8.4 ./tkcon.tcl -root . ./scinit_release_2.tcl -- $*
wish8.4 ./tkcon.tcl -root . ./scinit_release_3.tcl -- $*

Of course on Unix like systems you can also add the environment variable definition of "MIB_PATH" in bin/test-agent1, bin/test-agent2, bin/test-agent3 directly.
For example:

MIB_PATH=/home/bob/rel_1_mibs
export MIB_PATH

If you are working with SilverCreekCLI please see HelP->Help Topics ->Maintaining MIBs for Different Releases of the Device

What are Minimal set of MIBs I should load?

The minimal set of MIBs that should be loaded into SilverCreek are given below.

SNMPv1 Agent:
IANAifType-MIB,
RFC1213-MIB,

Note: RFC1155, RFC1157 , RFC1215 and RFC1212 are not required. SilverCreek supports them natively. If you want to load them into SilverCreek the MACRO constructs in these files must be removed first. RFC1215 and RFC1212 actually do not contain any MIB modules so do not load these two RFCs.

SNMPv2c Agent:
IANAifType-MIB,
SNMPv2-MIB (RFC3418),
SNMPv2-TC (RFC2579),

Note: RFC2578 ( SNMPv2-SMI ) and SNMPv2-PDU (RFC3416) are not required. SilverCreek supports them natively. If you want to load them into SilverCreek the MACRO constructs in these files must be removed first.

SNMPv3 Agent:
IANAifType-MIB,
SNMPv2-MIB (RFC3418),
SNMPv2-TC (RFC2579),
SNMP-FRAMEWORK-MIB (RFC3411),
SNMP-MPD-MIB (RFC3412),
SNMP-TARGET-MIB, SNMP-NOTIFICATION-MIB (RFC3413)
SNMP-USER-BASED-SM-MIB (RFC3414)
SNMP-VIEW-BASED-ACM-MIB (RFC3415)

Note: RFC2578 ( SNMPv2-SMI ) and SNMPv2-PDU (RFC3416) are not required. SilverCreek supports them natively. If you want to load them into SilverCreek the MACRO constructs in these files must be removed first.


BITS Must Not Be Imported?

Remove it from your MIB definition, then the SilverCreek mosy compiler won't complain.

A common area of confusion among SNMP MIB designers is the use of BITS.  Putting BITS in the IMPORTs clause of a MIB is illegal. The MIB compiler included with SilverCreek will reject a MIB that has BITS in the IMPORTs, because it is wrong per RFC 2578. Other MIB compilers for other types of products, such as simulators, are very permissive; these MIB compilers will allow this error and many other errors to slide by, in order to manage or simulate very badly written MIBs.

BITS is not a TEXTUAL-CONVENTION. The standard TEXTUAL-CONVENTION types are defined in RFC 1903. Both RFC 1902 and 1903 define BITS, but as  part of the OBJECT-TYPE and TEXTUAL-CONVENTION macros:

Hence, BITS is an implicit part of the OBJECT-TYPE and TEXTUAL-CONVENTION macros.

The BITS clause is intended to add semantic clarity to the notion of assigning meaning to bits in an OCTET STRING.
Please see Section 3.2 of RFC 2578 "Structure of Management Information Version 2" that states:
"However, the following must not be included in an IMPORTS statement:

- named types defined by ASN.1 itself, specifically: INTEGER, OCTET STRING, OBJECT IDENTIFIER,
 SEQUENCE, SEQUENCE OF type,
 - the BITS construct."

What are scalar and columnar objects

In SNMP, there are two types of objects: scalar and columnar.

"Scalar" objects are objects that are not in a table such as sysDescr, sysName, etc. They must have instance ID .0 in get/set requests and responses.

"Columnar" objects are objects that are defined in a table such as ifType, ifDescr, etc. They must have meaningful instance IDs (defined by index part of
the table) in get/set requests and responses. A tool may add .0
for scalar objects but it wouldn't know what instance IDs to "add" for
columnar objects when issuing GETs.

SilverCreek relies on the end user to add .0 or other more complicated instance IDs when issuing get/set request. As a protocol test tool, this approach is
considered better to the general users of SC as they must understand what they are doing when testing SNMP using SC. As an example, if you want
to send SNMP get/set requests in command line you must know this concept.

 

What are covered in the built-in tests that come with SilverCreek?

For comprehensive test coverage information please see doc/sc-testlist.pdf in your SilverCreek installation directory.
SilverCreek Professional SP and SS are bundled with over 1000 tests.  These tests are divided into test suites primarily according to RFC(s) tested.  These 13 suites are:

1.0  RFC-1157 (SNMPv1   Tests for ALL MIBs Loaded)
2.0  RFC-190X (SNMPv2c Tests for ALL MIBs Loaded)
3.0  RFC-341x (SNMPv3   Tests for ALL MIBs Loaded)
4.0  RFC-3414 (SNMPv3   USM-MIB)
5.0  RFC-3415 (SNMPv3   VACM-MIB)
6.0  RFC-3413 (SNMPv3   SNMP Applications)
7.0  RFC-3412 (SNMPV3   MPD-MIB)      
10.0  RFC-1213 and its updates RFC2011, 2012, 2013 and 2096 (MIB-II Tests)
50.0  RFC-2786 (Diffie-Hellman Key Change Tests)
51.0 DOCSIS OSSI-ATP
Vul1 SNMPv1 Vulnerability Tests  (ASN.1 decoding)
Vul2   SNMPv2c Vulnerability Tests (ASN.1 decoding)
Vul3  SNMPv3   Vulnerability Tests (ASN.1 decoding)

All MIBs (including additional standard and private MIBs) loaded in SilverCreek will be tested automatically when running tests in the Protocol category:
SNMPv1 Tests for all MIBs Loaded (test suite 1.0),
SNMPv2c Tests for all MIBs Loaded (test suite 2.0),
SNMPv3 Tests for all MIBs Loaded (test suite 3.0).

If the agent under test has implemented a particular MIB that has been loaded into SC then new test cases will be automatically generated for that MIB when you run these tests.

The total number of test cases that will be generated depends on 1) The number of MIBs loaded into SilverCreek, 2) The number of MIBs the agent under test has implemented. Note that in order to make sure a MIB implementation is going to be tested you must load the MIB into SilverCreek first. This is because SilverCreek needs to know the MIB definition in order to test that MIB implementation.

You can develop additional test suites and make them appear under SilverCreek "Private" test tree node on SilverCreek GUI. Often customers may need to create additional functional tests. For that you can use SilverCreek API (Tcl) to code them. For more information about this see SilverCreek Developer's Guide.

How do I limit testing only to my enterprise MIBs

By default, any MIBs (including additional standard and private MIBs) loaded in SilverCreek will be tested automatically when running tests in the Protocol category:
SNMPv1 Tests for all MIBs Loaded (test suite 1.0),
SNMPv2c Tests for all MIBs Loaded (test suite 2.0),
SNMPv3 Tests for all MIBs Loaded (test suite 3.0).

If you only want to test your private MIBs when running protocol tests (test suite 1.0, 2.0 and 3.0) you can instruct  SilverCreek to perform testing on the defined scope by using "Test->Limit Variables to Test in Protocol Test Suites".

Why I don't see my private MIBs appear in the test suite tree?

When you load a new MIB into SC, there isn't going to be a new test suite that appears in the test suite tree on the GUI. The new MIBs will be tested as part of the "SNMPv1 Tests for all MIBs Loaded", "SNMPv2c Tests for all MIBs Loaded" and/or "SNMPv3 Tests for all MIBs Loaded". In other words new test cases will be automatically generated when you run these protocol tests.

You can develop additional test suites and have them to appear under SilverCreek "Private" Test node in the test suite tree. Often customers may need to create additional tests and they can use the SilverCreek API (Tcl) to develop any private tests they want to perform against their agent. Simple test cases can be generated using SilverCreek SNMPTcl script generator.

Of course the new MIB should appear in MIB browser tree after you load it into SilverCreek.

Does SilverCreek Cover CERT Advisory CA-2002-03

SilverCreek Vulnerability Tests cover CERT Advisory CA-2002-03. CA-2002-03 only targets at SNMPv1, our test suite Vul1 covers that. In addition to the original CA-2002-03, we have expanded SNMP vulnerability tests to SNMPv2c and SNMPv3. Test suite Vul2 and test suite Vul3 cover vulnerability testing for SNMPv2c and v3 agents respectively.

These test suites are designed to test your agent's ability to deal with fringe or rogue packets that it may encounter while on a live network. The test suite covers SNMPv1, v2c and v3. It provides clear test description and detailed test results.  It can determine how the agent under test will respond to and deal with abnormal, malicious or rogue packets.

The testing methodology consists of tests intended to exercise a certain type of abnormal packets that your agent may encounter.  

 

What if read-write objects are implemented as read-only

We implemented some MIB objects as read-only according to our specifications event though they are read-write by definition. SilverCreek reports failures.
Is there a way to configure SilverCreek to skip SET tests on those actual read-only objects?
And, in this case (implementing read-only instead of read-write), what is the correct return code? readonly (4) or notWritable (17)?

----------------
You can use
1) Test->Fine-tune Testing Options-->Ignore object in read-write testing...
2) Use an Agent-Capabilities MIB module. See
    Help->Help Topics->
    Configuring Agent-Capabilities

The access level and any other variation stated in the Agent Capabilities statement are honored by SilverCreek. For example,
if the original definition is "read-write", but the Agent Cap says it is implemented as "read-only" then SilverCreek will test
this object as "read-only".

You should never return readonly (4). Readonly is a status defined but should never be used by convention.

In snmpv1, you should return "noSuchName"
in snmpv2/v3, you should return "notWritable"

Why lexicographical ordering is important

The OID of the variable you retrieved from the agent via "NEXT" operation should be in lexicographical order. If they are not then MIB walk tests (test1.1.2, test2.1.2.1, and test3.1.2.1) will abort and subsequent tests could not be run. For example the following requests/responses are correct:
Request:     1.3.6.1.2.1.113.1
Response:   1.3.6.1.2.1.113.1.0

Request:     1.3.6.1.2.1.113.1
Response:   1.3.6.1.2.1.113.2.0

While the following requests/responses are incorrect:

Request:     1.3.6.1.2.1.113.11
Response:   1.3.6.1.2.1.113.2.0

Request:     1.3.6.1.2.1.113.1
Response:   1.3.6.1.2.1.111.1.0

The lexicographical order is critical for a NEXT implementation.  If lexicographical ordering isn't properly handled then you may not retrieve the objects you want in your MIBs by issuing a simple "NEXT" command and it could cause managers to get into infinite loops.

If you decide to deal with it later and continue running tests, you can check Test->Ignore Lexi Errors  to work around this issue temporarily.

 

What fields should I enter when connecting to a SNMPv3 agent

To do proper SNMPv3 testing, there must be a configured SNMPv3 user in the agent you wish to test with a full view of the MIB and full privileges. Each network device has its own way of configuring agents. This process is independent of SilverCreek.

Though you may connect as a noAuth/NoPriv user, to reap the full benefits of our tests we recommend that you configure and use an auth/priv user.


Enter the SNMPv3 information in the New Agent Dialog in SilverCreek found under the file menu. In the New Agent Dialog, at a minimum, you should enter:

1. The IP Address of the agent to be tested.
2. Select SNMPv3 protocol
3. Enter the username as configured in your agent
4. The corresponding authentication and privacy passcodes (if any) and algorithms.
If the v3 user does not require privacy (encryption), then simply leave the priv pass field blank.
If the v3 user does not require authentication, then simply leave the auth pass field blank.

Press OK.

At this point SilverCreek will go through several steps to obtain the information it needs from the agent so it can do proper key localization and communicate successfully. The following steps occur automatically without any interaction needed from you, the tester. However, it is useful to be aware of how the localization occurs for debugging purposes in case you run across difficulties.


The following steps will occur:

1. SilverCreek sends a get-next on 'sysDescr' with the EngineID = NULL, engineBoots = 0 and engineTime = 0.
2. SilverCreek should receive an usmStats UnknownEngineIDs report from the agent being connected to.
3. At this point, key localization occurs, using the Authoritative Engine ID obtained from the report returned from your agent that is acting
as the Authoritative Engine.

4. SilverCreek sends a get-next on sysDescr with EngineID = 'the received value', engineBoots = 0 and engineTime = 0.
5. SilverCreek receives a usmStatsNotInTimeWindows report from the agent being connected to.
6. SilverCreek sends a get-next on 'sysDescr' with EngineID, engineBoots and engineTime all containing received values.
7. SilverCreek receives a get-response with the values of sysDescr.0 and considers the context successfully connected to.

Hints & Tips

Below are a few tips for your information and common problems:

1. Entering a localized key in non-hex format. If you are entering an already localized key into the SilverCreek Agent Setup, it must be entered in strict hex form (for example 0x11:22:33...). If it is entered in any other format, the tool will assume it is not localized and attempt to localize it.

2. Receiving an Error Report (this is generated by your agent not by SilverCreek!): "Error usmStatsWrongDigests.0 report selecting agent."

This may indicate that the digest contained in the request (this is the calculated digest) differs from the digest calculated by the agent using the auth secret key. Try comparing the auth/priv keys derived at both ends (your agent and SilverCreek). Any difference in these keys indicates an incorrect configuration.

3. Receiving an Error Report (this is generated by your agent not by SilverCreek!): "Errors snmpUnknownPDUHandlers.0 report selecting agent."
This may indicate that the agent does not support the GET-NEXT request sent by SilverCreek.

4. Receiving an Error Report (this is generated by your agent not by SilverCreek!): "Error usmStatsUnsupportedSecLevels.0 report selecting agent.
This may indicate that the agent does not support the specified security level specified in the GET-NEXT request.

5. Receiving an Error Report (this is generated by your agent not by SilverCreek!): "Error usmStatsUnknownUserNames.0 report selecting agent."

This may indicate that the agent does not have a user name configured locally as specified in the GET-NEXT request.

Getting an error "Received engineID xxx does not match the configured engineID yyy" when I open a previously saved agent configuration file

SilverCreek fails to connect to the agent and reports an error window:

Received engineID 0x80:00:0c:62:03:00:00:2a:4b:e4:8a does not match the configured engineID 0x80:01:0c:62:03:00:00:2a:4b:e4:8a, please enter using 0x11:22:33... form or leave the Agent's engineID field blank and let the tool uses what is discovered

TclSNMPContext::DecodeMsg()
TclSNMPContext::Eval()
RecvMessage()

This is because the engineID contained in the agent configuration file is different from the current engineID value the agent has currently. Most like the agent had reset itself another engineID.  

To resolve the issue please leave the agent's engineID field blank and let the tool uses whatever is going to be discovered

Does SilverCreek Pro support C++, VB, etc. languages?

SilverCreek supports Tcl/Tk scripting language. It does not support developing tests using C/C++, VB, etc.
Tcl is the most widely used scripting language in networking testing community. It is also very simple to pick up. Here is a tutorial:

http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html

SilverCreek also has a "Tcl script generator", which can be used to generate simple test scripts. Additionally SilverCreek provides a rich set of sample scripts to help you get started with development work using SilverCreek. Using these sample scripts and the SilverCreek Developer's guide you can write private tests, automate testing and/or use the SilverCreek SNMP request API in your application.


What is non-minimal basic encoding?

The length field for some part of the message is padded with extra octets so this should normally be the length field for the entire message.

ASN.1 has two forms for encoding the length field.  A full ASN.1 sequence consists of three elements:
< tag> <length> <contents>

Where <tag> is a single octet specifying the data type, <length> is one or more octets indicating the number of octets within <contents>, which is the value associated with <tag>.

The two forms for <length> are single-octet and multi-octet forms.  The highest bit of the first length octet indicates whether it is single (0) or multi-octet (1).  If it is 0, then the remaining bits are the length themselves; otherwise, the remaining bits indicate the length of the length field.  The single-octet form is restricted to lengths from 0 to 127, since the high bit has a special purpose.  The multi-octet form is not restricted.

So, lets take a couple examples: Suppose you have an integer encoding with the value 255.  The smallest number of octets you could encode this in is 3:
   02 01 ff

Here, 02 is the tag, 01 is the length and ff is the value.  Using the multi-octet form, the "minimal encoding" is still encoded in the fewest octets possible:
   02 81 01 ff

Here, "81" indicates multi-octet form with 1 octet in the length, then the 01 following indicates 1 octet in the contents.  The "non-minimally encoded" form would add extra bytes to the length:
   02 84 00 00 00 01 ff

Now you have 3 extra 0's in the length part of the ASN.1 encoding.  This is legal, but is generally frowned upon, because the reason for the single and multi-octet forms is to encode the length field in as few octets as possible.

Failed to set trap callback. Port 162 is already in use by some other applications

This can happen on Unix machines if the Test Suite is not running as root ( on Unix only privileged user can bind to port 162). If this is the case you can use "sudo" utility to run SilverCreek. This can also happen on any platform if another program is already using the trap port 162.

Use command: netstat -noa | find "162 " on Windows to find out which process is using port 162 then use "taskkill" command to kill that process.
On Unix use "sudo fuser -n udp 162" or "sudo netstat -nlp | grep 162".

How to create my own tests

Please see Help->Help Topics
                          ->Developing Your Own Tests  

 

 

Can I automatically test several agents (v1/v2c/v3) by doing some simple setting on the GUI?

Yes. You can easily do that kind of things using Test->Automation Wizard.

The automation wizard may be used to create remote interface scripts that allow for hands off testing and easy recreation of the test environment. Using this tool you don't need to write any scripts manually. Thought it is recommended that you use CLI scripts to auto mate running tests for better performance and flexibility, sometimes it is handy to use Automation Wizard for small agents.

To create a new automation script select new and a wizard will walk you through the steps necessary. If you have already created automation scripts with the wizard, select Load to browse and load the scripts into the tool. To run, simply highlight the scripts you are interested in running and select run.

Note when the generated script is run (using Tcl source command) from a Tcl shell, you may need to edit it and change "absolute" path reference to "appropriate" SilverCreek installation.

Can I automatically test several agents (v1/v2c/v3) in command line interface (CLI) by writing a simple script?

Yes. You can use SilverCreek's simple yet powerful command line interface API. to control testing.

The automation is extremely useful if you want to run multiple test suites against multiple SNMP devices with each device has its own set of MIB files.

For example, you can write an automation script to run in command line interface to do the following:

Connect to DUT A, run testsuite 1.0
Connect to DUT B, run testsuite 2.0
Connect to DUTC, run testsuite 1.0, 2.0

The good thing is that the automation script is very easy to write. For instance the following are two scripts that load two different set of MIBs and run tests against different agents. Both scripts can be run simultaneously or sequentially.

See sample scripts and other details at

Help -> Help Topics -> Automation and Integration
        -> Running Tests in Batch Mode through the CLI

 

A quick example:

For example,  if you want to create one script that runs tests for v1, v2, and v3,
you need to create a script like following:

# Load API
source extras/remoteapi/snmpcli.tcl
snmptcl::startup

# Create a v1 agent context and run some tests
snmptcl::context new -address 192.168.123.1 -rcomm public \
          -wcomm "private" -version SNMPv1
snmptcl::chapter 1.0
snmptcl::runmulti all

# Create a v2c agent context and run some tests
snmptcl::context new -address 192.168.123.2 -rcomm public \
          -wcomm "private" -version SNMPv2c


snmptcl::chapter 2.0
snmptcl::runmulti all

# Create a v3 agent context and run some tests
snmptcl::context new -address 192.168.123.3 -version SNMPv3 \
        -user "MD5_DES_User" \
        -authprot "HMAC-MD5" -authkey "authpassword"\
        -privprot "CBC-DES"  -privkey "privpassword"

snmptcl::chapter 3.0
snmptcl::runmulti all

 

 

 

Does SilverCreek do performance testing?

Yes. SilverCreek Performance Monitoring Tool allows the user to measure the response time to certain operations with a given device and then compare that to another device. This is useful for understanding performance issues and problems with a network application, the network itself, or the device itself. You can create scripts and run the scripts against several devices and then compare the output results to determine where performance bottlenecks exist and even what device performs best.

A typical usage example would be:
Send a NEXT on sysContact 500 times
Send a GET on sysContact.0 500 times
Send a SET on sysContact.0 500 times

and then compare the resulted elapsed time in milliseconds, both for synchronous mode and asynchronous mode.
The tool is very flexible, you can design your test cases, create a script and save it for future use.

You can create different scenarios to compare performance:
for example, you can create "scripts" to compare

GET/SET/NEXT/BULK request on the same variable(s)
GET on selected scalar(s) and columnar variable(s)
SET on selected scalar(s) and columnar variable(s)
NEXT on selected scalar(s) and columnar variable(s)
BULK on selected scalar(s) and columnar variable(s)
Synchronous requests (wait for the response after each request) vs. asynchronous requests (don't wait for the response after each request, rather it waits for the last response to come in).

SNMP supports both columnar and scalar objects. Columnar objects are located in a table and can have multiple instances, whereas scalar objects exist as single instance variables and are directly accessible. Thus, in a very large table, one may expect the access time to a columnar variable to be greater than that for a stand-alone scalar variable.

What is the normal SNMP performance range suppose to be?

There is no quick answer to this question. For the purpose of performance comparison you have to first establish a base first.
The performance depends on lot of factors. For example:

* The size and amount of the SNMP data that is being retrieved.
* Is there lots of background traffic
* What kind of data are being retrieved
   Most implementation tends to do poorly when processing get-next
   request on a SNMP table that has lot of rows.
* The request type (get/get-next/bulk?)
   Usually Get operation performs better than get-next since the agent usually does not need to determine lexicographical ordering.
* SNMPv3 usually involves more overhead than v1/v2c
   Especially when there are authentication and encryption involved.
* Line speed...
* How many hops between the manager and agent.
   etc ...

 

My SilverCeek GUI does not function properly if viewed in a XP  Remote Desktop

Q: Windows XP has a remote desktop feature allowing a login session to be monitored/used remotely. Unfortunately any "wish" toplevels are not useable in the remote version of the desktop. All I get is an ugly mess where my widgets were, and a perfectly intact native menubar at the top. All other "native" windows appear fine. Java toplevels are also ok. I'm using TCL/TK 8.4.3.8.4.4. appears to be the same.

A:

This appears to be an issue in Tk not liking the change of a Windows desktop color depth while running.

The issue is that remote logins always use a reduced palette (for speed), and Tk isn't down-shifting properly. This is an incompatibility between Tk and Windows remote desktop. However it should work fine if you start SilverCreek after logging in remotely.

If you start SilverCreek before logging in remotely things should work fine if the 'color quality' on the machine on which SilverCreek is running is set to 'medium 16 bit'. It appears that the remote desktop session uses this level of color quality. You can change these setting in Windows Control Panel -> Display Settings.

 

 

 

 


 

 
Terms of Use -  Privacy Policy -  Trademarks
©1995 - 2008 InterWorking Labs, Inc. ALL RIGHTS RESERVED.