Last-Modified: 2 Jul 2003
Version: 2.57


PART 2 of 2
FAQ - Frequently Asked Questions - FAQ
Simple Network Management Protocol

This 2-part document is provided as a service by and for the readers and droogs of Internet USENET news group news://comp.protocols.snmp and may be used for research and educational purposes only. Any commercial use of the text may be in violation of copyright laws under the terms of the Berne Convention. My lawyer can whup your lawyer.

Anthology Edition Copyright 2002,2003 Thomas R. Cikoski, All Rights Reserved
Please feel free to EMail corrections, enhancements, and/or additions to the Reply-To address, above.  Your input will receive full credit in this FAQ unless you request

As a result of the abuses of EMail now taking place on the Internet, we have a policy of NOT providing the EMail address of individual contributors in these postings. We will continue to provide EMail addresses of commercial contributors unless requested not to.

Neither the contributors nor the editor of this FAQ are responsible for the stability or accuracy of any URL, Web site address, or EMail address listed herein. We take reasonable care to ensure that these data are transcribed correctly and are always open to correction. If, however, a particular URL disappears from the Web there is not much we can do about it.

Please also visit our cousin newsgroup news://

New this month:
More of the usual stuff.

Note on host names and addresses: please email me with any changes to URLs, host names or IP addresses. The MIT host rtfm has an autoresponder which always replies to postings with an incorrect IP.  It would be nice if every host had that, but they don't, so I need your assistance.


1.00.00 FAQ PART 1 of 2

1.01.00 -- General
1.01.01 What is the purpose of this FAQ?
1.01.02 Where can I Obtain This FAQ?
1.01.03 Parlez-vous francais?
1.01.04 Why is SNMP like golf?
1.01.05 What is a droog, anyway?
1.01.99 This FAQ Stinks!

1.10.00 --General Questions about SNMP and SNMPv1
1.10.01 What is SNMP?
1.10.02 How do I develop and use SNMP technology?
1.10.04 How does the Manager know that its SET arrived?
1.10.10 How does an Agent know where to send a Trap?
1.10.12 Which community string does the agent return?
1.10.15 How can I remotely manage community strings?
1.10.17 What is the largest SNMP message?
1.10.30 Are there security problems with SNMP?

1.11.00 --RFC
1.11.01 What is an RFC?
1.11.02 Where can I get RFC text?

1.12.00 --SNMP Reference
1.12.01 What books are there which cover SNMP?
1.12.02 What periodicals are heavily oriented to SNMP?
1.12.03 What classes are available on the topic of SNMP?
1.12.04 What email discussion groups are available for SNMP?
1.12.05 What trade shows cater to SNMP?
1.12.06 What SNMP product User Groups are available?
1.12.07 Where can I find SNMP-related material on WWW?
1.12.08 What related mailing lists exist?
1.12.20 What related newsgroups exist?
1.12.21 Are there introductory materials?

1.13.00 --Miscellaneous
1.13.01 SNMP and Autodiscovery
1.13.03 SNMP and/versus The Web
1.13.04 SNMP and Java
1.13.05 SNMP and CORBA
1.13.06 SNMP and Visual Basic
1.13.07 SNMP and IPv6
1.13.10 SNMP and C#
1.13.12 SNMP and Perl

1.20.00 -- Questions about SNMPv2
1.20.01 What is SNMPv2?
1.20.02 What is SNMPv2*/SNMPv1+/SNMPv1.5?
1.20.03 What is SNMPv2c?
1.20.04 What the heck other SNMPv's are there?

1.22.00 --General Questions about SNMPv3
1.22.01 What is SNMP V3?

1.30.00 --RMON
1.30.01 What is RMON?
1.30.02 RMON Standardization Status
1.30.03 RMON Working Group.
1.30.04 Joining the RMON Working Group Mailing List
1.30.05 Historical RMON Records
1.30.06 RMON Documents
1.30.07 RMON2

1.40.00 --ISODE
1.40.01 What is ISODE?
1.40.02 Where can I get ISODE?
1.40.03 Is there an ISODE/SNMP mailing list?

1.50.00 --Using SNMP to Monitor or Manage
1.50.01 How do I calculate utilization using SNMP?
1.50.02 What are Appropriate Operating Thresholds?
1.50.03 Are MIBs available to monitor Applications?
1.50.04 How can I make sense out of the Interfaces Group?
1.50.10 When do I use GETBULK versus GETNEXT?
1.50.12 What free products can be used to monitor?

1.75.00 -- SNMP Engineering and Consulting
1.75.01 SNMP Engineering and Consulting Firms

2.00.00 FAQ PART 2 of 2

2.01.00 --CMIP
2.01.01 What is CMIP?
2.01.02 What books should I read about CMIP?
2.01.03 A CMISE/GDMO Mailing List
2.01.04 What is OMNIPoint?

2.02.00 --Other Network Management Protocols
2.02.01 What alternatives exist to SNMP?

2.10.00 --SNMP Software and Related Products
2.10.01 Where can I get Public Domain SNMP software?
2.11.01 Where can I get Proprietary SNMP software?
2.12.01 Where can I get SNMP Shareware?
2.13.01 Miscellaneous FTP Sources
2.14.01 What CMIP software is available?
2.15.01 SNMP and Windows NT/95/98
2.16.01 More About CMU SNMP Software
2.17.01 Miscellaneous SNMP-related Products
2.18.01 SNMP and OS/2
2.18.02 SNMP and SCO Unix
2.18.03 SNMP and Linux
2.18.04 SNMP and AS/400

2.20.01 --SNMP++
2.21.01 What is AgentX?

2.30.00 --The SNMP MIB (Management Information Base)
2.30.01 What is a MIB?
2.30.02 What are MIB-I and MIB-II
2.30.03 How do I convert SNMP V1 to SNMP V2 MIBs?
2.30.04 How do I convert SNMP V2 to SNMP V1 MIBs?
2.30.05 What are enterprise MIBs?
2.30.06 Where can I get enterprise MIBs?
2.30.10 Can I mix SMIv1 and SMIv2 in one MIB?
2.31.01 MIB Compiler Topics
2.32.01 How can I get ______ from the _____ MIB?
2.35.01 How can I register an Enterprise MIB?
2.35.02 Where can I find Enterprise Number Assignments?
2.37.01 How Do I Create a Table Within a Table?
2.37.05 How Do I Reset MIB Counters via SNMP?
2.37.07 How can I change a published MIB?
2.38.01 How unique must MIB variable names be?
2.38.04 Which parts of my MIB are mandatory?
2.38.10 Can a CMIP MIB be converted to SNMP?
2.38.11 Can an SNMP MIB be converted to CMIP?
2.38.12 Can a table index value legally be zero?
2.38.14 Where can I find the _____ MIB?
2.38.20 How can I convert a MIB to XML format?
2.38.22 What is the maximum number of entries in a table?

2.40.00 --SMI
2.40.01 What is the SMI?
2.40.02 What is SMIv2?
2.40.03 Table Indexing and SMI
2.40.04 Floating Point Numbers in SMI?
2.40.05 SMIv1 versus SMIv2?

2.45.00 --ASN.1
2.45.01 What is ASN.1?
2.45.02 Why is ASN.1 not definitive for SNMP?
2.45.05 Where can I find a free ASN.1 compiler?

2.50.00 --BER
2.50.01 How is the Integer value -1 encoded?
2.50.02 What is the Maximum Size of an SNMP Message?
2.50.05 Where can I find BER encoding rules?

2.60.00 -- Agent Behavior
2.60.01 Proper Response to empty VarBind in GetRequest?
2.60.02 Master Agent versus Proxy Agent
2.60.03 Proper Response to GET-NEXT on Last MIB Object?
2.60.10 How can I find the SNMP version of an Agent?
2.60.12 How should an agent respond to a broadcast request?
2.60.14 What does an Agent send in a trap?

2.98.00 Appendix A. Glossary
2.99.00 Appendix B. Acknowledgements & Credits

2.00.00 FAQ PART 2 of 2:

2.01.00 -- CMIP


YES, we do need to mention it here!

Paul Rolland writes from France:

"CMIP is the Common Management Information Protocol. It is an OSI protocol that has been defined for Network Management. It comes together with the CMIS (Commom Management Information Service). This service provides : monitoring: in this case, you are using CMIP to gain information, control: you can manipulate objects that you manage, reporting: Managed objects can tell you something wrong is happening."

SUBJECT: What books should I read about CMIP?

The collected OSI specifications are of sufficient bulk to sink a small craft in calm waters. Start easy:
The Open Book: A Practical Perspective on OSI
by: Marshall T. Rose

ISBN 0-13-643016-3

(c) 1990 Prentice-Hall, Inc
Open Systems Networking: OSI & TCP/IP
by: David Piscitello & A. L. Chapin

ISBN 0-201-56334-7

(c) 1993 Addison-Wesley
SNMP, SNMPv2 and CMIP: The Practical Guide to
Network Management Standards
by: William Stallings

ISBN 0-201-63331-0

(c) 1993 Addison-Wesley Publishing Co, Inc
Network Management Standards : Snmp, Cmip, Tmn, Mibs, and Object Libraries
McGraw-Hill Computer Communications
by Uyless D. Black

Hardcover - 351 pages 2nd edition (November 1994)
ISBN: 007005570X

"A new WWWboard has been setup for people interested in CMISE/GDMO. Please checkout"

Mike Dorin

SUBJECT: What is OMNIPoint?

"A common approach to the integrated management of networked information systems."

In practical terms, a vehicle for helping to bridge the standards gap between SNMP and OSI/CMIP so that the end user customer can reap the benefits of both.

A product of the:

TeleManagement Forum
1201 Mt Kemble Avenue
Morristown, NJ 07960-6628

Ph: 973 425-1900
Fx: 973 425-1515

A catalog of products is available."

Wayne Cannon

2.02.00 --Other Network Management Protocols

SUBJECT: What alternatives exist to SNMP?

1) CMIP/GDMO (Common Management Information Protocol/Guidelines for the Definition of Managed Objects) is an ITU network management protocol. Requires more resources on client and server to operate than SNMP but provides a richer and a better object oriented basis than SNMP; still backed by many telecommunications vendors and carriers but some question its future now that CORBA has become so popular (see below). Try

2) TL1 (Transaction Language 1) is a Network Element (NE) management language defined by Telcordia (formerly Bellcore) that is used primarily in North America in telecommunications equipment. Unlike all the other protocols I mention here, it is ASCII based and designed to allow text entry of commands via a "craft" port (EIA232 or X.25 connector) by a machine or "craftsperson" and responses or autonomous messages to be easily parsed by machines and read by craftspersons. Try or

3) (There is a German NE management protocol that I always forget the name of; don't know anything about it though.)

[I think you mean QD2, right? It is somehow a light version of Q3. For more information on QD2, please contact

Frank Fock]

4) CORBA (Common Object Request Broker Architecture) is an object oriented remote-procedure-call (RPC) protocol. While not designed specifically for network management, it is now considered a more widely available and less expensive alternative to CMIP/GDMO for NEs whose management requirements can not be easily met by SNMP or TL1. Try

5) HTML or XML. Starting to show up in IP equipment, such as network ready printers. (Try pointing a web browser at a recent HP laser printer if you have one on your network and see if it doesn't have a web server running on it, along with an SNMP agent too!)

And then there are proprietary protocols, of which I have a small knowledge of one or two:

6) TBOS (Can't remember what it stands for! A web search should help; very simple alarm and control protocol.)

7) Badger and Larse low baud rate serial protocols for control and monitoring of, for example, microwave sites. Try (I consulted to Badger Technology for a while.)

James Logajan

I wouldn't suggest CORBA is a management protocol (it isn't) or that it could be used as one. CORBA is only a spec, not a product, and the products from the specs vary so much they are often not interoperable. CORBA is expensive to implement and difficult to manage.


However, Visual Edge makes a product called ObjectBridge that is a COM/CORBA bridge that also has an SNMP agent built in, and generates MIB files for the CORBA objects. If you have to use CORBA to monitor applications, as is often the case in UNIX when people try to use Java for enterprise apps, this product would work well for adding monitoring capabilities.

DMTF and CIM, and their associated technologies, like WBEM, are your best bet for alternatives to SNMP. I know of nothing else that is industry-wide.

Jeff Jones

2.10.00 --SNMP Software and Related Products

SUBJECT: Where can I get Public Domain SNMP software?
Carnegie-Mellon University
[See SUBJECT 2.16.01 More About CMU SNMP Software]
Cambridge, Massachusetts "look in /pub/snmp"
Christophe Meessen writes:

"I've put a small package on a ftp server that relates to SNMP. It is a minimal set of BER assembling/disassembling primitives needed to implement SNMPv1 or SNMPv2."

"BER compilation primitives compile in reverse. That is they compile from the last byte toward the first byte. This result in the simplest BER compilation code."

