.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0


Release Notes
=============

Version: 1.4.0
--------------

:Release Date: 2018-10-01


**New Features**

    - `https://jira.onap.org/browse/DCAEGEN2-630`
    Added support for SNMPv3 traps with varying levels of privacy and authentication support.

**Bug Fixes**
    - `https://jira.onap.org/browse/DCAEGEN2-842`
    Remove additional RFC3584 (Sec 3.1 (4)) varbinds from published/logged SNMPv1 messages, fix DMAAP publish error for traps with no varbinds present.

**Known Issues**

**Security Issues**
    - None 

**Upgrade Notes**

**Deprecation Notes**

**Other**

===========

Version: 1.3.0
--------------

:Release Date: 2018-05-02


**New Features**

Support for config binding services.

**Bug Fixes**
    - `https://jira.onap.org/browse/DCAEGEN2-465`
**Known Issues**
    - `https://jira.onap.org/browse/DCAEGEN2-465`
      Default config causes standalone instance startup failure.

**Security Issues**
    - None 


**Upgrade Notes**

**Deprecation Notes**

**Other**

===========

End of Release Notes
