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 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330
|
Net::SNMP Changes
RELEASE 6.0.1 SEP-09-2010
- Removed all occurrences of the "locked" attribute that was
deprecated in Perl 5.12.0.
- Changed the test validating the presence of a monotonic time value
to check for invalid implementations.
- The SNMPv3 contextEngineID and contextName are now stored as part
of the request allowing for these values to be changed between
messages.
RELEASE 6.0.0 SEP-09-2009
- Substantial internal code cleanup was performed based upon the
Perl::Critic module and the "Perl Best Practices" book.
- Added support for the Module::Build system for building, testing,
and installing Perl modules.
- The translation logic for OCTET STRINGs now uses the definition of
a DisplayString in RFC 2579 to determine if the octets are to be
converted into a hexadecimal representation.
- The get_table() and get_entries() methods were refactored as part
of the code cleanup. The get_entries() method now handles "holes"
in tables better and indexes with a value of zero.
- The inheritance structure of the Transport Domain objects was
updated to reduce code duplication and increase maintainability.
- The resolution of IPv6 addresses was made more exhaustive.
- The handling of OBJECT IDENTIFIERs was made more efficient by
using [un]pack() with a BER compressed integer template.
- Additional validation of the values passed to most methods is now
performed and the error messages have been made more robust.
- The documented examples were updated based upon commonly asked
questions (specifically Example 3 and Example 4).
- A Response-PDU with an error-status set to "noError" no longer
generates an error when the error-index is non-zero, as decribed
in Section 4.2.4 of RFC 3416.
- The function oid_lex_cmp() was added to provide for the
lexicographical comparison of two OBJECT IDENTIFIERs.
- The error-status is no longer set for the exceptions noSuchObject,
noSuchInstance, and endOfMibView when translation is not enabled.
RELEASE 5.2.0 OCT-20-2005
- Removed the dependency on the IO::Socket::INET and IO::Socket::INET6
modules. The IO::Socket module is now used for all socket objects.
- The port information can now be included as part of the transport
address specified with the session() Transport Domain arguments.
- Added support for specifying the scope zone index for IPv6 addresses
as described in RFC 4007 - "IPv6 Scoped Address Architecture".
- The default value for the agent-addr in SNMPv1 Trap-PDUs is now the
IP address associated with the interface on which the trap will be
transmitted.
RELEASE 5.1.0 JUL-20-2005
- Support of the AES privacy protocol was updated to be compliant with
RFC 3826 - "The Advanced Encryption Standard (AES) Cipher Algorithm
in the SNMP User-based Security Model".
- Corrected an issue where any non-blocking SNMPv3 message queued prior
to calling snmp_dispatcher() was sent with an empty contextEngineID.
- The first SNMPv3 discovery message is again being sent with a zero-
length msgUserName as suggested by RFC 3414.
- All sockets are now flagged as non-blocking to prevent a possible
deadlock due to an interaction between recv() and select().
- The sending of messages is now bounded by the receive processing rate
to avoid receive buffer overflows.
- The return value of select() is now checked for both "undef" and -1.
- The "usm.t" tests are now skipped if any of the non-core modules
required by the Net::SNMP::Security::USM module are not present.
RELEASE 5.0.1 SEP-09-2004
- The module is now again functional with Perl 5.6.x. Compensations
were made for compatibility problems with the IO::Socket::INET and
Math::BigInt modules packaged with Perl 5.6.x.
- The UDP/IPv6 and TCP/IPv6 Transport Domains are now functional when
using version 2.0x of the IO::Socket::INET6 module.
RELEASE 5.0.0 JUL-20-2004
- Added support for the UDP/IPv6 Transport Domain listed in RFC 3419.
- Support for the TCP/IPv4 and TCP/IPv6 Transport Domains was added
as described in RFC 3430 - "SNMP over TCP Transport Mapping".
- Optimizations were made to ASN.1 processing and preparation methods.
- Corrected a possible memory exhaustion error with OCTET STRINGs that
contain "printf" format characters.
- The ASN.1 types associated with the ObjectSyntax values in the
VarBindList can now be retrieved using the var_bind_types() method.
- The function snmp_type_ntop() was added for displaying ASN.1 types.
- The Net::SNMP::Dispatcher module now checks for select() errors.
- Passing the "-maxrepetitions" argument with a value of 1 or less
to the get_table() or get_entries() methods instructs them to use
get-next-request messages instead of get-bulk-request messages.
- The maximum allowed value for the maxMsgSize was reduced to 65535.
- The Perl modules for the non-default Transport Domains and Security
Model are now loaded at runtime instead of compile time.
RELEASE 4.1.2 SEP-11-2003
- Removed an unintended dependency on the Crypt::Rijndael that would cause
SNMPv3 support to be unavailable and the "usm.t" tests to fail due to
a "strict subs" error in Net::SNMP::Security::USM module.
RELEASE 4.1.1 SEP-09-2003
- Corrected a misinterpretation of the "The AES Cipher Algorithm in the
SNMP's User-based Security Model" draft specification that lead to
the incorrect encoding and decoding of the last block of the message.
- The syntax of the get_entries() method was changed to expect the column
values to entered as full OBJECT IDENTIFIERs allowing the traversal of
conceptual rows in different tables which are indexed identically.
- The processing of the serialization of an OBJECT IDENTIFIER was optimized.
- The oid_lex_sort() function was updated to order OBJECT IDENTIFIER strings
padded with spaces as lexicographically greater than unpadded strings.
- An empty contextEngineId in a response message is now accepted during
the SNMPv3 discovery process.
- Corrected an argument validation error with the get_bulk_request()
method.
RELEASE 4.1.0 MAY-06-2003
- Working in conjunction with the Extended Security Options Consortium
(http://www.snmp.com/eso), support for additional privacy protocols
has been added to the SNMPv3 User-based Security Model.
"Extension to the USM to Support Triple-DES EDE in 'Outside' CBC Mode"
Reeder and Gudmunsson; October 1999, expired April 2000
http://www.snmp.com/eso/draft-reeder-snmpv3-usm-3desede-00.txt
"The AES Cipher Algorithm in the SNMP's User-based Security Model"
Blumenthal, Maino, and McCloghrie; October 2002, expired April 2003
http://www.snmp.com/eso/draft-blumenthal-aes-usm-04.txt
- A new method called get_entries() was added to allow the retrieval
of columns of a table entry using get-next-requests or get-bulk-requests.
- The argument "-maxrepetitions" was added to the get_table() method.
- Responses to SNMPv3 messages with non-default contextEngineIDs or
contextNames are now properly processed.
- The method var_bind_names() was added to retrieve an array of the
ObjectNames in the VarBindList in the order in which they were
received in the GetResponse-PDU.
RELEASE 4.0.3 SEP-09-2002
- Net::SNMP objects are now destroyed as expected when they are no
longer referenced. An internal reference to the object allocated by
the Net::SNMP::Dispatcher module is now properly cleared.
- A socket with a file descriptor value of 0 is now accepted by the
Net::SNMP module as a valid and open filehandle.
- Removed an "optimization" which was intended to provide a smoother
initialization of the dispatcher but instead could lead to messages
incorrectly timing out.
RELEASE 4.0.2 MAY-06-2002
- The SNMPv3 request message sent for time synchronization is now sent
with the same securityLevel that is configured for the session.
- The "reserved" bits in the msgFlags field of an incoming SNMPv3
message are now ignored as suggested by RFC 2572.
- When encrypting a SNMPv3 message, the padding byte(s) are now set to
a value equal to the size of the padding. "The actual pad value is
irrelevant..." according RFC 2574 Section 8.1.1.2. However, there
are some agents that expect this byte pattern.
- Corrected a reference count mismatch which would leave a listening
socket open if no response is received from the remote agent.
- Corrected a "deep recursion" error that occurred when using the
get_table() method to retrieve large tables in blocking mode.
- Using the "-delay" argument with the get_table() method no longer
incorrectly delays between message exchanges when retrieving the table.
- Optimizations and improvements were made to the Net::SNMP::Dispatcher
event scheduling and handling procedures.
- The "translate unsigned" logic now correctly handles properly
formatted (but unexpected) negative Counter64, Counter, Gauge, and
TimeTick values.
RELEASE 4.0.1 JAN-01-2002
- SNMPv3 objects using authentication now send a separate authenticated
request message for time synchronization while performing discovery.
- Non-blocking SNMPv1/2c messages with a "-delay" argument which are
queued before entering the event loop are no longer incorrectly
discarded.
- The Net::SNMP::Security::Community::security_model() method now
returns the correct value as reserved by RFC 2571.
- The first subidentifier in an OBJECT IDENTIFIER is now restricted to
ccitt(0), iso(1), or joint-iso-ccitt(2) as specified by ISO/IEC 8825.
- Changed the appropriate CHECK blocks into BEGIN blocks to avoid the
"Can't call method 'send_pdu' on an undefined value" error when the
module is loaded using a quoted eval statement.
RELEASE 4.0.0 NOV-09-2001
- The module has been completely redesigned to add support for SNMPv3
and to follow the SNMP Management Framework defined by RFC 2571.
- Perl version 5.6.0 or greater is now required to use the module.
- Updated the method calls to expect the same argument syntax regardless
of whether they are invoked by "blocking" or "non-blocking" objects.
- The non-core modules Crypt::DES, Digest::MD5, Digest::SHA1, and
Digest::HMAC are now required to support SNMPv3.
- Added the ability to specify the local address and port number used by
each object.
RELEASE 3.65 SEP-09-2001
- Corrected an error in the Net::SNMP::FSM module that would cause all
response messages to be dropped in "non-blocking" mode if there is
a recv() error.
- Updated the logic in the "blocking" response handling method such
the transmit buffer is properly updated if there is a decode
error while parsing the GetResponse-PDU.
- Counter, Gauge, and TimeTick values that are incorrectly encoded as
negative signed integers are now converted to unsigned values. This
feature can be disabled by setting the "-unsigned" flag to false
using the translate() method.
- An empty community name is now allowed.
- Updated the "non-blocking" example script.
RELEASE 3.60 SEP-09-2000
- Translation can now be enabled or disabled on a per ASN.1 type basis.
- The Net::SNMP::FSM "event loop" now prioritizes processing SNMP responses
over other actions.
- A set of example scripts is now included with the distribution.
RELEASE 3.50 MAY-06-2000
- The methods that expect a SNMP GetResponse-PDU in "blocking" mode now ignore
messages with request-ids that do not match the current request-id. This
change addresses a common occurrence of the "Received request-id xxxx is
not equal to transmitted request-id xxxx" error. The manifestation of this
error that has been corrected occurs when a remote agent is too busy to
respond immediately, buffers the request, and responds to the request after
the Net::SNMP timeout has expired.
- A new argument "-delay" was added to all methods that can function in "non-
blocking" mode.
- The Net::SNMP::FSM "event loop" sub-module was completely rewritten to more
logically handle events.
- The get_table() method now uses get-bulk-requests instead of
get-next-requests when the calling object's version is SNMPv2c.
- When a duplicate OBJECT IDENTIFIER is received in the VarBindList of a
GetResponse-PDU, the duplicate is now padded with an appropriate number of
spaces to make it an unique key in the HASH reference returned by the object.
- The default Maximum Transport Unit was changed from 484 to 1500. The
minimum allow MTU is now 484.
RELEASE 3.01 JAN-01-2000
- Performance enhancements were made to the most heavily used methods.
- Changed the default timeout to 5.0 seconds and the default number of retries
to 1 to reduce network traffic and to work around a problem with responses
from certain routers when they are busy. The total default timeout period
remains the same at 10 seconds.
- Removed the verify_ip() method and the "-verifyip" argument to the
constructor.
RELEASE 3.00 SEP-09-1999
- Added event loop based "non-blocking" support.
- Deprecated the verify_ip() method because verification of the received
IP address and port number is no longer done.
- The "null" character (\000) no longer triggers an OCTET STRING in a
GetResponse-PDU to be converted to a hexadecimal representation if
translation is enabled.
- A single socket is now used for all Net::SNMP objects.
- Corrected an error where a blocking session would send one too many
retries and fail to listen for the last message sent.
- Added a new export tag ":snmp" used to define SNMP related symbols.
- New utility functions oid_context_match(), oid_lex_sort(), and
ticks_to_time() were added to provide support for commonly requested
tasks.
- The length of the varBind SEQUENCE is now properly encoded when multiple
varBinds exist.
RELEASE 2.00 MAY-06-1999
- Added support for SNMPv2c (Community-Based SNMPv2).
- Modified the ASN.1 encode routine for INTEGERs to correctly handle
positive values greater than 8388607.
- Added an installation test to verify basic usage of the module,
including verification of basic encode and decode methods.
RELEASE 1.40 APR-26-1999
- All parameters for the object that used to be only configurable via an
object method can now be modified at object creation by passing named
arguments to the constructor.
- The translate() and debug() methods were modified to require a boolean
argument to enable or disable the feature. This deprecates the toggle
functionality they had previously.
- New method verify_ip() added that enables or disables the verification
of the IP address and UDP port number on datagrams received by the object.
- Added support for decoding ASN.1 lengths encoded with 3 or 4 bytes.
- Installation tests for the modules required by Net::SNMP and for basic
socket functionality were added to the distribution.
RELEASE 1.30 MAR-17-1999
- Modified the OBJECT INDENTIFIER decode method to return a leading dot
on all identifiers if there was a leading dot on any OBJECT IDENTIFIER
passed to the encode method.
- Changed the address comparison used when receiving an UDP packet to just
include the port and address information in order to work around an AIX
problem.
RELEASE 1.20 NOV-06-1998
- Now use gensym() from the Symbol module to generate typeglob references
for socket handles, correcting a memory leak.
- All private methods renamed to Perl programming style recommendations.
RELEASE 1.10 OCT-14-1998
- New method trap() for sending SNMP Trap-PDUs added.
- New method error_status() which retrieves the SNMP error-status contained
in the last SNMP GetResponse-PDU added.
- Named arguments for the method session() are now validated.
- New export tags ":asn1", ":generictrap", and ":ALL" added.
- New exportable symbols for generic-trap types added.
- A comma contained in an OCTET STRING no longer causes the decoded result
of a GetResponse-PDU to be converted to a hexadecimal representation if
translation is enabled.
- The control characters \n\r\t no longer trigger an OCTET STRING in a
GetResponse-PDU to be converted to a hexadecimal representation if
translation is enabled.
RELEASE 1.00 SEP-09-1998
- Initial release.
RCS
$Id: Changes,v 6.1 2010/09/10 00:01:22 dtown Rel $
|