19962011 Ericsson AB. All Rights Reserved. The contents of this file are subject to the Erlang Public License, Version 1.1, (the "License"); you may not use this file except in compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. SNMP Release Notes notes.xml
SNMP Development Toolkit 4.21

Version 4.21 supports code replacement in runtime from/to version 4.20.1, 4.20 and 4.19.

Improvements and new features

[manager] There was no way to specify transport domain. The transport domains was assumed to be IPv4 (transportDomainUdpIpv4). This has now been changed so that it can also be IPv6 (transportDomainUdpIpv6). To facilitate this, the transport domain, tdomain, is now a (new) valid option when registering a new agent (and updating agent info).

This also mean that the transport behaviour has changed.

Own Id: OTP-9305

Aux Id: Seq 11847

[compiler] Added the option warnings_as_errors (for the SNMP MIB compiler (escript) frontend, the option --wae is used) which specifies whether warnings should be treated as errors.

Tuncer Ayaz

Own Id: OTP-9437

Fixed Bugs and Malfunctions

The snmp config tool could not handle (manager) audit trail config because the option seqno was not handled.

Own Id: OTP-9354

Incompatibilities

-

SNMP Development Toolkit 4.20.1

Version 4.20.1 supports code replacement in runtime from/to version 4.20, 4.19 and 4.18.

Improvements and new features

-

Fixed Bugs and Malfunctions

[agent] Did not handle transport domains properly in some cases, for instance trap sending.

Own Id: OTP-9400

[agent] Wrong default transport domain, snmpUDPDomain, instead of transportDomainUdpIpv4.

Own Id: OTP-9425

Aux Id: Seq 11874

Incompatibilities

-

SNMP Development Toolkit 4.20

Version 4.20 supports code replacement in runtime from/to version 4.19 and 4.18.

Improvements and new features

[agent] Added support for sending traps to IPv6 targets.

See the target address config file, the target_addr_entry/11 function or add_addr/11 for more info.

Own Id: OTP-9088

Aux Id: Seq 11790

[agent] To be able to handle multiple engine-id(s) when sending trap(s), the function add_community/6 has been added.

Own Id: OTP-9119

Aux Id: Seq 11792

[manager] The API for snmp requests has been augmented to allow the caller to override some configuration.

This has been done by introducing a new set of API functions, see sync_get2/3,4, async_get2/3,4, sync_get_next2/3,4, async_get_next2/3,4, sync_get_bulk2/5,6, async_get_bulk2/5,6, sync_set2/3,4 and async_set2/3,4 for more info.

Own Id: OTP-9162

[manager] The old API functions (for get and set requests: snmpm:g/3,4,5,6,7, snmpm:ag/3,4,5,6,7, snmpm:gn/3,4,5,6,7, snmpm:agn/3,4,5,6,7, snmpm:s/3,4,5,6,7, snmpm:s/3,4,5,6,7, snmpm:gb/5,6,7,8,9 and snmpm:agb/5,6,7,8,9) are now officially deprecated. They will be removed as of R16B.

Own Id: OTP-9174

[agent] Pass extra info through the agent to the net-if process when sending notifications.

See snmpa:send_notification2/3 for more info. See also the incomming net-if messages when sending a trap (send_pdu message) and notification (send_pdu_req message).

Own Id: OTP-9183

Aux Id: Seq 11817

Added type specs for functions that do not return.

Kostis Sagonas

Own Id: OTP-9208

Fixed Bugs and Malfunctions

Fixed endode/decode of values of type Counter32.

This type (Counter32) is an unsigned integer 32, but is actually encoded as an signed integer 32. The encode/decode functions however, treated it as if it was encodeded as an unsigned integer 32.

Own Id: OTP-9022

Incompatibilities

-

SNMP Development Toolkit 4.19

Version 4.19 supports code replacement in runtime from/to version 4.18.

Improvements and new features

[compiler] Added support for textual convention AGENT-CAPABILITIES and "full" support for textual convention MODULE-COMPLIANCE, both defined by the SNMPv2-CONF mib.

The reference and modules part(s) are stored in the assocList of the mib-entry (me) record. Only handled if the option(s) agent_capabilities and module_compliance (respectively) are provided to the compiler.

See compile/2 for more info.

For backward compatibillity, the MIBs provided with this application are not compiled with these options.

Own Id: OTP-8966

[agent] Added a "complete" set of (snmp) table and variable print functions, for each mib handled by the SNMP (agent) application. This will be usefull when debugging a running agent.

