1 SNMP Release Notes
1.1 SNMP Development Toolkit 4.21.1
Version 4.21.1 supports code replacement in runtime from/to version 4.20.1, 4.20 and 4.19.
Improvements and new features
-
[compiler] Used wrong variable name (for warnings-as-errors variable), which caused the compiler to crash when using the snmpc (e)script.
Also added the option --Werror for the SNMP MIB compiler (escript) frontend (to mimic erlc), which specifies whether warnings should be treated as errors.
Own Id: OTP-9447
-
[agent] Some very minor debugging improvements.
Own Id: OTP-9446
Fixed Bugs and Malfunctions
-
Incompatibilities
-
1.2 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
-
[agent] The SNMP ACM cache was not properly updated when changes where made to the VACM security-to-group, access and view-tree-family tables.
Own Id: OTP-9367
Aux Id: Seq 11858
-
Fixed install directory typo for man3.
Peter Lemenkov
Hans Ulrich Niedermann
Own Id: OTP-9442
Incompatibilities
-
1.3 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
-
1.4 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
-
1.5 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
-
1.6 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
-
1.7 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
-
1.8 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
-
1.9 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
-
1.10 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
-
1.11 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
-
1.12 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
1.13 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
-
1.14 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
-
1.15 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
-
1.16 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
-
1.17 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
-
1.18 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
-
1.19 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
-
1.20 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
-
1.21 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
-
1.22 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
-
1.23 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
-
1.24 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
-
1.25 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
-