## 1 SNMP Development Toolkit v3.4.9

Version 3.4.9 supports code replacement in runtime from/to version 3.4.8, 3.4.7, 3.4.6, 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1 and 3.4.

### 1.1 Improvements and new features

-

### 1.2 Reported Fixed Bugs and Malfunctions

- [agent] Added missing type check for access snmpCommunityTable with is_set_ok.
  Own Id: OTP-4978
  Aux Id: Seq 8380
- [compiler] Added "default value" for INTEGER with enumeration without a DEFVAL clause. The lowest valid integer value is choosen for the variable_info defval.
  Own Id: OTP-5124
  Aux Id: Seq 8738

### 1.3 Incompatibilities

-

## 2 SNMP Development Toolkit v3.4.8

Version 3.4.8 supports code replacement in runtime from/to version 3.4.7, 3.4.6, 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1 and 3.4.

### 2.1 Improvements and new features

-

### 2.2 Reported Fixed Bugs and Malfunctions

- [agent] Default instrumentation functions mis-behave on some, not supported, tables. Could enter infinit loop.
  Own Id: OTP-5084
  Aux Id: Seq 8807

### 2.3 Incompatibilities

-

## 3 SNMP Development Toolkit v3.4.7

Version 3.4.7 supports code replacement in runtime from/to version 3.4.6, 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1 and 3.4.

### 3.1 Improvements and new features

- Application test directory included in the source release.
  Own Id: OTP-5056
  Aux Id: Seq 8738

### 3.2 Reported Fixed Bugs and Malfunctions

- [compiler] The value range part of the SYNTAX Integer32 does not handle values given as hexStr or bitStr (only 10-base integers).
  Own Id: OTP-5051
  Aux Id: Seq 8738
- [compiler] The mib compiler cannot handle mib traps/notifications with included values (OBJECTS) which are defined later in the MIB.
  Own Id: OTP-5052
  Aux Id: Seq 8738

### 3.3 Incompatibilities

-

## 4 SNMP Development Toolkit v3.4.6

Version 3.4.6 supports code replacement in runtime from/to version 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1 and 3.4.

### 4.1 Improvements and new features

-

### 4.2 Reported Fixed Bugs and Malfunctions

- [agent] Incorrect (v3-) password causes the agent to not send a report back to the manager and counters to not be updated, due to a decode crash.
  Martin Björklund
  Own Id: OTP-5041

### 4.3 Incompatibilities

-

## 5 SNMP Development Toolkit v3.4.5

Version 3.4.5 supports code replacement in runtime from/to version 3.4.4, 3.4.3, 3.4.2, 3.4.1 and 3.4.

### 5.1 Improvements and new features

-

### 5.2 Reported Fixed Bugs and Malfunctions

- [agent] snmp_user_based_sm_mib:add_user/13 calls undef function snmp_conf:check_user/1.
  Should have been snmp_conf:check_usm/1. Introduced in snmp-3.4.3
  Own Id: OTP-5017

### 5.3 Incompatibilities

-

## 6 SNMP Development Toolkit v3.4.4

Version 3.4.4 supports code replacement in runtime from/to version 3.4.3, 3.4.2, 3.4.1 and 3.4.

### 6.1 Improvements and new features

-

### 6.2 Reported Fixed Bugs and Malfunctions

- [agent] SNMP trap send stops after change to Access Group Data.
  Own Id: OTP-4999
  Aux Id: Seq 8626
- [agent] get-next on vacmAccessTable exits (badarg) for column 3.
  Own Id: OTP-5000
  Aux Id: Seq 8626

### 6.3 Incompatibilities

-

## 7 SNMP Development Toolkit v3.4.3

Version 3.4.3 supports code replacement in runtime from/to version 3.4.2, 3.4.1 and 3.4.

### 7.1 Improvements and new features

- [agent] Improved load control. Added a new config parameter, snmp_req_limit, which allow for some load control.
  Own Id: OTP-4980
  Aux Id: Seq 8446
- [agent] The example manager cannot handle start option receive_type.
  Nicolas Niclausse
  Own Id: OTP-4993
- [compiler] Notifications now included in generated header files.
  Own Id: OTP-4931
  Aux Id: Seq 8421
