summaryrefslogtreecommitdiff
path: root/ASNMP/README
blob: edb682ab0258c061df3de5e5c488693b36877fd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Thu Sep  4 18:58:26 CDT 1997
====================================================================
ASNMP = ACE+SNMP++ Version 1.5
By Michael R. MacFaden mrm@acm.org, mrm@cisco.com
====================================================================

What is ASNMP ? ==> ACE+SNMP! aka Another SNMP API
  HP's SNMP++ 2.5 freely available C++ SNMP class library 
  has been adapted to the ACE 4.2 Framework. 

What was changed from HP version?
  See src/ChangeLog file.

Is HP SNMP++ compatible with ASNMP?
  It is neither source nor binary compatible. About 10% of the API has changed.
  There have been API changes to make the interface more orthogonal 
  and to reduce implementation complexity such as consolidating constructors
  with default formal values, and to remove some inconsistencies
  with the HP interface as well as locking down valid() semantics, etc.

What platforms have the test programs been verified on?
  Solaris 2.4, 2.5.1 using SUN C++ 4.1 compiler

Why use this version?
  The SNMP++ version ships only for HP-UX and for Windows.
  It is not very portable nor does it do a good job at checking
  for out of memory exhaustion conditions (asn1.cpp). There is some great
  code here. ACE needs an SNMP library to build NM type
  communications applications. Hence ASNMP was born in my spare time. 

How does ASNMP differ from SNMP?
  Current version uses ACE OS Adaption layer.  All memory
  allocation is now consistent, uses ACE_NEW(). 
  Standard ACE Debugging (ACE_TRACE) has been inserted.
  ASNMP has less global namespace pollution by moving all non-class 
  functions into interface classes or made into static locals.

  An agent inteface has been added (asnmp/sagent.h) so both agents
  and managers can use this class library. A trivial agent 
  exists in ASNMP/agent/

  X11 GUI support removed from this version since this is
  not the place to include GUI support in the new world of
  multi-threaded apps.  

  No ASYNC interface. In this version the ASYNC interface has been
  removed. A new one based on class callbacks will be added in 
  the future. Use ACE Threads if blocking doesn't suit you.

  SNMP V2c cmds (getbulk) has been hidden from the API until I
  have an CISCO IOS agent that talks V2c to test with. 

How to build this library?
  Set ACE_ROOT and platform_macros.GNU per ../INSTALL file.
  create libasnmp.a, libasnmp.so and then run the tests

Any Support for ASNMP?
   As time permits from the mailing list.

Where to ask questions?
  Please use ace-users@cs.wustl.edu mailing list or mrm@acm.org

NOTE: Please do not bother Eric Mellquist unless you are using 
   the original HP version of this library.

Where can I get the original HP SNMP++?
   From ftp://rosegarden.external.hp.com:/pub/snmp++ 

What version of SNMP is fully supported?
  SNMP Version 1 (RFC 1155,1157, 1215)

What about SNMP Version 2c?
  V2c is defined in RFC 1901 - 1908 
  These bits are added to v1 code in this library: GetBulk PDU, Counter64
  These bits are missing Inform (RFC 1905)
  RFC 1903 defined new datatypes using existing SMI via macros. 
  These should be coded as if they were SMI datatypes to encapsulate
  their behavior. V2c hasn't been deployed 

What copyrights/legal requirements are required when using this code?
  See ./COPYRIGHT 

Does this really work?
  See tests/ directory  for the current test reports (purify/purecov/...).

Any Future Plans? 
  The ASNMP library will be improved for performance and made to use 
  higher level design patterns. Hopefully it will be used as a 
  vehicle for grad students to learn something about network mgmt 
  code work related distributed programming.


Regards,
Michael R. MacFaden
Software Engineer IV 
Cisco Systems, Inc.
Network Management Business Unit
170 West Tasman Drive
San Jose, CA 95120
408-526-6228
mrm@cisco.com

====================================================================
SNMP++ For UNIX Source Code and Examples:
====================================================================
Included within this package can be found the source code and  
examples for SNMP++. The following represents the directories which
are included within the compressed tar file and their contents.

For more details on the API , please refer to the API specification.

This library is a complete implementation of SNMP++ and does not
require other SNMP libraries to be present.  

Required Tools:
---------------------------------------------------------------------


readme.txt ( this file)
|
|
|------ src ( .cpp files and Makefile for building libraries )
|
|------ examples ( a variety of apps, .cpp and Makefile included )
|
|------ tests - unit test routines  


src Directory Contents:
--------------------------------------------------------------------
Makefile             - make file for ACE/Solaris 2. build
target.cpp           - Collection of attributes(address, timeout, etc) used
                       to define a command session
snmp.cpp             - A logical session between NM app and agent 
pdu.cpp              - Pdu class source (vb list and API command)
wpdu.cpp             - Adapter pattern based class between CMU and HP code
transaction.cpp      - synchronous transaction clss  
vb.cpp               - Variable Binding class source (oid + value)

<<  SMI datatypes used to get/set values in SNMPv1 agents>>

address.cpp          - Address class source
gauge.cpp            - Gauge32 class source
integer.cpp          - Integer32 class source
counter.cpp          - Counter32 class source
ctr64.cpp            - Counter64 class source
timetick.cpp         - TimeTicks class source
octet.cpp            - Octet String class source
oid.cpp              - Oid class source
asn1.cpp             - ASN1 encoding and decoding code. CMU code.

examples Directory Contents:
---------------------------------------------------------------------
Makefile             - make file for building console apps
get.cpp          - source for SNMP get program
next.cpp         - source for SNMP get Next program
set.cpp          - source for SNMP set program
trap.cpp         - source for SNMP trap send program
walk.cpp         - source for SNMP walk program