<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">

<chapter>
  <header>
    <copyright>
      <year>1996</year><year>2013</year>
      <holder>Ericsson AB. All Rights Reserved.</holder>
    </copyright>
    <legalnotice>
      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.
    
    </legalnotice>

    <title>SNMP Release Notes</title>
    <prepared></prepared>
    <responsible></responsible>
    <docno></docno>
    <approved></approved>
    <checked></checked>
    <date></date>
    <rev></rev>
    <file>notes.xml</file>
  </header>


  <section>
    <title>SNMP Development Toolkit 4.24.2</title>
    <p>Version 4.24.2 supports code replacement in runtime from/to
    version 4.24.1, 4.24, 4.23.1 and 4.23. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[agent] Improved documentation for the functions for 
	  loading and unloading mibs, 
	  see <seealso marker="snmpa#load_mibs">load_mibs</seealso> and 
	  <seealso marker="snmpa#unload_mibs">unload_mibs</seealso> for 
	  more info. </p>
          <p>Also added new functions for loading and unloading a single mib, 
	  see <seealso marker="snmpa#load_mib">load_mib</seealso> and 
	  <seealso marker="snmpa#unload_mib">unload_mib</seealso> for 
	  more info. </p>
          <p>Own Id: OTP-11216</p>
        </item>

      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[agent] 
	  see <seealso marker="snmpa#load_mibs">load_mibs</seealso> and 
	  <seealso marker="snmpa#unload_mibs">unload_mibs</seealso>. </p>
          <p>Own Id: OTP-11216</p>
        </item>

      </list>
-->

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[manager] The old Addr-and-Port based API functions, previously
	  long deprecated and marked for deletion in R16B, has now been
	  removed. </p>
          <p>Own Id: OTP-10027</p>
        </item>

      </list>
-->
    </section>

  </section> <!-- 4.24.2 -->


  <section>
    <title>SNMP Development Toolkit 4.24.1</title>
    <p>Version 4.24.1 supports code replacement in runtime from/to
    version 4.24, 4.23.1 and 4.23. </p>

    <section>
      <title>Improvements and new features</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[agent,manager] Updated to support the new crypto interface. </p>
          <p>Own Id: OTP-11009</p>
        </item>

      </list>
