CI: Add silent cmake SonarCloud scan
[ric-plt/lib/rmr.git] / docs / rel-notes.rst
index bcbd826..06f5f58 100644 (file)
-.. This work is licensed under a Creative Commons Attribution 4.0 International License. 
-.. SPDX-License-Identifier: CC-BY-4.0 
-.. CAUTION: this document is generated from source in doc/src/rtd. 
-.. To make changes edit the source and recompile the document. 
-.. Do NOT make changes directly to .rst or .md files. 
-RMR Release Notes 
-============================================================================================ 
-The following is a list of release highlights for the core 
-RMR library and wrappers which are housed in the same 
-repository. These are extracted directly from the 
-CHANGES_*.txt files at the repo root; please refer to those 
-files for a completely up to date listing of API changes (as 
-generated documents may lag). 
-The RMR repo houses two distinct release entities: the core 
-RMR package and the python wrapper package. To avoid naming 
-conflicts (tags mostly) The core package uses odd major 
-version numbers (e.g. 3.2.1) and the wrapper package uses 
-even major version numbers. The release notes are split into 
-two sections; please be sure to scroll to the section that is 
-appropriate. 
-Core RMR Changes 
--------------------------------------------------------------------------------------------- 
-2020 April 2; version 3.6.5 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct potential nil pointer use when examining interfaces 
-for use as a listen target (RIC-307) 
-2020 April 1; version 3.6.4 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct potential nil pointer use in the NNG interface 
-(RIC-303) Correct issue preventing CI build without a 
-container 
-2020 March 30; version 3.6.3 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct the max receive message size constant in rmr.h 
-(RIC-301) 
-2020 March 23; version 3.6.2 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix message initialisation bug when pulling a message from 
-the pool (RIC-295) 
-2020 March 19; version 3.6.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix problem with RPM package install 
-2020 March 18; version 3.6.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add message types to support traffic steering 
-2020 March 16; version 3.5.2 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct bug in the meid table parser that prevented the 
-ack/nack of meid tables (RIC-273) 
-2020 March 10; version 3.5.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add missing health check message types. 
-2020 March 9; version 3.5.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Added new wormhole send function: rmr_wh_call(). 
-2020 March 6; version 3.4.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add new wormhole state function: rmr_wh_state(). 
-2020 March 5; Version 3.3.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct several "bugs" identified by automatic code analysis. 
-2020 March 4; Version 3.3.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add SI95 based unit testing Health check support binary added 
-(reason for minor bump) 
-2020 February 26; version 3.2.5 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix source address bug in SI95 receive/send funcitons. Fix 
-threading issues involving session disconnection in SI95 
-Remove unused SI95 status variable. 
-2020 February 24; version 3.2.4 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix meid bug (RIC-220) causing core dump. 
-2020 February 21; version 3.2.3 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add meid routing support to the SI95 interface. 
-2020 February 20; version 3.2.2 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix receive thread related core dump (ring early unlock). 
-2020 February 19; version 3.2.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Added missing message types (E2-Setup) 
-2020 February 18; version 3.2.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Added support for new Route Manager and it's ability to 
-accept a request for table update. 
-2020 February 14; version 3.1.3 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix bug in SIsend which was causing a core dump in some cases 
-where the application attempted to send on a connection that 
-had disconnected. (RIC-207). 
-2020 February 6; version 3.1.2 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix disconnection detection bug in interface to SI95. 
-2020 January 31; verison 3.1.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Allow route table thread logging to be completely disabled 
-when logging is turned off. 
-2020 January 26; verison 3.1.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-First step to allowing the user programme to control messages 
-written to standard error. Introduces the rmr_set_vlevel() 
-function, and related environment variable. 
-2020 January 24; verison 3.0.5 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix bug in SI95 with receive buffer allocation. 
-2020 January 23; verison 3.0.4 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix bug in SI95 causing excessive CPU usage on poll. 
-2020 January 22; verison 3.0.3 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Enable thread support for multiple receive threads. 
-2020 January 21; verison 3.0.2 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix bug in SI95 (missing reallocate payload function). 
-2020 January 20; verison 3.0.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Enable support for dynamic route table updates via RMR 
-session. 
-2020 January 16; version 3.0.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Introduce support for SI95 transport library to replace NNG. 
-(RMR library versions will use leading odd numbers to avoid 
-tag collisions with the wrapper tags which will use even 
-numbers.) 
-2019 December 9; version 1.13.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct documentation and missing rel-notes update for RTD. 
-2019 December 6; version 1.13.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add ability to route messages based on the MEID in a message 
-combined with the message type/subscription-ID. 
-2019 November 14; version 1.11.1 (Amber) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix bug in payload reallocation function; correct length of 
-payload was not always copied. 
-2019 November 13; version 1.12.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-New message type constants added to support A1. 
-2019 November 4; version 1.11.0 (Amber) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Version bump to move away from the 1.10.* to distinguish 
-between release A and the trial. 
-2019 November 7; version 1.12.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Version cut to support continued development for next release 
-preserving the 1.11.* versions for release 1 (Amber) and 
-related fixes. 
-2019 October 31; version 1.10.2 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Provide the means to increase the payload size of a received 
-message without losing the data needed to use the 
-rmr_rts_msg() funciton. 
-2019 October 21; version 1.10.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix to prevent null message buffer from being returned by the 
-timeout receive function if the function is passed one to 
-reuse. 
-2019 October 21; version 1.10.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add periodic dump of send count info to stderr. 
-2019 September 27; version 1.9.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Python bindings added receive all queued function and 
-corrected a unit test 
-2019 September 25; version 1.8.3 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct application level test issue causing timing problems 
-during jenkins verification testing at command and merge 
-Handle the NNG connection shutdown status which may now be 
-generated when a connection throug a proxy is reset. 
-2019 September 25; version 1.8.2 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct bug in rmr_torcv_msg() when timeout set to zero (0). 
-2019 September 19; version 1.8.1 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Correct missing constant for wrappers. 
-2019 September 19; version 1.8.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-New message types added: RAN_CONNECTED, RAN_RESTARTED, 
-RAN_RECONFIGURED 
-2019 September 17; version 1.7.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Initial connection mode now defaults to asynchronous. Set 
-RMR_ASYNC_CONN=0 in the environment before rmr_init() is 
-invoked to revert to synchronous first TCP connections. 
-(Recovery connection attempts have always been asynchronous). 
-2019 September 3; version 1.6.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix bug in the rmr_rts_msg() function. If a return to sender 
-message failed, the source IP address was not correctly 
-adjusted and could cause the message to be "reflected" back 
-to the sender on a retry. 
-Added the ability to set the source "ID" via an environment 
-var (RMR_SRC_ID). When present in the environment, the string 
-will be placed in to the message header as the source and 
-thus be used by an application calling rmr_rts_smg() to 
-return a response to the sender. If this environment variable 
-is not present, the host name (original behaviour) is used. 
-2019 August 26; version 1.4.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-New message types were added. 
-2019 August 16; version 1.3.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-New mesage types added. 
-2019 August 13; version 1.2.0 (API change, non-breaking) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-The function rmr_get_xact() was added to proide a convenient 
-way to extract the transaction field from a message. 
-2019 August 8; version 1.1.0 (API change) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-This change should be backward compatable/non-breaking A new 
-field has been added to the message buffer (rmr_mbuf_t). This 
-field (tp_state) is used to communicate the errno value that 
-the transport mechanism might set during send and/or receive 
-operations. C programmes should continue to use errno 
-directly, but in some environments wrappers may not be able 
-to access errno and this provides the value to them. See the 
-rmr_alloc_msg manual page for more details. 
-2019 August 6; version 1.0.45 (build changes) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Support for the Nanomsg transport library has been dropped. 
-The library librmr.* will no longer be included in packages. 
-Packages will install RMR libraries into the system preferred 
-target directory. On some systems this is /usr/local/lib and 
-on others it is /usr/local/lib64. The diretory is determined 
-by the sytem on which the package is built and NOT by the 
-system installing the package, so it's possible that the RMR 
-libraries end up in a strange location if the .deb or .rpm 
-file was generated on a Linux flavour that has a different 
-preference than the one where the package is installed. 
-2019 August 6; version 1.0.44 (API change) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Added a new message type constant. 
-2019 July 15; Version 1.0.39 (bug fix) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Prevent unnecessary usleep in retry loop. 
-2019 July 12; Version 1.0.38 (API change) 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Added new message types to RIC_message_types.h. 
-2019 July 11; Version 1.0.37 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-librmr and librmr_nng - Add message buffer API function 
-rmr_trace_ref() (see rmr_trace_ref.3 manual page in dev 
-package). 
-Wrapper Changes 
--------------------------------------------------------------------------------------------- 
-2020 February 29; Version 2.4.0 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Add consolidated testing under CMake Add support binary for 
-health check (SI95 only) 
-2020 February 28; Version 2.3.6 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-Fix bug in Rt. Mgr comm which prevented table ID from being 
-sent on ack message (RIC-232). 
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. CAUTION: this document is generated from source in doc/src/rtd.
+.. To make changes edit the source and recompile the document.
+.. Do NOT make changes directly to .rst or .md files.
+
+============================================================================================
+RMR Release Notes
+============================================================================================
+
+
+RMR Release Notes
+=================
+
+The following is a list of release highlights for the RMR
+library. At one point in time the RMR repo also housed a
+wrapper library with a separate version and release cycle.
+This resulted in *leap frogging* versions for each package;
+the RMR core library was assigned odd major numbers (e.g.
+3.1.0). When the wrapper code was moved to a different repo
+the need to leap frog versions ceased, and beginning with
+version 4.0.0, the RMR versions should no longer skip.
+
+2023 Dec 13; version 4.9.4
+------------------------------
+
+same as 4.9.3
+
+2023 Dec 12; version 4.9.3
+------------------------------
+
+Fixes for CVE-2023-40998 (RIC-989) and CVE-2023-40997 (RIC-991)
+related to incorrect parsing of RMR messages
+
+2023 Oct 4; version 4.9.2
+------------------------------
+
+Fixes some stability issues seen during route table update.
+Dont allow clean old_rtable until it's reference count is really 0.
+Added more faster recognition for connect failure so route table
+update will not stuck so long in preparing new rtable.
+rtgate lock is not needed to init and destroy continouosly.
+
+
+2023 May 28; version 4.9.1
+------------------------------
+
+Fixes IPv6 binding in RMR (RIC-985)
+
+
+2023 Feb 14; version 4.9.0
+------------------------------
+
+Added new message type for subscription delete required
+
+
+2022 Nov 10; version 4.8.5
+------------------------------
+
+Fixes for errors detected by source code scanning (RIC-939)
+
+
+2022 May 11; version 4.8.3
+------------------------------
+
+Added header definitions for config transfer messages (RIC-638)
+
+
+2022 January 17; version 4.8.2
+------------------------------
+
+Fixes routing statistics printout crash (RIC-872).
+
+
+
+2022 January 7; version 4.8.1
+------------------------------
+
+Re-enables RMR libary's module tests (RIC-861).
+Creates a new unit test for the debugging rmr rx queue API.
+Fixes some bugs and possible memory likeage in SI95 code.
+
+
+
+2021 December 2; version 4.8.0
+------------------------------
+
+Fixing memory leak in python support function (RIC-858).
+New API added for debugging rmr rx queue (RIC-838).
+
+
+
+2021 April 22; version 4.7.4
+----------------------------
+
+Beef up unit testing in SI package and fix a few static
+analysis bugs. (RIC-777)
+
+
+
+2021 April 19; version 4.7.3
+----------------------------
+
+Correct flag check bug in route table functions (RIC-777).
+
+
+
+2021 April 9; version 4.7.2
+---------------------------
+
+Ensure that route table update received from route generator
+is not applied before a full route table is received.
+
+
+
+2021 April 2; version 4.7.1
+---------------------------
+
+Correct issues found during static code analysis.
+
+
+
+2021 March 31; version 4.7.0
+----------------------------
+
+The route table collector thread will capture the current
+"offering" from the Route Manager (table generator) if the
+RMR_SEED_RT environment variable is set.
+
+
+
+2021 March 10; version 4.6.1
+----------------------------
+
+Corrected unit test "framework" to make manual testing
+easier, and to add the ability to set the code optimisation
+level via the CMake command line parameter OPT_LEVEL=n.
+
+
+
+2021 February 22; Version 4.6.0
+-------------------------------
+
+Enhanced to use millisecond based timestamps when writing log
+messages. (RIC-627)
+
+Enhanced to eliminate the reqirement that the file specified
+by the RMR_VCTL_FILE environment variable exist when RMR is
+initialised. RMR will correctly find this file if it is
+created after initialisation. Further, if the environment
+variable is not given, the user may create and populate
+/tmp/rmr.v at any time and the contents of this file will be
+used as if it were supplied via the environment variable.
+This should make debugging in existing containers easier.
+
+Enhanced to send an alarm manager when the user application
+is not receiving messages fast enough. The original messages
+written to the standard error are still generated. (RIC-204)
+
+
+
+2021 January 21; Version 4.5.2
+------------------------------
+
+Fixes the excessive TCP session bug when sending to a slow
+receiver and a related segment fault because of too many open
+file descriptors. (RIC-735)
+
+
+
+2021 January 19; Version 4.5.1
+------------------------------
+
+Version bump to work round a CI job bug preventing push of
+the 4.5.0 packages from staging to release in package cloud.
+(RIC-732)
+
+
+
+2021 January 8; Version 4.5.0
+-----------------------------
+
+Version bump for next release tracking. Corrected a potential
+locking issue in message allocation. (RIC-732)
+
+
+
+Cherry Release
+==============
+
+
+
+2020 December 4; Version 4.4.6
+------------------------------
+
+Correct a range check bug when cloning a route table in prep
+to load a new one. (RIC-720)
+
+
+
+2020 November 17; Version 4.4.5
+-------------------------------
+
+Correct bug in round robin group allocation that could lead
+to an empty group. (RIC-695)
+
+
+
+2020 November 13; Version 4.4.4
+-------------------------------
+
+Correct address memory leak in the RTE cleanup. (RIC-674)
+
+
+
+2020 November 4; Version 4.4.3
+------------------------------
+
+Correct bug introduced with race fix (4.4.0) (RIC-674)
+
+
+
+2020 November 4; Version 4.4.2
+------------------------------
+
+Changes to correct more complaints generated by a code scan.
+(RIC-673) Also addressed some sonar coverage issues with unit
+test changes.
+
+
+
+2020 November 4; Version 4.4.1
+------------------------------
+
+Changes to correct complaints generated by a code scan.
+(RIC-673)
+
+
+
+2020 November 4; Version 4.4.0
+------------------------------
+
+Changes to address a potential race condition when route
+tables arrive in quick succession. (RIC-674)
+
+
+
+2020 October 30; Version 4.3.1
+------------------------------
+
+Changes to address code analyser scans and two bug fixes
+identified while addressing the analysis data. (RIC-673)
+
+
+
+2020 October 2; Version 4.3.0
+-----------------------------
+
+Add message types for traffic steering anomaly messages
+
+
+
+2020 September 15; Version 4.2.4
+--------------------------------
+
+Add man page for the rmr_set_low_latency() function (RIC-631)
+
+
+
+2020 September 15; Version 4.2.3
+--------------------------------
+
+Correct arg processing bug in rmr_rpobe (RIC-645)
+
+
+
+2020 August 4; Version 4.2.2
+----------------------------
+
+Correct bug in the rmr_probe support utility when -r option
+is used on the command line (RIC-644)
+
+
+
+2020 August 4; Version 4.2.1
+----------------------------
+
+Add additional environment variable dump if RMR_LOG_VLEVEL
+set to 4 at start.
+
+
+
+2020 August 3; Version 4.2.0
+----------------------------
+
+Add support for the RMR_RTREQ_FREQ environment variable to
+control the request frequency for a new route table (default
+5s if not supplied). (RIC-630)
+
+
+
+2020 July 21; Version 4.1.4
+---------------------------
+
+Fix bug in SI95 -- possible use of pointer after free
+(RIC-626).
+
+
+
+2020 July 9; version 4.1.3
+--------------------------
+
+Allow RTS messages to be sent before the arrival of the
+initial route table. Calls to RTS (heart beat responses)
+prior to the initial route table load could cause a crash if
+a framework blindly assumes that RTS is valid. (RIC-589)
+
+
+
+2020 June 22; version 4.1.2
+---------------------------
+
+Fix typo in RIC Message header file.
+
+Add document for message type constants and the scripts which
+generate them.
+
+
+
+2020 June 22; version 4.1.1
+---------------------------
+
+Add new message types to RIC header file for
+    RIC_ALARM           (110)
+    RIC_ALARM_QUERY     (111)
+    RIC_METRICS         (120)
+    RAN_E2_RESET_REQ    (12008)
+    RAN_E2_RESET_RESP   (12009)
+
+
+
+2020 June 18; version 4.1.0
+---------------------------
+
+Bump version minor to move away from 4.0.* which will bump
+for any patches applied back to bronze.
+
+Add magic C++ goo to symtab header file allowing C++ xAPPs to
+use the symbol table directly.
+
+
+
+Bronze Release
+==============
+
+
+
+2020 May 06; version 4.0.5
+--------------------------
+
+Fix the bug in SI95 receive message management semaphore
+count issue. (RIC-355)
+
+
+
+2020 April 29; version 4.0.4
+----------------------------
+
+Fix the traffic steering message type constants (again)
+(RIC-342)
+
+
+
+2020 April 28; version 4.0.3
+----------------------------
+
+Fix sonar flagged bugs (RIC-78)
+
+
+
+2020 April 24; version 4.0.2
+----------------------------
+
+Correct bug in SI95 transport header length validation
+(RIC-341)
+
+
+
+2020 April 22; version 4.0.1
+----------------------------
+
+Correct message type constant for Traffic Steering
+predication (RIC-342)
+
+
+
+2020 April 21; version 4.0.0
+----------------------------
+
+The NNG based libraries are no longer included in the RMR
+packages. This is considered a breaking change as NNG will
+not be supported by default. It is still possible to build
+with RMR-NNG libraries, but that is the exception. The API
+between 3.8.2 and 4.0.0 is the SAME. Upgrading to 4.0.0 only
+means that the underlying transport mechanism is limited only
+to SI95.
+
+The rmr_rcv_specific() function has been deprecated as it was
+necessary only for NNG and Nanomsg support. Its use should be
+discontinued.
+
+
+
+2020 April 20; version 3.8.2
+----------------------------
+
+Fix bug which was preventing an instance receiving dynamic
+route table updates. (RIC-336)
+
+
+
+2020 April 20; version 3.8.1
+----------------------------
+
+Add user guide which replaces the concatenation of man pages
+(RIC-328)
+
+
+
+2020 April 17; version 3.8.0
+----------------------------
+
+Add safe connect to avoid potential connect bug on Linux
+(RIC-332)
+
+Change debugging in route table collector to avoid possible
+segment fault when in level 2 debug (RIC-335)
+
+
+
+2020 April 15; version 3.7.4
+----------------------------
+
+Add missing message type to header file (RIC-334)
+
+
+
+2020 April 14; version 3.7.3
+----------------------------
+
+Fix bug in rmr_call() when using SI95 (RIC-333)
+
+
+
+2020 April 10; version 3.7.2
+----------------------------
+
+Fix bug related to static route table only mode (RIC-331)
+
+
+
+2020 April 9; version 3.7.1
+---------------------------
+
+The max length restriction for receiving messages when using
+SI95 has been removed. The length supplied during
+initialisation is used as the "normal maximum" and default
+buffer allocation size, but messages arriving which are
+larger are accepted. (RIC-309)
+
+
+
+2020 April 7; version 3.7.0
+---------------------------
+
+The health check support programme was renamed to rmr_probe
+(RIC-308).
+
+
+
+2020 April 6; version 3.6.6
+---------------------------
+
+Correct bug in SI95 address conversion module (RIC-327)
+Correct bug in SI initialisation module
+
+
+
+2020 April 2; version 3.6.5
+---------------------------
+
+Correct potential nil pointer use when examining interfaces
+for use as a listen target (RIC-307)
+
+
+
+2020 April 1; version 3.6.4
+---------------------------
+
+Correct potential nil pointer use in the NNG interface
+(RIC-303) Correct issue preventing CI build without a
+container
+
+
+
+2020 March 30; version 3.6.3
+----------------------------
+
+Correct the max receive message size constant in rmr.h
+(RIC-301)
+
+
+
+2020 March 23; version 3.6.2
+----------------------------
+
+Fix message initialisation bug when pulling a message from
+the pool (RIC-295)
+
+
+
+2020 March 19; version 3.6.1
+----------------------------
+
+Fix problem with RPM package install
+
+
+
+2020 March 18; version 3.6.0
+----------------------------
+
+Add message types to support traffic steering
+
+
+
+2020 March 16; version 3.5.2
+----------------------------
+
+Correct bug in the meid table parser that prevented the
+ack/nack of meid tables (RIC-273)
+
+
+
+2020 March 10; version 3.5.1
+----------------------------
+
+Add missing health check message types.
+
+
+
+2020 March 9; version 3.5.0
+---------------------------
+
+Added new wormhole send function: rmr_wh_call().
+
+
+
+2020 March 6; version 3.4.0
+---------------------------
+
+Add new wormhole state function: rmr_wh_state().
+
+
+
+2020 March 5; Version 3.3.1
+---------------------------
+
+Correct several "bugs" identified by automatic code analysis.
+
+
+
+2020 March 4; Version 3.3.0
+---------------------------
+
+Add SI95 based unit testing Health check support binary added
+(reason for minor bump)
+
+
+
+2020 February 26; version 3.2.5
+-------------------------------
+
+Fix source address bug in SI95 receive/send funcitons. Fix
+threading issues involving session disconnection in SI95
+Remove unused SI95 status variable.
+
+
+
+2020 February 24; version 3.2.4
+-------------------------------
+
+Fix meid bug (RIC-220) causing core dump.
+
+
+
+2020 February 21; version 3.2.3
+-------------------------------
+
+Add meid routing support to the SI95 interface.
+
+
+
+2020 February 20; version 3.2.2
+-------------------------------
+
+Fix receive thread related core dump (ring early unlock).
+
+
+
+2020 February 19; version 3.2.1
+-------------------------------
+
+Added missing message types (E2-Setup)
+
+
+
+2020 February 18; version 3.2.0
+-------------------------------
+
+Added support for new Route Manager and it's ability to
+accept a request for table update.
+
+
+
+2020 February 14; version 3.1.3
+-------------------------------
+
+Fix bug in SIsend which was causing a core dump in some cases
+where the application attempted to send on a connection that
+had disconnected. (RIC-207).
+
+
+
+2020 February 6; version 3.1.2
+------------------------------
+
+Fix disconnection detection bug in interface to SI95.
+
+
+
+2020 January 31; verison 3.1.1
+------------------------------
+
+Allow route table thread logging to be completely disabled
+when logging is turned off.
+
+
+
+2020 January 26; verison 3.1.0
+------------------------------
+
+First step to allowing the user programme to control messages
+written to standard error. Introduces the rmr_set_vlevel()
+function, and related environment variable.
+
+
+
+2020 January 24; verison 3.0.5
+------------------------------
+
+Fix bug in SI95 with receive buffer allocation.
+
+
+
+2020 January 23; verison 3.0.4
+------------------------------
+
+Fix bug in SI95 causing excessive CPU usage on poll.
+
+
+
+2020 January 22; verison 3.0.3
+------------------------------
+
+Enable thread support for multiple receive threads.
+
+
+
+2020 January 21; verison 3.0.2
+------------------------------
+
+Fix bug in SI95 (missing reallocate payload function).
+
+
+
+2020 January 20; verison 3.0.1
+------------------------------
+
+Enable support for dynamic route table updates via RMR
+session.
+
+
+
+2020 January 16; version 3.0.0
+------------------------------
+
+Introduce support for SI95 transport library to replace NNG.
+(RMR library versions will use leading odd numbers to avoid
+tag collisions with the wrapper tags which will use even
+numbers.)
+
+
+
+2019 December 9; version 1.13.1
+-------------------------------
+
+Correct documentation and missing rel-notes update for RTD.
+
+
+
+2019 December 6; version 1.13.0
+-------------------------------
+
+Add ability to route messages based on the MEID in a message
+combined with the message type/subscription-ID.
+
+
+
+Amber Release
+=============
+
+
+
+2019 November 14; version 1.11.1
+--------------------------------
+
+Fix bug in payload reallocation function; correct length of
+payload was not always copied.
+
+
+
+2019 November 13; version 1.12.1
+--------------------------------
+
+New message type constants added to support A1.
+
+
+
+2019 November 4; version 1.11.0
+-------------------------------
+
+Version bump to move away from the 1.10.* to distinguish
+between release A and the trial.
+
+
+
+2019 November 7; version 1.12.0
+-------------------------------
+
+Version cut to support continued development for next release
+preserving the 1.11.* versions for release 1 (Amber) and
+related fixes.
+
+
+
+2019 October 31; version 1.10.2
+-------------------------------
+
+Provide the means to increase the payload size of a received
+message without losing the data needed to use the
+rmr_rts_msg() funciton.
+
+
+
+2019 October 21; version 1.10.1
+-------------------------------
+
+Fix to prevent null message buffer from being returned by the
+timeout receive function if the function is passed one to
+reuse.
+
+
+
+2019 October 21; version 1.10.1
+-------------------------------
+
+Add periodic dump of send count info to stderr.
+
+
+
+2019 September 27; version 1.9.0
+--------------------------------
+
+Python bindings added receive all queued function and
+corrected a unit test
+
+
+
+2019 September 25; version 1.8.3
+--------------------------------
+
+Correct application level test issue causing timing problems
+during jenkins verification testing at command and merge
+
+Handle the NNG connection shutdown status which may now be
+generated when a connection throug a proxy is reset.
+
+
+
+2019 September 25; version 1.8.2
+--------------------------------
+
+Correct bug in rmr_torcv_msg() when timeout set to zero (0).
+
+
+
+2019 September 19; version 1.8.1
+--------------------------------
+
+Correct missing constant for wrappers.
+
+
+
+2019 September 19; version 1.8.0
+--------------------------------
+
+New message types added:
+    RAN_CONNECTED, RAN_RESTARTED, RAN_RECONFIGURED
+
+
+
+2019 September 17; version 1.7.0
+--------------------------------
+
+Initial connection mode now defaults to asynchronous. Set
+RMR_ASYNC_CONN=0 in the environment before rmr_init() is
+invoked to revert to synchronous first TCP connections.
+(Recovery connection attempts have always been asynchronous).
+
+
+
+2019 September 3; version 1.6.0
+-------------------------------
+
+Fix bug in the rmr_rts_msg() function. If a return to sender
+message failed, the source IP address was not correctly
+adjusted and could cause the message to be "reflected" back
+to the sender on a retry.
+
+Added the ability to set the source "ID" via an environment
+var (RMR_SRC_ID). When present in the environment, the string
+will be placed in to the message header as the source and
+thus be used by an application calling rmr_rts_smg() to
+return a response to the sender. If this environment variable
+is not present, the host name (original behaviour) is used.
+
+
+
+2019 August 26; version 1.4.0
+-----------------------------
+
+New message types were added.
+
+
+
+2019 August 16; version 1.3.0
+-----------------------------
+
+New mesage types added.
+
+
+
+2019 August 13; version 1.2.0 (API change, non-breaking)
+--------------------------------------------------------
+
+The function rmr_get_xact() was added to proide a convenient
+way to extract the transaction field from a message.
+
+
+
+2019 August 8; version 1.1.0 (API change)
+-----------------------------------------
+
+This change should be backward compatable/non-breaking A new
+field has been added to the message buffer (rmr_mbuf_t). This
+field (tp_state) is used to communicate the errno value that
+the transport mechanism might set during send and/or receive
+operations. C programmes should continue to use errno
+directly, but in some environments wrappers may not be able
+to access errno and this provides the value to them. See the
+rmr_alloc_msg manual page for more details.
+
+
+
+2019 August 6; version 1.0.45 (build changes)
+---------------------------------------------
+
+Support for the Nanomsg transport library has been dropped.
+    The library librmr.* will no longer be included in packages.
+
+Packages will install RMR libraries into the system preferred
+    target directory. On some systems this is /usr/local/lib
+    and on others it is /usr/local/lib64.  The diretory is
+    determined by the sytem on which the package is built and
+    NOT by the system installing the package, so it's possible
+    that the RMR libraries end up in a strange location if the
+    .deb or .rpm file was generated on a Linux flavour that
+    has a different preference than the one where the package
+    is installed.
+
+
+
+2019 August 6; version 1.0.44 (API change)
+------------------------------------------
+
+Added a new message type constant.
+
+
+
+2019 July 15; Version 1.0.39 (bug fix)
+--------------------------------------
+
+Prevent unnecessary usleep in retry loop.
+
+
+
+2019 July 12; Version 1.0.38 (API change)
+-----------------------------------------
+
+Added new message types to RIC_message_types.h.
+
+
+
+2019 July 11; Version 1.0.37
+----------------------------
+
+
+librmr and librmr_nng
+    - Add message buffer API function rmr_trace_ref()
+      (see rmr_trace_ref.3 manual page in dev package).
+
+
+
+2020 April 8; Version n/a
+-------------------------
+
+RMR Python moved to Python Xapp Framework
+(https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py)
+
+
+
+2020 February 29; Version 2.4.0
+-------------------------------
+
+Add consolidated testing under CMake Add support binary for
+health check (SI95 only)
+
+
+
+2020 February 28; Version 2.3.6
+-------------------------------
+
+Fix bug in Rt. Mgr comm which prevented table ID from being
+sent on ack message (RIC-232).