- [compiler] Defines of the SNMPv2-TC now builtin. This also means that the SNMPv2-TC provided with this application is the proper one.
  Own Id: OTP-4934
  Aux Id: Seq 8419
- [agent] Added functions to add/delete config in runtime, equivalent to the config files.
  Own Id: OTP-4996

### 7.2 Reported Fixed Bugs and Malfunctions

- [agent] Access with typo causes system crash. Adding a rudimentary type check to the (set- and is_set_ok-) access functions:
  - SNMP-COMMUNITY-MIB: `snmpCommunityTable/3`
  - SNMP-NOTIFICATION-MIB: `snmpNotifyTable/3`
  - SNMP-TARGET-MIB: `snmpTargetAddrTable/3`, `snmpTargetParamsTable/3`
  - SNMP-USER-BASED-SM-MIB: `usmUserTable/3`
  - SNMP-VIEW-BASED-ACM-MIB: `vacmSecurityToGroupTable/3`, `vacmAccessTable/3` & `vacmViewTreeFamilyTable/3`
  Own Id: OTP-4978
  Aux Id: Seq 8380
- [compiler] SNMP compiler cannot handle MIBs without object defs.
  Luke Gorrie
  Own Id: OTP-4981
- [agent] Instrumentation function usmUserTable exited on bad values.
  Own Id: OTP-3843
  Aux Id: Seq 5096

### 7.3 Incompatibilities

-

## 8 SNMP Development Toolkit v3.4.2

Version 3.4.2 supports code replacement in runtime from/to version 3.4.1 and 3.4.

### 8.1 Improvements and new features

- Added new date and time function(s) utilizing the local_time_to_universal_time_dst of the calendar module.
  The old functions, `local_time_to_date_and_time/1` and `date_and_time_to_universal_time/1`, has been obsoleted and will be removed at a later date.
  Own Id: OTP-4873

### 8.2 Reported Fixed Bugs and Malfunctions

- Handling of subagents (with subtrees not in sequence).
  When a subagent has two subtrees registered, A and C, and another agent has a subtree between the two, B. A get-next operation for the last variable in A would return the first variable in B, which is wrong. The master agent did check this, but not very good.
  Martin Björklund
  Own Id: OTP-4879

### 8.3 Incompatibilities

- Functions `snmp:local_time_to_date_and_time/1` and `snmp:date_and_time_to_universal_time/1`, has been obsoleted and will be removed at a later date.

## 9 SNMP Development Toolkit v3.4.1

Version 3.4.1 supports code replacement in runtime from/to version 3.4.

### 9.1 Improvements and new features

-

### 9.2 Reported Fixed Bugs and Malfunctions

- [agent] Minor errors in debug macros and sample config file.
  Serge Aleynikov
  Own Id: OTP-4810
- [agent] Code up/downgrade cleanup.
  Own Id: OTP-4811
- [compiler] Fixed a parser error that caused the group checks to behave erratic. Also fixed related group check problems which among other things produced cryptic error messages.
  Own Id: OTP-4825
  Aux Id: Seq 8183

## 10 SNMP Development Toolkit v3.4

Version 3.4.0 supports code replacement in runtime from/to version 3.3.8.

### 10.1 Improvements and new features

- [agent] MIB server has been re-written to improve memory usage. It is now also possible to create the "mib database" before starting the snmp agent (instead of loading mibs at runtime). MIB data is stored in either ets (default), dets or mnesia.
  Own Id: OTP-4601
- [agent] The `snmp_local_db` now use `dets` for persistent storage, instead of `snmp_pets`.
  Own Id: OTP-4720

### 10.2 Reported Fixed Bugs and Malfunctions

- [compiler] Added check and warning for sloppy asignment in MIBs.
  Own Id: OTP-4660
- [compiler] Fixed a bunch of errors related to group checks.
  Own Id: OTP-4607
  Aux Id: Seq 7765

## 11 SNMP Development Toolkit v3.3.8

Version 3.3.8 supports code replacement in runtime from/to version 3.3.7, 3.3.6 and 3.3.5.

### 11.1 Improvements and new features