-->

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[agent] Reading the value of the vacmViewTreeFamilyMask returns 
	  it in the wrong (internal bitlist) format. </p>
	  <p>The vacmViewTreeFamilyMask is defined as a bit string in the MIB
	  (OCTET STRING). Internally a bitlist (list of 1's and 0's, 
	  see <seealso marker="snmp_agent_config_files#vacm">vacm config file</seealso>
	  for more info) is used. 
	  However, the MIB implementation assumed the latter, effectively
	  rendering all attempts to read/set masks via SNMP unsuccessful. </p>
	  <p>Since the mask is used in hot paths (e.g. access permission checks 
	  for each SNMP operation, the bitlist representation of the mask has 
	  benefits (e.g. faster processing). Reading/writing the view mask 
	  objects is less time-critical. Therefore, to fix the issue, convert 
	  between the bitlist (internal) representation and bitstring 
	  (external) when the vacmViewTreeFamilyMask objects are accessed. </p>
	  <p>Also, the check of the vacm config file was invalid with 
	  regard to the mask value. It was assumed to be a proper oid, which 
	  is not strictly the case (see bitlist above). </p>
          <p>Own Id: OTP-11177</p>
	  <p>Stefan Zegenhagen</p>
        </item>

        <item>
          <p>[agent] The counter increment function in the local-db was  
	  incorrect. It did not handle counter wrap correctly. </p>
          <p>Own Id: OTP-11192</p>
        </item>

      </list>

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[manager] The old Addr-and-Port based API functions, previously
	  long deprecated and marked for deletion in R16B, has now been
	  removed. </p>
          <p>Own Id: OTP-10027</p>
        </item>

      </list>
-->
    </section>

  </section> <!-- 4.24.1 -->


  <section>
    <title>SNMP Development Toolkit 4.24</title>
    <p>Version 4.24 supports code replacement in runtime from/to
    version 4.23.1 and 4.23. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[agent,manager] Updated to support the new crypto interface. </p>
          <p>Own Id: OTP-11009</p>
        </item>

        <item>
          <p>[agent] Introduced a documented behaviour for the mib-server 
	  <seealso marker="snmpa_mib_data">mib-data backend</seealso>. 
	  At present only the default module (<c>snmpa_mib_data_tttn</c>) is
	  provided. </p>
	  <p>A config option for the (agent) 
	  <seealso marker="snmp_config#agent_mib_server">mib-servers</seealso> 
	  mib-data backend module has been added to the agent config options, 
	  <seealso marker="snmp_config#agent_ms_data_module">data_module</seealso>. </p>
	  <p>Own Id: OTP-11101</p>
        </item>

        <item>
          <p>[agent] Introduced a documented behaviour for the 
	  <seealso marker="snmpa_mib_storage">mib storage</seealso>. 
	  At present there are three simple modules 
	  (<c>snmpa_mib_storage_ets</c>, <c>snmpa_mib_storage_dets</c> and 
	  <c>snmpa_mib_storage_mnesia</c>) implementing this behaviour,
	  provided with the app. </p>
	  <p>A config option for the (agent) 
	  <seealso marker="snmp_config#agent_mib_storage">mib storage</seealso> 
	  has been added to the agent config options. </p>
	  <p>Own Id: OTP-11107</p>
        </item>

      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[agent,manager] Updated to support the new crypto interface. </p>
          <p>Own Id: OTP-11009</p>
        </item>

      </list>
-->

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[manager] The old Addr-and-Port based API functions, previously
	  long deprecated and marked for deletion in R16B, has now been
	  removed. </p>
          <p>Own Id: OTP-10027</p>
        </item>

      </list>
-->
    </section>

  </section> <!-- 4.24 -->


  <section>
    <title>SNMP Development Toolkit 4.23.1</title>
    <p>Version 4.23.1 supports code replacement in runtime from/to
    version 4.23. </p>

    <section>
      <title>Improvements and new features</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[agent] Errors in <c>vacmAccessTable</c> RowStatus handling.
	  There are problems with the handling of vacmAccessTableStatus 
	  that cause some SNMP test suites to report errors.
	  Most notably, erroneous set operations frequently cause "genErr" 
	  errors to be returned. These "genErr" errors are usually caused 
	  by badmatch exceptions coming from 
	  <c>{ok, Row} = snmpa_vacm:get_row(RowIndex)</c> 
	  if the row does not exist. </p>
	  <p>The semantics of the RowStatus handling in that table has 
	  been adjusted to be compliant with the RowStatus
	  textual description of SNPMv2-TC MIB. </p>
	  <p>Stefan Zegenhagen</p>
	  <p>Own Id: OTP-10164</p>
        </item>
      </list>
-->

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[compiler] Now handles MIBs importing the pesudotype BITS. </p>
          <p>Own Id: OTP-10799</p>
        </item>

        <item>
          <p>[compiler] The MIB compiler could not handle a table index 
	  that was defined later in the MIB. </p>
          <p>Own Id: OTP-10808</p>
        </item>

      </list>

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[manager] The old Addr-and-Port based API functions, previously
	  long deprecated and marked for deletion in R16B, has now been
	  removed. </p>
          <p>Own Id: OTP-10027</p>
        </item>

      </list>
-->
    </section>

  </section> <!-- 4.23.1 -->


  <section>
    <title>SNMP Development Toolkit 4.23</title>
<!--
    <p>Version 4.23 supports code replacement in runtime from/to
    version 4.22.1, 
    4.22, 4.21.7 4.21.6 4.21.5, 4.21.4, 4.21.3, 4.21.2, 4.21.1 and 4.21. </p>
-->

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[manager] Polish return values of snmpm_user_default according 
	  to snmpm_user doc.</p>
	  <p>Luca Favatella</p>
	  <p>Own Id: OTP-10671</p>
        </item>

        <item>
          <p>[agent] Remove runtime warning in snmpa_agent because of 
	  tuple fun usage. </p>
	  <p>Luca Favatella</p>
	  <p>Own Id: OTP-10672</p>
        </item>

        <item>
          <p>[manager] SNMP manager performance optimization. </p>
	  <p>Ivan Dubovik</p>
	  <p>Own Id: OTP-10673</p>
        </item>

      </list>
    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
      <p>-</p>

      <!--
      <list type="bulleted">
        <item>
          <p>[agent] Simultaneous 
          <seealso marker="snmpa#backup">snmpa:backup/1,2</seealso> 
          calls can interfere.
          The master agent did not check if a backup was already in 
          progress when a backup request was accepted. </p>
          <p>Own Id: OTP-9884</p>
          <p>Aux Id: Seq 11995</p>
        </item>

      </list>
      -->
    </section>

    <section>
      <title>Incompatibilities</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[manager] The old Addr-and-Port based API functions, previously
	  long deprecated and marked for deletion in R16B, has now been
	  removed. </p>
          <p>Own Id: OTP-10027</p>
        </item>

      </list>
    </section>

  </section> <!-- 4.23 -->


  <section>
    <title>SNMP Development Toolkit 4.22.1</title>
    <p>Version 4.22.1 supports code replacement in runtime from/to
    version 4.22, 4.21.7 4.21.6 4.21.5, 4.21.4, 4.21.3, 4.21.2, 4.21.1 and 
    4.21. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[agent] Sematic fixes to SNMP-USER-BASED-SM-MIB.
	  The semantics allow the <c>usmUserAuthKeyChange</c> and 
	  <c>usmUserPrivKeyChange</c> objects to be written to in the 
	  same set requests that also creates and clones the user. 
	  This was not possible beforehand, causing test tools checking 
	  semantic SNMPv3 behaviour to fail on a lot of test cases. </p>
	  <p>Furthermore, once the user has been cloned by writing to an 
	  instance of <c>usmUserCloneFrom</c>, further set-operations to 
	  the same object will not return an error, but be no-ops. 
	  Especially, it must be avoided to copy security parameters 
	  again (possibly even from a different user). </p>
	  <p>Stefan Zegenhagen</p>
	  <p>Own Id: OTP-10166</p>
        </item>

        <item>
          <p>[agent] Errors in <c>vacmAccessTable</c> RowStatus handling.
	  There are problems with the handling of vacmAccessTableStatus 
	  that cause some SNMP test suites to report errors.
	  Most notably, erroneous set operations frequently cause "genErr" 
	  errors to be returned. These "genErr" errors are usually caused 
	  by badmatch exceptions coming from 
	  <c>{ok, Row} = snmpa_vacm:get_row(RowIndex)</c> 
	  if the row does not exist. </p>
	  <p>The semantics of the RowStatus handling in that table has 
	  been adjusted to be compliant with the RowStatus
	  textual description of SNPMv2-TC MIB. </p>
	  <p>Stefan Zegenhagen</p>
	  <p>Own Id: OTP-10164</p>
        </item>
      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[agent] Fix walk over vacmAccessTable.
	  Fix the get_next implementation of vacmAccessTable to 
	  return all table entries. </p>
	  <p>The get_next implementation of vacmAccessTable did not return 
	  all available table data. Instead, it only returned the first 
	  column for each row, and all columns for the last row available. </p>
	  <p>Stefan Zegenhagen</p>
          <p>Own Id: OTP-10165</p>
        </item>

        <item>
          <p>[manager] 
	  <seealso marker="snmpm#log_to_io">snmpm:log_to_io/6</seealso> 
	  did not use the LogName argument. </p>
          <p>Own Id: OTP-10066</p>
        </item>

        <item>
          <p>Incorrect TimeTicks decode. Also bad handling of 
	  invalid encode (value outside of value range) for both
	  <c>TimeTicks</c> and <c>Unsigned32</c>. </p>
          <p>Own Id: OTP-10132</p>
        </item>

      </list>

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.22.1 -->


  <section>
    <title>SNMP Development Toolkit 4.22</title>
    <p>Version 4.22 supports code replacement in runtime from/to
    version 4.21.7 4.21.6 4.21.5, 4.21.4, 4.21.3, 4.21.2, 4.21.1 and 4.21. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[compiler] The table information the MIB compiler provides with 
	  augmented tables has been extended with <c>nbr_of_cols</c>, 
	  <c>first_accessible</c> and <c>not_accessible</c>. </p>
          <p>Own Id: OTP-9969</p>
        </item>

        <item>
          <p>Added the <c>log_to_io</c> audit-trail-log converter function 
	  to the api modules of both the 
	  <seealso marker="snmpm#log_to_io">manager</seealso> 
	  and 
	  <seealso marker="snmpa#log_to_io">agent</seealso>. </p>
          <p>Own Id: OTP-9940</p>
        </item>

        <item>
          <p>[manager] Introduced a new transport module, 
	  <c>snmpm_net_if_mt</c>, 
	  which handles all incomming and outgoing 
	  traffic in newly created processes. The message/request is
	  processed and then the process exits. </p>
          <p>Own Id: OTP-9876</p>
	</item>

        <item>
          <p>[agent] Documenting previously existing but undocumented function, 
	  <seealso marker="snmp_generic#get_table_info">snmp_generic:get_table_info/2</seealso>. </p>
	  <p>Own Id: OTP-9942</p>
        </item>

        <item>
          <p>[agent] Improve error handling while reading agent config files. 
	  Some files contain mandatory information and is therefor themself
	  mandatory. </p>
	  <p>Own Id: OTP-9943</p>
        </item>
      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
      <p>-</p>

      <!--
      <list type="bulleted">
        <item>
          <p>[agent] Simultaneous 
          <seealso marker="snmpa#backup">snmpa:backup/1,2</seealso> 
          calls can interfere.
          The master agent did not check if a backup was already in 
          progress when a backup request was accepted. </p>
          <p>Own Id: OTP-9884</p>
          <p>Aux Id: Seq 11995</p>
        </item>

      </list>
      -->

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.22 -->


  <section>
    <title>SNMP Development Toolkit 4.21.7</title>
    <p>Version 4.21.7 supports code replacement in runtime from/to
    version 4.21.6, 4.21.5, 4.21.4, 4.21.3, 4.21.2, 4.21.1, 4.21, 4.20.1 and 
    4.20. </p>

    <section>
      <title>Improvements and new features</title>
      <p>-</p>

      <!--
      <list type="bulleted">
        <item>
          <p>[agent] DoS attack using GET-BULK with large value of 
          MaxRepetitions.
          A preventive method has been implementing by simply 
          limit the number of varbinds that can be included in 
          a Get-BULK response message. This is specified by the 
          new config option, 
          <seealso marker="snmp_app#agent_gb_max_vbs">gb_max_vbs</seealso>. 
          </p>
          <p>Own Id: OTP-9700</p>
        </item>

      </list>
      -->

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
      <!--
      <p>-</p>
      -->

      <list type="bulleted">
        <item>
          <p>[agent] Simultaneous 
          <seealso marker="snmpa#backup">snmpa:backup/1,2</seealso> 
          calls can interfere.
          The master agent did not check if a backup was already in 
          progress when a backup request was accepted. </p>
          <p>Own Id: OTP-9884</p>
          <p>Aux Id: Seq 11995</p>
        </item>

      </list>

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.21.7 -->


  <section>
    <title>SNMP Development Toolkit 4.21.6</title>
    <p>Version 4.21.6 supports code replacement in runtime from/to
    version 4.21.5, 4.21.4, 4.21.3, 4.21.2, 4.21.1, 4.21, 4.20.1 and 
    4.20. </p>

    <section>
      <title>Improvements and new features</title>
      <!--
      <p>-</p>
      -->

      <list type="bulleted">
        <item>
          <p>[agent] DoS attack using GET-BULK with large value of 
          MaxRepetitions.
          A preventive method has been implementing by simply 
          limit the number of varbinds that can be included in 
          a Get-BULK response message. This is specified by the 
          new config option, 
          <seealso marker="snmp_app#agent_gb_max_vbs">gb_max_vbs</seealso>. 
          </p>
          <p>Own Id: OTP-9700</p>
        </item>

      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
      <!--
      <p>-</p>
      -->

      <list type="bulleted">
        <item>
          <p>[agent] Mib server cache gclimit update function incorrectly calls 
          age update function. 
          The gclimit update function, 
          <seealso marker="snmpa#update_mibs_cache_gclimit">update_mibs_cache_gclimit/1</seealso>, 
          <em>incorrectly</em> called the age update function, 
          <seealso marker="snmpa#update_mibs_cache_age">update_mibs_cache_age/2</seealso>. </p>
          <p>Johan Claesson</p>
          <p>Own Id: OTP-9868</p>
        </item>

      </list>

    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.21.6 -->


  <section>
    <title>SNMP Development Toolkit 4.21.5</title>
    <p>Version 4.21.5 supports code replacement in runtime from/to
      version 4.21.4, 4.21.3, 4.21.2, 4.21.1, 4.21, 4.20.1 and 4.20. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[agent] Removed (more) use of old style tuple funs. </p>
          <p>Own Id: OTP-9783</p>
        </item>

      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p> 
-->

      <list type="bulleted">
        <item>
          <p>[agent] Repeated vacm table dumping fails due to file name 
          conflict. When dumping the vacm table to disk, a temoporary 
          file with a fixed name was used. If the table dumping 
          (snmpa_vacm:dump_table/0) was initiated from several different 
          processes in rapid succesion, the dumping could fail because the 
          different processes was simultaniously trying to write to the 
          same file. This problem has been eliminated by creating a unique 
          name for the temporary file. </p>
          <p>Own Id: OTP-9851</p>
          <p>Aux Id: Seq 11980</p>
        </item>

      </list>
    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>foo. </p>
          <p>Own Id: OTP-9718</p>
        </item>

      </list>
-->

    </section>

  </section> <!-- 4.21.5 -->


  <section>
    <title>SNMP Development Toolkit 4.21.4</title>
    <p>This version has never been released for R14B.</p>
    <p>Version 4.21.4 supports code replacement in runtime from/to
      version 4.21.3, 4.21.2, 4.21.1, 4.21, 4.20.1, 4.20 and 4.19. </p>

    <section>
      <title>Improvements and new features</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>[compiler] Improved version info printout from the 
          <seealso marker="snmpc(command)#">MIB compiler frontend escript</seealso>. </p>
          <p>Own Id: OTP-9618</p>
        </item>

      </list>
-->

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p> 
-->

      <list type="bulleted">
        <item>
          <p>[agent] Removed use of old style tuple funs. </p>
          <p>Own Id: OTP-9779</p>
        </item>

      </list>
    </section>

    <section>
      <title>Incompatibilities</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>foo. </p>
          <p>Own Id: OTP-9718</p>
        </item>

      </list>
-->

    </section>

  </section> <!-- 4.21.4 -->


  <section>
    <title>SNMP Development Toolkit 4.21.3</title>
    <p>Version 4.21.3 supports code replacement in runtime from/to
      version 4.21.2, 4.21.1, 4.21, 4.20.1, 4.20 and 4.19. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[compiler] Improved version info printout from the 
	  <seealso marker="snmpc(command)#">MIB compiler frontend escript</seealso>. </p>
          <p>Own Id: OTP-9618</p>
        </item>

      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p> 
-->

      <list type="bulleted">
        <item>
          <p>[agent] Version 4.20 introduced a change that broke trap 
	  sending from subagents. Due to a bug in the test code, 
	  this was not discovered, until that bug was fixed. </p>
          <p>Own Id: OTP-9745</p>
        </item>

        <item>
          <p>[agent] When sending an error message (reply) regarding 
	  <c>snmpUnknownPDUHandlers</c>, the agent used the wrong OID. </p>
          <p>Own Id: OTP-9747</p>
        </item>

        <item>
          <p>[compiler] Fix the <c>--warnings/--W</c> option parsing in the 
          <seealso marker="snmpc(command)#option_warnings">snmpc</seealso>
          wrapper (e)script. 
          The short warning option was incorrectly <c>--w</c>, instead
          of as documented <c>--W</c>. This has now been corrected. </p>
          <p>*** POTENTIAL INCOMPATIBILITY ***</p>
          <p>Tuncer Ayaz</p>
          <p>Own Id: OTP-9718</p>
        </item>

      </list>
    </section>


    <section>
      <title>Incompatibilities</title>
<!--
      <p>-</p>
-->

      <list type="bulleted">
        <item>
          <p>[compiler] The short warning option has been changed from 
          <c>--w</c> to <c>--W</c> to comply with the documentation. </p>
          <p>Tuncer Ayaz</p>
          <p>Own Id: OTP-9718</p>
        </item>

      </list>
    </section>

  </section> <!-- 4.21.3 -->


  <section>
    <title>SNMP Development Toolkit 4.21.2</title>
    <p>Version 4.21.2 supports code replacement in runtime from/to
      version 4.21.1, 4.21, 4.20.1, 4.20 and 4.19. </p>

    <section>
      <title>Improvements and new features</title>
      <p>-</p>

<!--
      <list type="bulleted">
        <item>
          <p>Bad note store GC timer deactivation. 
	  Wrong field in the state record was set (timeout instead active). </p>
          <p>Stefan Grundmann</p>
          <p>Own Id: OTP-9690</p>
        </item>

      </list>
-->

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p> 
-->

      <list type="bulleted">
        <item>
          <p>Bad note store GC timer deactivation. 
	  Wrong field in the state record was set (timeout instead active). </p>
          <p>Stefan Grundmann</p>
          <p>Own Id: OTP-9690</p>
        </item>

      </list>
    </section>


    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.21.2 -->


  <section>
    <title>SNMP Development Toolkit 4.21.1</title>
    <p>Version 4.21.1 supports code replacement in runtime from/to
      version 4.20.1, 4.20 and 4.19. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->
      <list type="bulleted">
        <item>
          <p>[compiler] Used wrong variable name (for 
	  warnings-as-errors variable), which caused the 
	  compiler to crash when using the snmpc (e)script. </p>
	  <p>Also added the option 
	  <seealso marker="snmpc(command)#option_werror">--Werror</seealso>
	  for the SNMP MIB compiler (escript) frontend (to mimic 
	  <seealso marker="erts:erlc">erlc</seealso>), 
	  which specifies whether warnings should be treated as errors. </p>
          <p>Own Id: OTP-9447</p>
        </item>

        <item>
          <p>[agent] Some very minor debugging improvements. </p>
          <p>Own Id: OTP-9446</p>
        </item>
      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
      <p>-</p> 

<!--
      <list type="bulleted">
        <item>
          <p>The snmp config tool could not handle (manager) audit trail config 
	  because the option seqno was not handled. </p>
	  <p>Own Id: OTP-9354</p>
	</item>

      </list>
-->
    </section>


    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.21.1 -->


  <section>
    <title>SNMP Development Toolkit 4.21</title>
    <p>Version 4.21 supports code replacement in runtime from/to
      version 4.20.1, 4.20 and 4.19. </p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->
      <list type="bulleted">
        <item>
          <p>[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, <c>tdomain</c>, 
	  is now a (new) valid option when 
	  <seealso marker="snmpm#register_agent">registering</seealso>
	  a new agent (and 
	  <seealso marker="snmpm#update_agent_info">updating</seealso> 
	  agent info). </p>
	  <p>This also mean that the transport behaviour has changed. </p>
          <p>Own Id: OTP-9305</p>
          <p>Aux Id: Seq 11847</p>
        </item>

        <item>
          <p>[compiler] Added the option 
	  <seealso marker="snmpc#compile">warnings_as_errors</seealso> 
	  (for the SNMP MIB compiler (escript) frontend, the option 
	  <seealso marker="snmpc(command)#option_wae">--wae</seealso> is used) 
	  which specifies whether warnings should be treated as errors. </p>
          <p>Tuncer Ayaz</p>
          <p>Own Id: OTP-9437</p>
        </item>
      </list>

    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p> 
-->

      <list type="bulleted">
        <item>
          <p>The snmp config tool could not handle (manager) audit trail config 
	  because the option seqno was not handled. </p>
	  <p>Own Id: OTP-9354</p>
	</item>

        <item>
          <p>[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. </p>
	  <p>Own Id: OTP-9367</p>
          <p>Aux Id: Seq 11858</p>
	</item>

        <item>
          <p>Fixed install directory typo for man3. </p>
	  <p>Peter Lemenkov</p>
	  <p>Hans Ulrich Niedermann</p>
	  <p>Own Id: OTP-9442</p>
	</item>

      </list>
    </section>


    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.21 -->


  <section>
    <title>SNMP Development Toolkit 4.20.1</title>
    <p>Version 4.20.1 supports code replacement in runtime from/to
      version 4.20, 4.19 and 4.18.</p>

    <section>
      <title>Improvements and new features</title>
      <p>-</p>
<!--
      <list type="bulleted">
        <item>
          <p>Added type specs for functions that do not return. </p>
          <p>Kostis Sagonas</p>
          <p>Own Id: OTP-9208</p>
        </item>
      </list>
-->
    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p> 
-->
      <list type="bulleted">
        <item>
          <p>[agent] Did not handle transport domains properly in some cases, 
	  for instance trap sending. </p>
	  <p>Own Id: OTP-9400</p>
	</item>

        <item>
          <p>[agent] Wrong default transport domain, snmpUDPDomain, instead
	  of transportDomainUdpIpv4. </p>
	  <p>Own Id: OTP-9425</p>
          <p>Aux Id: Seq 11874</p>
	</item>

      </list>
    </section>


    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.20.1 -->


  <section>
    <title>SNMP Development Toolkit 4.20</title>
    <p>Version 4.20 supports code replacement in runtime from/to
      version 4.19 and 4.18.</p>

    <section>
      <title>Improvements and new features</title>
<!--
      <p>-</p>
-->
      <list type="bulleted">
        <item>
          <p>[agent] Added support for sending traps to IPv6 targets. </p>
	  <p>See the 
	  <seealso marker="snmp_agent_config_files#target_addr">target address config file</seealso>, 
	  the <seealso marker="snmpa_conf#target_addr_entry">target_addr_entry/11</seealso> function or 
	  <seealso marker="snmp_target_mib#add_addr">add_addr/11</seealso> for more info. </p>
          <p>Own Id: OTP-9088</p>
          <p>Aux Id: Seq 11790</p>
	</item>


        <item>
          <p>[agent] To be able to handle multiple engine-id(s) when
	  sending trap(s), the function 
          <seealso marker="snmp_community_mib#add_community">
	  add_community/6</seealso> has been added. </p>
          <p>Own Id: OTP-9119</p>
          <p>Aux Id: Seq 11792</p>
        </item>

        <item>
          <p>[manager] The API for snmp requests has been augmented to
	  allow the caller to override some configuration. </p>
	  <p>This has been done by introducing a new set of API functions, see 
	  <seealso marker="snmpm#sync_get2">sync_get2/3,4</seealso>, 
	  <seealso marker="snmpm#async_get2">async_get2/3,4</seealso>, 
	  <seealso marker="snmpm#sync_get_next2">sync_get_next2/3,4</seealso>, 
	  <seealso marker="snmpm#async_get_next2">async_get_next2/3,4</seealso>, 
	  <seealso marker="snmpm#sync_get_bulk2">sync_get_bulk2/5,6</seealso>, 
	  <seealso marker="snmpm#async_get_bulk2">async_get_bulk2/5,6</seealso>, 
	  <seealso marker="snmpm#sync_set2">sync_set2/3,4</seealso> and 
	  <seealso marker="snmpm#async_set2">async_set2/3,4</seealso>
	  for more info. </p>
          <p>Own Id: OTP-9162</p>
        </item>

        <item>
          <p>[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. </p>
          <p>Own Id: OTP-9174</p>
        </item>

        <item>
          <p>[agent] Pass extra info through the agent to the net-if
	  process when sending notifications. </p>
	  <p>See 
	  <seealso marker="snmpa#send_notification2">
	  snmpa:send_notification2/3</seealso> for more info. 
	  See also the incomming net-if messages when sending a 
	  <seealso marker="snmp_agent_netif#im_send_pdu">trap</seealso> 
	  (send_pdu message) and 
	  <seealso marker="snmp_agent_netif#im_send_pdu_req">
	  notification</seealso> (send_pdu_req message). </p>
          <p>Own Id: OTP-9183</p>
          <p>Aux Id: Seq 11817</p>
        </item>

        <item>
          <p>Added type specs for functions that do not return. </p>
          <p>Kostis Sagonas</p>
          <p>Own Id: OTP-9208</p>
        </item>
      </list>
    </section>

    <section>
      <title>Fixed Bugs and Malfunctions</title>
<!--
      <p>-</p> 
-->

      <list type="bulleted">
        <item>
          <p>Fixed endode/decode of values of type <c>Counter32</c>. </p>
	  <p>This type (<c>Counter32</c>) 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. </p>
	  <p>Own Id: OTP-9022</p>
	</item>

      </list>
    </section>


    <section>
      <title>Incompatibilities</title>
      <p>-</p>
    </section>

  </section> <!-- 4.20 -->


  <!-- section>
    <title>Release notes history</title>
    <p>For information about older versions see
      <url href="part_notes_history_frame.html">release notes history</url>.</p>
  </section -->
</chapter>