See print_mib_info/0, print_mib_tables/0 and print_mib_variables/0 for more info.

Own Id: OTP-8977

[compiler] Added a MIB compiler (frontend) escript, snmpc.

Own Id: OTP-9004

Fixed Bugs and Malfunctions

[agent] For the table vacmAccessTable, when performing the is_set_ok and set operation(s), all values of the vacmAccessSecurityModel column was incorrectly translated to any.

Own Id: OTP-8980

[agent] When calling snmp_view_based_acm_mib:reconfigure/1 on a running node, the table vacmAccessTable was not properly cleaned. This meant that if some entries in the vacm.conf file was removed (compared to the current config), while others where modified and/or added, the removed entrie(s) would still exist in the vacmAccessTable table.

Own Id: OTP-8981

Aux Id: Seq 11750

Incompatibilities

-

SNMP Development Toolkit 4.18

Version 4.18 supports code replacement in runtime from/to version 4.17.1 and 4.17.

Improvements and new features

Prepared for R14B release.

Fixed Bugs and Malfunctions

-

Incompatibilities

-

SNMP Development Toolkit 4.17.1

Version 4.17.1 supports code replacement in runtime from/to version 4.17, 4.16.2, 4.16.1, 4.16, 4.15, 4.14 and 4.13.5.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

When the function FilterMod:accept_recv/2 returned false the SNMP agent stopped collecting messages from UDP.

Own Id: OTP-8761

Incompatibilities

-

SNMP Development Toolkit 4.17

Version 4.17 supports code replacement in runtime from/to version 4.16.2, 4.16.1, 4.16, 4.15, 4.14 and 4.13.5.

Improvements and new features

[agent] Added very basic support for multiple SNMPv3 EngineIDs in a single agent. See send_notification/7, process_packet/7, generate_response_msg/6 or generate_msg/6 for more info.

Own Id: OTP-8478

Reported Fixed Bugs and Malfunctions

-

Incompatibilities

-

SNMP Development Toolkit 4.16.2

Version 4.16.2 supports code replacement in runtime from/to version 4.16.1, 4.16, 4.15, 4.14 and 4.13.5.

Improvements and new features

[compiler] The SMI specifies that a table row OID should be named: { <tableIdentifier> "1" }.

A new option has been introduced, relaxed_row_name_assign_check, that allows for a more liberal numbering scheme

Own Id: OTP-8574

[agent|manager] Changes to make snmp (forward) compatible with the new version of the crypto application (released in R14). As of R14, crypto is implemented using NIFs. Also, the API is more strict.

Own Id: OTP-8594

Auto [agent] Changed default value for the MIB server cache. GC is now on by default.

Own Id: OTP-8648

Reported Fixed Bugs and Malfunctions

Encode/decode of Counter64 values larger than 16#7fffffffffffffff (9223372036854775807) failed.

Own Id: OTP-8563

[compiler] Fails to compile non-contiguous BITS.

Per Hedeland

Own Id: OTP-8595

[manager] Raise condition causing the manager server process to crash. Unregistering an agent while traffic (set/get-operations) is ongoing could cause a crash in the manager server process (raise condition).

Own Id: OTP-8646

Aux Id: Seq 11585

Incompatibilities

-

SNMP Development Toolkit 4.16.1

Version 4.16.1 supports code replacement in runtime from/to version 4.16, 4.15, 4.14 and 4.13.5.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

[manager] Fixed an upgrade/downgrade problem.

Upgrade/downgrade from/to 4.13.5 did not work for the net-if process. This has now been fixed.

Own Id: OTP-8481

[agent] A minor mnesia related performance improvement.

Own Id: OTP-8480

Incompatibilities

-

SNMP Development Toolkit 4.16

Version 4.16 supports code replacement in runtime from/to version 4.15, 4.14 and 4.13.5.

Improvements and new features

[agent|manager] Entries in the audit trail log can now be augmented by a sequence number.

This is enabled by the seqno option, which is part of the Audit Trail Log config option.

See the reference manual or the Configuring the application chapter of the User's Guide for further info.

Own Id: OTP-8395

Reported Fixed Bugs and Malfunctions

[manager] Registration of agents using the config file, agents.conf, does not work. This has now been corrected.

Per Hedeland

Own Id: OTP-8442

The config utility (snmp:config/0) generated a default notify.conf with a bad name for the standard trap entry (was "stadard trap", but should have been "standard trap"). This has been corrected.

Kenji Rikitake

Own Id: OTP-8433

Incompatibilities

-