The exact path is ( /pub/snmp/ber

[ED NOTE: These files are reported no longer at that URL.]
Jude George writes: Please replace the entire descriptive text for HNMS ( with the following:

HNMS is the NAS Hierarchical Network Management System: an SNMP- and
X Windows- based software package for monitoring large, heterogeneous
IP networks.

The software, documentation, and sample screenshots may be obtained via
anonymous ftp from, in pub/vip/jude/hnms/

It is free software, although it is unclear whether the GNU public
license attached to it holds weight, since it was in the public domain
before the license was applied.

The package is completely unsupported and has not been updated in over
five years. Use of this software on any modern platform will require
some porting effort.
The UT-SNMP project group

"description: Currently, we are building version 4 of the UT-SNMP package. In this new version we initialize the PartyMIB by a configuration file(s). The layout of this initialization file is defined and described in the "SNMPv2 Administrative Configuration Proposal" by Dave Perkins and John Seligson (Synoptics). Some projectmembers have made software to create those configuration file(s) in a very convenient manner. The software asks some simple questions and depending on the input generates the initialization file(s). package: UT-PERKINS-1_0.tar.Z programmers: Martijn Visser & Erwin Bonsma."

The UT-SNMP project group
Tele-Informatics and Open Systems Group
Department of Computer Science
P.O. Box 217, 7500 AE Enschede, The Netherlands
voice: +31 53 894099
The tkined & scotty network management system

"The Technical University of Braunschweig has developed an extensible network management platform which uses the Tool Command Language (Tcl) as its primary extensions language".

"The tkined network editor is the graphical user interface which integrates applications that are usually written as Tcl scripts based on the scotty Tcl extension. scotty provides access to SNMPv1 and SNMPv2 and a number of well known Internet services like DNS, various ICMP packets, NTP, TCP, UDP, SUN RPCs (mount, rstat, portmap) etc."

"Applications distributed with the scotty and tkined sources include network discovery, trouble-shooting applications, event filter, SNMP MIB browser etc. An experimental MIB browser is also available via WWW using the URL:"

"The SNMP Tcl extension uses a SNMPv1/v2 protocol stack written from scratch which was designed to directly support our Tcl API. This provides a portable and fast implementation. A brief history on SNMP Tcl extension is available using the URL:

Information about the current status of the project, the mailing list and the availability of our software can be found at:

[Editor's note: Holger Trapp has informed me that all of the above URL's for tkined & scotty should be replaced by

Another Scotty URL:

has links both to Scotty, generally my favorite tool for this work, and snmpy, which is written in Python. There also are solutions in Perl and other scripting languages.

Cameron Laird

For Windows Scotty: Pick up from
SNMPt and the WILMA package

"SNMPt-1.4 (Toolkit kernel)

- *FULL* documentation in *ENGLISH* (about 130 pages)
- compiles on HP, SUN4.1.3, LINUX, AIX
- includes the counters of the snmp group of the MIB-II
- source for 'barefoot' manager commands:
+ snmpget
+ snmpset
+ snmpnext
+ snmpwalk
+ snmptrap
- error handling improved
- goodies: TCP and TELNET support for client/server management
MibCompiler-1.2 (ASN.1 compiler kernel)
- precompiled versions available for
+ HP/UX 9.0 (MC680x0, HP-PA)
+ Linux
SimAgent-1.1 (Agent simulator for test purposes)
- uses MibCompiler-1.2
mibc-1.2 (MIB compiler)
- some bugs have been removed
- compatible with SNMPt-1.4
snmpm-3.2 (MIB browser)
- new layout of the windows
- menu always visible
- 'find' function
- can send SET REQUESTS
- merges and displays MIBs found on agents and on the compiler
- now ANSI-C source
- many bugs have been removed
mibII-1.1 (MIB-II agent)
- uses SNMPt-1.4
- now, two groups of the standard are supported
(some others still missing - sorry)
Xldv-1.2 (widgets)
- fully ANSI-C
- use mmak-5.2
SMI-1.0 (ASN.1 definitions for MIBs)
- header files for mibc
- some ASN.1 sources of MIBs
mmak-5.2 (multiplatform project manager and makefile generator)
- some bugs have been removed
- recursively scans for #include "xxx.h"
- supports new platform names
+ hp.68k
+ sun
+ linux
+ aix
- supports an improved version and release management system
- knows .asn1 files and mibc
The new releases are available on our ftp server using the standard anonymous ftp access (XMosaic access is supported partially by HTML files!).

For installation read the INSTALLATION_INSTRUCTIONS.html document. You may also be interested in what is COMING_SOON.html. For questions and comments, send E-Mail to
(from Mark Wallace)

"The comp.protocols.tcp-ip.ibmpc faq had this info on a DOS SNMP
monitor package:

Downright Speculation
SNMP monitor Free

Available at

Also available at
file://,,snmpsun.tar_Z UC Davis & Wes Hardaker ( also see FTP list in Part 2.13.01 )

What is it?

- Various tools relating to the Simple Network Management Protocol
* An extensible agent
* An SNMP library
* tools to request or set information from SNMP agents
* tools to generate and handle SNMP traps
* a version of the unix 'netstat' command using SNMP
* a graphical Perl/Tk/SNMP based mib browser
This package is originally based on the Carnegie Mellon University SNMP implementation (version, but has developed significantly since then.
Is it free?

Yes. See the enclosed COPYING file for copyright details. With this version only (version 3.4), I'm asking people to send me a postcard of your home city, area, or country. I intend to arrange them into a logo, take a picture of them all, and use the picture on the ucd-snmp web page. If you wish to send a postcard, please send it to:

Wes Hardaker
Davis CA, 95616
Where can I get it?

The ucd-snmp project is being renamed to net-snmp and is moving to the highly respected servers.

Why are we doing this?

Originally when I was the only person working on this project, it made sense to attribute it to UCDavis where the work was being done. These days the majority of the work is done by people around the net, so it makes more sense to turn it into a project that better recognizes the efforts of the contributors. Is there another reason? The administration of the ucd-snmp server and its services takes up too much of my time. By moving to much of this burden will be lifted from me, freeing my time to work on actual code.

Additionally, has many standardized and respected project utilities that we expect to make use of. I'm personally looking forward to using their bug database which I think is superior to the jitterbug interface that we're currently using.

Where is this new site?


Pointers will be left at the current web site as well, of course.



Web page:

Project development page:


Are there binaries available?

- There are binaries for some systems available in the binaries directory on the ftp site.

What operating systems does it run on?

* HP-UX 9.07, 9.05, 9.03, 9.01 on HPPA 1.1 systems
* HP-UX 10.20, 10.10, 10.01 on HPPA 1.1 systems
* Ultrix 4.5, 4.4, 4.3, 4.2 on DEC MIPS systems
* Solaris 2.6, 2.5.1, 2.5, 2.4, 2.3 on Sun SPARC systems
* Solaris 2.5 on x86 systems
* SunOS 4.1.4, 4.1.3, 4.1.3, 4.1.2 on Sun SPARC systems
* OSF 4.0, 3.2 on DEC Alpha systems
* NetBSD 1.3alpha, 1.2.1, 1.2, 1.1, 1.0 on all? systems
* FreeBSD 3.0, 2.2.2, 2.2 on all? systems
* BSDi 2.1 on all? systems
* Linux 2.1, 2.0, 1.3 on all? systems
* AIX 4.1.5, 3.2.5 on all? systems
* OpenBSD ? on all? systems
* Irix 5.1, 6.2
The applications (though not necessarily the agent) run on the following systems:
* Windows95
* Windows NT
It's quite possible it will run on some systems not listed above.

Which versions of SNMP are supported in this package?

SNMPv1, SNMPv2p, and SNMPv2c
General info

Subcription/unsubscription/info requests should always be sent to the -request address of a mailinglist. In this case, send these requests to To subscribe to a mailinglist, simply send a message with the word "subscribe" in the Subject: field to the -request address of that list. To unsubscribe from a mailinglist, simply send a message with the word "unsubscribe" in the Subject: field to the -request address of that list.

Do not send multiple (un)subscription or info requests in one mail. Only one will be processed per mail.

NOTE: The -request server usually does quite a good job in discriminating between (un)subscribe requests and messages intended for the maintainer. If you'd like to make sure a human reads your message, make it look like a reply (i.e. the first word in the Subject: field should be "Re:", without the quotes of course); the -request server does not react to replies.
from pwilson:

"New portable SNMP agent distribution is available under GPL. We call it snmp95. It is available for anonymous ftp from

As well as number of other products named xxxx95 it is rather a transtional product representing current intermediate state of SNMPv1 -> SNMPv2 transition. First, let me describe what is there.

1. It is bi-lingual SNMPv1/SNMPv2 implementation based on the recent drafts, which will change along with draft changes.
2. It includes two agents: base agent which will compile and run on all kinds of UNIXes, but without MIB-II and agent which will compile and run on SVR4/386 UNIX. Latter one has driver/kernel based (Karl are you reading ?) implementation of MIB-II for streams based TCP/IP.
3. Long time ago the thing was started from CMU-SNMP code, so it still shares common philosophy and some familiar names. At the same time basic SNMP library has error detection/reporting added to fully support new errors required by SNMPv2. Agent to MIB interface is also improved - MIBs can be hooked on the agent as binary modules.
4. The general design philosophy is to have a predictable minimal load on the underlying managed system from SNMP agent (e.g. agent does not use malloc's) while providing commercial level of capabilities: binary extensibility, fully implemented SETs and error-code support.
5. Admin/security portion of the code is separated from the rest of the code. So, if any new admin models will surface no changes in MIB or agent code will be required, unless some creative statistics will be stacked in.
6. Code is extremely portable. Practically 99% of system dependent code is contained within driver itself. I do not think that it will take more than a couple of days to port it to something else.
7. Simple community based admin model codes are provided. An absolutely trivial one with base agent and a little bit more sophisticated with svr4x86 one.
8. Code is lightly tested in the respect that it will perform gets and get-nexts on all variables in MIB-II, supported by underlying system. It will also perform SETs on all read-write variables in MIB-II and in ipForwardTable, except tcpConnState. What was not tested yet is that phase1 one of SET will reject absolutely all thinkable wrong routes without allowing for commit phase to take place: there is practically unlimited number of wrong routes. So, we tested against some most evident wrong ones but this is not finished yet."
ISODE -- see section 1.40.00 of this FAQ
See section 2.20.01
SNMP Management Proxy Server

"The SNMP Management Proxy Server is a platform independent web-browser based client/server system for SNMP based report generation. The source code is available on request and without fee. The SNMP Management Proxy Server is a platform independent web-browser based client/server system for SNMP based report generation. The new version 2.6 is now available. An online demo is running at

You can get the source code from

(For the installation you will also need scotty-tcl)

Sven Doerr
Hal M. Staniloff wrote:

"Can anyone recommend a good public domain SNMP management software package? It should be able to import MIBs etc. I don't care if it runs under LINUX or NT, I just need something that can handle traps and give a picture of the state of my network"

There are several tools you can use. First of all is the ever popular scotty (TCL/Tk) package for Unix. The URL for Scotty is:

The UC Davis SNMP package for UNIX is at:

For more info and software links go to the Simple Web page at:

Barry D. Chalcroft

"sts is an SNMP trap switchboard, which can be configured to display, log via syslog(8) or redistribute received traps to other hosts. The idea is to configure all network equipment that is capable of generating SNMP traps to send all traps to sts on a single host, under the assumption that it is easier to adjust trap handling in a single tool than to reconfigure a number of network devices whenever the requirements of local network management change."

Point your favourite browser to

Borge Brunes
"ModularSNMP - public domain, JAVA, SNMPv3 from the University of Quebec at Montreal"

Mark Aubrey

SNMP Sniffer

>Does anyone know of a tool that will take a file containing SNMP
>packets (e.g. output from tcpdump) and display the contents readably?

SnmpSniff, a promiscuous SNMP PDU sniffer.

I'm not sure where the source got to, but has some information.

Jim Trocki

I believe the source ran off to

The author's homepage is located at

Andre Gironda

There are also a number of open source things, but have no
experience with them, gxsnmp comes to mind. It's at:

David Oberbeck

An open-source implementation of an AgentX Java sub-agent toolkit (RFC 2741) is available at the Jasmin home page under the GNU General Public License.

The Jasmin (JAva Script Mib ImplementatioN) project is a collaboration of the Technical University Braunschweig ( and the C&C Research Laboratories of NEC Europe Ltd. (

JAX allows applications and services to dynamically extend an SNMP agent by new MIB objects using the AgentX protocol (RFC 2741). The JAX software consists of

Since JAX establishes a high-level sub-agent programming interface and comes with a MIB compiler, it supports easy and efficent sub-agent development.

JAX does not implement AgentX index allocation, capabilties registration, and makes no use of the AgentX Ping PDU.

JAX does not contain an AgentX master agent. It has been developed and tested with the AgentX master agent of the UCD-SNMP project.

Further documentation of the JAX and Jasmin software distributions and several related documents are available at the Jasmin home page.

Frank Strauss

An open-source implementation of the Script MIB (RFC 2592) and an AgentX sub-agent toolkit (RFC 2741) are available at the Jasmin home page under the GNU General Public License.

The Jasmin (JAva Script Mib ImplementatioN) project is a collaboration of the Technical University Braunschweig ( and the C&C Research Laboratories of NEC Europe Ltd. (

The Jasmin software distribtion includes

The Script MIB is implemented as a loadable module for the UCD-SNMP 4.2 agent ( It supports all managed objects of RFC 2592 except for the code table.

Scripts can be written in Java (JDK 1.1.X). Further runtime environmentsfor Perl and Tcl are under development. Runtime environments are linked by the SMX protocol (RFC2593).

Further documentation of the Jasmin software distribution and several related documents are available at the Jasmin home page.

Frank Strauss

A new release of Loriot, one free GUI SNMP manager for MS Windows is available to download at

The build 128 include a new minimap feature and bug fix.

Loriot is one Full, Free, GUI SNMP V1 node Manager running over MS-Windows 95/98/NT4/2000 small platform (P100/32Mo). Loriot is designed for managing through SNMP, ICMP and other process a small to large sized network. Loriot manage the hosts, routers, links and all SNMP equipments of your LAN/MAN/WAN networks and is able to manage them through a customizable graphic representation of your organization.

Ludovic Lecointe

myNMS is (yet another) Network Management/Monitoring system, with
an emphasis on providing network managers, NOC and helpdesk staff with
information on how their LAN is connected and configured.

The system is web-based (requiring cgi, and preferably mod-perl)
with a 'search' facility allowing queries on host names or IP addresses,
and on users by whole or part of username, real name or email addresses.
The web front end / query module controls users' access to myNMS reports,
and presents different index pages of myNMS and other related information
to different groups of users (e.g. NOC / helpdesk / users), integrating
with the web server's existing access-control meachnism and automating
generation of access-control lists for user groups.

There are some demo pages showing what it looks like in operation
at the repositories, at:

The system is written in Perl, and uses net-snmp and mySQL.

It's copyright(c) John Stumbles <> and the
University of Reading, and licensed under the same terms as Perl.

John Stumbles

SUBJECT: Where can I get Proprietary SNMP software?
SNMP Research International, Inc.
3001 Kimberlin Heights Road
Knoxville, TN 37920-9716

Ph: 865-579-3311
Fx: 865-579-6565

SNMP for the secure management of networks, systems, applications, and
legacy devices, based on SNMPv1, SNMPv2, SNMPv3, HTTP/HTML, and other

EMANATE, BRASS, CIAgent, DR-Web and many other products are supported
on a wide variety of platforms
Epilogue Technology Corp.
11116 Desert Classic Lane
Albuquerque, NM 87111

"Envoy(tm), Emissary, Attache, Attache Plus, Ambassador:

Portable SNMPv1 & SNMPv2 agent/manager, MIB Compiler, UDP/IP & TCP/IP protocol stacks, RMON agent"

Ph: +1-805-650-7107 or (505) 271-9933
Fax: +1-805-650-7108 or (505) 271-9798
Email: David Preston,

Australasian/Pacific Rim Distributor
Internode Systems Pty Ltd
414 Goodwood Road, PO Box 69, Daw Park SA 5041 Australia

Email: Simon Hackett, [Technical]

Sales Folk,[Sales]
Ph: +61-8-373-1020
Fax: +61-8-373-4911

There are some updates that should be noted in the SNMP FAQ
(part 2).  I don't speak for either Epilogue or Wind River, but Epilogue
is now owned by Wind River Systems.  WRS sells Epilogue's Envoy
(their name is WindManage) toolkit for the VxWorks and pSOS
operating systems.

Icon Laboratories licenses Envoy from Wind River and offers ported
versions for Linux, Solaris, NetBSD, OpenBSD, FreeBSD, BSDi and
Windows NT/2000/XP.  The toolkit includes docs, SNMP development
libraries, a MIB compiler, and source code to a native MIB-II agent and

Our contact info is

phone: (888) 235-3443 or (515) 226-3443
fax:     (515) 226-3462
email: or

David West
Pete Wilson
50 Staples St.
Lowell, MA 01851

Voice: 978-454-4547

OPEN SOURCE Very portable, very mature, bug-free SNMP
V1+V2C source-code library that does all of the SNMP
grunt work. Link this library with your application for
SNMP functionality in a day. For both manager-side and
agent-side applications. Documented and with examples.
Go to to download.
Empire Technologies, Inc.
500 Northside Circle, NW Suite D7
Atlanta, GA 30309-2100

Ph: 404-350-0107
Fx: 404-351-3638
Cheryl Krupczak,

MIB Manager(tm) X/Windows NMS tool, Agents for UNIX Systems Management and Host Resources MIB, and base SNMP agent source code.
Precision Guesswork, Inc
Contact Sales at
phone: (508) 887-6570, fax: (508) 887-6552
Web server at

SNMPTools is a basic, inexpensive Network Management Station software package for PCs. The current version runs over FTP Software's 16 bit DOS IP stack, a Win95 version is currently in Alpha Testing.
DMH Software
15 Arborwood Rd, Acton, MA 01720
Voice: 978-263-0526 Fax: 810-461-4151

1. Portable SNMP Agent

You can download the snmp-agent Demo SDK from:

2. SMIv2 MIB-Compiler

You can download the mib-compiler for evaluation from here:

3. Portable UDP/IP and TCP/IP Stack

4. Simple SNMP Agent

Alternative simple low-cost SNMP-agent. CMU based SNMP Agent portable
engine changed and redesigned for any "hosting-system" (embedded and

5. HTTP Server

6. Other related components: Bridge, RMON, RIP.

7. Dallas DS80C400 TINI(r)

DMH Software announces the availability of its portable Advanced SNMP
Agent (snmpv1, snmpv2c, snmpv3) and SMIv2 mib-compiler for the Dallas
DS80C400 TINI platform.
Castle Rock Computing
20863 Stevens Creek Blvd
Cupertino, CA 95014

SNMPc is a full-featured SNMP Manager for Windows
The SNMP WorkShop
Panther Digital Corporation
5 Cherokee Drive Suite 50
Danbury, CT 06811-2824

The SNMP WorkShop provides only custom and OEM SNMP software solutions.
Network Management Technologies

SNMP Agent for Contact Closure Inputs and Outputs, Temperature and Humidity
and ATI and Nortel Microwave radio systems.

Contact: Mark Hammett

Tel: +61 2 9439 1186
Fax: +61 2 9437 9363"
NetOps Corporation has become part of Micromuse.
RedPoint Software Corporation

"We make an ODBC-SNMP driver for Windows 95/NT. We also have an interactive demo on our web site that can be used to query any snmp enabled device on the internet."

Clay Finley
MultiPort Corp.
622 Charlestown Meadows Dr.
Westboro, MA 01581

EZMP, PortMon, Ip Stack, BRID, Consulting services.

Highly portable components including: SNMPv1/v2 agent, MIB Compiler, IP stack, RMON agent, spanning tree bridge.

Ph: +1-508-366-5867
Fax: +1-508-366-4978
Email: Reuben Sivan,
Fax: +61 43 68 1395
Voice: +61 43 68 2118

"MibMaster is an HTML to SNMP gateway which allows any Web browser to be used to view SNMP MIBs. It supports:

[This product has been reported to be no longer available. -Ed] [rev 1/27/03]

MG-SOFT Corporation
Strma ulica 8
2000 Maribor

E-mail <>,  Internet

Products supporting SNMP and SMI software development for Windows
and Linux platforms:

 * MG-SOFT SNMPv3 implementation  (WinSNMP V3 API) for Microsoft Windows and Linux

 * MG-SOFT SNMP Agent Design and Deployment Kit Professional Edition  (Windows)

 * MG-SOFT WinSNMP Toolkit (SDK)  (Windows, Linux)

 * MG-SOFT WinMIB Toolkit (SDK)  (Windows, Linux)

 * SNMP EasyAgent Toolkit (SDK)  (Windows)

 * MG-SOFT SNMP EasyAgent Source Code Template Generator  (Windows)

SNMP management products and utilities:

 * MIB Browser Professional Edition with MIB Compiler  (Windows, Linux)  

 * MG-SOFT Visual MIB Builder  (Windows)

 * MG-SOFT Trap Ringer Professional Edition  (Windows, Linux)

 * Net Inspector, general network management system  (Windows, Java)

 * SNMP Master Agent  (Windows)

 * MG-SOFT MIB Compiler  (Windows, Linux)

Evaluation version can be downloaded from:

"ClearStats/Lite is a sophisticated yet inexpensive network management tool. ClearStats/Lite Version 2.0 is available Win NT, HP-UX and Solaris."

GulfBay Network Systems, Inc.
4925 O'Connor Rd. N.
Suite 125
Irving, TX 75062
Phone (972) 717-0472
Fax (972) 717-3094
BMC Software, Inc.
2101 CityWest Blvd
Houston, TX 77042
Ph: 800-841-2031
Fx: 713-918-8001

PATROL SNMP Toolkit (tm) (formerly PEER OPTIMA). "Interoperable, extensible SNMP agents and high level development tools."
COMTEK Services, Inc.
3545 Chain Bridge Road
Suite 103
Fairfax, VA 22030
Phone: 703-278-0110
FAX: 703-278-0108
Sales: Dick Easton

"COMTEK Services specializes in extensible agents including products in the following areas:
-system management subagents for OpenVMS, OS/400, and Stratus VOS systems
-graphical MIB editor with optional subagent code generation
-subagent development toolkit
-special purpose subagent development

The NM*Server is an extensible agent.
COMTEK Services' MIB Editor is a tool which facilitates the generation of new MIBs or the modification of existing MIBs.
The NM*Toolkit subagent development toolkit provides a subagent kernel which includes features for the reliable reception of traps and generation and maintenance of a subagent configuration file."

3763 Benton Street
Santa Clara, CA 95051

"SNMPinfo licenses the most up to date version of SMICng. SMICng is a MIB compiler that can be used by individuals for MIB design and for use with MIB utilities. Also, SMICng can be used in creating MIB browsers. SMICng has more extensive and better MIB checking than any other MIB compiler. It also does a much better job of converting MIBs in SMIv2 format to SMIv1 format than any other MIB compiler." wrote:

"Hello, I have to test a mib implemented on a new product. This mib is very simple and read-only. I should test stability, faithfullness with the standards, robustness, How can I do that ? There is some special tools to achieve that ? There are some products available on the market to do this. One company I know in this space who has excellent products is Simplesoft Inc."
or 650-965-4515.
SNMP Tool Kit for Windows NT

LogiSoft AR Ltd. is shipping SNMPv2 toolkit for Windows NT/95 v2.1 The toolkit includes SNMPv2/v1 C++ class library for MS VC++ and Borland C++ Builder. Please visit for details.
The SystemView agent that used to be referenced in the SNMP FAQ is again available. It's now at: for Windows, OS/2, and AIX. This includes an SNMP agent, an executable version of the DMI service layer, and a toolkit.

Taboret is a rapid manager development kit which works with most other platforms. You can quickly build custom views into any SNMP device and it integrates with most of the big platforms incl OpenView, NetView and soon Castlerock.

Jeff Curie
Statscout is a network monitoring system with a web browser front end. Statscout can monitor up to 10,000 network ports from a single server. It has a builtin statistical LAN analyzer, error reporting, SLA reporting, top utilization reports, outages and warnings, SNMP traps, LAN alarms, etc....

Statscout Ptd Ltd

Level 6. 360 Queen St
Phone: +61 7 32294750 Brisbane, Queensland, 4000
Fax: +61 7 32294506 Australia

Paul Koch

Gambit Communications sells MIMIC SNMP Agent Simulator which will help you prototype an agent and achieve parallel development and testing.

MIMIC SNMP Agent Simulator
Gambit Communications, Inc.
76 Northeastern Blvd. Suite 30
Nashua, NH 03062

Announcing ACE-SNMP, ACE-ExAgent, and ACE-SNMX systems, available for Windows-NT and Unix systems. Fully functional evaluation copies of these new products are available from:

Diversified Data Resources, Inc --
Telephone: 1-800-233-3374 FAX: 1-415-898-7331

If you are looking to monitor servers up/down status, performance thresholds, processes, etc. without having to use or code SNMP, take a look at a product called ENGUARD at

Richard Fisher

The FastBench SNMP Manager Toolkit from NETMANSYS ( provides a C++ API to develop SNMP manager applications. It is delivered with a Class Generator utility to map MIB entries into C++ objects and a comprehensive set of code examples.

Imed Ayadi

We have just released what we call the PowerTCP SNMP Tool, which is two ActiveX controls, one for manager development, one for agent development, and we have a MIB object that reads in MIB's and makes referencing OIDs and values simple. SNMP V1 and V2 are supported. Details from our web page:

The SNMP version 1 and 2 Agent and Manager controls use a suite of supporting objects that include a Mib Object (for loading Mib files), an SNMP Message Object (for encoding/decoding packets), a Trap Object (for presenting Traps), and a Variable Object (for building messages). Download the SNMP Tool for a free 30-day trial!

Gene Ninestein

You may want to mention Cyberons for Java -- SNMP Manager Toolkit.

This product sells for $499 per developer license and royalty-free
unlimited distributions.

Moreover, the product also provides high level functions such as device
discovery, MIB walks, columnar and row access to tabular data, etc.

A programmer's guide is available online at

Shripathi Kamath

We have recently released version 2.0 of our Cyberons for Java SNMP Manager

Cyberons for Java SNMP Manager Toolkit version 2.0 supports SNMP v3, and
includes easy-to-use classes which provide access to all v3 features. We
paid a great deal of attention while designing these classes to ensure that
management applications can be written to work with all versions of SNMP
with minimal differences in code, and provide numerous examples to
illustrate usage.

Also available as a separate product is Cyberons for Java SNMP Utilities
1.0, which is a set of utilities to work with the SNMP Manager Toolkit.
These utilities include a MIB compiler/loader, a MIB browser and test

More information about these products, including a complete programmer's
guide, can be obtained from

Gopal Narayan


They provide SNMP agents for all Windows OS (from 3.11 to NT 4.0). These
agents are very powerful, cheap, and you can download an evaluation version
from their Web site.

They've got also SNMP API.

David Lifchitz
Atos SNMP products
BP 67
06902 Sophia Antipolis, France
Ph : 33 4 92 96 88 48
Fx : 33 4 92 96 88 49

We build technological bricks or specific solutions to our customer's network management needs.

MibH Poller and mid-level manager library : a dual role SNMP poller library that makes possible to build managers or mediation agents with high level interfaces.

WebSNMP : a free flexible and easily deployed Web-based SNMP manager.

SNMP Agent Toolkit : a development kit that drastically simplifies the development of specific SNMP agents.

SNMP Agent Simulator : distributed java MIB tester, a runtime application that will emulate any agent : pick the MIB, design a behaviour.

SNMP Dispatcher : a runtime agent able to federate several sub-agents into one master agent, only one interlocutor for the manager application.

CORBA/SNMP Gateway : a mediation server that exports CORBA objects representing your agents : it handles SNMP for you, it only exports CORBA server objects.

Mickael Badar
SNMP Developers' Applications

a. Visual MIBuilder is an easy-to-use Windows application for
    creating or modifying ASN.1 MIBs for SNMPv1/v2/v3.
b. Visual MIBrowser is a user friendly Windows application that
    allows a user to perform Get, Set, or Walk operations on
    auto-discovered SNMP agents. It supports both SNMPv1 and SNMPv2.
c. Visual SNMP AgentBuilder for VB automates the creation of an agent
    in VB from a given MIB. It can also be used for prototyping and
    simulating agents.
d. Visual SNMP xAgentBuilder for C++ is a C++ Code Generator for
    standalone SNMP v1 Windows Agent or SNMP v1 extensions DLL for
    NuDesign SNMP v1/v2 Agent Service or MS Windows SNMP v1 Agent
e. NuDesign SNMP v1/v2 Agent is a seamless upgrade of extensible MS
    NT 4.0 SNMP v1 Service to SNMP v1/v2 Service

SNMP Developers' Controls

These SNMP v1/v2 controls are developed for use with Visual Basic and
Visual C++. You can create standard windows-based or browser-based
(Internet Explorer ActiveX) applications with these easy-to-use

a. SNMP Trap Sender - This control manages all the requirements
    for sending SNMP v1 and v2 traps in your applications.
b. SNMP Trap Receiver - This control manages all the
    requirements for receiving SNMP v1 and v2 traps in your applications.
c. SNMP Management control - This control manages the
    requirements for making SNMP v1 and v2 requests to SNMP agents from your
    application Provides the same functionality as WinSnmp.
d. SNMP MIB Loader component - This ActiveX component parses
    v1/v2 SMI MIBs and generates collections of MIB objects.
e. SNMP Agent Discovery control - This sends an SNMP request to
    a range of IP node addresses at a port that you specify, and builds a
    list from those nodes that respond.

We produce an SNMP Agent/Manager object for use by developers. We this SNMP object as ActiveX controls, C++ Libraries, Native Delphi and C++ Builder VCL's, Pure Java Beans, and soon Kylix CLX's. ActiveX and C++ versions are also available for Windows CE.

/n software, inc.
PH : (919)544-7770 x 111
FAX: (208)988-4211

Eric M.

Omnitronix, Inc
760 Harrison Street
Seattle WA 98003
Ph: 206-624-4985
Fax: 206-624-4985

SNMP-Link -- Network Management Proxy Agent

The SNMP-Link is an SNMP proxy device which allows your non-SNMP
equipment to send SNMP traps to your network manager based on the
receipt of serial data alarms, contact closures, analog sensor levels,
temperature, humidity, sound and/or airflow.

Jesse Dennerlein

WhatChanged for SNMP
Monitors and manages the changes of SNMP devices within an enterprise network.

TrapTracker for Windows
A simple, practical and cost effective solution to monitor and manages SNMP
events on your network.

Are you looking for cost effective and experienced development help in SNMP and
Network management area? Visit Our professional division is
ready to help you. SNMP and Network Management is our focus and, is our business
too.  We are cost effective because we complete our projects in weeks where other
may take months. Our project team has over hundred years of experience in
developing of SNMP and Network management solution, which includes:
·          SNMP agent in any embedded systems
·          SNMP managers
·          Network Management architecture and integration
·          Have developed custom MIBs for Wireless, telecom, WDM, ATM, SONET
·          Many customers reference

Please call us at 410-381-1515 or send us message at and let
us know what you are doing.  You will definitely get some good tip form
professional team

Jagat Shah
Director, Marketing
Phone: 410-381-1515

SUBJECT: Where can I get SNMP Shareware?

Joerg Christ wrote:

"Hi, i'm searching manager programms and tools like snmpget, snmgetnext for Windows NT 4.0 or 3.51."

You may wish to check MG-WinSNMP SDK, a 32-bit winsnmp implementation by MG-SOFT. It is available under the shareware license. You can download it from

Matjaz Vrecko
Taboret Quick/Free Edition is a freeware version of Quick that
can be upgraded when you need the additional capabilities in the licensed version of Taboret Quick. Download the software from
If you are using Visual C++ on NT, you can download an SNMP packet encode decode library from Network Computing Technologies, Inc Visit and follow the link to download.
MON version 0.38pre7


"mon" is an extensible fault detection package which can be used to monitor network and system resources. It is most useful for system and network administrators who are responsible for maintaining the operation of networks of hundreds or possibly thousands of nodes.

Downloads are available from the above pages. Please use
a mirror for downloading the software. Refer to for a list of mirrors.

Jim Trocki
Dennis wrote:

: Where can find the SNMP v3 sniffer ?
: I try to capture the SNMP v3 packets to watch the content?
: Where can by the package ?
: Best regard !!

Tcpdump from does it all for you. And it is free.

Juergen Schoenwaelder
As a subset of OpenNMS' Bluebird Project, we are pleased to announce and make available our jsnmp library, a Java2 library providing SNMP v1 & v2 functionality.

jsnmp is released as part of the Bluebird Project, an open source project to build a scalable and distributable network and systems management platform. Released under the GNU General Public License, jsnmp is publicly available at no cost, including source code.

jsnmp can be downloaded from the OpenNMS web site at per the following instructions:

- Go to
- Register
- Login
- Select "Developer Portal"
- Follow the "Download" links

Note that up-to-date source code is also available via our CVS tree at Additional information, including CVS configuration parameters, are available at the web site.

Shane O'Donnell


Bruce Barnett's huge, but somewhat out-of-date list of FTP sources has been moved to

Paul Boot writes:
"I have a small contribution to the FAQ concerning SNMP FTP sites. For the European users this site will be useful."

dir: computing/comms/tcpip/snmp This dir contains Tricklet, xsnmp, xnetdb and others.

Your Editor notes...

Public domain network management tools (not necessarily SNMP) are available via anonymous FTP from

Look in the /pub/netman directory. The tools are:
   etherman - displays ethernet traffic by volume
   geotraceman - displays a geographic version of traceroute

"I'm desperatly searching for an SNMP generator. What I need is give the generator an IP to which it should send the trap, and the MIB variable which should be sent."

Yuval Shchory



Jay Riddell

You should look at the SNMP utilities provided by Erlang.
It is good. But you will have to learn a new language - Erlang.
Check it out at


SUBJECT: What CMIP software is available?
Public Domain Software is available from University College London, UK as follows:


Graham Knight writes:


OSIMIS is not a supported package and no guarantees are offered about its operation. You may use it and adapt it to your own use but this is entirely at your own risk. We may be able to help with any problems you have but we can offer no guarantees - there is very little effort to spare for this at UCL.

1. Internet
If you can FTP to the Internet, you can use anonymous FTP to [] and retrieve the files

osimis/osimis-3.tar.Z (a 2.2 Mb compressed tar image),
osimis/ (0.4 Mb of compressed postrcript).
If you do not have InterViews-2.6, you may also retrieve the files
osimis/InterViews-2.6.tar.Z (a 3.4 Mb compressed tar image)
osimis/InterViews.README (a text file).
2. FTAM on the IPSS, JANET or IXI
If you can use FTAM over X.25, you can use anonymous FTAM to the host 23421920030013 through IPSS, 00000511160013 through JANET or 20433450420113 through IXI with TSEL 259 (acsii encoding). You should log in as "anon" and retrieve the files
osimis/osimis-3.tar.Z (a 2.2 Mb compressed tar image) and
osimis/ (0.4 Mb of compressed postrcript).
If you do not have InterViews-2.6, you may also retrieve the files
osimis/InterViews-2.6.tar.Z (a 3.4 Mb compressed tar image)
osimis/InterViews.README (a text file).
For information only:
Telephone: +44-71-380-7215 (George Pavlou)
+44-71-380-7366 (Graham Knight)
Fax: +44-71-387-1397
Telex: 28722

You can find additional info about OSIMIS at: was the mailing list that I used while working with OSIMIS a few years back. Not sure if it's still valid, but you can give it a try. There was an initiative for SNMP MIB<->GDMO conversion. You can get more info at the site above.

Sridhar Iyengar

SUBJECT: SNMP and Windows NT/95/98

[Note: This section is NOT intended to replace the Winsock FAQ, but only to provide some specific SNMP-related references]
Books on Windows 95/NT SNMP

Windows NT SNMP
by: James D. Murray
ISBN 1-56592-338-3

[Editor's Note: Book reported out-of-print.]
"Getting started with SNMP on Windows NT "

"Windows NT comes with an extendible agent. You can install the extendible agent, and a included MIBII extension, in Network in ControlPanel. Under the Services Tab, you can press add service. The files should be included on your CD. I don't think its possible to get the source code for the extendible."

"There are, however, source code available for extension agents. You should be able to find a document called "Microsoft Windows NT ANMP Agent Extension", by Steve Rosato, if you search in SDKs, MSDN or maybe Microsofts Web-pages. This document together with the sample (Toaster-agent) gives a starting point in developing own extensions. There are also several extensions available from diffrent vendors. Both SNMP Agents and Managers on NT (and Win95) use the SNMP API. There are source code available for a simple manager called SNMPUTIL and SNMPWALK. Try to search for these. And of course it's possible to buy NT managers form diffrent vendors. "

Kenneth Herskedal
Getting Traffic Counts
[From a long post by Jean Renard Ward. Edited material shown by [...]]

"This is a note I am posting and EMailing to many of the people who contacted us from the USENET Newsgroups, ListServers, and other forums about how to get the network traffic counters on Windows95 and WindowsNT.
"Coding for Win95 - The SNMP MIB"
There is more information on SNMP at:
for more info:
ucd-snmp and Windows NT

"The ucd-snmp applications (snmpget, snmpwalk, snmptrap, snmptable...) all work on Windows NT and Windows 95. The agent, however, currently does not. The agent was originally written for the unix operating sytem, and agent's in general are very operating system specific, so porting the (or any) agent to an entirely different platform, like Windows NT, would be a rather long task. The ucd-snmp toolkit has a very extensible agent that allows you to remove large sections of code from compilation easily, so porting the agent could at least be broken down into sections and tackled in small pieces."

Wes Hardaker
Re: Traps with Ms Windows NT 4.0 SNMP API wrote:

"I'm trying to develop an agent, that sends traps with some variable bindings included. So far the only success was a crash of the SNMP service (bad luck!). My guess is, that I do not allocate memory correctly.

Could anyone post me sample code how to do it right or any other advice."

Make sure you use the SNMP_malloc and SNMP_free routines. Also make sure that you allocated (via SNMP_malloc) the varBindList.List memory sizeof RFC1157VarBind * # of variables (where # of variables equals the len field).

Windows 95 SNMP Agent

Sanjay Zalavadia ( wrote:
"Anyone know of an SNMP agent that can be run on Windows 95?"

The Win95 SNMP-Agent is included on the Win95-CD. The agent can be installed via the Network Option in the Control Panel. Location on the Cd is ADMIN\NETTOOLS

Martin Steiner

If you don't have the right win95 cd, you can get it from under "SNMP Agent and related files" at the bottom of the page.

Margie Mago

[NOTE: ABOVE URL REPORTED NO LONGER VALID. 11/20/98. Try poking around the Microsoft Web Site.]

> I'm trying to build an agent on win95 too, but it seems to only work on
> NT...

Well, you're in luck. I finally found out what was going wrong myself.
There's a documented bug in Win95 which means extension agents don't work.
Nice huh? You have to install the winsock 2 update available from the MS
website. Maybe this should go in the FAQ. It mentions that SNMPAPI.DLL
is required, but not that you have to get a new version of SNMP.EXE as
SNMP Community Strings on Windows 95

Bob deBoda wrote:

" how can i set the community names for win95 computers?"

You have to do it directly by the windows registry. Microsoft doesn't provides a tool to do it!! Open the registry -> regedit
Go under :
Add a key representing the communities you want to support.
Under this key, add string values representing the machines you want to be in your community.

Go under :
Add the communities that you which SNMP to Accept request from. (I'm not sure if this key is used, because the NT tool to add communities doesn't update this key!!).

Alain Dessureaux
Windows 95/NT MIB

Rich wrote:

"Anyone kindly advise me where can I find MIB for win95/NT ? I have a SunNet manager that need to monitor the status of Win95/NT. "

You can find the MIBs for NT and related software (IIS...) at, the file is called NEWMIB.EXE You can find this file on the RK - CD also. The Win95 MIB should be provided on the Win95 CD in admin\nettools\snmp, but
I don't know if there is a special Win95 MIB.

Martin Steiner
SNMP Tool Kit for Windows NT

LogiSoft AR Ltd. is shipping SNMPv2 toolkit for Windows NT/95 v2.1 The toolkit includes SNMPv2/v1 C++ class library for MS VC++ and Borland C++ Builder. Please visit for details.

Alan Revzin
The "Toaster MIB" and How to Use It

"Is anyone here acquainted with the sample SNMP extension agent and management app that come with the NT SDK? The management app is command-line based, and the extension agent is supposed to manage a virtual Toaster, of all things.

Howver, I cannot get any of it to work. The extension agent dll is registered properly, and is definitely being loaded into the SNMP service's process space, but the SnmpExtensionInit API is never called. Can anyone explain why this might be ? It's got me utterly stumped ..."

Reuben Harris

If you want to test the toaster mib extension agent dll, you must compile the toaster.mib file with mib compiler, mibcc (this mib compiler is in NT resource kit CD) when you compile the toaster.mib,
you must consider the order of mib file. i think <<mibcc smi.mib lmmib2.mib mib_ii.mib toaster.mib will work>> and then restart the snmp service and retest the snmputil.

Hae-Joo Kim

1) Install the SNMP Agent network service in Windows 95/NT. (Sounds like you already did this.)
2) Register the extension agent in your Window 95/NT registery via regedit/regedit32. (Sounds like you did this too.)
3) If needed, compile the extension agent. (Using Visual C++ 5.0, I successfully compiled the toaster MIB as a DLL with a static link to snmpapi.lib.)
4) Install the extension agent (i.e. toaster MIB DLL) in the directory you defined in regedit/regedit32.
5) (And this is what took me a day to figure out...) Install snmpapi.dll in c:/windows.
6) Restart your agent Windows 95/NT platform. Your SNMP manager should now be able to query the "toaster MIB" extension agent under

Dave Downey
Disappearing MIB Objects

"I installed SNMP service on my NT4 w/s and ran perfmon and was hoping to find the TCP/IP/UDP/ICMP objects to monitor them.. i just cannot find them..any help why.. the documentation says they should show up!! Some info I think I should add when i start the snmp service it says this message :" The procedure entry point snmpsvcGetEnterpriseOID could not be located in the dynamic link library snmpapi.dll" But the service starts after that..

Arni Raghu

This is a very common problem - The problem is that you've added SNMP after you installed a Service Pack. You need to reinstall a service pack (preferably Service Pack #3)

Paul Bayer
"Is there any free SNMP manager that can run on NT 4.0"

You can download a copy of Compaq Netelligent Management Software straight from Compaq's web site at This package is a full win32 SNMP management console that comes bundled with all of Compaq's networking products, but you can download it straight from Compaq! It has received some very good reviews lately and can manage non-Compaq products as well as Compaq products.

Pete Hansen

There is a free program from Network Computing Technologies that deals with traps on NT. It does pretty much what you have described, and they will be willing to work with you on other implementations. The latest version, 3.0, is currently in beta and is available at

Martin Cooley

Check Out

It has a section on SNMP under Windows NT, and has a link page to MIB browsers, compilers, trap senders/receivers, etc.

Garth Williams

They provide SNMP agents for all Windows OS (from 3.11 to NT 4.0). Thoses
agents are very powerful, cheap, and you can download an evaluation version
from their Web site.

They've got also SNMP API.

David Lifchitz

> Does anyone have a link to a (free or cheap) SNMP browser for Win98?
> Or is there a FAQ on SNMP implementations for different O/Ses?

>Mathias Körber

Try GetIF, is great!


SUBJECT: More About CMU SNMP Software

This is an update regarding the SNMP software available from CMU. We
are highly recommending that people look at the net-snmpd package.
There is no further development planned on the cmu-snmp package, and
we are internally transitioning to net-snmpd.

Additionally, is no longer available. The software
may be available from if there is still
interest, even with the preceding statement.

Kevin C. Miller

We are moving the collection, though, to:

It is available there now.

Kevin C. Miller

SUBJECT: Miscellaneous SNMP-related Products SNMP and SQL
Ivan Leong wrote:
"for the data received via snmpwalk on _any_ given server, how do i go about defining a SQL database table to store the data?"

"it should be as general as possible, ie, the table makes no assumation on the SNMP data nor the server(s) the data are from."
I don`t know if it will solve your problem, but check this URL: The product is called SNMP QL. It allows you to do SQL queries on an SNMP MIB.

Benoit Legare

If you want a lot of versatility in the use of enterprise MIBs, as well as some fun, try SnmpQL from Redpoint Software . It is an ODBC driver that reads SNMP data as a database. The ODBC driver setup has a built in MIB compiler, and it ships with several MIBs. Imagine tying in SNMP Gets and/or Sets with an Excel spreadsheet, Access database, etc. It's a totally different approach than SNMPc or HPOV, but it will give you some creative ways to use the NT enterprise MIBs as well as the MIB-II structure.

Jeff Jones
Monitoring Applications with SNMP
Paul Julie wrote:
"I wish to implement SNMP for monitoring application status. Here is a brief list of requirements:

1) Segmentation fault or application dies, I would like the application to trap on this and send a message to OpenView or Tivoli (I realize this can be done through signals)
2) If we are reading a stream of synchronous data and it is suddenly stopped or slowed down it would be nice to report this to OpenView or Tivoli.
I realize that SNMP was meant for networks, but I have been reading it's matured into an application monitoring tool as well.
N.B We are currently using OpenView and are not committed to Tivoli, but we are leaning in that direction. Apparently Tivoli will handle SNMP.

Having said all of this I need information on the following:

1) Where are the SNMP C/C++ API's located to do this?
2) I need example code. <--very important
3) I need supported platforms for Sun Solaris 2.5.1 and NT 4.0
4) Is there a "good" FAQ on this."

I've played around with lots of SNMP code, most of it freely available. I've found the best for Solaris 2.5.1 to be from MIT. It compiled without error and the code was very clean, if a little too elegant. You can get it from However, documentation is thin on the ground. I spent a couple of days with the code and it taught me a lot more than anything else. I'm successfully building agents to monitor our remote applications and databases with it. (If you need help getting started I'll send you the code I have added so you can get a general idea)

It took me ages to crawl up the learning curve for SNMP. Everything seemed too complicated in the beginning, and the FAQs were not all that much use. However, I found a book that helped me a lot. [Total SNMP 2nd ed. (1998) Sean Harnedy published Prentice Hall, ISBN 0-13-646994-9]

Malcolm Sparks

[Editor's Notes: Sorry, Mr. Julie, but there are no '"good" FAQ's on this', just this one. Sorry we let you down too, Mr. Sparks. Hopefully adding your input will make it more useful to the next pilgrim.]
Data Collection Applications for SNMP

"Take a look at SNMX from WWW.CPRO.COM. [See below. Ed.] This is a freeware, very powerful SNMP scripting language. It has some graphing capabilities built in, but they are fairly primitive. SNMX is ideal, however, for building your own tool to extract the SNMP variable values you are interested in, and then using some other tool (Access, Excel, etc) to do your analysis."

John W. Manly

"SNMX, Simple Network Management Executive program is now being distributed by DDRI, Diversified Data Resources, Inc., of Novato, CA. Note that Cyber Professionals, who previously was distributing SNMX, is no longer incorporated or on the Web.

Distributions of SNMX Version 5 will be available after the first of this month from DDRI's Web site: -- in the interim, you canobtain information on SNMX from 1-800-233-DDRI (1-800-233-3374).

[...] please note that this program is freely distributed for private use, but cannot be resold or redistributed by any organization or individual, via any means or in any form, without written permission from Diversified Data Resources, Inc."

Jeff Davison
An SNMP Agent for Software

"I need to make my server software monitorable with SNMP - see how many users are on, uptimes and so on. It would be nice if it could send notifications (traps?) about serious errors to SNMP monitors as well."

Jukka Vaisanen

May be you would like to try AGENT++, which is actually a very _simple_to use C++ API based on SNMP++. It offers even a simple way to create SNMP tables. See for details. AGENT++, examples, and documentation can be downloaded from there. AGENT++ can be used with Linux, Digital Unix 3.2/4.0, Solaris 2.5.1/2.6. Porting it to Windows NT should be easy.

Frank Fock


"I downloaded AGENT++ from Mr. Frank Fock's web site last week and ported it to NT. Now it can be used to write NT Extension Agents. You can visit to see the Windows NT Port announcement."

Joseph C. Hu
An SNMP Trap Generator

There is an NT command line utility for generating traps available at: There is also a text file detailing how to use it at: You can visit their main web page at and follow the link to download. There you can get on a mail list for updates to the program.

Martin Cooley
SNMP Sniffer

Announcing SNMP Sniffer version 1.0, a promiscuous SNMP packet decoder
for Linux and Solaris (potentially runs in any *NIX system supporting
libpcap and CMU-SNMP).

More information and source code in

Nuno Leitao

Muonics has this week has announced the release of version 1.0 of MIB
Smithy MIB Designer/Editor/Compiler product and has made it available
for purchase and evaluation.

MIB Smithy is Windows and Unix software product for SNMP developers, MIB
designers and internet-draft authors.  The tool is designed to accelerate
the development process by providing an easy to use GUI-based environment
for designing, editing and compiling SNMP MIB specifications without
worrying about particular SMI syntax and formatting concerns in the

Many Significant Features

Questions/comments should be directed to or

Michael Kirkham

Andreas Kuhn wrote:

"I am new to SNMP. I want to start a snmp agent on a OS2 System. On a OS2 Warp 3 i have some tool: snmp, snmpd, snmpgrp
[... ]
On Warp4 the programs seem not to exist anymore. Where have they gone? How can I get a snmp agent for warp4?"

Check out the free software/systemview agent stuff at:

Margie Mago


Some hints on SNMP and SCO Unix.

Jeff Liebermann

Bill Nash wrote:

>Is anyone aware of a Linux based SNMP management software package?
>Your help is appreciated.

You might want to brows the "Linux SNMP Network Management Tools" web
page at

There is also another compilation of references to freely-distributable
network management packages from:

Also there are several which can use SNMP to monitor devices, both for
fault detection and performance management:



"Playin' in the LAN"

Jim Trocki
Nelson Yeung wrote:

>>Can someone tell me where can I download the linux version of ISODE 8.0 ?

It is available at most sunsite archives:

Mark Purcell
> Could somebody please point me in the
> right direction for a howto for snmp? I'm new to SNMP and would like
> to find some documentation on how to set it up for Redhat 6.x

> Rohan Gilchrist

The home pages for CMU-SNMP and UCD-SNMP are chock full of info:
Here's some other helpful sites.

Have you poked about in the man files for the tools that came with
your RedHat distribution? man snmpd, man snmpd.conf, man -k snmp,
etc. will all be helpful.

Paul Eckert


Nicolas Maillard wrote:

> Where i could find doc on as400 snmp (like snmp collect information tree)

Comtek Services has an SNMP Agent for AS/400.  Look at their web site for information.

Don Winans

SNMP++ -- An SNMP API Class Library:

"Try SNMP++ from! It is truely object oriented and is much easier to use as CMU SNMP."

[Editor's Note: This URL reported obsolete. See below.]

SNMP++ Revision 2.5

I am pleased to announce the completion of the new SNMP++ specification. Over the last year SNMP++ has gone from a version 1 specification, which was presented at a Birds-of-a-Feather at Networld-Interop '95, to the currently available 2.5 revision. The new specification is freely available on the following FTP server.

Where to Find the New Specification and Header Files:

FTP Server Name: (
Login: anonymous
Files /pub/snmp++/doc snmp_pp.doc (MS-Word 6-7 Format) (Postscript version)
/pub/snmp++/include *.h (C++ class definitions)


The intent of the publication of this specification is to make SNMP++ an open specification as a C++ based SNMP API and as a C++ extension to WinSNMP. All developers are encouraged to review the specification and all comments and suggestions are welcome.

What is SNMP++:

SNMP++ is a set of C++ classes which provide SNMP services to a network management application developer. SNMP++ is not an additional layer or wrapper over existing SNMP engines. SNMP++ utilizes existing SNMP libraries in a few minimized areas and in doing so is efficient and portable. SNMP++ is not meant to replace other existing SNMP APIs such as WinSNMP, rather it offers power and flexibility would otherwise be difficult to manage and implement. SNMP++ brings the Object Advantage to network management development.

Evolution and Development of SNMP++:

Over the last year, SNMP++ has been designed and created by a variety of professionals in the network management industry including major involvement from Hewlett Packard Company OpenView Division and Hewlett Packard Company Roseville Networks Division. In addition to involvement from the HP Company, a variety of experts within the WinSNMP community have have made significant contributions to formulating the the current SNMP++ API. SNMP++ has been successfully utilized in over ten network management products for MS-Windows, HP-UX and Sun / Solaris.

When Will Working Binaries be Available For Usage?

The new specification and C++ class definitions are currently available on the above described anonymous FTP server. Soon to come will be MS-Windows 32 bit binaries and working demonstration code. Binaries released will be in an un-supported 'as is' form. The intent of the binary release will be to allow usage and testing and thereby increase implementation experience using SNMP++.

Peter E Mellquist

Victor Sigal wrote:
What happend with SNMP++ and their address?

I think Frank Fock was nice enough to make it available on his agentpp site.


Shripathi Kamath
"If you are interested in C++ APIs for multi-lingual SNMP manager
and agent development, you may download SNMP++ 3.0 (beta)
and AGENT++ 3.0 (beta) free of charge from

Both packages support v1,v2c, and v3 simultaneously. They support
v3 authentication via MD5 and SHA, as well as v3 privacy with
DES and IDEA. Please see the above mentioned URL for more

Frank Fock

See also topic
Hi, you may try SNMP++2.6a(e) from
I have modified the official SNMP++2.6 release for UNIX to work
with Linux (egcs), Solaris 2.5/2.6/2.7 and Digital Unix 3.0/4.0.
With a few more modifications to the Makefile it is reported to work
also for AIX.

SNMP++2.6a(e) comes with a couple of bugfixes and little enhancements
to the official release. The fixes are listed in

Frank Fock

SUBJECT: What is AgentX?

A good starting place is This is the "home page" for the IETF AgentX Working Group.

Mark Ellison
"I am looking for a sub-agent library support which handles the
SMUX protocol in order to communicate with the UCD Agent. Any support or pointers to such support or information for me creating that support would be very helpful."

Mike Michaud

You're better choice would be to use AgentX, which is a more recent subagent protocol developed by the IETF's AgentX working group. The UCD agent has recently been upgraded to support AgentX as well. CMU has a sub-agent development library available, I believe, as well.

Wes Hardaker
The UCD agent now includes an *alpha* implementation of the basics of AgentX support, true. But this is by no means complete, or even likely to work on anything other than a Linux system (and even there I'd offer no guarantees).

It's a starting point - no more. It certainly can't be called "supported". Maybe for the next release, but not just yet.... please!

Certainly for sub-agent development, the CMU library is a better starting point at the moment. The UCD work is much more closely tied in with the main agent code.

Dave Shield

Another good source for an overview of the AgentX technology is the April 1996 issue of "The Simple Times". You can get an HTML version of this at <>,
and there are PostScript and PDF versions also available.

Bill Larson

[AgentX RFC] RFC2741 obsoletes RFC2257. RFC2742 is the AgentX MIB.

There are actually more implementations available than the above implies. The
AgentX home page ( has a list of announced
implementations. If someone has an implementation not listed on the page, just
send the appropriate info to the web master and it will be listed.

Mark Ellison

Those protocols are defined, respectively, in the following RFCs:

1227 SNMP MUX protocol and MIB. M.T. Rose. May-01-1991. (Format:
     TXT=25868 bytes) (Status: HISTORIC)

2741 Agent Extensibility (AgentX) Protocol Version 1. M. Daniele, B.
     Wijnen, M. Ellison, D. Francisco. January 2000. (Format: TXT=199867
     bytes) (Obsoletes RFC2257) (Status: PROPOSED STANDARD)

2573 SNMP Applications. D. Levi, P. Meyer, B. Stewart. April 1999.
     (Format: TXT=150427 bytes) (Obsoletes RFC2273) (Status: DRAFT

The following RFC is relevant to proxies that translate between versions
of SNMP:

2576 Coexistence between Version 1, Version 2, and Version 3 of the
     Internet-standard Network Management Framework. R. Frye, D. Levi, S.
     Routhier, B. Wijnen. March 2000. (Format: TXT=98589 bytes) (Obsoletes
     RFC1908, RFC2089) (Status: PROPOSED STANDARD)

SMUX, as you can see from the Historic designation, is obsolete.  The other
two are on the standards track at the Proposed level.

If you rule out SMUX because it is obsolete, then the choice is between
proxy and AgentX.  Note that these two accomplish very different things.

A proxy forwarding application, at least as defined in RFC 2573, is not
a master agent in any sense, because it is not MIB-aware.  In other words
it does _not_ parcel out requests to sub-agents based on OID, as a "real"
master agent would.  It merely parcels out requests to various SNMP engines
based on the context information in the SNMP message (e.g., contextEngineID
and contextName in SNMPv3, or community name for SNMPv2c or SNMPv1).  You
would not have "sub-agents" in this case;  each "device" would have its own
ID and would handle its own MIB objects, and would be visible externally as
a separate entity.  By contrast, a master agent looks like a single entity
to the outside world.  It parcels out requests based on the OIDs in the
name fields of the variable bindings in the request.

This difference is perhaps best illustrated by example.  Suppose that I
have a large network element with a system controller and many line cards,
each one having its own processor.  With the proxy approach one could have
the proxy forwarding application living on the system controller, and each
line card would have its own SNMP agent.  One might choose to to use SNMPv1
on the line cards and have the proxy serve as an SNMPv3 security firewall.
This is attractive from an implementation standpoint because there is
loose coupling between the parts.  On the other hand, it is unattractive
because all those line cards are visible to the outside world as separately
managed entities.  A master agent/subagent approach, by contrast, would
leave all that stuff hidden.  It would require much tighter coordination,
however, and is probably harder to implement.  The AgentX protocol is a
reliable TCP-based protocol partly for that reason.

Mike Heard

2.30.00 --The SNMP MIB (Management Information Base)

SUBJECT: What is a MIB?
A collection of objects which describe an SNMP managable entity.

An Important Note: There IS ONLY ONE SNMP MIB. All these other "MIBs" which are cited herein are extensions to *the* SNMP MIB. Popular usage and strict definition do not agree on this point, so be careful in how and when you talk about the plural of MIB.

"Most people, when first starting to learn SNMP, believe that the MIB is a
database/datastore.  It is not.  The MIB does not contain data.  Nor does
the MIB retrieve data from your monitored product."

"When a network manager wants to learn about your node, be it hardware or
software, he must have some way of determining what information is available
to him, and what it means.  This is where the MIB comes in.  The MIB is not
a database.  It is a way of logically grouping data so that it is easily
understood by all.  When you design a MIB, you define and describe the
components of your product.  You also define and describe the data-objects
which the network manager would be interested in.  When building your MIB,
you logically place the data-objects within the product components that you
previously defined.  You now have a description of your product, and the
data-objects which a network manager may request.  At this point, you have a
simple MIB.  Note that your product is not running.  There are no values in
the MIB.  Only a description of each object.  And yet your simple MIB is
complete.  A network manager could look at it, and gain a basic
understanding of your product.  He could also determine what specific
data-objects he would like to query; after your product is running, and SNMP
enabled, of course.":

"The MIB compiler does not 'generate data'. The MIB file is still in the
same form that it was written in.  It is an ASCII text file, written in
SMIv2 syntax."

Wallace Gaebel

At the highest level, all devices to be useful must be
managable. These means that they must be able to be
configured, controlled, and monitored. A formal
way to describe this is via definitions of management
operations and formal definitions of management
information. The term MIB is used both to describe
management information and instances of values of
management information. Once you have defined the
operations and management information, you can
realize actual management in many different ways.
One way is to use the SNMP protocol.

David Perkins

SUBJECT: What are MIB-I and MIB-II

MIB-I was the first SNMP MIB accepted as standard.

MIB-II added some much-needed objects, and has become the standard SNMP MIB.

Note that SNMPv2 expands upon MIB-II with new groups and objects, and is therefore not MIB-II but includes MIB-II. See below for more about SNMPv2.


MIB-II is very old, and most of it has been updated (that which has not is mostly obsolete). Here are the RFCs with the updates:

1907 Management Information Base for Version 2 of the Simple Network
Management Protocol (SNMPv2). SNMPv2 Working Group, J. Case, K.
McCloghrie, M. Rose & S. Waldbusser. January 1996. (Format: TXT=34881
bytes) (Obsoletes RFC1450) (Status: DRAFT STANDARD)

2011 SNMPv2 Management Information Base for the Internet Protocol
using SMIv2. K. McCloghrie. November 1996. (Format: TXT=31168 bytes)
(Updates RFC1213) (Status: PROPOSED STANDARD)

2012 SNMPv2 Management Information Base for the Transmission Control
Protocol using SMIv2. K. McCloghrie. November 1996. (Format:
TXT=16792 bytes) (Updates RFC1213) (Status: PROPOSED STANDARD)

2013 SNMPv2 Management Information Base for the User Datagram Protocol
using SMIv2. K. McCloghrie. November 1996. (Format: TXT=9333 bytes)
(Updates RFC1213) (Status: PROPOSED STANDARD)

2096 IP Forwarding Table MIB. F. Baker. January 1997. (Format:
TXT=35930 bytes) (Obsoletes RFC1354) (Status: PROPOSED STANDARD)

2863 The Interfaces Group MIB. K. McCloghrie, F. Kastenholz. June
2000. (Format: TXT=155014 bytes) (Obsoletes RFC2233) (Status: DRAFT

2864 The Inverted Stack Table Extension to the Interfaces Group MIB.
K. McCloghrie, G. Hanson. June 2000. (Format: TXT=21445 bytes)

Mike Heard

Dave Jagoda writes to provide ...

" ... some useful RFCs that I think might be of general interest (particularly since I think many people don't realize these exist and might try to invent something like these on their own). They all have in common the fact that they are assigned under the mib-2 portion of the tree."

RFC1158, RFC1213, RFC1215: mib-2 ( 1 - 11 ) mib-2

In the case of MIB-2 (12), writes:

In RFC 1229, Extension to the Generic-Interface MIB, the objects in ifExtensions, experimental (6), are defined.

In RFC 1239, some experimental MIBs are reassigned to standard MIBs. At that time, the Generic IF objects are reassigned to mib-2 (12).

However, RFC 1573 officially "obsoletes" RFC 1229, by defining a new class objects, in mib(30) and mib(31) that replace the the ones of RFC 1229.

Also, there seems to be a new RFC -- RFC 1657 -- for mib-2 (15), BGP.

RFC1243: mib-2 ( 13 ) appletalk
RFC1253: mib-2 ( 14 ) ospf
RFC1269: mib-2 ( 15 ) bgp (obsolete?)
RFC1657: mib-2 ( 15 ) BGP (current?)
RFC1271: mib-2 ( 16 ) rmon
RFC1286: mib-2 ( 17 ) dot1dBridge
RFC1289: mib-2 ( 18 ) phiv
RFC1316: mib-2 ( 19 ) char
RFC1353: mib-2 ( 20 - 21) snmpParties, snmpSecrets
RFC1368: mib-2 ( 22 ) snmpDot3RptrMgt
RFC1389: mib-2 ( 23 ) rip2
RFC1414: mib-2 ( 24 ) ident
RFC1514: mib-2 ( 25 ) host
RFC1515: mib-2 ( 26 ) 802.3 MAUs
RFC1565: mib-2 ( 27 ) network services
RFC1566: mib-2 ( 28 ) mail
RFC1567: mib-2 ( 29 ) X.500 directory
RFC1573: mib-2 ( 30 ) "IANA ifType"
RFC1573: mib-2 ( 31 ) "Interfaces Group"
RFC1611: mib-2 ( 32 ) DNS server
RFC1628: mib-2 ( 33 ) UPS
RFC1666: mib-2 ( 34 ) SNA NAUs

For info on an effort to develop a WWW server MIB, see

[Note: The above URL has been reported broken. Any news?]

Micha Kushner writes:
"You should make the following updates to part 2 of snmp faq, @III, @2.
Many of the RFS'c listed have been obsoleted. "

MIB-II- Listed New
13 1243 1742
14 1253 1850
16 1271 1513 (Has rmon token ring extensions)
17 1286 1493
18 1289 1559
19 1316 1658
22 1368 1516
23 1389 1724
Draft MIB RFCs as of 1 July 1996
RFC 1493 - Bridge
RFC 1516 - IEE 802.3 Repeater
RFC 1559 - DECNet phase IV
RFC 1657 - BGP version 4
RFC 1658 - Character Device
RFC 1659 - RS-232 Interface
RFC 1660 - Parallel Printer
RFC 1694 - SMDS Interface Protocol (SIP)
RFC 1724 - RIP version 2
RFC 1742 - Appletalk
RFC 1748 - IEEE 802.5 Token Ring Interface
RFC 1757 - RMON
RFC 1850 - OSPF version 2
proposed MIB standards as of 1 July 1996
RFC 1285 - FDDI Interface (SMT 6.2)
RFC 1315 - Frame Relay DTE
RFC 1354 - IP Forwarding
RFC 1381 - X.25 LAPB
RFC 1382 - X.25 PLP
RFC 1406 - DS1/E1 Interface
RFC 1407 - DS3/E3 Interface
RFC 1414 - Identification
RFC 1461 - Multiprotocol Interconnect over X.25
RFC 1471 - PPP Link Control Protocol
RFC 1472 - PPP Security Protocols
RFC 1473 - PPP IP Network Control Protocol
RFC 1474 - PPP Network Control Protocol
RFC 1512 - FDDI Interface (SMT 7.3)
RFC 1513 - Token Ring Extensions to RMON
RFC 1514 - Host Resources
RFC 1515 - IEE 802.3 MAU
RFC 1525 - Source Routing Bridge
RFC 1565 - Network Services Monitoring
RFC 1566 - Mail Monitoring
RFC 1567 - X.500 Directory Monitoring
RFC 1573 - Evolution of MIB-II IF Group
RFC 1595 - SONET/SDH Interface
RFC 1604 - Frame Relay Service
RFC 1611 - DNS Server
RFC 1612 - DNS Resolver
RFC 1628 - UPS
RFC 1650 - Ether-Like Interface
RFC 1666 - SNA NAU
RFC 1695 - ATM
RFC 1696 - Modem
RFC 1697 - RDBMS
RFC 1747 - SNA DLC
RFC 1749 - IEEE 802.5 Station Source Routing
RFC 1759 - Printer

SUBJECT: How do I convert SNMP V1 to SNMP V2 MIBs?
Marc Ikemann wrote:

"I hope you aren't sick of this question - I can imagine that it's asked often - but I'm unable to find an answer, even the FAQ doesn't tell me[ ...] how to convert an SNMPv1 MIB to SNMPv2 ?!"

On the following, "how can you convert a MIB in the SMIv1 format to one in the SMIv2 format", the answer is that you cannot do this mechanically. This is because there is more information content in the SMIv2 format than the SMIv1 format. You can do much of the work with a text editor, but not all. The process is covered on pages 206-211 in "Understanding SNMP MIBs" byPerkins and McGinnis, and in RFC 1908 pages 1-6.

David T. Perkins

SUBJECT: How do I convert SNMP V2 to SNMP V1 MIBs? wrote:
"I have some need to convert standard v2 mib to v1 mib. v2 mib has a object with syntax Counter64. how can I convert that object to v.1 synatx object? Is there any standard approach?"

I don't know if it's still in service, but try to send your v2 mib to following address: About Counter64 objects, there is no possible translation. You should suppress them from the mib before sending it.

[Editor's note: URL reported obsolete. Mike Heard suggests "Try"]

Olivier Miakinen

64-bit counters are not supported in SMIv1 nor are they supported in SNMPv1 protocol. RFC 2089 covers the behavior of bi-lingual SNMP agents. [post edited here] The best approach for now is to NOT use the data type of Counter64 in defining a new MIB object, and instead define two MIB objects. One object is the low 32 bits of a counter value and the other object is the high bits of a counter value. This places a burden on SNMP applications, but is the best approach to be used until the high capacity issue is addressed by the IETF SNMP community.

David T. Perkins
Michael Reinermann wrote:
"I'm starting to work on a small project, which should support SNMPv1 but not SNMPv2. (We will switch to SNMPv3 in later versions.)"

"For a description of the interface group in the MIB we would like to support the new RFC 2233. Now I found that in RFC 2233 there are a lot of imports from SNMPv2. So what's the meaning of this ?"

"Do we really have to support SNMPv2 in order to work with new RFCs like 2233 resp. are we stuck with the 'old' RFC 1213 when supporting only SNMPv1 ?"

The format of MIB modules is independent of the protocol except for objects that have data type of Counter64. This type is not supported in the SNMPv1 protocol. So you can implement RFC 2233 using the SNMPv1 protocol, except for the Counter64 objects. RFC 2089 provides you with information about implementing a bi-lingual agent. If your tools support MIBs only in SMIv1 format, you can convert them from the SMIv2 format to the SMIv1 format with MOSY and SMICng. (I would suggest that you get a license for SMICng from SNMPinfo at )

David T. Perkins

You can use mosy to convert MIBs. However, mosy is not doing a very good job in keeping things readable. It will also simply abort if it encounters things like Counter64 object types in SMIv2 MIB modules. Mosy is freely available.

There is a free embeddable SMI parser library package called libsmi which includes a program called smidump. The smidump utility can output SMI MIB modules in various formats such as SMIv1, SMIv2, SMIng and mosy. Future versions will also support CORBA IDL and OID files (JIDM mappings) as well as various ASCII formats to be used by humans to analyze MIB modules.

Finally, you can use the SMICng compiler written by Dave Perkins. This is a commercial product and probably the best compiler you can get right now. (I am sure there are more commercial products you can use that I do not know about.)


Juergen Schoenwaelder
Libsmi 0.2 is available for download.

Libsmi is a C library that allows network management applications to
access SMI MIB module information through a well defined API that
hides the nasty details of locating and parsing SMIv1/v2 MIB modules.
Libsmi supports exact and iterative retrieval functions for all major
SMIv1 and SMIv2 constructs.

Online information on libsmi together with download and CVS access
information, the (free) license terms, manual pages, and a mailing
list is available at:

Information on the SMIng project is available at:

Frank Strauss

: More generally, where could I find a document describing how to convert
: SMIv2 mib files into SMIv1 ones ?

: Sebastien Annedouche

There is no such document. Some people in the SNMP working group said that this is needed but others dislike the idea (probably because the IETF should encourage to move from SMIv1 to SMIv2 and not in the opposite direction).

The smidump tool which is part of the libsmi distribution implements a converter which takes SMIv2 modules and generates SMIv1 modules. You may want to take a look at it. (The source code also serves as some kind of documentation on how to do the conversion.) For more details, go to <>.

Juergen Schoenwaelder

SUBJECT: What are enterprise MIBs? [MIB segments?]

An enterprise MIB is a MIB created by an enterprise [company, etc] to define a set of objects that are related to some product[s] from this enterprise, and that the enterprise agrees to make public so that network managers can use the MIB to manage some products from this enterprise.

Here are some enterprises that have their own enterprise MIB : Proteon, IBM, CMU, ACC...

Paul Rolland

[Note: There are now thousands of enterprise MIB numbers assigned.]

SUBJECT: Where can I get enterprise MIBs? [MIB segments?]

Try anonymous ftp to in mib/

[EDITOR'S NOTE: Micha Kushner writes: That name is didn't work for me. Try Towards the bottom of the home page they have access to the ftp archives. Try the /mib directory (not /ftp/mib). The address is also OK and equivalent to]


"If you're looking for a specific manufacturer's MIB, try their sites first: - Cabletron - Cisco - Xyplex"

Almon (Al) Sorrell

Incidentally, there is a fairly complete library of HTML-ized IETF MIB modules at

Mike Heard  -- Free site

"mibDepot is a unique SNMP MIB search engine with several thousand MIBs. It makes it a breeze to find
the meaning of any OID or MIB object"

Gerard Berthet

Bill Fenner's very useful MIB index is at:

Frank Fock

Can I mix SMIv1 and SMIv2 in one MIB?

Jay Kota wrote:
Is it legal to use SMIv1 types (Counter FROM RFC1155-SMI, OBJECT-TYPE FROM
RFC-1212, DisplayString FROM RFC1213-MIB etc.) in a MIB defined in SMIv2 ?

I have a MIB that has MODULE-IDENTITY (which indicates it is in SMIv2) and
imports the above types. If I want to add traps to this MIB should I use
TRAP-TYPE or NOTIFICATION-TYPE construct ? Is there any dependency between
the construct I choose here and the protocol version (SNMPv1, SNMPv2) the
agent supports?

SMIv1 and SMIv2 define two different languages for defining MIB modules. You cannot mix constructs from one language with the other language. Thus, a MIB module in SMIv2 format can only use the NOTIFICATION-TYPE construct and not the TRAP-TYPE construct. Which format you write your MIB module does not affect which version of the protocol you can use, except that SNMPv1 has no transport mapping for data type Counter64.

Note that SMIv1 has been obsoleted by SMIv2 for several years now.

David T. Perkins

SUBJECT: MIB Compiler Topics

> But there's something that is not yet clear for me: What does
> Compiling a MIB mean?

> BraGaa

A MIB compiler is a program that essentially translates a MIB Module specification from one format (e.g. SMI) to another format, often performing some amount (varying from compiler to compiler) of validation/syntax checking/etc. in the process. Some compilers perform minimal checking, some (such as SMICng) perform extensive checking, and some (such as Muonics' MIB Smithy) are able to detect and correct a lot of common errors that other compilers will choke with parse failures for. 

The new format of the output also varies from compiler to compiler.  Some compilers (such as MOSY or those used by NMS applications) generate output that is in a format more easily parsed by a program, pre-checked and in a "condensed" format that contains only the essentials of the original format (discarding, for example, all textual DESCRIPTION and
REFERENCE fields).  Other compilers, such as those included with agent development libraries, typically generate source code templates (.c and .h files) for adding the functionality of the MIB specification into an agent implementation based off that particular library.  Such compilers are designed to save development time by doing much of the work of implementing the MIB within the agent for you: it takes care of making the agent aware that the objects exist and with what data types, so that it can respond to requests on those objects, etc., and then it is up to the agent developer to add code for the specific functionionality required by each object.

Michael Kirkham

For AGENT++ there is now a free automated MIB Compiler SERVICE running.
Send a MIB file attached to an arbitrary (subject and body text will
be ignored) email to

and you will receive an .h and .cpp for AGENT++ in return.
(If an parse error occured you will get an error report)

The SMI parser I am using is based on JavaCC and I can highly
recommend using JavaCC in conjunction with a SMI BNF grammar.
Unfortunately I can't hand out our BNF grammar, but for anyone who has
particular questions / problems I am offering my help.

Frank Fock

: I would like to find some C++ source that can translate a mib text
: identifier into and oid (it would read a local mib to do this).

: Where can I find public domain source to do this?

: Lee Braddock

Take a look at libsmi (
libsmi is a portable and embeddable SMI parser library which is written in ANSI C and should be pretty easy to integrate in C++ sources. The parser is a serious SMIv1/SMIv2/(SMIng) MIB parser written from scratch against the latest SMI specifications. It does proper syntax checks and also some semantic checks and is implemented using flex/bison.
The distribution includes several converters which also serve as
examples how to use the library in your programs.

There is a mailing list you can join in case you find a bugs or you want  to contribute patches for additional semantic checks or code generation.

Juergen Schoenwaelder

... if you want a free mutliplatform MIB compiler and browser, you can try mine.. it's still a "work in progress" but some people are using it and seems happy with it.

Fabien Tassin

I am happy to announce our new mib-compiler for the DMH Advanced Snmp-Agent.
The new mib-compiler supports both SMIv2 and SMIv1. It can compile published
IETF and IANA ASN.1 mib files. We have tested most the IETF and IANA mib

The new mib-compiler is fully functional.

The front-end compiler is based on "libsmi", a new advanced mib-compiler and
mib processing related tool-set. It has several back-ends to various formats
including SMIng, SMIv1, SMIv2, import, type-query and more.

Yigal Hochberg

DMH Software
15 Arborwood Rd, Acton, MA 01720
Voice: 978-263-0526 Fax: 810-461-4151
Libsmi 0.2 is available for download.

Copyright (c) 1999,2000 Frank Strauss, Technical University of Braunschweig.

Libsmi is a C library that allows network management applications to
access SMI MIB module information through a well defined API that
hides the nasty details of locating and parsing SMIv1/v2 MIB modules.
Libsmi supports exact and iterative retrieval functions for all major
SMIv1 and SMIv2 constructs.

Online information on libsmi together with download and CVS access
information, the (free) license terms, manual pages, and a mailing
list is available at:

Information on the SMIng project is available at:

Frank Strauss

Certain modules are not MIB modules, but "ASN.1 bootstrapping glue."
These include RFC1065-SMI, RFC1155-SMI, RFC-1212, RFC-1215,
SNMPv2-SMI, SNMPv2-TC, and SNMPv2-CONF. Each MIB compiler
has a different way that they cope with them.

For many MIB compilers, you simply don't compile these
special modules.

David Perkins

> If all MIB compiler developers understood
> the RFCs in the same way (and not all RFCs are easy to understand)
> then all MIB compilers would parse the source in the same way. But
> this is not always the case.
> Some MIB compilers were (still are?) notorious for flagging
> any parsing problem with a non-specific error message and then
> quitting. Some are very picky about syntax, while others will
> accept some syntax problems without complaint and just
> ignore them -- resulting in what may well be usable output
> in that environment but which will fail in some other.

> Tom Cikoski

I agree with Tom and I would like to add that we put together a FAQ on
SNMP Testing that illustrates the interoperability issues you should
consider.  See

Chris Wellens

SUBJECT: How can I get ______ from the _____ MIB?
Tim Finkenstadt writes:
"I was reading on cisco's web page ( on SNMP that you can get the information about the following:
- whether the router is in danger of losing packets because of lack of available queue space.
- The average CPU usage over five-second, one-minute, and five-minute periods.
- The temperature of air entering and leaving the router.

Do any of you happen to know the SNMP location for those statistics?"

These values are from the Cisco Management Information Base(MIB) User Quick
Reference - 10.3

Page 35 bufferFail bufferNoMem
Page 36 avgBusy1 avgBusy5 avgBusyPer
Page 57
Use your snmpwalk to view this, too much to list I don't have the exact URL to find this, but I know it is available at Try searching for avgBusy1 to get in the right area.

Dave Rupp
"I wonder if someone out there knows, where I can find useful information about the structure of the Microsoft MIB-Namespace ( Although I searched TechNet and NT-Server Ressource Kit, I found no detailed information. I'm especially interested in the OID's under the system tree (..311.1). "

Martin Steiner


These are the top level OIDs. From here it gets very detailed. I have found that the MIB instance returned is rather long and after study reveals that MS Mibs return the value as a numeric mapping. i.e. 100 = A, 101 = B, 103 = C ......

David Castaneda

If you search the keyword WINS.MIB or DHCP.MIB in the TechNet, you should find something.

Joe Wong
Dan Teja wrote:
"I am trying to decifer date formats that are stored in octet strings.

The date time Oct. 10 1997 10:01:02 is expressed as

07 CD 0A 0A 0A 01 02 00 2D 06 00 hex
7 205 10 10 10 1 2 0 24 6 0 decimal

How does 205 decode to 1997?"

The first two bytes are the year (0x07CD = 1997)

What does the rest of it mean? (leading 07 and trailing 00 2D 06 00)

8th byte is "deci-seconds" (00 above)

9th byte is either 2B (ascii "+") or 2D ("-"), indicating direction from UTC.

10th byte is hours from UTC.

11th byte is minutes from UTC.

Oct 10th, 1997, 10:01:02.0 -6 UTC
See RFC-1903, DateAndTime TEXTUAL-CONVENTION definition.

Jim Halpin

This problem would be much easier to figure out if you provided the MIB definition. There is no one standard format for storing date/time values.

The hex value 07cd in decimal is 1997. The hex value 002d0600 could be the number of nano seconds, but you can only determine this by reading the MIB definition.

David T. Perkins
[Topic "utilization" has moved to 1.50.01.]
Bernd Bachmann wrote:
"What is the best way

* to find out dynamically whether a given MIB is supported by a specific device?
* to retrieve the list of MIBs (e.g. Repeater-MIB, Bridge-MIB, enterprise-MIB) that is supported by this device?
Is it necessary to poll a specific variable in each MIB and interpret the answer. If so, which variables are suitable?"

In SNMPv1, there is no "automated" way of "discovering" what MIBs an agent supports, so, yes, you would have to query something in each MIB module to verify it (not that this would verify that the agent supported everything in these modules). I'm not sure what the difference between your two questions was, though, since the only thing different seems to be that you used the word "dynamically" the first time. This, unfortunately, does not make any sense, as everything in SNMP is more-or-less "dynamic". In the now historical (some say hysterical ;-}) SNMPv2, they introduced a mechanism which is being carried forward to the now-proposed SNMPv3: agent capabilities statements and other MIB techniques for defining explicitly what groups of attributes an agent supports. These features are not yet widely supported, nor is it clear exactly what role they will play or how solidly they will be implemented.

T. Max Devlin
" I would like to know if the RMON MIB is implemented on CISCO Router 2500 series ?"

Laurent Simonet

All depends on the version of IOS you are using ... Check out
Incidentaly you can find out about all Cisco MIB support from

Neil Lavelle
"I'm looking for information about the differentes variables in the MIB CISCO to observe, threshold to respect, why and what are the actions to do to correct ?"

Patrick Koussou

There is a paper available, I believe I got it from the CISCO web site, on setting a monitoring strategy for routers.

Wim Harthoorn

I'm not sure if this is the same page you are referring to, but I found one that might be useful. I remember finding it at alta vista searching for Cisco MIB, it was titled Guidelines for Polling Cisco MIBS. It came up within the first two pages of responses.

Robert Evans
"I'm looking for a small, simple program for getting the interface traffic statistics from cisco routers."

Matthias Lohmann

See MRTG at The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic load on network-links. MRTG generates HTML pages containing GIF images which provide a LIVE visual representation of this traffic. Check for an example.

MRTG is based on Perl and C and works under UNIX and Windows NT. MRTG is being successfully used on many sites arrond the net. Check the MRTG-Site-Map.

Irwin M. Lazar
"Is there a standard way to represent a float as an attribute in a mib ? The problem I see with an OCTET STRING or DisplayString is that in ascii text 1.5 < 1.50 hence any comparisons may be mistaken. The only other way around it that I see is to make every float item actually 2 items as such: float_val intenger float_exp integer where 1.5 would be written as 15x10^-1 and float_val = 15 float_exp= -1

However this seems extremely combersome. There has got to be a better way."

Randy Sharpe

Not in the spec or in the V2/V3 spec. No way to create floats that are universally understood as floats. RFC1902 takes away the old opaque declaration that possibly could have been used. We are looking forward to Counter32, Counter64 andInteger32 to carry numbers. What do you need to float?

"Ted R"
"How can I reset a counter to zero? "

You cannot reset counters, they are by definition readonly and monotonic (modulo overflow). The most common use of counters is to measure rates by retrieving the counters at two times, computing the difference and dividing by the interval(*). If the counters are reset, this method becomes broken. Since most systems that are managed would be queried by more than one operator, making counters read-only prevents this. There is nothing that you can get from reseting the counters, that you cannot get with readonly counters.

(*) and for more accuracy, retrieve the agents time in the same queries and use that, eliminating network delays from affecting the result.

Michael A. Patton

SUBJECT: How can I register an enterprise MIB?
- A.5 (page 265) in "The Simple Book" shows how to apply.

- You can email to

- You can just call IANA (Internet Assigned Numbers Authority). The number is 310-822-1511 x239. You'll be asked a few questions and be given you your number. This is faster than e-mail. Please supply: Company Name, Address, Voice Phone, Name of Contact, Contact's Address, Voice Phone, FAX Phone, Email.

- You can snail mail:

Internet Assigned Numbers Authority
USC/Information Sciences Institute
4676 Admiralty Way
Marina del Rey, CA 90292-6695
[Editor's Note: The phone number above is obsolete. See]
[Editor's Note: The URL above is obsolete. See]

Mark Wallace
If you utilize GNU Emacs, a profile is available which makes
Emacs set up specifically for ASN.1 editing.
Contact David C. Brower via
Applications may be found online at .
Specifically, see "Application for Private Enterprise Number",
at .

Don Levinstone

SUBJECT: Where can I find the current Enterprise Number Assignments?

SMI Network Management Private Enterprise Codes:
Prefix: (
This file is

SUBJECT: How Do I Create a Table Within a Table?

You cannot define a table "within a a table". To accomplish what you are trying to accomplish, you must use additional tables. For example, if the first table is indexed by object "myTab1Index", a second table could be indexed by object "myTab1Index" (from the first table) and object "myTab2Index" (from the second table). This subject is pretty well covered in the book "Understanding SNMP MIBs" by perkins and mcginnis. Also, additional information about how to express relationships between tables is found in the white paper "Inter-Table Indexing" on the SNMPinfo Web site, with URL

David T. Perkins

> I am designing a MIB, the tree of data that I am attempting to describe has
> a subtree that apears many times in the overall tree.  It is basically a
> SEQUENCE like this:
> profilingStuff ::= SEQUENCE {
>         numOps          Counter64,
>         minTime         Unsigned32,
>         maxTime         Unsigned32,
>         sumtime         Unsigned32
> }
> Where numOps would be node 1, numTime node2, maxTime node 3, and sumTime node 4.
> I need to use this subtree probably 50 times, so it would be nice to somehow
> define it a single time, and reuse it.  Is that possible?
> What I would really like to do is make a type out of a subtree.  This subtree
> essentially needs to appear in many unrelated places in my overall tree.
> It is a structure that will appear very frequently, all instances of that
> structure cannot be gathered into a single table.
> Christopher Morrone

Based upon the provided information, it sounds like there is a  need to resolve a clash
between the object oriented design and the constraints of the SMI.

You really don't want to repeat the sequence under different branches of your MIB module.
One way to accomplish this is to define a simple (singly indexed table) of the sequence
described, and within the different components add an attribute that reports the index
value of the row in the singly indexed table which has the information related to the
given component.

Usually, when I've encountered a MIB design clash as described, it is a strong signal to
review the UML information model thoroughly before proceeding to the SMI data model
design.  Object oriented designs using inheritance  need to be flattened, or normalized,
when represented in the SMI in order to avoid the issue described.  However, a thorough
understanding of the IM is necessary to eliminate design flaws and achieve a successful

Mark Ellison

SUBJECT: How Do I Reset MIB Counters via SNMP

Douglas De Vine wrote:

> I'm having trouble giving write access to counter variables in the MIB2
> tree on a Cisco2511

This is a FAQ about counters.

The basic question is "Can counters be 'reset'." The answer is no, not ever. If not, then how can the number of occurrences be obtained?

Answer, you obtain the value of a counter at the first of a time interval and then at the end of a time interval, and you subtract. Note, you must also accomodate for counter rollover and counter discontinuity.

For a short description of counters, see or

see the book "Understanding SNMP MIBs" by Perkins and McGinnis.

David T. Perkins

SUBJECT: How can I change a published MIB?

RFCs 2578-80 describes the allowed changes that can be made to MIB modules. Changing the name of descriptors in "published" MIB modules is not allowed. See section 10 of RFC 2578. (Unfortunately, this section does not say "descriptors cannot be changed" directly. It says this in a roundabout way with the last two sentences in section 10.2).

[...]If the MIB module has not been published, then you can modify it as much as you want. If it has been published, and the errors are recognized soon, then you can modify it. However, if the module  has been available for some time and has been made widely available, then you probably have to live with the problems.

David T. Perkins

SUBJECT: How unique must MIB variable names be?

1) OIDs are unique identifiers for all-space-and-time. An OID value is an ordered sequence of nonnegative integers that contains at least two members with the value of the first member restricted to 0, 1, or 2, and the value of the second member restricted to 0 to 39 if the value of the first is 0 or 1. SNMP calls members of the sequence sub-identifiers. SNMP restricts an OID value to have at most 128 members, and no member can have a value greater than 4G-1 (4294967295).

2) For convenience of people, a label can be associated with each member of a sequence. Additionally, there are "well known" labels for OID values. SNMP reccognizes only "ccitt", "iso", and "joint-iso-ccitt" as well known labels for the first member in a sequence.

3) There can be multiple labels associated with an OID value! (Few SNMP utilities can cope with this.)

4) OID values in SNMP messages are sequences of integers. A sequence of labels is never used.

5) Most items defined in SNMP MIB modules are identified by an OID value. The exceptions are TRAP-TYPES defined in MIB modules in the SMIv1 format and textual conventions - either defined with a type assignment or TEXTUAL-CONTENTION construct.

6) All items defined an a MIB module have a label, which is called a DESCRIPTOR by the SMI. The descriptors for all items defined in a MIB module MUST BE UNIQUE. MIB modules are a somewhat arbitary scoping mechanism for definitions.

7) The SMI further restricts descriptors defined in MIB modules found in standard track documents to be unique. However, there is no such restriction on descriptors in non-standards track documents or descriptors in MIB modules created by enterprises. The SMI requires that MIB module names found in standards-track documents are unique. However, no such restriction applies to MIB modules created by enterprises.

8) People generally perfer to identify items by descriptor value instead of a sequence of nonnegative integers. However, for each example of identification by descriptor, a counter-example can be given that shows that the identification is ambiguous. For example, a single descriptor is not globally unique. A descriptor qualified by a MIB module name is not unique because MIB module names are not globally unique. A sequence of descriptors is not globally unique because the descriptors for all the children do  not have to be unique.

Only an OID value written as a sequence of numbers is unique.

David T. Perkins


A MODULE-COMPLIANCE specification is a requirements specification. It is a formal may to specify requirements.

A MIB module may contain zero, one, or many MODULE-COMPLIANCE specifications. A MODULE-COMPLAINCE specification may specify objects and notifications from MANY MIB modules.

An agent doesn't implement a MIB module. An agent
implementation may clain conformance to one or more MODULE-COMPLIANCE specifications.

An AGENT-CAPABILITIES specification is an implementation specification. It is a formal way to specify implementation characteristics. An AGENT-CAPABILITIES specification may specify objects and notifications from MANY MIB modules.

It is possible to have a program compare a set of MODULE-COMPLIANCE specifications with a set of AGENT-CAPABILITIES specifications to determine the coverage. However, since DESCRIPTION clauses can be used to specify conditions or exceptions, a person must also review such a comparison to possibly modify the results.

David Perkins

SUBJECT: Which parts of my MIB are mandatory?

: Which parts of the MIB II are mandatory in SNMPv2c and SNMPv1?

: Manuel Rozier de Linage

You question suggests that you are confused by the mandatory status value in good old RFC 1213 definitions. MIB objects (or better collection of MIB objects) are only "mandatory" to implement if they are applicable to your device and if you claim conformance to something. The good old SMIv1 has not been very clear about this. The good news is that this has been fixed during the work on SMIv2.

Every SMIv2 MIB definition contains conformance definitions. And these definitions describe in pretty much details what you have to implement in order to be conforming to the MIB definition.

Furthermore, there has been work within the IETF to break the good old MIB II (RFC 1213) into smaller pieces while converting things to SMIv2 at the same time. So to answer you question, I suggest to take a look at the following documents:

RFC 1907 (defines the SNMPv2-MIB)

This includes the definition of the RFC 1213 system group.

RFC 2011 (defines the IP-MIB)

This includes the definition of the RFC 1213 ip group except
the routing table. Everything about an IPv4 protocol engine.

RFC 2096 (defines the IP-FORWARD-MIB)

This defines the current version of the ip routing table.

RFC 2233 (defines the IF-MIB)

This includes the definition of the RFC 1213 interfaces group.

RFC 2012 (defines the TCP-MIB)

    This includes the definition of the RFC 1213 tcp group.
    Everything about a TCP protocol engine.

RFC 2013 (defines the UDP-MIB)

This includes the definition of the RFC 1213 udp group.

Everything else in RFC 1213 (at group and egp group) is historic anyway.

David T. Perkins

[Also see...]


IPv6 extensiond for the TCP-MIB.

UDP-MIB (RFC 2013)

Everything about a UDP protocol engine.


IPv6 extensiond for the UDP-MIB.

You can find a complete list of MIB modules that are standardized by the IETF in the Simple Times newsletter <URL:>.

Juergen Schoenwaelder

: Does anyone know what a "MODULE-COMPLIANCE" is for in a SNMPv2 enterprise
: MIB ?

You are talking about an SMIv2 MIB. There is an important difference
between the SMI(s) and the SNMP protocol(s).

: Does the agent have to control something here, or is it just a module which
: can be asked by any manager (with GET, GETNEXT...) ?

MODULE-COMPLIANCE definitions are never visible on the wire via SNMP.
Compliance statements define what an implementation must support in
order to conform to a given compliance statement.

The interpretation of a compliance statement happens during
implementation time (or marketing time if you will) and not at run
time. An agent therefore does never instantiate any OIDs used to
register compliance definitions.

Juergen Schoenwaelder

First, you do not need to define MODULE-COMPLIANCE
specifications for your MIB module to be compliant
with SMIv2. You only need to define groups that include
all accessible objects, and notifications.
Secondly, if you do define MODULE-COMPLIANCEs, it is
up to you what you include in them. If they make no
sense, then they will have little value.

Whether or not an implementation conforms to a
arbirary compliance statement does not affect whether
or not the agent conforms with SNMP.

David Perkins

> Do I really have to define OBJECT-GROUP and MODULE-COMPLIANCE when defining my mibs?
> Could someone explain to me what is the purpose of each?
> Claudius

The SMI requires that every acessible object is in an object group and every notification is in a notification group.

The reason is that you need them to be able to write MODULE-COMPLIANCE
and AGENT-CAPABILITIES specifications, and the groups can only be define
in the MIB module where the object or notification is defined.

There is no requirement to write MODULE-COMPLIANCE specifications
or AGENT-CAPABILITIES specifications in the module where objects
and notifications are defined. They can be in separate MIB modules
and can reference objects and notifications from many MIB modules.

MODULE-COMPLIANCE specifications are requirement specifications,
and are used in RFCs to say what objects and notifications
must be implemented to claim compiliance. Note that they can also
be used by management applications to say which objects and
notifications must be implemented in an agent so that the management
app will function.

AGENT-CAPABILITY specifications describe capabilities of agents.
One or more AGENT-CAPs may be used to fully describe an agent.

david t. perkins

SUBJECT: Which parts of my MIB are mandatory?

: Which parts of the MIB II are mandatory in SNMPv2c and SNMPv1?

: Manuel Rozier de Linage

You question suggests that you are confused by the mandatory
status value in good old RFC 1213 definitions. MIB objects
(or better collection of MIB objects) are only "mandatory" to
implement if they are applicable to your device and if you
claim conformance to something. The good old SMIv1 has not
been very clear about this. The good news is that this has
been fixed during the work on SMIv2.

Every SMIv2 MIB definition contains conformance definitions. And these
definitions describe in pretty much details what you have to implement
in order to be conforming to the MIB definition.

Furthermore, there has been work within the IETF to break the good
old MIB II (RFC 1213) into smaller pieces while converting things
to SMIv2 at the same time. So to answer you question, I suggest to
take a look at the following documents:

RFC 1907 (defines the SNMPv2-MIB)

         This includes the definition of the RFC 1213 system group.

RFC 2011 (defines the IP-MIB)

         This includes the definition of the RFC 1213 ip group except
         the routing table. Everything about an IPv4 protocol engine.

RFC 2096 (defines the IP-FORWARD-MIB)

         This defines the current version of the ip routing table.

RFC 2233 (defines the IF-MIB)

         This includes the definition of the RFC 1213 interfaces group.

RFC 2012 (defines the TCP-MIB)

  This includes the definition of the RFC 1213 tcp group.
  Everything about a TCP protocol engine.

RFC 2013 (defines the UDP-MIB)

         This includes the definition of the RFC 1213 udp group.

Everything else in RFC 1213 (at group and egp group) is historic anyway.

[Also see...]


   IPv6 extensiond for the TCP-MIB.

UDP-MIB (RFC 2013)

   Everything about a UDP protocol engine.


   IPv6 extensiond for the UDP-MIB.

You can find a complete list of MIB modules that are standardized by the
IETF in the Simple Times newsletter <URL:>.

Juergen Schoenwaelder

SUBJECT: Can a CMIP MIB be converted to SNMP?

> Does anyone know if a CMIP MIB to SNMP MIB convertor exists?
> Jay B. Knotts

In general, this is a nonsolvable problem by a program.

This question keeps coming up about yearly. The answer is that this is a hard (if not impossible) thing to do by a program. A program would do a terrible job. CMIP has a larger sent of operations and data types than SNMP. However, you can do everything in SNMP that you can in CMIP, but for many things you don't want to do a brute force translation.

David T. Perkins

SUBJECT: Can an SNMP MIB be converted to CMIP?

Shank wrote:
I am looking for an ASN to GDMO converter.
The tool that OSIMIS provides, does not work.
If you know any, let me know.

I suppose you mean "SNMP to GDMO" instead of "ASN.1 to GDMO". Indeed, if it is ASN.1 already, it is already GDMO. ;-)

OpenMaster contains a full CMIS (and CMIP), and also an SNMP to GDMO converter, but it is not a free product:

Once upon a time, there were also NM-Forum documents describing SNMP (SMIv1) to GDMO, but I don't know whether tools were developed.

Olivier Miakinen

SUBJECT: Can a table index value legally be zero?
> is it ok to instance a table by zero or several zeroes?


> even if technically allowed, is this good practice?

It all depends! It really depends on the data type of
the column used for indexing. Note that there are times
when values of some MIB objects are "pointers" to a row
in a table. It certainly is convenient to use the value
zero to act as a NULL pointer. Of course this only
works for tables that are indexed by a single arbitrary
integer. An example is in RFC 2233, see TCs
InterfaceIndex and InterfaceIndexOrZero.

David T. Perkins
1) Each OBJECT-TYPE is identified by a unique OID value
2) Instances of objects are also identified by OID values. An
   an instance is also called a variable.
3) The OID value for a variable consists of a prefix portion
   and suffix portion. The prefix is the OID for the OBJECT-TYPE,
   and the suffix is
    a) for scalars, the single sub-identifier 0
    b) for columnar objects, one or more sub-identifiers constructed
        using the index values that identify the instance encoded
        following the rules specified in section 7.7 of RFC 2578
        NOTE: it is legal for an index value to have a value
        of zero and be encoded as a single sub-identifier of 0.
        Thus, it is not possible to examine an OID value that
        has the last sub-identifier value of zero and determine
        if it identifies a scalar or columnar object (or even
        if it is an object instance) without additional information.

David Perkins

SUBJECT: Where can I find the _____ MIB? HP

Every HP device MIB (except jetdirect, of course) can be found at

Blake McCraw Misc

I can't help you with the rest, but perhaps Bill Fenner's MIB compilation at can.

Mike Heard Misc by subscription

[Deleted at the request of the source.]

SUBJECT: How can I convert a MIB to XML format?

> Are there any tools for conversion of MIBs to XML format?

Pavel A.

The smidump which comes with libsmi supports an XML format for SMIv1/SMIv2
MIB modules. <>

Juergen Schoenwaelder

SUBJECT: What is the maximum number of entries in a table?

> does any one know what is the maximal number of entries in MIB table?

SNMP limits individual subidentifier values to the range of 0..4294967295 (2^32-1), which for a single integer-valued index would mean a fundamental limit of 4294967296 rows (a limit unlikely to be reached before memory constraints set in). Individual index objects may impose further constraints on ranges, which would further limit the number of rows, but multiple index objects would result in a multiplicative factor (e.g. two Unsigned32 indexes without further range constraints would mean a fundamental limit of 2^64 rows).  SNMP also limits the number of subidentifiers in an OID value to 128, so if you really want to take the numbers to truely absurd levels you could have about 2^4000 rows with 125 Unsigned32 index objects (assuming a table were allowed to be assigned about 3 subidentifiers down from the root).

Thus, in principle, there is no realistic limit other than those imposed by index object constraints, memory limitations or limitations of an individual implementation.

Michael Kirkham

2.40.00 --SMI

SUBJECT: What is the SMI?
"In order for the MIB to serve the needs of a network-management system, it must meet two objectives:

1. The object or objects used to represent a particular resource must be the same at each node. [...]
2. A common scheme for representation must be used to support interoperability." --William Stallings, op. cit. below
In both Internet and OSI network management these two objectives are met by a common structure of managment information (SMI) which is defined in RFC 1155. The SMI is the specification for the tree of MIB objects which which provides a means of associating a common numerical identification code for a given object.

The top of the SMI tree is the familiar mapping:

iso = 1
org = 3
dod = 6
internet = 1
mgmt = 2
mib-2 = 1

which is the global root prefix of every SNMP MIB object.

For more details, see 1.12.01 What books are there which cover SNMP?"

SUBJECT: What is SMIv2?
"The IETF area directors just started an effort to move the SMIv2 (RFC 1902, RFC 1903 and RFC 1904) from Draft standard to Full standard status. A small "design team" has been formed to work out a proposal. The prime focus is to add clarification etc. not to add new functionality to the SMIv2. You can find more information on the Web page at:

You will find information about the work plan and the current issue list to be addressed by the design team on the Web page."

Juergen Schoenwaelder
Currently, there is no precise grammer for SMIv1 and SMIv2. A while
back in time in July 1996, Dave Perkins published an I-D that described
a lexical specification of SMIv2. It was expired in 1997.

The documents describing SMIv2 are RFCs 1902 - 1904, which will
hopefully soon be obsoleted by full standard replacements with many
clarification, but no major changes. Take a look at

These documents describe the SMIv2 not fully self-contained. They
still state their basics from ASN.1.

Frank Strauss

SUBJECT: Table Indexing and SMI

Marjorie Krueger wrote:

> Is there a good reason (or rule) to include the index as an object in a
> table???

Good index design is one of the harder aspects of MIB design.

In the good old days of SMIv1, all indices were read-only columns in the table where they were used. Then MIB designers started using existing indices in new tables under certain situations. Then SMIv2 was created that specified two important changes.

It introduced the AUGMENTS clause for tables that had a one-to-one relationship between rows, and specified that the usual case for access of indices is "not-accessible". Then MIB designers went sort of crazy with specifying indices.

There is a white paper on the SNMPinfo site ( that describes inter-table indexing. Some MIB designers think it is too strict. However, if you follow it, your indexing will always be valid.

David Perkins

A good explanation of tables and indexing is "Inter-Table Indexing in SNMP MIBs" from David T. Perkins. You can get it from ""

Klaus Scharr

SUBJECT: Floating Point Numbers in SMI?

You cannot add new base types to the SMI.

For now, the easiest way to have floating point numbers in SNMP MIBs is to use the base type OCTET STRING and encode the value in ASCII.

This is not the most elegant approach. However, it will work between your agent and your management application and it will be compliant to the SNMP SMI and protocol specifications.

David Perkins


SUBJECT: SMIv1 versus SMIv2?
Despite the unfortunate module names for SMIv2 (e.g. 'SNMPv2-SMI'),
and aside from the Counter64 type, which cannot be transmitted over
SNMPv1 and doesn't have a counterpart in SMIv1, there is no connection
between SMI version and SNMP version.  The 'SNMPv2-SMI' module name does
not mean the 'SMI for SNMP version 2', but rather 'SMI version 2 for
SNMP'.  SMIv1 modules work with SNMPv2, and SMIv2 modules work with
SNMPv1.  Any limitations in that regard would be limitations of a
particular implementation of tools and not a restriction imposed by the
standards themselves.

When it comes to the actual protocol, what matters is the encoding and
semantics for the data type.  'Gauge' and 'Gauge32', for instance, have
identical semantics, range and on-the-wire encodings, as do 'INTEGER' and
'Integer32'.  Your compiler would complain if you use 'Gauge32' while
importing items from (for example) RFC1155-SMI because in that case you
are mixing SMIv1 and SMIv2 constructs within a single module
specification, which SMIv2 forbids.  If you import macros from the SMIv1
base modules, then you have to use SMIv1 base types; if you import macros
from the SMIv2 base modules, then you have to use SMIv2 base types.  
However, whether you define an object as 'Gauge32' or 'Gauge' makes no
difference to SNMP its self.

The only reason, in general, that you would need to write a module in
SMIv1 is if it needs to be used by a customer with an SMIv1-only
compiler.  In that case, as long as your module doesn't use the Counter64
type, you can write it in SMIv2 and use a converter such as smidump, MIB
Smithy, or others you can find at, to convert the module
to SMIv1 after it is written.  If your customer has an SNMPv1-only
agent/manager, it may still support SMIv2 because these are separate
concepts.  It's the MIB compiler that is at issue there, and not the

For further information on the topic of mixing SMIv1 and SMIv2, and other
common errors with regards to module authoring, see:

Michael Kirkham
[...] a MIB designer must decide which format to write a MIB module.
If it is in SMIv1 format, then the constructs are:
   OID value assignment
   Type assignment

The items that you import are the SNMP types defined in SMIv1,
the OBJECT-TYPE and TRAP-TYPE constructs defined in SMIv1,
textual conventions, OID values, and objects. Since you can
translate object, OID value, and textual convention definitions
from SMIv2 to SMIv1, you can import them.

If it is in SMIv2 format, then the constructs are:
   OID value assignment
   Type assignment

David Perkins

2.45.00 -- ASN.1

SUBJECT: What is ASN.1?

Have a look at the ASN.1 web site <> where (I hope!) you will find all what you could be looking for ;-)

Two books on ASN.1 are freely available: (where the BER are explained in details)


"ASN.1 : This is an Abstract Syntax Notation One. ASN.1 is an language used to define the formats of the PDUs that are exchanged by SNMP entities, and also used to defined the objects that are managed thru SNMP. This is a formal language, with a grammar that has been defined in :

Information Processing
Open System Interconnection
Specification of
Abstract Syntax Notation ONE (ASN.1).
International Organization for Standardization
(ISO) and International Electrotechnical Committee,
1987. International Standard 8824.
In ASN.1, you can define Modules, which are collections of ASN.1 descriptions, each description referring to an object. Possible objects are types, values and macros. Types can be both simple or constructed, constructed types being based on one or more simple types. Simple types are : Integer, Octet String, Object Identifier, NULL."

Paul Rolland

"All versions of SNMP are based on ASN.1:1988 (that is X.208). However, knowing ASN.1 will actually make it harder for you to understand SNMP! The protocol definition is pretty straightforward. However, the MIB module language is an ADAPTED subset of ASN.1, with the stress on ADAPTED."

Dave Perkins

ASN.1 is well defined and explained in three of the books mentioned in this FAQ:

Philipp Hoschka:

"I've assembled a number of ASN.1-related internet resources
and included them in my homepage."

"Additions are welcome, but only in the form of working html references, please."

1. Open Systems Networking: OSI & TCP/IP
by: David Piscitello & A. L. Chapin

2. SNMP, SNMPv2 and CMIP: The Practical Guide to
Network Management Standards
by: William Stallings

3. The Open Book: A Practical Perspective on OSI
by: Marshall T. Rose

"here are some facts about the X.208 / X.209 documents that you might want to include in the SNMP FAQ:

International Telecommunication Union ITU-T X.208
Open Systems Interconnection, Model and Notation
Specification of Abstract Syntax Notation One (ASN.1)
ITU-T Recommendation X.208(Extract from the Blue Book)
Pages: 72
Publication Year: 1988
Price of Online Copy: CHF 25.00(Sep.98)
International Telecommunication Union ITU-T X.209
Open Systems Interconnection, Model and Notation
Specification of Basic Encoding Rules
for Abstract Syntax Notation One (ASN.1)
ITU-T Recommendation X.209(Extract from the Blue Book)
Pages: 23
Publication Year: 1988
Price of Online Copy: CHF 20.00 (Sep.98)
The document X.208 is technically aligned to ISO 8824 and 8824.1.
The document X.209 is technically aligned to ISO 8825 and 8825.1.
Both documents are available online at ITU for download in the formats PDF, PostScript, and MS Word, in the languages English, French and Spanish. Their web site is:

Ekkehard Morgenstern

"The ASN.1 standards document X.208 may be purchased over the Internet directly from the ITU by credit card at: Cost is 34 Swiss Francs (about US$26 at todays exchange rate.)

The standard for ASN.1 BER: Cost is 20 Swiss Francs (about US$15 at todays exchange rate.)"

James Logajan

If you utilize GNU Emacs, a profile is available which makes Emacs set up specifically for ASN.1 editing.
Contact David C. Brower via

Try the book "Abstract Syntax Notation One - ASN.1 - The Tutorial & Reference" by Douglas Steedman - ISBN 1 871802 06 7, published by Technology Appraisals Ltd in 1990.

C.J. Copplestone

We have placed a document we call the ASN.1 Brief on our web site for your reference and review.  The ASN.1 Brief is the first document to be placed in a section of our web site that we call the Technical Briefcase.  Please see the link address

Abstract Syntax Notation One (ASN.1) is defined by ITU-T Recommendation


While much appreciation is due to those that spend significant time to create a service for a community for free, the article is not really helpful to the SNMP community, and could cause harm. Why harm? Primarily because there are different versions of ASN.1, and SNMP uses the version defined in X.208 and not X.680. Also, SNMP uses a very limited subset of ASN.1, and someone reading the complete ASN.1 specification might come to the mistaken belief that all features in the ASN.1 spec could be used and need be supported.

David T. Perkins

SUBJECT: Why is ASN.1 not Definitive for SNMP

The SMI is defined in a set of documents that describe a language
for writing MIB modules, and which contain a few administrative
assignments, and the rules for updating MIB modules. Please note
that the language for writing MIB modules IS NOT ASN.1! Please
do not further this incorrect "urban myth". To compare SMI with
programming languages, the SMI is like the ANSI document that
describes the C programming language.

David Perkins
The problem with ASN.1 in relation with SMI is, that people need the old(!) version from 1987/88, since this is the version, SMI is based on. Anyhow, I never tried to find out the relevant differences from the new ASN.1 specs, and probably nobody ever did. The first paragraph of the SMIv2 specs says

[...] These modules are written using an adapted subset of OSI's Abstract Syntax Notation One, ASN.1 (1988) [1]. [...]

Frank Strauss
I cannot tell the context of the orginal question. But yet again, to write an SNMP agent or manager, do not fall for the belief that you need an ASN.1 compiler. Also, do not fall for the believe that you need an ASN.1 compiler for processing MIB modules.

Whether one or not a asn.1 compiler is free does not matter, because you really do not need one!

David Perkins
The ASN.1 language is used in SNMP for two purposes, which are:
1) to define the format of SNMP messages that are exchanged
between SNMP entities typically called managers and agents
2) as the starting point for a language used to define the
schema for management information. It is NOT CORRECT to say that MIB modules are written in ASN.1!

On the question of do you need to know ASN.1 to write SNMP agents or management applications, the answer is no. However, you do need to know some of the terminology. Also, if you want to know why or how some part of SNMP works or the background on some limitation, then you need to learn some of ASN.1 (the 1988 version).

David Perkins

The 5 cent answer: ASN.1:1988 (yes the version matters), defines a language that is primarily used to specify the format of messages. For example, it is used to specify the format of SNMP messages.

The SMI defines several things, including the language to write MIB modules. It uses elements of the ASN.1 language, but is not a subset of ASN.1. Unfortunately, this language is not named, which has has resulted in confusion.
Also, the language is not completely defined in the SMI documents, and someone reading the RFCs also needs a copy
of the ASN.1:1988 documents, plus other sources, such as examples and books to completely understand the language
for writing MIB modules. And oh by the way, there are two versions of the language.

David Perkins

SUBJECT: Where can I find a free ASN.1 compiler?


2.50.00 --BER

Layman's guide to BER.

Jim Trocki

The above URLs are from a simple tutorial on BER used in SNMP.


More informations on BER can be found at:


SNMP uses the basic encoding rules (BER), which is a totally
different encoding than "network byte order". The BERs are
specified in ITU(CCITT) document X.209.

David T. Perkins

SUBJECT: How is the Integer value -1 encoded?

"I am looking for expert opinions on how negative one aka (-1) is encoded using BER. This is generated in response to an SNMP error on AIX."

J.C. Magras

Stallings has: "2's complement representation with the minimum number of octets." That would be 02 01 FF, where 02 is the type tag, 01 the length, and FF the value [Stallings, W. (1993) SNMP, SNMPv2, and CMIP. Addison-Wesley, Reading,

Mike Allan

SUBJECT: What is the Maximum Size of an SNMP Message?
"The limit on the message size is the minimum of the maximum that the receiver can process and the maximum that the sender can generate. The minimum can be no smaller than 484 octets. A practical maximum is the size that can fix in a UDP message that does not cause IP fragmentation. This is around 1200 octets on Ethernet networks. Many networks use UDP messages that are around 4K octets, even though IP fragmentation occurs. Going over routed connections where you might get packet loss, you would probably not want to have fragementation."

David T. Perkins
The smallest __maximum__ SNMP payload (required) is 484 octets. With UDP overhead, comes to roughly 512 octets.

Individual SNMP messages on the wire can be smaller than 484 octets. The minimum __minimum__ size UDP packet, on ethernet is 64 octets.

Mark Ellison
If you are using UDP over IPv4 as your transport, and if you have a value so large that it cannot fit it into a single UDP packet of maximum size, then you are completely out of luck. This can happen if, for instance, you have an OCTET STRING whose size may potentially exceed 65535 bytes (less IP, UDP, and SNMP overhead) and you wish to get or set the value. So, you either use a different transport protocol (such as TCP), design your MIB objects in such a way as to get around this problem, or use a means other than SNMP to read and write the objects.

C. M. Heard

SUBJECT: Where can I find BER encoding rules?

> where can I find the standard for BER ?

The BER encoding rules are precisely described in my book that can
be freely downloaded at:


2.60.00 -- Agent Behavior

SUBJECT: Proper Response to empty VarBind in GetRequest?

"What should an agent return if it receives a request with an empty variable bindings list? No error, ASN.1 parse error, general error, or something else?"

Frank Foch

A response with an empty varbind list. RFC 1905 defines the VarBindList as follows:

VarBindList ::=
SEQUENCE (SIZE (0..max-bindings)) OF VarBind

Hence it is pretty obvious that an empty varbind list is valid (and not an ASN.1 parse error). Furthermore, there is nothing in the elements of procedure which can cause errors in this situation.

Juergen Schoenwaelder

SUBJECT: Master Agent versus Proxy Agent

"What is the difference between proxy agent and master agent
in SNMP field?"

John Huges

The definition of what a proxy is has changed over time. So lets begin with a master agent:

- A master agent provides access to SNMP variables that may be provided by one or more subagents. The master agent usually uses a subagent protocol (AgentX, DPI, SMUX, EMANATE, ...) to interact with the  subagents. One of the key features of such an extensible agent is that it is complete transparent to the manager.

- The current definition of a proxy SNMP agent is an agent which acts like a gateway to other SNMP agents. This can be useful in order to pass firewalls or to map SNMP protocol versions. Such a proxy is  however not transparent to the manager since the manager usually has to select special parameters to address the target agent through the proxy.

- Early versions of SNMP used the term proxy also for agents that  translate non-SNMP management protocols into SNMP. This usage of the term proxy does not exist anymore in the SNMPv3 documents.

But even if you go to an SNMP working group meeting, you will soon find out that the concept of proxies is something where consensus tends to be rough.

Juergen Schoenwaelder

SUBJECT: Proper Response to GET-NEXT on Last MIB Object?

: what should be the behaviour of an SNMP agent when it receives
: a GET-NEXT on the last element of its MIB.
: I think it must reply "NoSuchName". Am I right ?

: Sebastien Annedouche

It depends on the version of protocol operations you are talking about.

RFC 1157 Section 4.1.3 says that you return an noSuchName error. RFC
1905 section 4.2.2 says that return a endOfMibView exceptions for those
varbinds that have reached the end of the MIB view.

RFC 1157 protocol operations are used by SNMPv1.
RFC 1905 protocol operations are used by SNMPv2c and SNMPv3.

Juergen Schoenwaelder

SUBJECT: How can I find the SNMP version of an Agent?

> I need to find out supported SNMP versions / highest supported SNMP version
> of SNMP agents. Is there a better/easier way to do this than sending requests
> of the different versions and seeing which request you get replies on?

> Marcus Hellsten

There is no mechanism that will work in all cases. Security can be
set up so that you will not get back a response, even when the
agent is supporting the SNMP version of the request.
You need additional info, and how you get it depends on the system
and the setup of the system.

In the "standard" message wrapper, the values of the version field are:
0 - SNMPv1 protocol
1 - SNMPv2c protocol
2 - SNMPv2u protocol
3 - SNMPv3 protocol

SNMPv2p uses a different message wrapper, and doesn't use version field.
The SNMPv2p is defined in RFC1441-RFC1452.

David T. Perkins

SUBJECT: How should an agent respond to a broadcast request?

> When an SNMP request is sent with a broadcast address, Who is
> supposed to respond? Ideally every host in the subnet should respond.
> But I notice that it doesn't happen. What is the expected behaviour when
> a directed broadcast is done?
> rithin

Depending on how the agent is written, it may respond, or
just drop the message. Many agents just drop the message.
I believe that is what the SNMP agent in cisco product do.

david t. perkins

SUBJECT: What does an Agent send in a trap?

> trap is "some information that a SNMP agent send to
> Network Managment System".
> but what kind of informations?
> the NMS can choose an interval of value for sending a trap?
> I mean the NMS can say to SNMP agent "send me a trap if the MIB inOctects
> is minus tha 100"?
> what the NMS can ask to SNMP Agent about trap?
> what kind of trap SNMP agent can send?
> what kind of trap SNMP agent can NOT send?
> Mario Latens

A notification (sent as a TRAP or INFORM operation) is a
mechanism for an agent or an "observer" to send information
about a managed system to a manager.

A notification has an identity and can contain a list
of values of object instances. Each notification type
is defined with the NOTIFICATION-TYPE construct in SMIv2
or the TRAP-TYPE construct in SMIv1 (which is now historical).

Usually, a MIB designer creates notification definitions that
correspond to events that occur on a managed device and
could be significant to a manager. It is up to the
MIB designer to decide on what events should have
an associated notification. Also, the MIB designer
must decide on the values of object instances to
include with the notification.

Some notifications are specific to an event and others
can be generalized, such as crossing of a threshold.
Also, if a MIB designer wanted to use a "push" model
of providing data to a manager, it is certainly possible
for notifications and objects to be created. However,
this is rarely done. (maybe in another message we
can talk about why this is not done)

In the SNMPv1 framework, there were no standard objects
created to administer notification distribution (that
is, where to send notifications, whether to use a
TRAP or INFORM operation, filtering for notifications, etc).

However, in the SNMPv3 framework (which supports the SNMpv1,
SNMPv2c, and the SNMPv3 protocols), there are administrative
objects for notification distribution. They (and their usage)
are specified in RFC 2573.

Because the SNMPv1 framework did not define a standard way
for administering notification distribution, many proprietary
mechanisms and objects have been created.

The notifications that are supported by an SNMP agent are
those that the coder of the SNMP agent decided to add.
To support another notification, means that "code has
to be written" in an SNMP agent.

david t. perkins

SUBJECT: Appendix A. Glossary

TBS - A Big TV Station in Atlanta, Ga (Ha!)

SUBJECT: Appendix B. Acknowledgements & Credits

Some folks have sent in contributions, while others have contributed unwittingly by the nature of their posts to news://comp.protocols.snmp. A NOTE ON CONTRIBUTOR EMAIL ADDRESSES As a result of some of the abuses of EMail now taking place on the Internet, we are adopting a policy of NOT providing EMail addresses of individual contributors in these postings. We will continue to provide EMail addresses of commercial contributors unless requested not to.

The assistance of each of the following folks in the creation of this document is hereby most gratefully acknowledged:

Pavel A
Vikas Aggarwal
Patricio Aguilera
Jorge Alaman~ac
Mike Allan
Arthur Andersen and the Shredders
Sebastien Annedouche
Anonymous "S/he's everywhere!"
David Anselmi
Jason Armistead
Franco Arteseros
Mark D. Aubrey
Chris Avis
Imed Ayadi

Robert Babb
Bernd Bachmann
Mickael Badar
Niels Baggesen
Muncie ("Mun") E. Baggs, VC Extraordinaire
Max Baker
Michael Bank
Bruce Barnett [Bruces URL list is staggering!]
David Battle
Kevin Baughman
Paul Bayer
Kevin Behrens
Sergio Bernardo
Gerard Berthet
Scott S. Bertilson
Judy Bettinger
Jar Jar Binks - Me say have no ting to do wit dis, no, no!
Paul W. Boot
Lee Braddock
John Bradshaw
J. Dean Brock
Borge Brunes
Brian Brown

Max Caines
Wayne Cannon
Les Cargill
Dave Castaneda
John Catalano
Barry D. Chalcroft
George Chandy
Huei-Ping Chen
Charlie Choung
Tom Cikoski ( Editor & Publisher
Paul Coghlan
Bruce Coker
Brett Coley
Steve Common
Martin Cooley
Dan Cox
Jeff Curie
Jeffrey S. Curtis
Robin Cutshaw

Jeff Davison
Bob deBoda
Charlie Dellacona
Jesse Dennerlein
Alain Dessureaux
Douglas De Vine
T. Max Devlin
Sven Doerr
Arnold de Leon
George Dolbier
Mike Dorin
Matt Dougherty
Dave Downey
Jeff Drew
The Duke, Duke, Duke of Earl
Praveen Dulam

Paul Eckert
Queen Elizabeth II and her dog "Pookie"
Daniel Elkoubi
Michael A. Erlinger
Robert Evans

Moritz Farbstein
Sidnie Feit
Nancy Fink
Tim Finkenstadt
Bernhard Fischer
Richard Fisher
Eric Fitzgerald
Pete Flugstad
Gary Flynn
Frank Fock
Rabbe Fogelholm
Kim Foley
Daniel Fuchs
Michael Fuhr

Wallace Gaebel
Thomas Galley
Karl Gaissmaier ("Charly")
Chris Gatto
Clark Gaylord
Dan Geiser
Jude A. George
Tom Georges
Rohan Gilchrist
Andre Gironda
Dan Gold
Richard L. Gralnik
Richard Grier

Jim Halpin
Mark Hammett
Pete Hansen
Shehzad Haq
Wes Hardaker
Jim Harkins
Brad Harris
Reuben Harris
Simon Harrison
Wim Harthoorn
C. M. "Mike" Heard
Lauren Heintz
Marcus Hellsten
Rob Henderson
Dave Hendricks
Eric van Hengstum
Kenneth Herskedal
Yigal Hochberg
Phil Hord
Philipp Hoschka
Joseph C. Hu
Hsing-Kuo Hua
Alex Huang
John Huges

Marc Ikemann
Sridhar Iyengar

Dave Jagoda
Bryce Jasmer
Earl Jones
Jeff Jones
Russell Jones
Paul Julie

Shripathi Kamath
Jeff Kays
Hae-Joo Kim
Michael Kirkham
Jan-Arendt Klingel
Graham Knight
Jay B. Knotts
Stev Knowles
Paul Koch
Raja Kolli
Alexander V. Konstantinou
Mathias Korber
Jay Kota
George Koukoulas
Patrick Koussou
Marjorie Krueger
Cheryl Krupczak
Eric Kruus
Andreas Kuhn
Micha Kushner

Cameron Laird
Bill Larson
Mario Latens
Neil Lavelle
Irwin M. Lazar
Ludovic Lecointe
Paul Ledbetter
Simon Leinen
Allan Leinwand
Marty Leisner
Nuno Leitao
Benoit Legare
Ivan Leong
Alan Levy
Jeff Liebermann
David Lifchitz
Manuel Rozier de Linage
James Logajan
Matthias Lohmann
The Lone Ranger

Eric M.
Margie Mago
J. C. Magras
Nicolas Maillard
John W. Manly
Harold March
Laurence V. Marks
Kevin Martin
Mike Martone
Darth Maul -- Knows The Dark Side of the MIB
Grover C. McCoury III
Blake McCraw
John P. McNeely
Christophe Meessen
Peter Mellquist
Eric Meyer
Olivier Miakinen
Mike Michaud
John J. Miller
Kevin C. Miller
Jim Moore
Ekkehard Morgenstern
Christopher Morrone
James D. Murray

Gopal Narayan
Bill Nash
Ana Neto
Gene Ninestein
A Ninja -- who's just as afraid of you as you are of him!

David Oberbeck
Shane O'Donnell
John D. O'Meara, Jr.
Donal O'Sullivan
David Oury
Blaine Owens

Michael A. Patton
Gen. George S. Patton, Jr -- he'll get your SNMP in shape!
David Partain
Andre Peres
Dave Perkins
Judy Perry
David Pascoe
Eric Perie
Werner Poeppel
Kevin Postlewaite
Shyamal Prasad
Gerard Puoplo
Mark Purcell

Arni Raghu
Brad Reese
Glenn Reesor
David Reid
Michael Reinermann
Karl W. Reinsch
Alan Revzin
Jay Riddell
Andreas Rittershofer
Bob Robillard
Aleksey Y Romanov
The Romanovs of Ancient Russia
Paul Rolland
Manuel Rozier de Linage
Dave Rupp

Klaus Scharr
Ralph Schmieder
Richard Schneider
Cindy Schlener
Juergen Schoenwaelder
Alessandro Scotti
Daniel Secci
Frances K. Selkirk
Christian Seyb
Jagat Shah
Randy Sharpe
Yuval Shchory
Barry Shein
Hiroto Shibuya
Dave Shield
Jeffrey Shimbo
Shmuel Shulman
John Silva
Victor Sigal
Pierrick Simier
Reuben Sivan
Robert Slade
Christopher Smiga
George B. Smith
Tim Snell
Malcolm Sparks
Almon (Al) Sorrell
Craig Southern
Bill Stallings
Hal M. Staniloff
James Stansell
Martin Steiner
Dave Stephens
Joyce Steyer
Frank Strauss

Judi Theg Talley
Taavi Talvik
Rob Tandean
Dan Teja
Mohit Tendolkar
Holger Trapp
Jim Trocki
Ryan Troll

Darth "I'm Really A Fun Guy" Vader
Jukka Vaisanen
Tyler Vallillee
Bert Vandegaer
Harald van Santen
Ruediger Volk
Matjaz Vrecko

Dave Waddell
David Waitzman
Les Walker
Mark Wallace
Larry Walsh
Jean Renard Ward
Andreas Weder
Chris Wellens
Phil Wentworth
David West
Garth Williams
Pete Wilson
Thomas Wilson
Don Winans
John Winfield
Carl Wist
Stefan Witzel
Bruce Wollen
Ralph C Wolman
Joe Wong
Richard Wood

Xena [the Woman Guys Don't Mess With]
Chen Xiaobo

Yoda [He polls SNMP agents using The Force!]
Nelson Yeung
YMMV (especially if you drive too fast)

Sanjay Zalavadia
Jim Van Zant (Sorry, Jim. I only did a few of them.)
Uwe Zimmermann
Rainer Zocholl
Fred Zorbutski -- (who has given us all so much!)

SUBJECT: A Special, Personal Thanks

My meager, threadbare knowledge of SNMP and SNMPv2 would be all the more so except for the patient attention of Jeff Case and Steve Waldbusser. These two fellows are not only masters of their craft, they are also true gentlemen in every sense of the word. My gratitude.

Tom Cikoski

SUBJECT: "Truth in Publishing" Notice:

This FAQ is maintained by Tom Cikoski of Panther Digital Corporation, Danbury Connecticut, USA, using Internet access paid for by Panther Digital for its business use, which includes EMail, ftp, telnet, etc.

Panther Digital Corporation sells/resells network management products and services, including SNMP managers and tools. Panther Digital is a reseller for some products and services named in the above FAQ. This FAQ is provided as a service to the readers of this newsgroup, and in no way represents an attempt by Panther Digital Corporation to market its wares. Panther Digital Corporation is a partner in The SNMP WorkShop.


( )_( ) Panther Digital Corporation 
 \. ./  Danbury, CT, USA
(203) 312-0349