1
<?xml version="1.0" encoding="latin1" ?>
2
<!DOCTYPE chapter SYSTEM "chapter.dtd">
7
<year>1997</year><year>2009</year>
8
<holder>Ericsson AB. All Rights Reserved.</holder>
11
The contents of this file are subject to the Erlang Public License,
12
Version 1.1, (the "License"); you may not use this file except in
13
compliance with the License. You should have received a copy of the
14
Erlang Public License along with this software. If not, it can be
15
retrieved online at http://www.erlang.org/.
17
Software distributed under the License is distributed on an "AS IS"
18
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
19
the License for the specific language governing rights and limitations
24
<title>SNMP Introduction</title>
26
<responsible></responsible>
32
<file>snmp_intro.xml</file>
34
<p>The SNMP development toolkit contains the following parts:
36
<list type="bulleted">
37
<item>An Extensible multi-lingual SNMP agent, which understands SNMPv1
38
(RFC1157), SNMPv2c (RFC1901, 1905, 1906 and 1907), SNMPv3
39
(RFC2271, 2272, 2273, 2274 and 2275), or any combination of
42
<item>A multi-lingual SNMP manager.
44
<item>A MIB compiler, which understands SMIv1 (RFC1155, 1212, and
45
1215) and SMIv2 (RFC1902, 1903, and 1904).
48
<p>The SNMP development tool provides an environment for
49
rapid agent/manager prototyping and construction. With the
50
following information provided, this tool is used to set up a
51
running multi-lingual SNMP agent/manager:
53
<list type="bulleted">
54
<item>a description of a Management Information Base (MIB) in
55
Abstract Syntax Notation One (ASN.1)
57
<item>instrumentation functions for the managed objects in the MIB,
61
<p>The advantage of using an extensible (agent/manager) toolkit is to
62
remove details such as type-checking, access rights, Protocol Data Unit
63
(PDU), encoding, decoding, and trap distribution from the
64
programmer, who only has to write the instrumentation functions,
65
which implement the MIBs. The <c>get-next</c> function only
66
has to be implemented for tables, and not for every variable in
67
the global naming tree. This information can be deduced from the
72
<title>Scope and Purpose</title>
73
<p>This manual describes the SNMP development tool,
74
as a component of the Erlang/Open Telecom Platform development
75
environment. It is assumed that the reader is familiar with the
76
Erlang Development Environment, which is described in a separate
81
<title>Prerequisites</title>
82
<p>The following prerequisites
83
is required for understanding the material in the SNMP
86
<list type="bulleted">
87
<item>the basics of the Simple Network Management Protocol
90
<item>the basics of the community-based Simple Network
91
Management Protocol version 2 (SNMPv2c)
93
<item>the basics of the Simple Network Management Protocol
96
<item>the knowledge of defining MIBs using SMIv1 and SMIv2
98
<item>familiarity with the Erlang system and Erlang programming
101
<p>The tool requires Erlang release 4.7 or later.
106
<title>Definitions</title>
107
<p>The following definitions are used in the SNMP User's Guide.
111
<item>The conceptual repository for management information is
112
called the Management Information Base (MIB). It does not
113
hold any data, merely a definition of what
114
data can be accessed. A definition of an MIB is a
115
description of a collection of managed objects.
118
<item>The MIB is specified in an adapted subset of the Abstract
119
Syntax Notation One (ASN.1) language. This adapted subset is
120
called the Structure of Management Information (SMI).
123
<item>ASN.1 is used in two different ways in SNMP. The SMI is
124
based on ASN.1, and the messages in the protocol are defined by
127
<tag>Managed object</tag>
129
<p>A resource to be managed is represented by a managed
130
object, which resides in the MIB. In an SNMP MIB, the managed
131
objects are either:</p>
132
<list type="bulleted">
133
<item><em>scalar variables</em>, which have only one instance
134
per context. They have single values, not multiple values like
135
vectors or structures.
137
<item><em>tables</em>, which can grow dynamically.
139
<item>a <em>table element</em>, which is a special type of
140
scalar variable.</item>
143
<tag>Operations</tag>
144
<item>SNMP relies on the three basic operations: get (object),
145
set (object, value) and get-next (object).
147
<tag>Instrumentation function</tag>
148
<item>An instrumentation function is associated with each
149
managed object. This is the function, which actually implements
150
the operations and will be called by the agent when it receives
151
a request from the management station.</item>
153
<item>A manager generates commands and receives notifications
154
from agents. There usually are only a few managers in a system.</item>
156
<item>An agent responds to commands from the manager, and sends
157
notification to the manager. There are potentially many agents
163
<title>About This Manual</title>
164
<p>In addition to this introductory chapter, the SNMP User's Guide
165
contains the following chapters:
167
<list type="bulleted">
168
<item>Chapter 2: "Functional Description" describes the features
169
and operation of the SNMP development toolkit. It includes
170
topics on Sub-agents and MIB loading, Internal MIBs, and Traps.
172
<item>Chapter 3: "The MIB Compiler" describes the features and the
173
operation of the MIB compiler.
175
<item>Chapter 4: "Running the application" describes how to start and
176
configure the application. Topics on how to debug the application
179
<item>Chapter 5: "Definition of Agent Configuration Files" is a
180
reference chapter, which contains more detailed information about
181
the agent configuration files.
183
<item>Chapter 6: "Definition of Manager Configuration Files" is a
184
reference chapter, which contains more detailed information about
185
the manager configuration files.
187
<item>Chapter 7: "Agent Implementation Example" describes how an MIB
188
can be implemented with the SNMP Development Toolkit.
189
Implementation examples are included.
191
<item>Chapter 8: "Instrumentation Functions" describes how
192
instrumentation functions should be defined in Erlang for the
193
different operations.
195
<item>Chapter 9: "Definition of Instrumentation Functions" is a
196
reference chapter which contains more detailed information
197
about the instrumentation functions.
199
<item>Chapter 10: "Definition of Agent Net if" is a reference chapter,
200
which describes the Agent Net if function in detail.
202
<item>Chapter 11: "Definition of Manager Net if" is a reference chapter,
203
which describes the Manager Net if function in detail.
205
<item>Chapter 12: "Advanced Agent Topics" describes sub-agents, agent
206
semantics, audit trail logging, and the consideration of
209
<item>Appendix A describes the conversion of SNMPv2 to SNMPv1
212
<item>Appendix B contains the RFC1903 text on <c>RowStatus</c>.
218
<title>Where to Find More Information</title>
219
<p>Refer to the following documentation for more information about
220
SNMP and about the Erlang/OTP development system:
222
<list type="bulleted">
223
<item>Marshall T. Rose (1991), "The Simple Book - An
224
Introduction to Internet Management", Prentice-Hall
226
<item>Evan McGinnis and David Perkins (1997), "Understanding SNMP
229
<item>RFC1155, 1157, 1212 and 1215 (SNMPv1)
231
<item>RFC1901-1907 (SNMPv2c)
233
<item>RFC1908, 2089 (coexistence between SNMPv1 and SNMPv2)
235
<item>RFC2271, RFC2273 (SNMP std MIBs)
237
<item>the Mnesia User's Guide
239
<item>the Erlang 4.4 Extensions User's Guide
241
<item>the Reference Manual
243
<item>the Erlang Embedded Systems User's Guide
245
<item>the System Architecture Support Libraries (SASL) User's
248
<item>the Installation Guide
250
<item>the Asn1 User's Guide
252
<item>Concurrent Programming in Erlang, 2nd Edition (1996),
253
Prentice-Hall, ISBN 0-13-508301-X.