SNMP Development Toolkit 4.15

Version 4.15 supports code replacement in runtime from/to version 4.14 and 4.13.5.

Improvements and new features

The documentation is now built with open source tools (xsltproc and fop) that exists on most platforms. One visible change is that the frames are removed.

Own Id: OTP-8249

Reported Fixed Bugs and Malfunctions

[manager] When information from an unknown agent is received, it was previously delivered to the default user via calls to all the functions of the callback API depending on the info type (pdu, trap, report or inform). The problem was that the TargetName argument was useless in this case (only an already known agent has a known/valid TargetName, but the TargetName used in these calls was generated "on the fly").

This has now been changed so that when a message is received from an unknown agent, then only handle_agent (for the default user) is called, but now this call also has a Type argument, which is pdu | trap | report | inform, depending on what kind of message was actually received, thus making it possible for the user to properly analyze the data received.

To handle this, the snmpm_user behaviour has been updated.

*** POTENTIAL INCOMPATIBILITY ***

Own Id: OTP-8229

SNMP Development Toolkit 4.14

Version 4.14 supports code replacement in runtime from/to version 4.13.5, 4.13.4, 4.13.3, 4.13.2, 4.13.1 and 4.13.

Improvements and new features

[compiler] Include object- and notification groups in the compiled mib. This will make it possible to import groups from other mibs.

Also the SNMPv2-MIB-file has been updated to a more up-to-date version.

Own Id: OTP-8223

[manager] Added support for message filtering in the network interface module provided with the application. The component that actually make the filter decisions is the network interface filter module. This module must implement the network interface filter behaviour for message filtering. See also the Configuring chapter of the User's Guide to see how to configure this feature.

See the configuration chapter for more info about the filter options.

Own Id: OTP-8228

Aux Id: Seq 11411

The MIBs delivered as part of the application is now also available as man pages, section 7.

Own Id: OTP-8237

Reported Fixed Bugs and Malfunctions

-

Incompatibilities

-

SNMP Development Toolkit 4.13.5

Version 4.13.5 supports code replacement in runtime from/to version 4.13.4, 4.13.3, 4.13.2, 4.13.1 and 4.13.

Improvements and new features

[agent] Improved the cache handling of the mib server.

A number of new functions and config options for the mib server cache has been added.

See invalidate_mibs_cache/0,1, enable_mibs_cache/0,1, disable_mibs_cache/0,1, gc_mibs_cache/0,1,2,3, enable_mibs_cache_autogc/0,1, disable_mibs_cache_autogc/0,1, update_mibs_cache_age/1,2 and update_mibs_cache_gclimit/1,2 for more info.

See also the configuration chapter for more info about the mib server cache options.

Own Id: OTP-8182

Aux Id: Seq 11383

[agent] A manager could no longer use the SNMPv3 user "initial" as this was interpretated as the first step of the discovery.

Introduced a new terminating option, trigger_username to make it possible to configure the username the agent reacts to. Default is "".

See the configuration chapter for more info about the discovery options.

Own Id: OTP-8120

Aux Id: Seq 11361

Reported Fixed Bugs and Malfunctions

[agent] The main agent type header file contained some miss-information regarding the type of the entrytype field of the me-record, causing unneccessary confusion.

Own Id: OTP-8116

Aux Id: Seq 11312

Incompatibilities

-

SNMP Development Toolkit 4.13.4

Version 4.13.4 supports code replacement in runtime from/to version 4.13.3, 4.13.2, 4.13.1 and 4.13.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

[agent] Originating discovery problems.

Invalid state variable update during second stage of discovery causes master agent crash.

Also the net_if process failed to activate socket ({active, once}) after first discovery response was sent.

Own Id: OTP-8044

Aux Id: Seq 11295

[agent] Terminating discovery problem.

The reply to the second stage request should include a varbind with usmStatsNotInTimeWindows.

Own Id: OTP-8062

Aux Id: Seq 11318

[agent] Originating discovery improvement.

Added the ExtraInfo argument to the discovery function. This argument will be passed on to the stage1_finish callback function. Also, the discovery function will now always return {ok, ManagerEngineID} on successful discovery.

The discovery handler behaviour updated accordingly.

Own Id: OTP-8098

Aux Id: Seq 11346

Incompatibilities

-

SNMP Development Toolkit 4.13.3

Version 4.13.3 supports code replacement in runtime from/to version 4.13.2, 4.13.1 and 4.13.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

[manager] A request for an oid of type BITS was actually returned as OCTET STRING.

