OpenSAF 5.22.01 (released 2022-01-24)
-------------------------------------

    * log: removal of letter 'C'/'R' from msgId in RFC5424 format [#3303]
    * log: Stop all threads while releasing the log agent object [#3302]
    * amf: Correct HC period to make it effect immediately[#3298]
    * log: Correct condition to shutdown the log agent [#3301]
    * log: Increase timeout in logtest [#3291]
    * log: Shutdown log agent when not in use [#3291]
    * log: Introduce the initial clm node status [#3291]
    * amf: Correct the version of csi attribute message [#3296]
    * ntf: correct the behavior of periodic check log pending [#3297]
    * mds: Resolve active MxN VDEST conflict in split brain [#3281]
    * smf: correct merge bundle rolling to single step [#3290]
    * ntf: get attribute value from local when value not existed [#3289]
    * immd: fix cannot find candidate for new immnd coordinator [#3284]
    * smf: make more robustness in BISU upgrade [#3286]
    * amfd: Tightens sync window condition to proceed headless restoration [#3271]
    * osaf: fixed redefinition of typedef 'SaConstStringT' [#3287]
    * amf: update runtime attributes of node to IMM in sync [#3285]
    * amfd: Correct checking CSICOMP while deleting CSI [#3282]
    * base: using mutex for test case sysf_ipc_test instead of atomic [#3283]
    * build: adaptive python version for rpm build [#3270]

OpenSAF 5.21.09 (released 2021-09-14)
-------------------------------------

    * ntf: Fix compilation errors for 32 bit machine [#3279]
    * NTF: Delete discarded notifications when send fails twice [#3277]
    * imm: update README file for a new attribute [#3268]
    * imm: add test case of saImmSyncrTimeout attribute [#3268]
    * imm: Introduce a configurable attribute saImmSyncrTimeout [#3268]
    * pyosaf: correct retry on failed operation [#3276]
    * build: checking test is enable before compile basetest [#3274]
    * amfnd: fix crash during shutdown [#3275]
    * amf: fix leak memory in function avnd_di_object_upd_send() [#3273]
    * osaf: Added an saAisStrError(SaAisErrorT) function [#2143]
    * rde: Add timeout of waiting for peer info [#3263]
    * build: Remove the dtlog directory [#2156]
    * amf: ignore re-create comp-csi assignment if node left [#3269]
    * base: move the testcase sysf_ipc_test to the apitest [#3267]
    * base: destroy sprr when leap startup fail [#3266]

OpenSAF 5.21.06 (released 2021-06-01)
-------------------------------------

    * rde: Revert timeout of waiting for peer info [#3263]
    * imm: not assert when checking initial value in IMMA [#3265]
    * clm: Active CLMS not sending checkpoint data to standby CLMS when IMMD is paused [#3264]
    * rde: Use broadcast for peer info message [#3263]
    * rde: Add timeout waiting for peer info [#3263]
    * ntf: Enhance periodic logging alarm notification when queue available [#2911]
    * pyosaf: Correct input for eSaAisErrorT.whatis() [#2767]
    * imma: Correctly use IMMA_SYNCR_TIMEOUT [#3260]
    * immnd: Make IMMSV_FEVS_MAX_PENDING environment variable [#3260]
    * smf: enhance smf to handle timeout in one step upgrade [#3262]
    * dtm: Add osaflog options for print log entries between a range of dates [#2714]
    * rde: Improve initialization of Consensus() [#3126]
    * pyosaf: support for amf api version b4.02 [#3256]
    * dtm: correct handling connection failure [#2777]
    * amf: update node member in clm_track_cb [#3257]
    * imm: valgrind reports invalid read in imm agent [#2656]
    * smf: Enhance handling of global variables [#2726]
    * amf: Fix invoking the csi attribute change callback [#3255]
    * imm: Fix log level in syslogs security violation message [#2970]
    * osaf: Move the immtool for modifying the IMM model to osaf [#3068]
    * dtm: Using log Hexadecimal number for node id instead of Decimal [#2725]
    * amf: Using log Hexadecimal number for node id instead of Decimal [#2725]
    * clm: Using log Hexadecimal number for node id instead of Decimal [#2725]
    * fm: Using log Hexadecimal number for node id instead of Decimal [#2725]
    * clm: memleak detected by valgrind [#3252]
    * log: improve logtest testsuite 22 [#3253]
    * imm: potential leak of memory pointed to by ao_node in OM API [#2826]

OpenSAF 5.21.03 (released 2021-03-01)
-------------------------------------

    * imm: ignore enter headless if already entered [#3250]
    * clm: use calloc instead malloc to remove garbage value [#3251]
    * imm: fix immnd detect headless state wrong [#3250]
    * mds: improve mdstest to wait for subscription response [#3249]
    * osaf: Improve etcd plugin to be tolerant of new etcd leader election [#3226]
    * smf: avoid smf stucked during admin op in parallel [#3248]
    * pyosaf: update pyosaf support python3 [#3247]
    * imm: fix incorrect delay start sync [#3246]
    * log: do not use trace in signal handler [#3245]
    * ntf: do not use trace in signal handler [#3245]
    * amf: fix cluster stuck unhealthy when SCs brutal reboot [#3241]
    * imm: fix unexpected immnd restart after headless [#3244]
    * imm: fix amfd crash when multi partitioned clusters rejoin [#3243]
    * amf: fix node reboot when cluster stop by clm admin op [#3240]

OpenSAF 5.20.11 (released 2020-11-30)
-------------------------------------

    * imm: fix amfd stuck when multi partitioned clusters rejoin [#3237]
    * ntf: fix memleak detected by valgrind [#3238]
    * amf: fix amfd crash in multi partitioned clusters rejoin [#3236]
    * imm: prevent override delimiter value when using with option -a [#3235]
    * log: fix memleak detected by valgrind [#3234]
    * fm: fix unexpected node reboot [#3230]
    * ntf: fix coredump while creating object having string value, SA_NOTIFY [#3232]
    * amf: correct behavior SU restart [#3233]
    * ckpt: fix ckptnd crash in cpnd_ckpt_sc_cpnd_mdest_del [#3231]
    * imm: fix no expected reboot when multi partitioned clusters rejoin [#3229]
    * base: Use non-blocking socketpair in sysf_exc module V3 [#3222]
    * amf: fix lock SU operation keep return TRY_AGAIN forever [#3227]
    * amf: fix coredump in start up [#3186]
    * imm: drop re-intro message from down IMMND [#3228]
    * amf: Increase sync node size equal with clusters size [#3225]
    * amf: ignore sufailover when shutdown initiated [#3223]
    * smf: improve admin operation from serial to parallel [#3221]
    * ntf: fix memleak detected by valgrind [#3220]
    * imm: fix immnd crash in multi partitioned clusters rejoin [#3219]
    * amf: fix amfd crash in multi partitioned clusters rejoin [#3218]
    * mbc: fix agent crash if mds sendto() error [#3217]
    * osaf: Enhance deep clone of Imm Attr values in immutil [#3215]

OpenSAF 5.20.08 (released 2020-08-31)
-------------------------------------

    * mds: improve mdstest suite 27 [#3216]
    * mds: fix receiving old msg under flow control enabled [#3216]
    * mbc: fix agent crash inside ncs_mbcsv_null_func() [#3214]
    * imm: fix memleak detected by valgrind [#3213]
    * pyosaf: Support python3 [#3210]
    * osaf: move common functions into immutil [#3211]
    * rde: allow node start first to be promoted in relax mode [#3191]
    * amfnd: handle component failover during SURestart [#3207]
    * log: check log record valid before write in FlushFrontElement [#3212]
    * mbc: fix memleak detected by valgrind [#3208]
    * nid: fix opensafd fail to start under gcov enabled [#3209]
    * amf: Provide configuration option to run amfnd as non-root [#3205]
    * amf: support error report on non local component [#109] V3
    * amf: implement node repair admin command [#3204] V2
    * clm: fix memory leak reported by valgrind [#3206]
    * ntfimcnd: Correct spelling in README [#3201]
    * imm: define macro for values of canBeCoord [#2936]
    * imm: reboot nodes used to be different partition with coord [#2936]
    * amf: enhance to work in roaming SC and headless [#2936]
    * ntf: Update README for NTF notification enhancement [#3201]
    * ntf: Handle IMM multiple value attribute in notification [#3200]
    * saflogger: fix saflogger stuck long time in resilience [#3198]
    * imm: fix memory leak reported by valgrind [#3199]
    * ntf: Enhance attribute change notification [#3196]
    * lgs: not invoke saAmfComponentErrorReport() [#3197]
    * lgs: fix memory leak reeported by valgrind [#3195]
    * rde: avoid dual active controllers in relax promotion mode [#3188]
    * imm: add checking of return parameters [#3194]
    * osaf: include tcp plugin in dist tarball

OpenSAF 5.20.05 (released 2020-05-30)
-------------------------------------

    * dtm: bind configured node ip for socket to setup new connection [#3192]
    * amfd: process IMM evt higher than MBCSV evt in polling [#3190]
    * osaf: fix coding issue identified by codechecker [#3189]
    * Revert "rde: correct to promote node to active [#3108]"
    * Revert "rde: fix no active node in relaxed node promotion [#3173]"
    * log: improve robustness for apitest suite 5 test case 16 [#3187]
    * lgs: map the CkptPushAsync to the right memory [#3183]
    * ntf: fix ntfimcn fail to send notification with no space error [#3181]
    * amfd: change LOG_EM to LOG_ER  [#3179]
    * mds: forever retry EAGAIN in mds_mcast_sendto() [#3182]
    * lgs: use local mononitic clock instead of getting from active  [#3180]
    * ntf: set operation invoke name to unknown if failed to get it [#3178]
    * amfnd: correct checking su assignement pending flag [#3176]
    * log: log content is placed in a file of another stream [#3175]
    * log: log content is placed in a file of another stream [#3175]
    * rde: fix no active node in relaxed node promotion [#3173]
    * amfnd: fix coding issues identified by codechecker [#3174]
    * mds: fix mdstest 27 11 fail occassionally [#3172]
    * base: fix transportd fail to monitor dtmd [#3170]
    * mds: fix mds_tipc_fctrl_shutdown() stuck forever [#3169]
    * osaf: improve tcp.plugin time_counting() start once [#3171]
    * amfd: fix coding issue identify by codechecker [#3168]
    * base: remove others permissions for osaf*.fifo and osaf*.pid [#3167]
    * mds: add test use tipc multicast with flow control enable/disable [#3166]
    * osaf: enhance vm frozen detection in tcp.plugin [#3164]
    * amfnd: fix unexpected reboot after split-brain recovery [#3162]
    * imm: enhance "immlist --help" output more appropriate [#3165]
    * fm: ignore unexpected event on standby node [#3017]
    * amfnd: reset component register once it is terminated [#3160]
    * imm: imm_list tool add new option --delimiter [#3155]
    * imm: fix non-local user cannot access IMM when accessControlMode is in ENFORCED [#3043]
    * log: standby node is rebooted when nfs is unresponsive [#3161]
    * rde: update mds registration when switched to Active role [#3159]
    * osaf: fix etcd3.plugin watch takeover_request [#3158]
    * amfnd: correct handling "terminate success" event in terminating state [#3157]
    * clmd: retry once to send message to clmna [#3156]
    * base: add serial number arithmetic (RFC1982) [#3074]
    * amfnd: trigger SU FSM [#3152]

OpenSAF 5.20.02 (released 2020-02-15)
-------------------------------------

    * base: fix creation of msg queues [#3107]
    * amfnd: should wait for IR thread ready to send event [#3153]
    * mds: fix memleak in agent enable flow control [#3151]
    * amfd: fix calculating standby rank for SIrankedSU with non-unique rank [#3149]
    * log: add default-value tag to saLogStreamFacilityId of SaLogStream class [#3150]
    * dtm: improve time accuracy in a trace record [#3144]
    * rded: Revert patch of #3142
    * lck: fully support SC absence [#3092]
    * amfnd: don't quiesce comp which is in TERMINATION_FAILED state [#3147]
    * log: update README file for make facility id configurable [#3131]
    * log: Add test cases of make facility id configurable [#3131]
    * log: make facility ID configurable [#3131]
    * rde: correct to promote node to active [#3108]
    * mds: ignore flow control message on disabled FCTRL agent [#3148]
    * build: fix compile errors with gcc-9.x [#3134]
    * lck: fix infinite loop in lcknd when it cannot talk to lckd [#2813]
    * mds: Fix mds memleak detect via mdstest [#3145]
    * fmd: Do not send RDE to set active role if opensaf_quick_reboot is executed [#3146]
    * osaf: stop osafamfd before quick reboot [#3143]
    * imm: imm_adm tool accepts NOT_EXIST [#3141]
    * smf: correct handle imm actions result [#3140]
    * rde: Reboot node if another active controller is detected [#3142]
    * log: fix memory leak that was introduced in 3116 [#3138]
    * amfd: ignore amfnd down event if node state is absent [#3015]
    * dtm: rotate all logtraces on demand [#3133]
    * log: fix segmentation fault in log agent [#3137]
    * amfnd: reset the SU restart flag once SU restart is escalated to component failover [#3135]
    * amfd: not allow unlock/lock if su is under restarting [#3132]
    * amf: allow update node failover state in cold sync [#3136]
    * log: add test cases of improving the log resilience [#3116]
    * log: update README file for improvement of log resilience [#3116]
    * saflogger: make timeout waiting for getting acknowledgment configurable [#3116]
    * log: notify all lost log records when cluster goes to headless [#3116]
    * log: improve the resilience of log service [#3116]
    * mds: update mdstest 27 4 to use waitpid() [#3130]
    * mds: check svc_cnt greater than zero before decrease [#3129]
    * amfd: Fix the data types of attributes inconsistency in get_config() [#3128]
    * mds: Using timer to continue sending queued messages [#3127]
    * mds: not waste 1.5s in waiting dead Adest to send RSP [#3102]
    * mds: close sockets at the end of mdtm_tipc_destroy() [#3125]
    * mds: Avoid message reallocation [#3089]
    * mds: Improve readibility [#3089]
    * amfd: not accept lock-in if su is reparing [#3121]
    * mds: Fix mds flow control keep all messages in queue [#3123]
    * mds: Reduce mds logging [#3120]
    * nid: fix unable to start UML cluster with tipc transport [#3122]
    * nid: fix unable to start UML cluster with tipc transport [#3122]
    * mds: fix memleak in code and test [#1860]
    * imm: Fix coding issues identified by codechecker [#3115]
    * log: Fix coding issues identified by codechecker [#3113]
    * nid: Change the path of TIPC_MODULE [#3110]
    * ntf: Fix coding issues identified by codechecker [#3114]
    * mds: Fix coding issues identified by codechecker [#3112]
    * osaf: return a help message if no parameter is specified [#3118]
    * mds: Add backward compatibility mdstest for fragment [#3111]
    * mds: Refactor logging [#3111]
    * mds: Distinguish protocol version of fragment [#3111]
    * mds: fix sender take very long time to send all messages [#3119]
    * amf: amfnd should ignore amfd down event during shutting down [#3117]
    * mds: Unset flow control env var [#3109]
    * nid: Remove the absolute path of tipc command [#3105]
    * plm: fully support SC absence [#3093]
    * smf: Improve SmfAdminStateHandler() Return false if Fail [#3104]
    * dtm: rotate logtraces on demand [#3086]
    * msg: fully support SC absence [#3083]
    * amfnd: reset transition descriptor during comp restart [#3103]

OpenSAF 5.19.10 (released 2019-10-23)
-------------------------------------

    * mds: Disable mds flow control for mds broadcast/multicast message [#3101]
    * mds: Do not check upper limit of window size [#3100]
    * mds: add more tests for mds flow control [#3091]
    * mds: Add Intro message [#3090]
    * osaf: perform handshake in tcp_server in new thread [#3099]
    * plm: convert agent to C++
    * osaf: return new takeover_request immediately [#3098]
    * mds: Improve error log for MDS_TIPC_FCTRL_ENABLED [#3095]
    * mds: Add Nack message for MDS_TIPC_FCTRL_ENABLED [#3095]
    * mds: Enhance decoding for mds flow control message [#3097]
    * amf: add asserts to problematic areas identified by codechecker [#3077]
    * osaf: add tcp arbitrator [#3064]
    * dtm: correct no_of_log_streams_ when deleting a stream [#3085]
    * dtm: close unused log streams [#2642]
    * mds: optimize mdstest suite 27 [#3087]
    * mds: Update code from comments [#1960]
    * mds: Add TIPC buffer overflow for mdstest [#1960]
    * mds: Apply serial number arithmetic for sequence counter [#1960]
    * mds: Add configurable parameters [#1960]
    * mds: Implement kRcvBuffOverflow state [#1960]
    * mds: Add state machine for tipc portid instance [#1960]
    * mds: Add timeout for ack message [#1960]
    * mds: Add implementation for TIPC buffer overflow solution [#1960]
    * mds: Resolve c/c++ linking issue [#1960]
    * mds: Add README for solution of TIPC buffer overflow at MDS [#1960]
    * build: support RHEL 7 and greater for building RPMs [#3067]
    * amf: handle errors identified by codechecker [#3077]
    * amfd: correct handling complete/apply callback on standby sc [#3082]
    * amfd: fix key tuple for sirankedsu db [#3076]
    * lck: handle CLM-API errors during SC absence [#3080]
    * msg: handle CLM-API errors in SC-absence [#2299]
    * nid: Flush internal log messages before stopping OpenSAF [#3079]
    * amfd: fix coredump during downgrade if delayed failover is enabled [#3078]
    * evtd: handle CLM-API errors during SC absence [#3081]
    * amfd: allow saAmfRank of SaAmfSIRankedSU to be non-unique [#3076]
    * smf: Fix c-linkage and string op errors [#3065]
    * imm: Check error code before access to buffer V2 [#3075]
    * smf: allow to commit merged camp after a manual cluster reboot [#3063]
    * smf: improve ccb handler rules for recovery [#3071]
    * util: Fenced should only write a log record when two acitve controllers is seen [#3073]
    * imm: Fix Object ID and Class ID type inconsistency [#2770]
    * amfd: set failover_state on standby [#3072]
    * imm: Fix Object ID and Class ID type inconsistency [#2770]
    * mbc: fix some coding errors [#3070]
    * rde: missing comma between elements in array [#3069]
    * scripts: use tipc instead of obsolute tipc-config in opensaf_reboot [#3066]
    * smf: retry if ccb is aborted at init proc [#3061]
    * amf: fix no active assignment even one in-service SU can be assigned [#3020]
    * nid: use the tipc command instead of tipc-config [#2104]
    * nid: use the tipc command instead of tipc-config [#2104]
    * amfd: add support for dynamically changing saAmfRank of SaAmfSIRankedSU [#3058]
    * dtmd: add support for NAT [#3057]
    * amf: not set sg stable if si_dep_state of si in FAILOVER_UNDER_PROGRESS [#3054]
    * mds: fix mdstest 13 12, 13 13, 6 12, 6 13, 7 12, 7 13 [#3059]

OpenSAF 5.19.07 (released 2019-07-22)
-------------------------------------

    * amfd: include failover info in coldsync [#3060]
    * amfd: revert patch of ticket #3015 [#3015]
    * amf: fix sample container/contained code [#70]
    * log: Update the try again for admin operation [#3056]
    * osaf: make wait time configurable [#3029]
    * amfd: improve controller failover behavior [#3029]
    * fmd: add active promotion supervision timer [#3029]
    * osaf: add function to return takeover request expiry time [#3029]
    * amfd: disallow delete of CtCs object if Ct maps to comp [#3028]
    * amf: check null before access to config objects [#3055]
    * amfd: ignore amfnd down event if node state is absent [#3015]
    * imm: immnd respawns if it exits during startup [#3053]
    * utils: Use a fence daemon as an alternative to payload reboot fencing [#3048]
    * amf: fix SU get stuck in INSTANTIATING presence state [#3047]
    * amf: remove SUSI assignemnt of dependent SI during failover [#3049]
    * amfd: prevent infinite loop [#3050]
    * log: Delete the older file without closing current log file via admin operation [#3046]
    * amfnd: fix SaAmfCSITransitionDescriptorT for set csi callback [#3044]
    * log: fix to remove the cfg file when log file rotation [#3045]
    * amfnd: fix error reading from deallocated memory [#2568]
    * mds: use new TIPC getsockopt to log receive queue utilization [#3038]
    * rded: improve self-fencing response time [#3039]
    * amf: reboot to recover from lost msgs [#3040]
    * uml: Update to Linux 4.18.20, iproute2 5.1.0 and busybox 1.30.1 [#3042]
    * amfnd: honor comp instantiation level for contained components [#3036]
    * base: strip leading and trailing quotes [#3041]
    * msgd: narrow ntf filter [#3034]
    * amfnd: don't attempt su failover if active controller is rebooting [#3035]
    * mds: use TIPC multicast for fragmented messages [#3033]
    * mbc: prevent infinite peer_up message loop [#3021]
    * log: Rotate log file via admin operation [#3022]
    * imm: fix coredump on immnd during upgrade [#3030]
    * amf: fix container sample build failure [#3032]
    * amf: add support for container/contained [#70]
    * imm: return try-again on write requests if fs is unavailable [#3019]
    * plm: add support for HE alarms [#3027]
    * log: revert the previous fix for the ticket 3018 [#3018]
    * log: fix logd crash due to well known stream has numOpeners=0 [#3018]
    * osaf: ensure an error is returned if takeover_request fails [#3023]

OpenSAF 5.19.03 (released 2019-03-27)
-------------------------------------

    * dtm: Fix dtm close socket due to duplication of adding node IP info [#2984]
    * osaf: improve response time in etcd3.plugin [#3016]
    * dtm: Allow hyphen character "-" in trace file name [#3009]
    * log: fix last value of logRecordDestinationConfiguration is not deleted [#3014]
    * amf: fix Comp stuck in RESTARTING presence state [#3011]
    * imm: fix racing in sending discard-node during network split [#3012]
    * nid: fix opensafd crashed during start-up [#3013]
    * smf: clear old attributes before re-filling if ccb abort to sync [#3010]
    * clm: Incorrect encode/decode time_super [#3007]
    * rded: do not send SUCCESS to main thread [#3008]
    * fmd: improve failover response time [#3008]
    * osaf: Add missing white spaces in the reason of quick reboot [#3001]
    * base: fix warnings [#3006]
    * osaf: Call opensaf_quick_reboot if failed to set active role in consensus [#3001]
    * clmd: Do not send sync response to client if node down [#3004]
    * log: fix coredump at log agent application [#3002]
    * rded: fix leak when processing takeover_request [#3006]
    * base: add daemon_sighup_install [#3006]
    * rded: reload split brain prevention parameters on SIGHUP [#3006]
    * amfd: reload split brain prevention parameters on SIGHUP [#3006]
    * fmd: reload split brain prevention parameters on SIGHUP [#3006]
    * osaf: add ability to reload config from fmd.conf [#3006]
    * ntf: Fix to NTFD doesn't send the response if MDS_DEST of client is disconnected [#2973]
    * rded: process takeover request without delay [#3005]
    * evt: resurrect apitests v2 [#2974]
    * osaf: do quick local node reboot when split network [#3001]
    * osaf: update sample plugin [#3003]
    * osaf: update etcd v2 plugin [#3003]
    * ckpt: add new test case of API saCkptInitialize() of apitest [#2939]
    * tests: test.sh should checkout release tag of googletest for stable [#2983]
    * rded: add relaxed node promotion feature [#2996]
    * amfd: allow node to remain active is peer SC can be seen [#2996]
    * osaf: add support for FMS_TAKEOVER_PRIORITISE_PARTITION_SIZE and FMS_RELAXED_NODE_PROMOTION [#2996]
    * fmd: add configuration parameters [#2996]
    * osaf: update etcd3 to poll instead of watch [#2996]
    * build: fix warnings with gcc 8.2.1 [#2999]
    * clmd: send PLM response if node down detected [#2998]
    * mdstest: fix tet_svc_subscr_VDEST_11() fail with TIPC transport [#2978]
    * imm: allow empty-value attribute with default-tag persisted [#2985]
    * smf: return false instead of empty string [#2993]
    * ntf: Update TRY_AGAIN error in ntfsend tool [#2961]
    * ntf: Limit the logger buffer [#2961]

OpenSAF 5.19.01 (released 2019-01-10)
-------------------------------------

    * imm: coredump when importing object having SaAnyT type value [#2988]
    * log: Update level of printout info in syslog from ER to WA [#2990]
    * imm: correct mismatched log info showing resources in displayverbose [#2986]
    * amf: return unstable if SG is under unlock admin op [#2982]
    * imm: initialize attrDefinitionsOut with NULL [#2987]
    * imm: add new test cases in imm apitest [#2951]
    * amfd: Fix misordered and dropped item in job queue [#2981]
    * amfd: Only start clm track for 2N Opensaf SU in failover [#2980]
    * amfd: Update the assignment counters after restore absent assignment from imm [#2977]
    * log: add new test cases in log apitest [#2915]
    * amfd: check consensus service is writable [#2957]
    * amfd: set userData [#2971]
    * amfd: checkpoint node state to standby [#2971]
    * amf: should not run check_nodes_after_reinit_imm() out of main [#2972]
    * amfd: Do not create absent assignment if number of assignment exceeds [#2968]
    * amfd: add node to failover_list before calling SetState [#2963]
    * osaf: update etcd2 and sample plugins [#2954]
    * osaf: ensure takeover_requests have a lease [#2954]
    * amfd: set node failover state correctly on standby [#2963]
    * ntf: add new test case of API saNtfNotificationReadFinalize() of apitest [#2958]
    * ntf: add new test case of API saNtfFinalize() of apitest [#2958]
    * ntf: add new test case of API saNtfDispatch() of apitest v2 [#2958]
    * ntf: add new test case of API saNtfSelectionObjectGet() of apitest [#2958]
    * ntf: add new test case of API saNtfInitialize() of apitest v2 [#2958]
    * amfd: Give assignment for pre-instantiated su after the node joins cluster [#2960]
    * imm: fix introduceMsg resent in every 0.1 second [#2959]
    * base: fix memleak in ncs_os_task() case NCS_OS_TASK_JOIN [#2955]
    * amf: active amfd should check nodes after reinit with imm [#2949]
    * imm: fix coredump generated during roaming test [#2943]
    * mds: Send NCSMDS_DOWN with vdest if there is no any adest [#2941]
    * amfd: reset snd_msg_id in LostFound state [#2952]
    * amfd: provide default timeout values [#2918]
    * amfd: add support for delaying node failover [#2918]
    * amfd: add checkpointing of node failover state [#2918]
    * amfnd: allow reboot from any director [#2918]
    * amfd: add class definitions for new timers [#2918]
    * imm: fix osafimmnd coredump genereted during sanity test [#2947]
    * amfd: ensure node_sync_window_closed is set [#2946]
    * imm: fix coredump is generated after split-brain recovery [#2942]
    * imm: add an admin operation to regenerate db from memory [#2940]
    * amfnd: change log message severity [#2945]
    * amfd: Remove sending node reboot in 2N SG for duplicated assignment [#2929]
    * amf: Add new susi fsm EXCESSIVE state to handle excessive assignment due to splitbrain V2 [#2929]
    * imm: cluster is rebooted after split-brain recovery [#2934]
    * plm: Add missing test cases of saPlmtInitialize() in plm apitest [#2938]
    * plmd: replace error log with trace v2 [#2937]
    * amf: retry when implementer set returned ERR_EXIST [#2921]
    * imm: fix incorrect set isCoord for both SCs [#2933]
    * ntf: Refactor NtfReader filter to fix incorrect searchcriteria [#2925]

OpenSAF 5.18.09 (released 2018-09-29)
-------------------------------------

    * plmcd: replace inet_aton with inet_pton v2 [#207]
    * smf: campaign is executing forever until cluster reset [#1353]
    * plm: fix build to determine location and name of systemd library [#2931]
    * base: add config file reader [#2923]
    * base: add config file reader [#2923]
    * fmd: enable reload of configuration without restart [#2923]
    * base: add config file reader [#2923]
    * base: remove use of SIGHUP to toggle INFO messages [#2923]
    * plmd: cleanup current admin operation on EE if EE uninstantiates [#198]
    * smf: improve CcbApplyCallback() to avoid NULL access [#2927]
    * uml: allow plm to run under uml [#2922]
    * plmd: fix adding and removing of invocation id to list [#197]
    * plma: add and modify traces [#199]
    * plm: fix return codes for saPlmReadinessTrackResponse [#200]
    * plm: remove unused function plms_hsm_finalize [#210]
    * plm: correct first arguement of API saPlmEntityGroupAdd() in apitest [#1983]
    * plm: add missing test files [#1924]
    * log: fix timeout when deleting configuration stream [#2903]
    * amfd: reboot nodes that report conflicting 2N active assignments [#2920]
    * osaf: make takeover request expiration time configurable [#2917]
    * plmd: fix crash when saPlmReadinessTrack is called in error [#2919]
    * amfd: Set SA_AMF_READINESS_IN_SERVICE for qualified SU after cluster startup timeout [#2916]
    * mbc: fix mbcsv loop forever while it is being dispatch ALL [#2899]
    * ckpt: add new test case of API saCkptInitialize() of apitest [#2913]
    * osaf: modify log severity level in Consensus::Demote [#2912]
    * log: fix logtest 4 58 fail [#2909]
    * amf: remove assignment for NPI component with enable DisableRestart [#2879]
    * osaf: update for saflog in case saLogWriteLogAsync with BAD_HANDLE [#2886]
    * log: fix log agent never remove log-client in list if server return BAD_HANDLE [#2910]
    * log: fix saLogFilterSetCallbackT_03 fails [#2875]
    * rded: perform KV store operations outside main thread [#2905]
    * osaf: add function to read takeover requests [#2905]
    * imm: set attrDefaultValue to NULL if no default value is given [#2901]
    * amfd: remove redundant const_cast [#2907]
    * smf: fix memory leak reported by clang [#2904]
    * imm: set attrDefaultValue to NULL if no default value is given [#2901]
    * imm: syslog recent fevs evts when immnd down [#2898]
    * imm: ignore searching for system attributes in class definition [#2897]
    * imm: avoid BAD_HANDLE result on requests after timeout on CCB apply [#2889]
    * amf: Recover node that disconnnect from active AMFD [#2880]
    * imm: two IMM coordinators exist in SC absence condition [#2895]
    * amfnd: Unset OSAF_LOCAL_NODE_LOG and THREAD_TRACE_BUFFER [#2893]
    * dtm: Add --extract-trace option to osaflog command V2 [#2894]
    * smf: Increase cbk count before post the evt to client [#2882]
    * amfnd: Store next pointer AVND_SU_SI_REC before avnd_su_si_remove [#2896]
    * base: Limit buffer size with configurable THREAD_TRACE_BUFFER [#2888]
    * amf: change the way amfd handle amfnd down [#2891]
    * tools: fix submit-review.sh not work with subject containing slash [#2887]
    * imm: fix mismatched free() / delete / delete [] [#2769]
    * Revert "smf: use cb_lock to sync cbk count access between threads [#2882]"
    * smf: use cb_lock to sync cbk count access between threads [#2882]
    * amfd: check for queued updates on attribute [#2884]
    * osaf: reduce load on keyvalue store [#2883]
    * amfd: put sync jobs into queue if IMM is busy [#2863]
    * amfd: Check IMM status before calling saImmOiDispatch [#2885]

OpenSAF 5.18.06 (released 2018-06-30)
-------------------------------------

    * amf: correct changing attribute saAmfCtDefDisableRestart [#2876]
    * imm: prioritize to elect IMMND on the active node [#2862]
    * smf: Fix failed rollback of DELETE/MODIFY CCB with originally empty attributes [#2877]
    * osaf: Update service config files for THREAD_TRACE_BUFFER [#456]
    * dtm: Use LogWriter in BASE [#456]
    * base: Support thread trace buffer [#456]
    * imm: fix failure to import file containing existing long dn object [#2874]
    * ntf: fix wrong AdminOwnerName notified by osafntfimcnd [#2869]
    * base: Improve backtrace print in daemon.c [#2853]
    * ckpt: update return code in LOG_ER printout [#2864]
    * base: ensure _file is always initialised [#2872]
    * mds: release mds lock if mds_mdtm_init failed [#2873]
    * ntf: restart ntfimcnd if operation invoker name is missing [#2859]
    * smf: Validation error for rollback CCB and a related core dump [#2858]
    * log: fix log agent may crash after recovery fails [#2670]
    * log: fix restoring ref counter for deleted stream [#2870]
    * rded: run controller promotion code in new thread [#2857]
    * mds: return success at failure in case of using broadcast send type [#2866]
    * base: Prevent logtrace_init to be called concurrently [#2860]
    * base: Place TraceLog instance on heap memory V3 [#2860]
    * Revert "rded: run controller promotion code in new thread [#2857]"
    * ntf: fix ntfimcnd issue with empty SaNameT [#2854]
    * rded: run controller promotion code in new thread [#2857]
    * msgd: put node down handling on thread [#2852]
    * msg: update msg to use CLM B.04.01 [#2841]
    * smf: Add capability to redo CCBs that fail [#1398]
    * ntf: Don't use old style SaNameT with 255 chars DN in ntfimcnd [#2850]
    * osaf: fix issue with unlock if etcdctl times out [#2848]
    * imm: fix PBE terminated when adding data with duplicated values [#2422]
    * smfd: Remove duplicate DU/AU on SU/comp level in one-step upgrade [#2227]
    * lck: fix errors when displaying SaLckResource class [#2070]
    * imm: inform NID before immnd exits during start-up phase [#2845]
    * ntf: remove sending SIGTERM and SIGABRT when killing osafntfimcnd [#2851]
    * lck: resurrect apitests [#2437]
    * plm: don't instantiate child EEs twice when unlocking parent EE [#2846]
    * nid: restart opensafd on failure when systemd enabled [#2839]
    * clmd: clear admin_op and stat_change for COMPLETED plm readiness cb [#2847]
    * clmd: Increase message priority of CLMSV_CLMS_MDS_NODE_EVT to be sent to main thread [#2842]
    * lck: resurrect apitests [#2437]
    * plmd: use virDomainDestroy and virDomainCreate to reset VM [#2836]
    * fmd: fix regression interacting with PLM [#2844]
    * rded: prevent unnecessary takeover [#2843]
    * msgd: handle abrupt restart of remote node [#2840]
    * ntf: fix to avoid core dump of osafntfimcnd  processs [#2806]
    * imm: sPbeRtMutations is updated even when validation for duplicate values fails [#2422]
    * amfd: if rootCauseEntity is PLM entity don't engage lock/lock-in [#2835]
    * clmd: pass rootCauseEntity from PLM tracking to CLM tracking clients [#2834]
    * base: Add OSAF_LOCAL_NODE_LOG environment variable to osaf service conf file [#2306]
    * base: Add support to direct OpenSAF logging to local node file V3 [#2306]
    * base: Re-factor the timer implementation [#2440]

OpenSAF 5.18.04 (released 2018-04-20)
-------------------------------------

    * osaf:source the nid.conf for Isolating the node in opensaf_reboot[#2833]
    * imm: make version parameter in immutil_xxx non-const [#2830]
    * osaf: Isolate the node in the opensaf_reboot [#2833]
    * mds: Update test suite 14 to avoid perpetually hanging [#2831]
    * dtm: Add --delete option to osaflog command for deleting log streams [#2837]
    * dtm: Make the osaftransportd socket world-writable [#2838]
    * base: Add support for setting UnixServerSocket file permissions [#2838]
    * plmd: use virDomainDestroy and virDomainCreate to reset VM [#2836]
    * osaf: add example config for etcd [#2784]
    * imm: have try again handling in apitest [#2828]
    * osaf: remove timestamp from takeover request [#2795]
    * rded: adapt to new Consensus API [#2795]
    * fmd: adapt to new Consensus API [#2795]
    * amfd: adapt to new Consensus API [#2795]
    * osaf: add lock takeover request fuction [#2795]
    * osaf: extend API to include a create key and an enhanced set key function [#2795]
    * imm: fix memory leaked in immnd [#2825]
    * imm: make version parameter in immutil_xxx non-const [#2830]
    * imma: Do not finalize previously instialized privateOmHandle in saImmOiAugmentCcbInitialize [#2827]
    * smf: Improve error logging when applying a CCB [#2832]
    * build: Add support for google gmock framework V2 [#2823]
    * smfd: Fix incorrect handling of SMFND NCSMDS_UP/DOWN events [#2821]
    * base: Check return code from unlink in nid_create_ipc [#2829]
    * msg: updated the assert condition ,to avoid core [#2802]
    * amfnd: unlock before releasing the monitoring thread to avoid deadlock [#2818]
    * log: Handling of IMM OI BAD HANDLE in log server is incorrect [#2799]
    * dtm: Use base::StrToUint64 to parse command-line option arguments [#2815]
    * amfd: Revert validate env variable format set in comptype/comp objects [#2409]
    * dtm: Document update for transportd.conf and osaflog options [#2820]
    * imm: improve cascade delete [#2667]
    * plmd: handle admin-operation-pending for EE unlock [#2819]
    * plmd: connect to hypervisor after middleware switchover [#2817]
    * mds: improve thread safety in mdstest - part 2 [#2746]
    * base: Add functions for parsing a string as an integer [#2814]
    * dtm: Fix the osaflog --flush command, and revert osaflog protocol [#2812]
    * mds: improve thread safety in mdstest [#2746]
    * amfd: Correct wrong variable names [#2803]
    * msgnd: prevent race condition during q transfer [#2816]
    * base: Only close inherited fd(s) after fork() in child process [#2805]
    * base: Improve logging at daemon exit [#2704]
    * imm: fix race-condition in imm agent [#2810]
    * amf: do not dereference null pointer [#2791]
    * amfd: Trigger dependent SI assignment if currActiveAssignment is less than preferred active assignment [#2803]
    * tools: Fix trace2dot, it stopped working after ticket #2165 [#2668]
    * dtm: Added following options  --max-backups and --max-file-size to osaflog tool and in transportd [#2731]
    * fmd: avoid conflict with split-brain prevention if two nodes are elected [#2801]
    * imm: coredump during scale-in on large configuration [#2794]
    * imm: return correct error code when working on more than 10000 objects [#2359]
    * imm: coredump during scale-in on large configuration [#2794]
    * imm: fix unknown event type in imma_proc_free_pointers [#2779]
    * log: Fix cyclic crash when starting standby and OI is not active [#2711]
    * rde: avoid SIGPIPE in send functions [#2800]
    * build: Fix false checkpatch warning about struct should normally be const [#2807]
    * plmd: enable dynamic tracing [#2796]
    * msgd: during cold sync don't add tracking entries which already exist [#2793]
    * amfa: Fix API internal check to avoid fatal mutex unlock [#2548]
    * dtm: change trace config var name to _PATHNAME [#2792]
    * cpnd: Correct duration of cpnd_tmr_start in cpnd_proc_update_remote [#2787]
    * pyosaf: refactor IMM samples to use new pyosaf utils [#2681]
    * osaf: use local etcd instance only [#2797]
    * imm: not allow creating reserved IMM class names [#2771]
    * pyosaf: Refactor NTF samples to make use of new pyosaf utils [#2707]
    * imm: not allow creating reserved IMM class names [#2771]
    * imm: improve immlist printout for multiple attribute values [#2753]
    * ntf: fix cpplint and cppcheck for ntftest after convert to C++ [#2766]
    * ntf: handle try again for ntftest [#2766]
    * ntf: align and replace tab by space [#2766]
    * ntf: Convert to C++ [#2766]
    * nid: Delete generated node_id file when stopping OpenSAF [#2789]
    * nid: Set TasksMax systemd option to infinity for opensafd service [#2788]
    * smf: Add capability to redo CCBs that fail [#1398]
    * amfd: Handle su_cnt_adm_opr properly in Nodegroup adm resp procesing [#2588]
    * pyosaf: Fix broken imports in imm-listener and imm-listener-inheritance-impl [#2786]
    * pyosaf: Handle SA_AIS_ERR_BAD_HANDLE in pyosaf Implementer dispatch loop [#2785]
    * log: fixed most of the  Cppcheck warnings in apiTest and tools dir [#2439]
    * amfnd: remove duplicate log entry [#2783]
    * amfd: Validate env variable format set in comptype/comp objects [#2409]
    * dtm: updates to readme files and change of TRACE var in conf [#2776]
    * fmd: prevent data races between MDS and main threads [#2763]
    * ntfd: Correct counting byte in decode_reader_info [#2781]
    * fmd: revert prevent data races between MDS and main threads [#2763]
    * fmd: prevent data races between MDS and main threads [#2763]
    * amfnd: Discard new assignment while su is under failover [#2773]
    * log: use c++ string for caller instead of const pointer [#2782]
    * clm: Re-indent code after conversion to C++ [#2721]
    * clm: Convert CLM to C++ [#2721]
    * log: limit timeout when handling try again in saflogtest [#2764]
    * log: fix to reject creating log streams with same file name in same CCB [#2752]
    * ais: disable slow decorator unit test in default [#2780]
    * msg: implement metadata size and limit fetch operations [#2626]
    * dtm: Re-try binding to handle IPv6 DAD race condition [#2596]
    * ntf: Update README for synchronization of readers [#2757]
    * ntftest: Add new test cases of suite 41 for cold sync and checkpoint of reader APIs [#2757]
    * ntfd: Cold sync reader to the standby ntfd after rebooting the standby controller [#2757]
    * ntfd: Checkpoint reader to the standby when processes reader API requests [#2757]
    * imm: immnd coredump during SYNC finalize [#2775]
    * osaf: add retry loop to IsWritable [#2774]
    * fmd: indent to Google style guide [#2763]
    * imm: removed extra OpenSafSmfConfig in xml [#2762]

OpenSAF 5.18.02 (released 2018-02-02)
-------------------------------------

    * ntf: Update README for synchronization of readers [#2757]
    * ntftest: Add new test cases of suite 41 for cold sync and checkpoint of reader APIs [#2757]
    * ntfd: Cold sync reader to the standby ntfd after rebooting the standby controller [#2757]
    * ntfd: Checkpoint reader to the standby when processes reader API requests [#2757]
    * imm: immnd coredump during SYNC finalize [#2775]
    * osaf: add retry loop to IsWritable [#2774]
    * nid: Use node address as node ID when slot_id is configured to zero [#2759]
    * imm: fix wrong printouts and incorrect behavior of immadm/immcfg [#2751]
    * doc: update README [#64]
    * fmd: update consensus service during controller failover [#64]
    * amfd: update consensus service when performing SI swap [#64]
    * rded: add split brain prevention support [#64]
    * osaf: add consensus API [#64]
    * imm: immnd asserts at veterans due to mismatched data during sync [#2748]
    * nid: Make chassis_id, slot_id and subslot_id in /etc/opensaf optional [#2758]
    * msg: Allow any unsigned 32-bit value to be used as Node ID [#2758]
    * lck: Allow any unsigned 32-bit value to be used as Node ID [#2758]
    * clm: Allow any unsigned 32-bit value to be used as Node ID [#2758]
    * ckpt: Allow any unsigned 32-bit value to be used as Node ID [#2758]
    * dtm: Derive Node ID from IPv4 address [#2758]
    * fmd: Wrong unit for FMS_NODE_ISOLATION_TIMEOUT in fmd.conf [#2761]
    * build: Add cpplint filter to allow unapproved C++11 header [#2760]
    * ntftest: Add new test case for cold sync of cached alarms [#2735]
    * ntfd: Add cached alarms for cold sync [#2735] Patch adds the alarm and security alarm notifications to cold sync towards the standby NTFD, increase mbcsv version to avoid confusion with old NTFD
    * pyosaf: change OM class names back to original names [#2683]
    * amfnd: Check UNASSIGNED CSI in csi assigment removal [#2741]
    * pyosaf: increase pyosaf utils version from 1.0.0 to 1.0.1 [#2683]
    * pyosaf: Fix some issues in NTF utils [#2682]
    * msg: Re-indent code after conversion to C++ [#2742]
    * fm: Remove code dealing with slot and subslot [#2742]
    * base: Remove code dealing with slot and subslot [#2742]
    * plm: Use Node ID instead of slot and subslot to identify a node [#2742]
    * msg: Use Node ID instead of slot and subslot to identify a node [#2742]
    * msg: Convert MSG agent to C++ [#2742]
    * imm: Use Node ID instead of slot and subslot to identify a node [#2742]
    * mds: Use Node ID instead of slot and subslot to identify a node [#2742]
    * ckpt: Use Node ID instead of slot and subslot to identify a node [#2742]
    * pyosaf: refactor IMM utils [#2683]
    * amfnd: do not retrieve runtime attributes [#2582]
    * plm: handle race condition for EE instantiation [#2514]
    * clm: add tryagain handle to clmtest [#2634]
    * clm: clmtest does not handle SA_AIS_ERR_TRY_AGAIN [#2634]
    * imm: fix IMMND assert at veteran nodes during SYNC [#2748]
    * experimental: make the passed values to SetAttributexxx copied
    * amfd: Avoid IMM reinitialization in OpenSAF components termination phase V2 [#2737]
    * fmd: convert to C++ [#2750]
    * plm: don't set readiness state to in-service if EE is terminating [#2734]
    * ntf: fix NtfAdmin is null [#2747]
    * imm: fix immnd restarted during SYNC finalize [#2749]
    * amfd: Avoid IMM reinitialization in OpenSAF components termination phase [#2737]
    * build: Add missing mkdir in toplevel Makefile.am [#2744]
    * ais: change default retry in decorator [#2743]
    * base: Clean up and remove dead code around ncs_get_node_id() [#2738]
    * clm: Use ncs_get_node_id() to read the Node ID [#2738]
    * mds: Use ncs_get_node_id() to read the Node ID [#2738]
    * imm: change log level for failing to send accept message [#2426]
    * pyosaf: Fix amf_demo python sample [#2685]
    * pyosaf: Refactor clm-tool sample to make use of new pyosaf utils [#2679]
    * base: create generic try-again handling decorator for AIS APIs [#2702]
    * ntf: fix ntfd remove client in standby node while not finalize in active node [#2705]
    * base: create generic try-again handling decorator for AIS APIs [#2702]
    * imm: Restore printout format in immxml tools to maintain backward compatibility [#2728]
    * plm: handle plmc clients which abruptly terminated [#2529]
    * dtm: Fix RPM build problem [#2709]
    * clmd: add dynamically created EEs to PLM entity group on standby [#2730]
    * dtm: Fix build problem with some versions of GCC [#2709]
    * dtm: Support pretty-printing OpenSAF logs using the osaflog command [#2709]
    * osaf: Flush OpenSAF internal log entries before rebooting [#2646]
    * dtm: Add flush command for writing buffered log messages to disk [#2646]
    * base: Add support for recvfrom and sendto operations on UnixSocket [#2646]
    * log: fix coredump when stop cluster [#2700]
    * osaf: add /sbin/shutdown to sudoers file in 00-README.conf [#2729]
    * mds: show extra tipc port id when install_tipc invoked [#2732]
    * clm: extend timeout to match immadm timeout [#2713]
    * plm: remove child EE info when given standby role [#2710]
    * smf: Fix handling of MDS events in smfnd [#2723]
    * plmd: fix mbc in PLM [#2724]
    * smf: Add MDS logging to smfd and smfnd [#2722]
    * msgd: fix double delete of node info [#2712]
    * plm: setup immutil wrapper profile [#2708]
    * base: Fix opensaf_scale_out script to handle binary arguments [#2703]
    * tools: Fix pylint and pep8 issues for tools written in Python [#2664]
    * base: Add KillMode=none to opensafd.service [#2706]

OpenSAF 5.17.11.1 (released 2017-11-28)
---------------------------------------

    * rde: Remove rda_get_role before rda_register_callback [#2687]
    * rde: Add current role in response of register request [#2687]
    * amfd: Add retry mechanism for ClmTrackStart/Stop as job queue V2 [#2631]
    * pyosaf: Create a pylint makefile target for pyosaf V2 [#2636]
    * base: Make pylint output format selectable V2 [#2686]
    * clm: Fix clm_user_data to not truncate data V2 [#2684]
    * pyosaf: add README for high level python interfaces [#2674]
    * base: Fix build problem on GCC 7.1.1 [#2637]
    * base: Send logtrace message in blocking mode to avoid dropped messages [#2637]
    * base: Add TimeoutStartSec to opensafd.service [#2678]
    * clm: clmprint does not work as expected [#2651]
    * nid: Correctly handle the case when OPENSAF_MANAGE_TIPC=no [#2680]
    * clm: WA Two active controllers observed at cluster [#2677]
    * clm: Fix unexpected join response error when executing immadm -o 4, 5 commands [#2661]
    * dtm: Fix segv in osafdtmd [#2669]
    * imm: update README with IMM changes in OpenSAF 5.17.11 and rename IMM schema [#2665]

OpenSAF 5.17.11 (released 2017-11-03)
-------------------------------------

    * clm: fix RPM build [#2649]
    * amfnd: fix segv in ncs_tmr_stop V2 [#2658]
    * clm: fix the build on 32-bit linux caused #2649 [#2649]
    * clm: Call opensaf_reboot_prepare() so that fallback reboot will work [#2542]
    * base: Use fallback reboot when safe reboot fails [#2542]
    * osaf: Divide the safe reboot into two phases [#2542]
    * log: fix invalid write reported by valgrind in logtest [#2657]
    * pyosaf: High level python interfaces for IMM [#2602]
    * pyosaf: High level python interfaces for NTF [#2602]
    * pyosaf: High level python interfaces for LOG [#2602]
    * pyosaf: High level python interfaces for CLM [#2602]
    * clm: fix for test.sh problem caused by patch for #2649 [#2649]
    * clm: add new admin operations [#2649]
    * dtm: Use multiple backup files when rotating trace log files [#2638]
    * dtm: Always call the configure_tipc script [#2653]
    * nid: Derive node ID from TIPC address when not managing TIPC [#2653]
    * amf: Buffer and resend data req messages in Headless state [#2601]
    * clm: fix return wrong error code [#2652]
    * amfnd: store pid before sending event [#2650]
    * clm: fix errors in clmprint tool [#2651]
    * ckptnd: fix crash during checkpoint open timeout with large sections [#1510]
    * ntf: Add support for code coverage to ntfimcn [#2623]
    * smf: smf: Upgrade nodes without using node group [#2592]
    * msg: allow real "const SaNameT" to be used in API calls [#2630]
    * ntf: Add support for code coverage to ntfimcn [#2623]
    * pyosaf: Fix various pylint and PEP8 issues of pyosaf utils [#2603]
    * amfnd: Add more details for synced SU, SISU from node director [#2575]
    * smf: coredump and syslog flood after immnd crash [#2441]
    * log: update target log file location [#2635]
    * amf: immxml-configure utility (tool) is failing with UTF-8 encoding [#2632]
    * base: Use the OpenSAF internal log service for trace [#2165]
    * base: Convert logtrace to C++ [#2165]
    * dtm: Support multiple OpenSAF internal log streams [#2165]
    * base: Add missing include for osaf_gcov.h in Makefile.am [#2620]
    * amfnd: change log level to notice for events during node failover/shutdown [#2605]
    * amf: improve error checking and display [#2628]
    * amf: fix whitespace issues [#2628]
    * base: Add IPv6 support to gcov collect [#2620]
    * pyosaf: retry SAF initialize() function with original version [#2524]
    * ckpt: add timeout handling for test_ckptOverwrite [#2624]
    * pyosaf: Raise ValueError instead NoneType Exception [#1410]
    * msg: don't create cache entry if operation is delete [#2619]
    * base: double start failed [#2622]
    * dtm: Add support for using IP unicast to discover nodes [#991]
    * dtm: Extract Multicast class for node discovery message handling [#991]
    * osaf: create C++ abstractions of AIS C APIs for IMM [#2558]
    * smf: Upgrade failed due to CCB aborted by imm sync request [#2584]
    * clm: Add user data in CLMSV_CLUSTER_JOIN_REQ message V2 [#2590]
    * log: fix test case logtest 5 2 failed due to logsv is busy [#2600]
    * amf: Allow SI and SI Dependency object to be deleted in same ccb [#2585]
    * uml: Add support for IPv6 and update Linux version [#2593]
    * amf: Improve SC status change callback style [#2594]
    * smf: Upgrade failed due to CCB aborted by imm sync request [#2584]
    * amfd: Add routine find_instantiable_same_rank_su as part of SG class [#2462]
    * amfd: choose unlocked instantiable SU for instantiation [#2462]
    * log: corrected parsing of command logtest with option -e [#2121]
    * ntf: correct return code is returned [#2039]
    * pyosaf: Make pyosaf:::immom::initialize() consistent with other modules [#2533]
    * amf: ensure we do not reuse version when calling OpenSAF init functions [#2587]
    * ntf: fix incorrect handling of version when initializing OpenSAF APIs in ntf service [#2517]
    * log: fix incorrect handling of version when initializing OpenSAF APIs [#2516]
    * imm: Don't call exit() in IMM library [#2604]
    * log: remove duplicated code in lga_client and lga_stream [#2567]
    * amfd: remove node_up variable from AVD_AVND [#2595]
    * imm: Update admo id after resurrecting [#2591]
    * osaf: Add gcov support [#2589]
    * smf: execLevel for balanced upgrades [#2555]
    * mds: Improve log message at tipc overload [#2574]
    * smf: try to wait for opensafd status before reboot [#2464]
    * imm: Don't allow setting new admo name when object is in a critical CCB [#2576]
    * imm: remove disconnected appliers [#2579]
    * plm: fix systemd files for plm and opensaf [#2581]
    * amf: Fix incorrect su failover recovery after sc absence [#2569]
    * mds: supervise receive thread throughput [#2570]
    * amfd: harden completed and apply delete callbacks [#2566]
    * log: fix log server fail to start with old IMM model [#2580]
    * amfd: Fix compilation error with gcc version > 6.3 [#2577]
    * amf: Fix amf_demo program compilation error [#2578]
    * amfnd: fix opensaf shutdown and active monitoring failure [#2493]
    * imm: Validate input invocation for saImmOiAdminOperationResult [#2571]
    * imm: Regenerate PBE on SQLITE_CORRUPT and SQLITE_MISMATCH [#2573]
    * dtm: Fix build problem on some systems [#2553]
    * amfd: update SI assignment state when SU is added or removed [#2269]
    * dtm: Re-indent DTM after conversion to C++ [#2553]
    * dtm: Convert DTM to C++ [#2553]
    * amfd: honor PrefAssignedSU in nway and nway active model during assignments [#2269]
    * build: Add an experimental directory for new code and features [#2563]
    * smf: fix to avoid core dump during smf upgrade while imm sync [#2550]
    * amfd: postpone deletion of node from node_id_db [#2547]
    * amf: add api test cases for sc status change callback [#2475]
    * amf: add sample apps for SC status change callback [#2475]
    * amf: support SC status change callback, non SAF [#2475]
    * amf: update readme for SC status change callback [#2475]
    * amfa: return BAD HANDLE in error report or error clear [#248]
    * amfnd: remove incorrect assertion [#2565]
    * amfnd: convert dnd_list to a vector [#1945]
    * dtm: Re-factor the inter-node receive logic [#2554]
    * imm: change log level from error to warning in PBE [#2559]
    * amfa: Fix saAmfComponentErrorClear_4 to return ERR_NOT_EXIST for non-exist comp [#2540]
    * imm: fix immnd coredump due to initialized CLM handle [#2549]
    * dtm: Support clusters with more than one hundred nodes [#2240]
    * imm: regenerate PBE in verifyClassPBE only if database is corrupted [#2491]
    * imm: include CLM in poll before CLM handle is initialized [#2544]
    * dtmd: send broadcast messages after initial discovery [#2522]
    * amfa: Fix saAmfPmStart_3 and saAmfResponse_4 to correctly return BAD_HANDLE [#2539]
    * log: fix cppcheck, cpplint and reorganize headers - part 1 [#2445]
    * dtmd: change log wording [#2030]
    * rde: Avoid sending messages to peers that are not up [#2488]
    * dtmd: fix uninitialized memory errors and crashes when deleting nodes [#2545]
    * log: fix log supported maximum 2047 characters for long DN [#2525]
    * log: fix referring to uninitialized variable caused assertion failed [#2546]
    *  amf: add option for controller status in amfclusterstatus [#2536]
    * base: Fix GCC 7.1.1 build error [#2535]
    * clm: Provide the node address as a parameter to the scale-out script [#2538]
    * clm: Include boot time and node address in join request message [#2489]
    * base: Add osaf_get_boot_time and osaf_timespec_average functions [#2535]
    * amfd: Do not create duplicated HA state absent SUSI [#2530]
    * clm: add clm tool for tracking and for getting node info [#2429]
    * base: Corrected service name for rde [#2519]
    * clm: Make it possible for a node to scale out itself using autoscaling [#2509]
    * ntf: Re-try initializing CLM on unconfigured nodes [#2509]
    * log: Re-try initializing CLM on unconfigured nodes [#2509]
    * amf: Log CLM initialization error only once on unconfigured nodes [#2509]
    * log: fix coredump generated by referencing to un-initialized pointer [#2534]
    * pyosaf: Fix RPM build failure [#2492]
    * clm: increase poll timeout for saClmClusterTrack tests [#2531]
    * clm: handle ERR_BAD_HANDLE for saImmOmSearchInitialize [#2528]
    * smf: no node locking when procedures are empty [#2521]
    * imm: regenerate PBE on SQL constraint error [#2527]
    * clm: make CLM tests independent of other CLM tests [#2520]
    * plmd: allow dynamic creation of EE when EE is parent [#2483]
    * plm: make plmc work with systemd [#2507]
    * clmd: update saClmNodeCurrAddress and saClmNodeCurrAddressFamily in IMM V2 [#2331]
    * amfd: Avoid to create duplicated 2N ACTIVE SUSI for absent assignment V2 [#2477]
    * amfd: increase msg priority for node ups [#2510]
    * plmd: don't reset VM if it is ourself, when parent is instantiated [#2482]
    * ntfd: Merge 2 fixes of mutex destroy issue [#2508]
    * ntfd: Revert commit 3c8031a10e3082ccfbff135142b9e18c5814ed4c [#2508]
    * log: update test case logtest 2 51 [#2515]
    * imm: send imm finalize message to immnd when dispatch returns ERR_BAD_HANDLE [#2504]
    * ntfd: Ensure mutex is not taken after cnsurvail_thread is canceled V2 [#2508]
    * amfd: Do not log warning when create (or delete) a existed(or nonexisted) SUSI [#2467]

OpenSAF 5.17.07 (released 2017-07-27)
-------------------------------------

    * log: fix coredump generated by referencing to un-initialized pointer [#2534]
    * pyosaf: Fix RPM build failure [#2492]
    * clm: increase poll timeout for saClmClusterTrack tests [#2531]
    * clm: handle ERR_BAD_HANDLE for saImmOmSearchInitialize [#2528]
    * imm: regenerate PBE on SQL constraint error [#2527]
    * clm: make CLM tests independent of other CLM tests [#2520]
    * amfd: Avoid to create duplicated 2N ACTIVE SUSI for absent assignment V2 [#2477]
    * amfd: increase msg priority for node ups [#2510]
    * ntfd: Merge 2 fixes of mutex destroy issue [#2508]
    * ntfd: Revert commit b232f6df3ce5d6edf07af92eca316a7d3fae6d73 [#2508]
    * log: update test case logtest 2 51 [#2515]
    * imm: send imm finalize message to immnd when dispatch returns ERR_BAD_HANDLE [#2504]
    * ntfd: Ensure mutex is not taken after cnsurvail_thread is canceled V2 [#2508]
    * amfd: Do not log warning when create (or delete) a existed(or nonexisted) SUSI [#2467]
    * ntf: Test cases fail on SC nodes [#2505]
    * ntf: ntfimcn does not handle SA_ERR_UNAVAILABLE [#2506]
    * smf: 20 seconds timeout in getting node destination is not enough [#2499]
    * pyosaf: Ensure compatibility with Python 3 [#2492]
    * ntf: ntfimcn does not handle SA_ERR_UNAVAILABLE [#2506]
    * build: Fix RPM build failure [#2472]
    * build: Move all AIS C header files to a common subdirectory under src [#2472]
    * osaf: Fix build problems when using GCC 7.1.1 [#2502]
    * rde: allow early role change when active or standby nodes are introduced [#2513]
    * clmtest: update non-member node_id for new test environment [#2512]
    * amfnd: retry on ERR_NOT_EXIST [#2490]
    * amfd: Accept ERR_NOT_EXIST on stopping track callback [#2469]
    * imm: fix counting timeouts for old critical CCBs [#2495]
    * imm: remove vector clearing for dead implementers, nodes and admin owners in objectSync [#2481]
    * imm: change log level from error to warning when ERR_TRY_AGAIN is returned [#2465]
    * rde: save peer role on peer info request message [#2423]
    * amfd: maintain node attributes in imm job queue at standby [#2494]
    * amfd: skip unassigned SUSIs in SU for updating saAmfSUAssignedSIs [#2496]
    * base: Try again for opensafd stop [#2459]
    * imm: change log level from error to warning when ERR_TRY_AGAIN is returned [#2465]
    * clmtest: correct independent test cases [#2497]
    * osaf: Support DESTDIR when installing OpenSAF samples [#2460]
    * imm: fix counting timeouts for old critical CCBs [#2495]
    * imm: Allow stale clients to be discarded when going to headless [#2487]
    * amfnd: Send pending susi response message after restarting component finishes [#2485]
    * imm: remove vector clearing for dead implementers, nodes and admin owners in objectSync [#2481]
    * test: improve fail report of multiple test_validate [#2486]
    * log: fix log agent use hard-coded version when recovering log client [#2457]
    * immtest: Explicitly clear implementer name in OI long DN testcases [#2484]
    * imm: Clear mLastResult before sending response to agent [#2470]
    * clmtest: Correct test case following AIS [#2478]
    * mds: clear mds lib valgrind warning [#2474]
    * base: Atomically create pid file from temporary pid file V2 [#2432]
    * amfnd: Only report OperState in SURestart recovery if su is under SMF maintenance campaign [#2476]
    * msg: resurrect msg tests [#2455]
    * imm: Discard Adm Impl continuation and Search Impl continuation when peer IMMND is down [#2461]
    * imm: Clear dead IMMND info before switching to ACTIVE role [#2418]
    * log: refactor log agent - 2nd increment [#2412]
    * amfd: do not assert unnecessarily [#2458]
    * amfd: only increment su_cnt_admin_oper for non-opensaf SUs [#2466]
    * ntf: ntftest to check longDnsAllowed to run or skip suite 35 [#2463]
    * lck: implement saLckLimitGet [#2425]
    * log: process TRY AGAIN in logtest 2 40 and logtest 2 41 [#2453]
    * imm: Skip sending re-intro message if IMMD is not up [#2447]
    * imm: Remove CcbErrStrings that are set only on nodes with OI/PBE [#2446]
    * amfnd: Buffered not-ack susi assignment response after both SC go down V2 [#2105]
    * rde: save peer role on peer info request message [#2423]
    * amf: send oper_state when NCS SUs already instantiated [#2443]
    * msg: resurrect apitests [#2455]
    * amfd: Check IMM service status before use IMM call [#2416]
    * clm: add tool commands clm-adm, clm-state, clm-find [#2394]
    * amfnd: Ignore susi_assign_evh while active amfd is down [#2416]
    * amfd: Make creation and deletion of assignment object as IMM synced call [#2416]
    * amfd: Add iteration to failover all absent assignments [#2416]
    * amfnd: Ignore susi_assign_evh while active amfd is down [#2416]
    * amfd: Make creation and deletion of assignment object as IMM synced call [#2416]
    * amfd: Add iteration to failover all absent assignments [#2416]
    * log: correct mutex lock and unlock sequence in logd [#2452]
    * lckd: fix return values when creating IMM runtime object [#202]
    * lck: integrate LCK with CLM [#2390]
    * amf: support amf tool command to know AMF cluster/nodes status [#2354]
    * doc: update general and AMF readme files [#2435]
    * lck: integrate LCK with CLM [#2390]
    * amfnd: Ignore second NCSMDS_DOWN [#2436]
    * smf: updated the imm API vesrion to latest supported [#2431]
    * amfd: make auto repair restriction configurable [#2435]
    * log: generate hash only if having destination name set [#2438]
    * amfnd: Fix illegal memory access in avnd_comptype_delete [#2424]
    * base: Blocking send causes AMF health check time-out [#2278]
    * smf: Attribute value handling in longDn applier is incorrect [#2442]
    * log: fix checkpoint dest_names in open stream request [#2434]
    * base: Blocking send causes AMF health check time-out [#2278]
    * imm: Improve ccb error string handling [#2367]
    * smf: cli-command does not wait for nodes to start [#1969]
    * lcknd: fix deadlock issues when lcknd restarts [#2430]
    * imm: Ignore the sync'ed IMMND nodes that are not up [#2418]
    * log: refactor log agent [#2412]
    * imm: Add more details to no dangling CcbErrorString [#2433]
    * amfd: allow nodeswbundle deletion if anyone of Node, SU or SG is locked_in [#2421]
    * clms: return TIME_OUT for unlock op if CLMS update to CLM agent fails [#2381]
    * cpd: to correct failover behavior of cpsv [#1765]
    * imm: Use waitpid with WNOHANG to check for sync process and pbe process [#2420]
    * samples: fix $piddir undefined in amf_demo_script [#2410]
    * log: fix race condition in share file system [#2383]
    * amfd: Job queue differentiation [#2376]
    * amf: Handle node_down message [#2376] V2
    * amf: Replace unused message SHUTDOWN_APP_SU_MSG for NODE_DOWN_MSG [#2376]
    * log: fix log file size not reset to zero when creating [#1439]
    * imm: Check if response is NULL when sending MDS sync message [#2401]
    * amfd: Job queue differentiation [#2376]
    * amf: Handle node_down message [#2376] V2
    * Merge branch 'ticket-2376' into develop
    * amf: Replace unused message SHUTDOWN_APP_SU_MSG for NODE_DOWN_MSG [#2376]
    * imm: Fixed memory leak in imm_cfg.c [#2408]
