1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. CAUTION: this document is generated from source in doc/src/rtd.
4 .. To make changes edit the source and recompile the document.
5 .. Do NOT make changes directly to .rst or .md files.
7 ============================================================================================
9 ============================================================================================
15 The following is a list of release highlights for the RMR
16 library. At one point in time the RMR repo also housed a
17 wrapper library with a separate version and release cycle.
18 This resulted in *leap frogging* versions for each package;
19 the RMR core library was assigned odd major numbers (e.g.
20 3.1.0). When the wrapper code was moved to a different repo
21 the need to leap frog versions ceased, and beginning with
22 version 4.0.0, the RMR versions should no longer skip.
25 2021 April 9; version 4.7.2
26 ---------------------------
28 Ensure that route table update received from route generator
29 is not applied before a full route table is received.
33 2021 April 2; version 4.7.1
34 ---------------------------
36 Correct issues found during static code analysis.
40 2021 March 31; version 4.7.0
41 ----------------------------
43 The route table collector thread will capture the current
44 "offering" from the Route Manager (table generator) if the
45 RMR_SEED_RT environment variable is set.
49 2021 March 10; version 4.6.1
50 ----------------------------
52 Corrected unit test "framework" to make manual testing
53 easier, and to add the ability to set the code optimisation
54 level via the CMake command line parameter OPT_LEVEL=n.
58 2021 February 22; Version 4.6.0
59 -------------------------------
61 Enhanced to use millisecond based timestamps when writing log
64 Enhanced to eliminate the reqirement that the file specified
65 by the RMR_VCTL_FILE environment variable exist when RMR is
66 initialised. RMR will correctly find this file if it is
67 created after initialisation. Further, if the environment
68 variable is not given, the user may create and populate
69 /tmp/rmr.v at any time and the contents of this file will be
70 used as if it were supplied via the environment variable.
71 This should make debugging in existing containers easier.
73 Enhanced to send an alarm manager when the user application
74 is not receiving messages fast enough. The original messages
75 written to the standard error are still generated. (RIC-204)
79 2021 January 21; Version 4.5.2
80 ------------------------------
82 Fixes the excessive TCP session bug when sending to a slow
83 receiver and a related segment fault because of too many open
84 file descriptors. (RIC-735)
88 2021 January 19; Version 4.5.1
89 ------------------------------
91 Version bump to work round a CI job bug preventing push of
92 the 4.5.0 packages from staging to release in package cloud.
97 2021 January 8; Version 4.5.0
98 -----------------------------
100 Version bump for next release tracking. Corrected a potential
101 locking issue in message allocation. (RIC-732)
110 2020 December 4; Version 4.4.6
111 ------------------------------
113 Correct a range check bug when cloning a route table in prep
114 to load a new one. (RIC-720)
118 2020 November 17; Version 4.4.5
119 -------------------------------
121 Correct bug in round robin group allocation that could lead
122 to an empty group. (RIC-695)
126 2020 November 13; Version 4.4.4
127 -------------------------------
129 Correct address memory leak in the RTE cleanup. (RIC-674)
133 2020 November 4; Version 4.4.3
134 ------------------------------
136 Correct bug introduced with race fix (4.4.0) (RIC-674)
140 2020 November 4; Version 4.4.2
141 ------------------------------
143 Changes to correct more complaints generated by a code scan.
144 (RIC-673) Also addressed some sonar coverage issues with unit
149 2020 November 4; Version 4.4.1
150 ------------------------------
152 Changes to correct complaints generated by a code scan.
157 2020 November 4; Version 4.4.0
158 ------------------------------
160 Changes to address a potential race condition when route
161 tables arrive in quick succession. (RIC-674)
165 2020 October 30; Version 4.3.1
166 ------------------------------
168 Changes to address code analyser scans and two bug fixes
169 identified while addressing the analysis data. (RIC-673)
173 2020 October 2; Version 4.3.0
174 -----------------------------
176 Add message types for traffic steering anomaly messages
180 2020 September 15; Version 4.2.4
181 --------------------------------
183 Add man page for the rmr_set_low_latency() function (RIC-631)
187 2020 September 15; Version 4.2.3
188 --------------------------------
190 Correct arg processing bug in rmr_rpobe (RIC-645)
194 2020 August 4; Version 4.2.2
195 ----------------------------
197 Correct bug in the rmr_probe support utility when -r option
198 is used on the command line (RIC-644)
202 2020 August 4; Version 4.2.1
203 ----------------------------
205 Add additional environment variable dump if RMR_LOG_VLEVEL
210 2020 August 3; Version 4.2.0
211 ----------------------------
213 Add support for the RMR_RTREQ_FREQ environment variable to
214 control the request frequency for a new route table (default
215 5s if not supplied). (RIC-630)
219 2020 July 21; Version 4.1.4
220 ---------------------------
222 Fix bug in SI95 -- possible use of pointer after free
227 2020 July 9; version 4.1.3
228 --------------------------
230 Allow RTS messages to be sent before the arrival of the
231 initial route table. Calls to RTS (heart beat responses)
232 prior to the initial route table load could cause a crash if
233 a framework blindly assumes that RTS is valid. (RIC-589)
237 2020 June 22; version 4.1.2
238 ---------------------------
240 Fix typo in RIC Message header file.
242 Add document for message type constants and the scripts which
247 2020 June 22; version 4.1.1
248 ---------------------------
250 Add new message types to RIC header file for
252 RIC_ALARM_QUERY (111)
254 RAN_E2_RESET_REQ (12008)
255 RAN_E2_RESET_RESP (12009)
259 2020 June 18; version 4.1.0
260 ---------------------------
262 Bump version minor to move away from 4.0.* which will bump
263 for any patches applied back to bronze.
265 Add magic C++ goo to symtab header file allowing C++ xAPPs to
266 use the symbol table directly.
275 2020 May 06; version 4.0.5
276 --------------------------
278 Fix the bug in SI95 receive message management semaphore
279 count issue. (RIC-355)
283 2020 April 29; version 4.0.4
284 ----------------------------
286 Fix the traffic steering message type constants (again)
291 2020 April 28; version 4.0.3
292 ----------------------------
294 Fix sonar flagged bugs (RIC-78)
298 2020 April 24; version 4.0.2
299 ----------------------------
301 Correct bug in SI95 transport header length validation
306 2020 April 22; version 4.0.1
307 ----------------------------
309 Correct message type constant for Traffic Steering
310 predication (RIC-342)
314 2020 April 21; version 4.0.0
315 ----------------------------
317 The NNG based libraries are no longer included in the RMR
318 packages. This is considered a breaking change as NNG will
319 not be supported by default. It is still possible to build
320 with RMR-NNG libraries, but that is the exception. The API
321 between 3.8.2 and 4.0.0 is the SAME. Upgrading to 4.0.0 only
322 means that the underlying transport mechanism is limited only
325 The rmr_rcv_specific() function has been deprecated as it was
326 necessary only for NNG and Nanomsg support. Its use should be
331 2020 April 20; version 3.8.2
332 ----------------------------
334 Fix bug which was preventing an instance receiving dynamic
335 route table updates. (RIC-336)
339 2020 April 20; version 3.8.1
340 ----------------------------
342 Add user guide which replaces the concatenation of man pages
347 2020 April 17; version 3.8.0
348 ----------------------------
350 Add safe connect to avoid potential connect bug on Linux
353 Change debugging in route table collector to avoid possible
354 segment fault when in level 2 debug (RIC-335)
358 2020 April 15; version 3.7.4
359 ----------------------------
361 Add missing message type to header file (RIC-334)
365 2020 April 14; version 3.7.3
366 ----------------------------
368 Fix bug in rmr_call() when using SI95 (RIC-333)
372 2020 April 10; version 3.7.2
373 ----------------------------
375 Fix bug related to static route table only mode (RIC-331)
379 2020 April 9; version 3.7.1
380 ---------------------------
382 The max length restriction for receiving messages when using
383 SI95 has been removed. The length supplied during
384 initialisation is used as the "normal maximum" and default
385 buffer allocation size, but messages arriving which are
386 larger are accepted. (RIC-309)
390 2020 April 7; version 3.7.0
391 ---------------------------
393 The health check support programme was renamed to rmr_probe
398 2020 April 6; version 3.6.6
399 ---------------------------
401 Correct bug in SI95 address conversion module (RIC-327)
402 Correct bug in SI initialisation module
406 2020 April 2; version 3.6.5
407 ---------------------------
409 Correct potential nil pointer use when examining interfaces
410 for use as a listen target (RIC-307)
414 2020 April 1; version 3.6.4
415 ---------------------------
417 Correct potential nil pointer use in the NNG interface
418 (RIC-303) Correct issue preventing CI build without a
423 2020 March 30; version 3.6.3
424 ----------------------------
426 Correct the max receive message size constant in rmr.h
431 2020 March 23; version 3.6.2
432 ----------------------------
434 Fix message initialisation bug when pulling a message from
439 2020 March 19; version 3.6.1
440 ----------------------------
442 Fix problem with RPM package install
446 2020 March 18; version 3.6.0
447 ----------------------------
449 Add message types to support traffic steering
453 2020 March 16; version 3.5.2
454 ----------------------------
456 Correct bug in the meid table parser that prevented the
457 ack/nack of meid tables (RIC-273)
461 2020 March 10; version 3.5.1
462 ----------------------------
464 Add missing health check message types.
468 2020 March 9; version 3.5.0
469 ---------------------------
471 Added new wormhole send function: rmr_wh_call().
475 2020 March 6; version 3.4.0
476 ---------------------------
478 Add new wormhole state function: rmr_wh_state().
482 2020 March 5; Version 3.3.1
483 ---------------------------
485 Correct several "bugs" identified by automatic code analysis.
489 2020 March 4; Version 3.3.0
490 ---------------------------
492 Add SI95 based unit testing Health check support binary added
493 (reason for minor bump)
497 2020 February 26; version 3.2.5
498 -------------------------------
500 Fix source address bug in SI95 receive/send funcitons. Fix
501 threading issues involving session disconnection in SI95
502 Remove unused SI95 status variable.
506 2020 February 24; version 3.2.4
507 -------------------------------
509 Fix meid bug (RIC-220) causing core dump.
513 2020 February 21; version 3.2.3
514 -------------------------------
516 Add meid routing support to the SI95 interface.
520 2020 February 20; version 3.2.2
521 -------------------------------
523 Fix receive thread related core dump (ring early unlock).
527 2020 February 19; version 3.2.1
528 -------------------------------
530 Added missing message types (E2-Setup)
534 2020 February 18; version 3.2.0
535 -------------------------------
537 Added support for new Route Manager and it's ability to
538 accept a request for table update.
542 2020 February 14; version 3.1.3
543 -------------------------------
545 Fix bug in SIsend which was causing a core dump in some cases
546 where the application attempted to send on a connection that
547 had disconnected. (RIC-207).
551 2020 February 6; version 3.1.2
552 ------------------------------
554 Fix disconnection detection bug in interface to SI95.
558 2020 January 31; verison 3.1.1
559 ------------------------------
561 Allow route table thread logging to be completely disabled
562 when logging is turned off.
566 2020 January 26; verison 3.1.0
567 ------------------------------
569 First step to allowing the user programme to control messages
570 written to standard error. Introduces the rmr_set_vlevel()
571 function, and related environment variable.
575 2020 January 24; verison 3.0.5
576 ------------------------------
578 Fix bug in SI95 with receive buffer allocation.
582 2020 January 23; verison 3.0.4
583 ------------------------------
585 Fix bug in SI95 causing excessive CPU usage on poll.
589 2020 January 22; verison 3.0.3
590 ------------------------------
592 Enable thread support for multiple receive threads.
596 2020 January 21; verison 3.0.2
597 ------------------------------
599 Fix bug in SI95 (missing reallocate payload function).
603 2020 January 20; verison 3.0.1
604 ------------------------------
606 Enable support for dynamic route table updates via RMR
611 2020 January 16; version 3.0.0
612 ------------------------------
614 Introduce support for SI95 transport library to replace NNG.
615 (RMR library versions will use leading odd numbers to avoid
616 tag collisions with the wrapper tags which will use even
621 2019 December 9; version 1.13.1
622 -------------------------------
624 Correct documentation and missing rel-notes update for RTD.
628 2019 December 6; version 1.13.0
629 -------------------------------
631 Add ability to route messages based on the MEID in a message
632 combined with the message type/subscription-ID.
641 2019 November 14; version 1.11.1
642 --------------------------------
644 Fix bug in payload reallocation function; correct length of
645 payload was not always copied.
649 2019 November 13; version 1.12.1
650 --------------------------------
652 New message type constants added to support A1.
656 2019 November 4; version 1.11.0
657 -------------------------------
659 Version bump to move away from the 1.10.* to distinguish
660 between release A and the trial.
664 2019 November 7; version 1.12.0
665 -------------------------------
667 Version cut to support continued development for next release
668 preserving the 1.11.* versions for release 1 (Amber) and
673 2019 October 31; version 1.10.2
674 -------------------------------
676 Provide the means to increase the payload size of a received
677 message without losing the data needed to use the
678 rmr_rts_msg() funciton.
682 2019 October 21; version 1.10.1
683 -------------------------------
685 Fix to prevent null message buffer from being returned by the
686 timeout receive function if the function is passed one to
691 2019 October 21; version 1.10.1
692 -------------------------------
694 Add periodic dump of send count info to stderr.
698 2019 September 27; version 1.9.0
699 --------------------------------
701 Python bindings added receive all queued function and
702 corrected a unit test
706 2019 September 25; version 1.8.3
707 --------------------------------
709 Correct application level test issue causing timing problems
710 during jenkins verification testing at command and merge
712 Handle the NNG connection shutdown status which may now be
713 generated when a connection throug a proxy is reset.
717 2019 September 25; version 1.8.2
718 --------------------------------
720 Correct bug in rmr_torcv_msg() when timeout set to zero (0).
724 2019 September 19; version 1.8.1
725 --------------------------------
727 Correct missing constant for wrappers.
731 2019 September 19; version 1.8.0
732 --------------------------------
734 New message types added:
735 RAN_CONNECTED, RAN_RESTARTED, RAN_RECONFIGURED
739 2019 September 17; version 1.7.0
740 --------------------------------
742 Initial connection mode now defaults to asynchronous. Set
743 RMR_ASYNC_CONN=0 in the environment before rmr_init() is
744 invoked to revert to synchronous first TCP connections.
745 (Recovery connection attempts have always been asynchronous).
749 2019 September 3; version 1.6.0
750 -------------------------------
752 Fix bug in the rmr_rts_msg() function. If a return to sender
753 message failed, the source IP address was not correctly
754 adjusted and could cause the message to be "reflected" back
755 to the sender on a retry.
757 Added the ability to set the source "ID" via an environment
758 var (RMR_SRC_ID). When present in the environment, the string
759 will be placed in to the message header as the source and
760 thus be used by an application calling rmr_rts_smg() to
761 return a response to the sender. If this environment variable
762 is not present, the host name (original behaviour) is used.
766 2019 August 26; version 1.4.0
767 -----------------------------
769 New message types were added.
773 2019 August 16; version 1.3.0
774 -----------------------------
776 New mesage types added.
780 2019 August 13; version 1.2.0 (API change, non-breaking)
781 --------------------------------------------------------
783 The function rmr_get_xact() was added to proide a convenient
784 way to extract the transaction field from a message.
788 2019 August 8; version 1.1.0 (API change)
789 -----------------------------------------
791 This change should be backward compatable/non-breaking A new
792 field has been added to the message buffer (rmr_mbuf_t). This
793 field (tp_state) is used to communicate the errno value that
794 the transport mechanism might set during send and/or receive
795 operations. C programmes should continue to use errno
796 directly, but in some environments wrappers may not be able
797 to access errno and this provides the value to them. See the
798 rmr_alloc_msg manual page for more details.
802 2019 August 6; version 1.0.45 (build changes)
803 ---------------------------------------------
805 Support for the Nanomsg transport library has been dropped.
806 The library librmr.* will no longer be included in packages.
808 Packages will install RMR libraries into the system preferred
809 target directory. On some systems this is /usr/local/lib
810 and on others it is /usr/local/lib64. The diretory is
811 determined by the sytem on which the package is built and
812 NOT by the system installing the package, so it's possible
813 that the RMR libraries end up in a strange location if the
814 .deb or .rpm file was generated on a Linux flavour that
815 has a different preference than the one where the package
820 2019 August 6; version 1.0.44 (API change)
821 ------------------------------------------
823 Added a new message type constant.
827 2019 July 15; Version 1.0.39 (bug fix)
828 --------------------------------------
830 Prevent unnecessary usleep in retry loop.
834 2019 July 12; Version 1.0.38 (API change)
835 -----------------------------------------
837 Added new message types to RIC_message_types.h.
841 2019 July 11; Version 1.0.37
842 ----------------------------
845 librmr and librmr_nng
846 - Add message buffer API function rmr_trace_ref()
847 (see rmr_trace_ref.3 manual page in dev package).
851 2020 April 8; Version n/a
852 -------------------------
854 RMR Python moved to Python Xapp Framework
855 (https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py)
859 2020 February 29; Version 2.4.0
860 -------------------------------
862 Add consolidated testing under CMake Add support binary for
863 health check (SI95 only)
867 2020 February 28; Version 2.3.6
868 -------------------------------
870 Fix bug in Rt. Mgr comm which prevented table ID from being
871 sent on ack message (RIC-232).