Values of type BITS are encoded as OCTET STRING, which makes it impossible for the decoder to know that they should really be of type BITS. Instead, this has to be done higher up in the stack, where there is knowledge of the MIB (assuming that the mib has been loaded, there is info about the type of the mibentry).

This problem has now been fixed, but requires that the MIB defining this mib-entry is loaded!

The utility function oid_to_type has been added, for debug purpose.

The utility function(s) octet_string_to_bits and bits_to_octet_string has also been added. These can be used if the user prefers to handle the conversion on their own.

Own Id: OTP-8015

Aux Id: Seq 11285

[agent] Fixed some issues with the discovery handling.

Changed the API of the discovery function to solve some of these problems.

Introduced various options for controlling the discovery process. See the configuration chapter for more info about the discovery options.

Own Id: OTP-8020

Aux Id: Seq 11295

Incompatibilities

-

SNMP Development Toolkit 4.13.2

Version 4.13.2 supports code replacement in runtime from/to version 4.13.1 and 4.13.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

[manager] Failure during downed user cleanup. As part of the cleanup after a crashed user, the manager attempts to unregister the agents registered by this user. This however failed, causing a server crash.

Own Id: OTP-7961

Aux Id: Seq 11275

[manager] Incorrectly documented value type for IpAddress (ip). The value type for IpAddress is documented as ip but is actually ia. The value type ip has been added. The old (not documented) value type ia still works.

Own Id: OTP-7977

Aux Id: Seq 11279

[manager] EngineId lookup fails when using version-3.

Own Id: OTP-7983

Aux Id: Seq 11275

[agent] As of version 4.13 the possible return values of the function snmpa_mpd:process_packet/4 changed, but this was not documented.

Own Id: OTP-7989

Aux Id: Seq 11275

Incompatibilities

-

SNMP Development Toolkit 4.13.1

Version 4.13.1 supports code replacement in runtime from/to version 4.13.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

[manager] Registration of users had some issues.

Not all of the registration functions where actually exported (register_user/4 and register_user_monitor/4). This has now been fixed.

Also, the registration did not succeed unless user implemented the *new* behaviour. This has now also been fixed (registration succeeds if the user implements either the new (i.e. updated snmpm_user) or the old user behaviour (snmpm_user_old)).

Own Id: OTP-7902

Aux Id: Seq 11240

Incompatibilities

-

SNMP Development Toolkit 4.13
Improvements and new features

[agent] Support for the discovery process.

The agent can both initiate discovery itself (see the discovery chapter for more info) and respond to discovery initiated by a manager.

Own Id: OTP-7571

Aux Id: Seq 11053

Reported Fixed Bugs and Malfunctions

[agent] Unnecessary use of math:pow/2 could cause problems on systems without floating point support.

Per Hedeland

Own Id: OTP-7735

[manager] A major flaw was discovered with the agent handling.

First, TargetName was never used as intended, as a unique identifier for the target (agent in this case).

Second, TargetName had a default value, which meant that several agents could have the same TargetName, causing unpredictable behaviour in the manager.

Third, EngineID was not a mandatory config option and had furthermore also a default value.

These problems has been solved in the following way:

First, a new set of api functions has been introduced (and documented): register_user/4, register_user_monitor/4, register_agent/3, unregister_agent/2, agent_info/2, update_agent_info/4, sync_get/3,4,5,6, async_get/3,4,5,6, sync_get_next/3,4,5,6, async_get_next/3,4,5,6, sync_set/3,4,5,6, async_set/3,4,5,6, sync_get_bulk/5,6,7,8 and async_get_bulk/5,6,7,8 that all use TargetName (and not, as previously, Addr and Port) to identify the agent (also the return value of which_agents has been changed).

Second, for backward compatibility, the old functions still exist, but are no longer documented and are now wrappers for the new functions, including erroneous default value for EngineID and all. The TargetName is however generated from the provided Addr, Port and Version config options.

Third, the behaviour of the SNMP manager user has been changed to reflect this, i.e. handle_pdu/4, handle_trap/3, handle_inform/3, handle_report/3 and the return-value of handle_agent/4. The old (non-documented) callback-functions (using Addr and Port) will still be called if the agent was registered using the old registration functions.

Own Id: OTP-7836

Incompatibilities

-

SNMP Development Toolkit 4.12.2

Version 4.12.2 supports code replacement in runtime from/to version 4.12.1, 4.12, 4.11.2, 4.11.1 and 4.11.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