- In case the UDP port dies, the snmp_net_if process now reports this and also tries to re-open the port.
  Own Id: OTP-4457
  Aux Id: Seq 7594
- SNMP mib compiler warning(s) cleanup. Some of the warnings (e.g. about missing accessfunction) was changed into info printouts, which can be seen with the compiler (erlc) argument +'{verbosity,info}'.
  Own Id: OTP-4478

### 11.2 Reported Fixed Bugs and Malfunctions

- The agent side set and is_set_ok operations on the snmpTargetAddrExtTable was incorrect.
  Own Id: OTP-4477
  Aux Id: Seq 7444

## 12 SNMP Development Toolkit v3.3.7

Version 3.3.7 supports code replacement in runtime from/to version 3.3.6, 3.3.5, 3.3.4, 3.3.3 and 3.3.2

### 12.1 Improvements and new features

-

### 12.2 Reported Fixed Bugs and Malfunctions

- SNMP Target mib tag check incorrect.
  Own Id: OTP-4394
  Aux Id: Seq 7444

## 13 SNMP Development Toolkit v3.3.6

Version 3.3.6 supports code replacement in runtime from/to version 3.3.5, 3.3.4, 3.3.3 and 3.3.2

### 13.1 Improvements and new features

-

### 13.2 Reported Fixed Bugs and Malfunctions

- Improved error handling in snmp_error_report module (ets-lookup failure).
  Own Id: OTP-4345
  Aux Id: Seq 7309
- SNMP NotifiyType error. Calls to the functions `snmp_notification_mib:get_targets/0` failes since it assumes that notify type was stored as atoms, which is not always the case.
  Furthermore the parsing of the notify config file did not convert the 'trap' and 'inform' to their respective integer values 1 and 2.
  Own Id: OTP-4329
  Aux Id: Seq 7367

## 14 SNMP Development Toolkit v3.3.5

Version 3.3.5 supports code replacement in runtime from/to version 3.3.4, 3.3.3 and 3.3.2

### 14.1 Improvements and new features

- When opening a log file, the failure reason was not checked. Instead it was assumed to be `{badarg,size}` (when opened without the size option, this means the file does not exist). This is usually correct, but just to be on the safe side the test has beem changed to make sure that no other results get through.
  Own Id: OTP-4282
  Aux Id: Seq 7312
- Added possiblillity to specify own error report module (instead of the default, snmp_error). This is done with a new application config directive: `snmp_error_report_mod`. Also added a size limit to the snmp_error module. Messages larger then 1024 chars will be truncated. Added a very simple error report module, `snmp_error_io`, which writes the message to stdout using the `io` module (without any limitations).
  Own Id: OTP-4279
  Aux Id: Seq 7309
- Test manager does not send error message in quiet mode. If the request to the manager contains an erroneous oid, no information is sent back to the client (that started the manager).
  Added two new functions for oid to/from aliasname conversion, to be used by the test manager users.
  Own Id: OTP-4250
  Aux Id: Seq 7270

### 14.2 Reported Fixed Bugs and Malfunctions

- Handling of large erroneous SNMP messages corrected. Encoding of the reply to these messages failed due to a bug in the length encoding. Also corrected counter increments.
  Own Id: OTP-4278
  Aux Id: Seq 7309

## 15 SNMP Development Toolkit v3.3.4

