1996 2010 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 4.18

### 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

## 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 starndard 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

-