[agent] Bad session cache (usm+camv-info) invalidation could cause user crash, through call(s) to (a number of) MIB API function(s) (undefined function).

Own Id: OTP-7868

Incompatibilities

-

SNMP Development Toolkit 4.12.1

Version 4.12.1 supports code replacement in runtime from/to version 4.12, 4.11.2, 4.11.1 and 4.11.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

Logging of messages with the GetBulk-request PDU incorrectly produced an erroneous entry in the log: "An error occurred".

The reason for this was that the PDU-fields error_status and error_index is re-used for Non-repeaters and Max-repetitions for GetBulk-request PDUs, but this was not handled by the logging code.

Own Id: OTP-7695

Aux Id: Seq 11124

[agent] An attempt to set the row status to active for an notReady table row, could result in an "inconsistentValue" error.

The same problem existed when attempting to set row status to notInService for a row in notReady.

Serge Aleynikov

Own Id: OTP-7698

Incompatibilities

-

SNMP Development Toolkit 4.12

Version 4.12 supports code replacement in runtime from/to version 4.11.2, 4.11.1 and 4.11.

Improvements and new features

[agent] A simple lookup cache has been added to improve the mib server lookup performance.

This can be disabled with the mib_server cache option.

Own Id: OTP-7346

[agent] Improvement of the inform reporting. It was previously not certain how many acks an application received, 0, 1 or 2. This has now been fixed, so that only 1 (one) ack is issued.

Per Hedeland

Own Id: OTP-7525

Reported Fixed Bugs and Malfunctions

-

Incompatibilities

-

SNMP Development Toolkit 4.11.2

Version 4.11.2 supports code replacement in runtime from/to version 4.11.1 and 4.11.

Improvements and new features

-

Reported Fixed Bugs and Malfunctions

[manager] Erroneous engine-id check when receiving version 3 informs.

Own Id: OTP-7570

Aux Id: Seq 11060

Receiving an snmp message with a very large version number could cause the erlang node to run out of memory and consequently crash.

The standard specifies the snmp version as an (unlimited) INTEGER, but today only 0 (version 1), 1 (version 2) and 3 (version 3) is actually used. So, when decoding a message, a limit has been put on the snmp version integer in order to not allow this kind of a problem.

Own Id: OTP-7575

Aux Id: Seq 11064

Incompatibilities

-

SNMP Development Toolkit 4.11.1

Version 4.11.1 supports code replacement in runtime from/to version 4.11.

Improvements and new features

[compiler] The MIB compiler did not retrieve the REFERENCE part of a SNMP MIB definition.

This problem has been partly solved. For SNMP tables, the assocList field of the tables mib-entry record now contains this info (as {reference, string()}), if the MIB was compiled with the compiler option +reference.

This solution is temporary, until such time as a permanent solution (and probably not backward compatible) is devised, which retrieves and stores all REFERENCE part(s) of a MIB.

See the compiler options for more info.

Serge Aleynikov

Own Id: OTP-7426

Added utility functions for transforming DateAndTime as [int()] to strings; date_and_time_to_string/2 and date_and_time_to_string2/1.

Also added new validation function validate_date_and_time/2.

Own Id: OTP-7412

Aux Id: Seq 10987

Reported Fixed Bugs and Malfunctions

[manager] Encryption error when attempting to send version 3 inform-requests.

Own Id: OTP-7432

Aux Id: Seq 10966

Incompatibilities

-

SNMP Development Toolkit 4.11

Version 4.11 supports code replacement in runtime from/to version 4.10.3, 4.10.2, 4.10.1 and 4.10.

Improvements and new features

[agent] Performance improvements in the case when an SNMP manager performs an snmpwalk.

Martin Björklund

Own Id: OTP-7201

The API for sending inform(s) has been improved. Also the documentation has been corrected and updated. See snmpa:send_notification and snmpa_notification_delivery_info_receiver for more info.

Own Id: OTP-7287

Aux Id: Seq 10926

[agent] Performance of the internal database (local-db) has been improved.

Own Id: OTP-7319

Aux Id: Seq 10942

[agent] Added utility functions, snmpa:restart_worker/0,1 and snmpa:restart_set_worker/0,1, for restarting the agent worker processes (in case the agent is multi-threaded).

Own Id: OTP-7369

Add utility function to read a compiled mib.

Own Id: OTP-7371

Reported Fixed Bugs and Malfunctions

[manager] Encryption error when attempting to send version 3 inform-requests.

Own Id: OTP-7377

Aux Id: Seq 10966

Incompatibilities

-