summaryrefslogtreecommitdiff
path: root/ACE/ASNMP/asnmp-overview.html
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ASNMP/asnmp-overview.html')
-rw-r--r--ACE/ASNMP/asnmp-overview.html134
1 files changed, 134 insertions, 0 deletions
diff --git a/ACE/ASNMP/asnmp-overview.html b/ACE/ASNMP/asnmp-overview.html
new file mode 100644
index 00000000000..4e336178b0d
--- /dev/null
+++ b/ACE/ASNMP/asnmp-overview.html
@@ -0,0 +1,134 @@
+<html>
+<!-- $Id$ -->
+<! by Michael R. MacFaden mrm@cisco.com >
+<title>ASNMP Overview</title>
+
+<h1>ASNMP Overview</h1>
+
+<p>The Another SNMP class library is an Object Oriented programming
+toolkit for using IETF standard network management protocols in the
+Internet. The SNMP protocol is perhaps the most ubiquitous management
+protocol running on most very device or application deployed in the
+modern network today.
+
+<p>ASNMP is targeted to programmers that want to write command and
+control (C&C) applications. C&C Applications communicate with
+a variety of objects:
+<sl>
+<li>network devices such as ATM switches, Internet routers,
+LAN bridges and LAN printers
+<li>Routing protocols such as OSPF
+<li>database servers such as ORACLE or Informix.
+
+<p>ASNMP Version 1 implements a blocking SNMP Version 1 with some
+Version 2c additions (Counter32, Counter64 SMI values). See
+SNMP Version 1 as defined in the IETF Request for Comments (RFC)
+<sl>
+<li>1155
+<li>1157
+<li>1213
+<li>1215
+<sl>
+<p>Also see the RFC 1902 spec for new SMI datatypes such as Counter64.
+
+<p>ASNMP is built using the CMU SNMP and HP SNMP++ as the base
+classes then modified for use in the ACE framework. About 10% of the API
+changed during code rework. See ASNMP/asnmp/ChangeLog for details.
+
+<p>ASNMP can be used for either manager applications or agent applications.
+The <i>Snmp</i> class contains the interface for manager applications. The
+<i>sagent</i> class contains the interface for agent applications. A
+trivial agent that implements the mib II system group per rfc1213 is
+in the agents/ directory.
+
+<h2>Class Heirarchy</h2>
+
+<pre>
+UdpTarget - Defines a collection of attributes needed to define a
+ communications session with an SNMP agent
+ This includes network address, response timeout, etc.
+
+Snmp - A logical session between NM app and agent. Provides the
+ commands get, get_next, trap. Manages transactions between app and
+ server.
+
+Pdu - A container object that represents an SNMP Protocol Data Unit.
+ A Pdu contains a command (get,getnext,trap) Varbind List list,
+ a community string.
+
+Vb - Aka Varbind or Variable Binding. A pdu can have zero,
+ one or more of these. A Vb consists of an Oid to identify
+ the variable and a value corresponding to one of the SMI values.
+ The oid/value binding is defined in a MIB file (RFC 1155)
+ Agents hava a MIB file that defines what each variable means.
+ Most agents implement MIB II as defined in RFC 1156.
+
+<p>The Structure of Managment Information (SMI) datatypes
+and related types are:
+<ul>
+<li>Address->IpAddress->UdpAddress as well as MAC, IPX, IPXSOCK, Netbios
+<li>Unsigned Integer
+<li>Gauge32
+<li>Integer32
+<li>Counter32
+<li>Counter64
+<li>TimeTicks
+<li>OctetStr
+<li>Oid
+</ul>
+
+<hr>
+
+<h2>Sample program</h2>
+<p>A sample Object to get obtain an Agent's Systems' Description
+given an network address and a community string.
+
+class system_id {
+ public:
+ system_id(UdpAddress addr, OctetStr read_community_string)
+ {
+ UdpTarget tgt;
+ Snmp snmp;
+ Pdu pdu;
+ Oid oid("1.3.6.1.2.1.1.1.0");
+ Vb vb(oid);
+ tgt.set_address(addr);
+ tgt.set_read_community(read_community_string);
+ pdu += vb;
+
+ if (snmp.get(pdu, tgt) == 0) {
+ pdu.get_vb(vb, 0);
+ vb.get_value(desc_);
+ }
+ else
+ desc_ = "<error - no value set>"
+ }
+
+ int get_description(OctetStr& description) {
+ description = desc_;
+ return 0;
+ }
+
+private:
+ OctetStr desc_;
+};
+
+<h1>Future Directions</h1>
+<p>Here are some areas for further work
+<sl>
+<li>Add OO mib parser and mib code generator
+<li>Collapse the CMU/HP code into one set of classes.
+<li>Add full V2c support.
+<li>Size/Speed improvements
+</sl>
+
+<h1>References</h1>
+<ul>
+<li><a href="http://www.ece.ucdavis.edu/ucd-snmp/">UCD SNMP</a>
+<li><a href="news://comp.protocols.snmp">comp.protocols.snmp</a>
+<li><a href="http://snmp.cs.utwente.nl">University of Twente</a>
+<li><a href="http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/comp/protocols/snmp/top.html">SNMP FAQ</a>
+<li><a href="http://www.adventnet.com/">Java based SNMP tools from Ardent</a>
+<li><a href="http://misa.zurich.ibm.com/Webbin/">IBM SNMP/CMIP research</a>
+</ul>
+</html>