Version 3.3.4 supports code replacement in runtime from/to version 3.3.3, 3.3.2, 3.3.1, 3.3.0 and 3.2.2 (with the exception of what's mentioned in the version 3.3.0 note).

### 15.1 Improvements and new features

### 15.2 Reported Fixed Bugs and Malfunctions

- Crypto keys changed from string to list
  Own Id: OTP-4206
  Aux Id: Seq 7207
- SNMP date diff check changed according to RFC 2579 (was according to RFC 1903).
  Own Id: OTP-4209
  Aux Id: Seq 7185

## 16 SNMP Development Toolkit v3.3.3

Version 3.3.3 supports code replacement in runtime from/to version 3.3.2, 3.3.1, 3.3.0 and 3.2.2 (with the exception of what's mentioned in the version 3.3.0 note).

### 16.1 Improvements and new features

### 16.2 Reported Fixed Bugs and Malfunctions

- Erroneous macro defines corrected.
  Own Id: OTP-4006
- Storage of mib data using dets did not work (see OTP-3740).
  Own Id: OTP-4076
- Error according to section 3.2.7a of RFC 2274/2574 reported with the wrong OID (usmStatsNotInTimeWindows instead of usmStatsNotInTimeWindows.0)
  Own Id: OTP-4090

## 17 SNMP Development Toolkit v3.3.2

Version 3.3.2 supports code replacement in runtime from/to version 3.3.1, 3.3.0 and 3.2.2 (with the exception of what's mentioned in the version 3.3.0 note).

### 17.1 Improvements and new features

### 17.2 Reported Fixed Bugs and Malfunctions

- snmp_net_if:subtr/2 don't handle megaseconds
  Own Id: OTP-3920
  Aux Id: Seq 5174
- The mib compiler does not detect if an notification and an ordinary mib entry (OBJECT-IDENTITY) has the same OID.
  Own Id: OTP-3986
  Aux Id: Seq 5256

## 18 SNMP Development Toolkit v3.3.1

Version 3.3.1 supports code replacement in runtime from/to version 3.3.0 and 3.2.2 (with the exception of what's mentioned in the version 3.3.0 note).

### 18.1 Improvements and new features

- The UDP based Network Interface included in this application, snmp_net_if, now sets the UDP receive buffer size, according to the snmp_net_if_recbuf sys config option. If this option is not present, the default value is used (i.e. it is not set at all). There is no need to set the send buffer since the size of the send buffer is adjusted automatically. Note that the underlying IP implementation defines the maximum buffer size.
  Own Id: OTP-3874
  Aux Id: seq5103

### 18.2 Reported Fixed Bugs and Malfunctions

- Failure to retrieve mib info. This is information (specifically a list of loaded mibs) is retrieved when performing a takover. Could cause a takeover to fail.
  Own Id: OTP-3890
  Aux Id: seq5123
- Error in mib conversion for notifications. This error exist only in version 3.3.0.
  Own Id: OTP-3875
  Aux Id: seq4936
- SNMP loop if damaged snmp db. If a table row has been created with own RowIndex (key) of "", this will cause an infinit loop when traversing the table (this is done when the SNMP application at startup performs the table cleanup). This happens if:
  - Empty string for CommunityIndex in config file community.conf.
  - Empty string for NotifyName in config file notify.conf.
  - Empty string for TargetName in config file target_addr.conf.
  - Empty string for ParamsName in config file target_params.conf.
  Own Id: OTP-3881
  Aux Id: seq5113

## 19 SNMP Development Toolkit v3.3.0

Version 3.3.0 supports code replacement in runtime from/to version 3.2.2.

| You cannot downgrade if you are using dets or mnesia for mib data storage, since previous versions only supported ets.

### 19.1 Improvements and new features

- The agent can now load mibs compiled with a pre 3.2.0 mib compiler.
  Own Id: OTP-3833
- Added a new interface function to retrieve the index types of the table info. This was previously internal info only.
  Own Id: OTP-3816
  Aux Id: seq5053
- It is now possible to store mib data in ets, dets and mnesia. Default is ets.
  Own Id: OTP-3740
  Aux Id: seq4947

### 19.2 Reported Fixed Bugs and Malfunctions

- The EVA application called undefined SNMP log conversion function.
  Own Id: OTP-3733
- Snmp manager 'get-bulk-request' failure.
  This is actually a UDP problem (OTP-3807). In R7 the default receive buffer, recbuf, size of a UDP socket has incorrectly been changed to 1024 bytes. The problem is that when a message bigger then the recbuf size is received it is cut and sizeof(recbuf) bytes is delivered (this is not the correct behaviour). The simple snmp manager app included in this application did not explicitly set the size of recbuf.
  So, in R7 a get-bulk-request could easily exceed 1024 bytes, resulting in an erroneous message. The size of recbuf for the snmp manager app is now configurable (`{recbuf,integer()}`).
  Note that the maximum size of outgoing/incoming message should be set to a value less then or equal to the recbuf size! See for example snmpEngineMaxMessageSize in SNMP_FRAMEWORK_MIB.
  Note that this problem exists in R7 only!
  Own Id: OTP-3797
  Aux Id: seq5008

## 20 SNMP Development Toolkit v3.2.2

Version 3.2.2 supports code replacement in runtime from/to version:

- OTP version R7: 3.2.1 and 3.2.0,
- OTP version R6: 3.1.4 and 3.1.3,
- OTP version R5: 3.0.9.4, 3.0.9.3 and 3.0.9.2.

### 20.1 Improvements and new features

- It is now possible to register/unregister for notification of changes stored (permanetly, i.e. on disk) in snmp_local_db.
  Own Id: OTP-3704
- Added direct access (read) functions to the symbolic store for faster access (accessible throw the `snmp` module).
  Own Id: OTP-3725

## 21 SNMP Development Toolkit v3.2.1

Version 3.2.1 supports code replacement in runtime from/to version 3.2.0, 3.1.4, 3.1.3, 3.0.9.4, 3.0.9.3 and 3.0.9.2.

### 21.1 Reported Fixed Bugs and Malfunctions

- Bad-arith in snmp_pdus (error case not handled). Erronous user provided messages that could not be encoded caused the application to crash.
  Own Id: OTP-3688
  Aux Id: seq4874

## 22 SNMP Development Toolkit v3.2.0

Version 3.2.0 supports code replacement in runtime from/to version 3.1.4, 3.1.3 and 3.0.9.2.

| When importing MIBs, ensure that the imported MIBs as well as the importing MIB are compiled using the same version of the SNMP-compiler. The required interface of the Net if module has the mandatory functions changed./p>

### 22.1 Improvements and new features

- Debugging has been improved. It is now possible to "debug" all named processes (individually) of the snmp application. See the snmp module for details.
- Filter (audit trail) logs on timestamp.
  Own Id: OTP-3600
- The MIB-compilator has been improved. It is possible to include Description-field into compiled MIB.
  Own Id: OTP-3538

### 22.2 Reported Fixed Bugs and Malfunctions

- Failure converting audit trace log to text file.
  Own Id: OTP-3649, OTP-3650
  Aux Id: seq4844

## 23 SNMP Development Toolkit v3.1.4

Version 3.1.4 supports code replacement in runtime from/to version 3.1.3.

### 23.1 Improvements and new features

- Debugging has been improved. It is now possible to "debug" all named processes (individually) of the snmp application. See the snmp module for details.

### 23.2 Reported Fixed Bugs and Malfunctions

- Erroneous check for duplicate trap/mib entries. A check for duplicate mibentries has been added. This check can be overridden with the sys config tuple: `{snmp_mibentry_override,bool()}`. The check for duplicate trap entries was erroneous, only the first trapentry in a mib was checked. This check can now be overridden with the sys config tupple: `{snmp_trapentry_override,bool()}`. Default values in both cases are `false` (no override, which means the check is made).
  Own Id: OTP-3601
- Cloning of user from template user failure.
  Own Id: OTP-3596
  Aux Id: seq4584
- Problem with deprecated (mib-) definitions.
  A new option for the MIB-compilator is used. The option is deprecated, will get around the problem with deprecated definition.
  Own Id: OTP-3574
  Aux Id: seq4528
- Trap sending example in chapter Manual implementation corrected.
  Own Id: OTP-3353

## 24 SNMP Development Toolkit v3.1.3

Version 3.1.3 supports code replacement in runtime from version 3.1.2.

### 24.1 Improvements and new features

### 24.2 Reported Fixed Bugs and Malfunctions

- SNMPv3 discovery process does not work.
  Own Id: OTP-3542
  Aux Id: seq4449
- Corrupt (snmp_local_db) log files cause snmp crash. Changes to the local db is stored on disk in a logfile. In a takeover senario the new snmp will try to restore the database by reading the ets-table on disk and then update this with the transactions stored in the logfile. If the logfile is corrupt, this caused a crash.
  Own Id: OTP-3537
  Aux Id: seq4471
- Return value genErr from GET instrumentation function treated as not accepted.
  Own Id: OTP-3534
  Aux Id: seq4437
- snmp:date_and_time() rewritten to not rely on erlang:now()
  Own Id: OTP-3525
  Aux Id: seq4391
- the SNMP reportableFlag was set in response messages, which it should not.
  Own Id: OTP-3416
  Aux Id: seq4200.
- Failure to check if MIBs were already loaded at take-over.
  Own Id: OTP-3411
  Aux Id: seq4155
- Unneccessary print-outs in snmp_net_if.
  Own Id: OTP-3410
  Aux Id: seq4241
- A crash-report from disk_log was generated when the SNMP agent was started for the very first time.
  Own Id: OTP-3393
  Aux Id: seq4211
- The SNMP agent crashed (in snmp_pdus:enc_oid_tag) during initialization of table. Proper check of object identifier values has been added.
  Own Id: OTP-3378
  Aux Id: seq4155.

## 25 SNMP Development Toolkit v3.1.2

Version 3.1.2 supports code replacement in runtime from versions 3.1.1 and 3.0.6.

### 25.1 Improvements and new features

- The fact that the MIBs SNMPv2-SMI, RFC-1215, RFC-1212, SNMPv2-TC, SNMPv2-CONF and RFC1155-SMI are compiler built-ins, has been added to the compiler documentation.
  Own Id: OTP-3316
  Aux Id:
- The agent option `authentication_service` has been reintroduced. This option is part of an SNMP internal API.
  Own Id: OTP-3324
  Aux Id:
- It has been clarified in the documentation, that the value of `snmpEngineID` should not be just a simple string, but has to follow the conventions specified in RFC 2271/2571.
  Own Id: OTP-3350
  Aux Id:

### 25.2 Reported Fixed Bugs and Malfunctions

- If two Erlang nodes are started on the same host, and each node starts an SNMP agent, and if both agents use the same UDP port, the agent that starts last, will completely control the port. The reason for this is that the UDP port is opened with a reuse directive.
  A new option `no_reuse_address`, which, if set, causes the reuse directive not to be set.
  Own Id: OTP-3317
  Aux Id: seq4008
- Debug printouts from `snmp_net_if` appeared even when the debug flag was not set. This has been corrected.
  Own Id: OTP-3345
  Aux Id: seq4091

## 26 SNMP Development Toolkit v3.1.1

### 26.1 Improvements and new features

- The audit trail log has been improved. Now each log item also contains a time stamp. Also the text format of a log (produced by a call to `snmp:log_to_txt`) has been changed to be more "line oriented".
  The function `snmp:log_to_txt/4` has been added.
  Own Id: OTP-3261
  Aux Id: seq3884, OTP-3253
- Each item in an audit trail text log file (produced by `snmp:log_to_txt`) now has a trailing TAB character, and any TAB character in the body of a text item is replaced by ESC TAB.
  Own Id: OTP-3282
  Aux Id: seq3969
- The function `snmp:log_to_txt/5` has been added, so that not only the log name but also the log file name can be specified when converting an audit trail log to text format.
  Own Id: OTP-3298
  Aux Id:
- A new optional environment variable `bind_to_ip_addess` has been added, controlling if the agent should bind to the specific IP address or not.
  Own Id: OTP-3293
  Aux Id:

### 26.2 Reported Fixed Bugs and Malfunctions

- Conversion of a log to text format could crash SNMP if the log was already open.
  Own Id: OTP-3261
  Aux Id: seq3884
- The BER encoding of integers did not follow the ASN.1 BER encoding rules.
  Own Id: OTP-3274
  Aux Id: seq3960
- SNMP did not start if the audit disk_log file was corrupt.
  Own Id: OTP-3290
  Aux Id:
- SNMP was not backward compatible with instrumentation functions that returned `{noValue, unSpecified}` (the SNMP agent crashed). This has been changed by silently transforming such a return value to `{noValue, noSuchInstance}`.
  Own Id: OTP-3303
  Aux Id: seq3975
- The header file `snmp_vacm.hrl` was missing in the SNMP `src` directory.
  Own Id: OTP-3327
  Aux Id:

### 26.3 Incompatibilities with v3.1

- Applications that parses the audit trail log text files have to be rewritten.

## 27 SNMP Development Toolkit v3.1

### 27.1 Improvement and new features

- Adaption to new format of exit codes.

Copyright © 1991-2005 Ericsson AB