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 2020 August 4; Version 4.2.2
26 ----------------------------
28 Correct bug in the rmr_probe support utility when -r option
29 is used on the command line (RIC-644)
33 2020 August 4; Version 4.2.1
34 ----------------------------
36 Add additional environment variable dump if RMR_LOG_VLEVEL
41 2020 August 3; Version 4.2.0
42 ----------------------------
44 Add support for the RMR_RTREQ_FREQ environment variable to
45 control the request frequency for a new route table (default
46 5s if not supplied). (RIC-630)
50 2020 July 21; Version 4.1.4
51 ---------------------------
53 Fix bug in SI95 -- possible use of pointer after free
58 2020 July 9; version 4.1.3
59 --------------------------
61 Allow RTS messages to be sent before the arrival of the
62 initial route table. Calls to RTS (heart beat responses)
63 prior to the initial route table load could cause a crash if
64 a framework blindly assumes that RTS is valid. (RIC-589)
68 2020 June 22; version 4.1.2
69 ---------------------------
71 Fix typo in RIC Message header file.
73 Add document for message type constants and the scripts which
78 2020 June 22; version 4.1.1
79 ---------------------------
81 Add new message types to RIC header file for
85 RAN_E2_RESET_REQ (12008)
86 RAN_E2_RESET_RESP (12009)
90 2020 June 18; version 4.1.0
91 ---------------------------
93 Bump version minor to move away from 4.0.* which will bump
94 for any patches applied back to bronze.
96 Add magic C++ goo to symtab header file allowing C++ xAPPs to
97 use the symbol table directly.
106 2020 May 06; version 4.0.5
107 --------------------------
109 Fix the bug in SI95 receive message management semaphore
110 count issue. (RIC-355)
114 2020 April 29; version 4.0.4
115 ----------------------------
117 Fix the traffic steering message type constants (again)
122 2020 April 28; version 4.0.3
123 ----------------------------
125 Fix sonar flagged bugs (RIC-78)
129 2020 April 24; version 4.0.2
130 ----------------------------
132 Correct bug in SI95 transport header length validation
137 2020 April 22; version 4.0.1
138 ----------------------------
140 Correct message type constant for Traffic Steering
141 predication (RIC-342)
145 2020 April 21; version 4.0.0
146 ----------------------------
148 The NNG based libraries are no longer included in the RMR
149 packages. This is considered a breaking change as NNG will
150 not be supported by default. It is still possible to build
151 with RMR-NNG libraries, but that is the exception. The API
152 between 3.8.2 and 4.0.0 is the SAME. Upgrading to 4.0.0 only
153 means that the underlying transport mechanism is limited only
156 The rmr_rcv_specific() function has been deprecated as it was
157 necessary only for NNG and Nanomsg support. Its use should be
162 2020 April 20; version 3.8.2
163 ----------------------------
165 Fix bug which was preventing an instance receiving dynamic
166 route table updates. (RIC-336)
170 2020 April 20; version 3.8.1
171 ----------------------------
173 Add user guide which replaces the concatenation of man pages
178 2020 April 17; version 3.8.0
179 ----------------------------
181 Add safe connect to avoid potential connect bug on Linux
184 Change debugging in route table collector to avoid possible
185 segment fault when in level 2 debug (RIC-335)
189 2020 April 15; version 3.7.4
190 ----------------------------
192 Add missing message type to header file (RIC-334)
196 2020 April 14; version 3.7.3
197 ----------------------------
199 Fix bug in rmr_call() when using SI95 (RIC-333)
203 2020 April 10; version 3.7.2
204 ----------------------------
206 Fix bug related to static route table only mode (RIC-331)
210 2020 April 9; version 3.7.1
211 ---------------------------
213 The max length restriction for receiving messages when using
214 SI95 has been removed. The length supplied during
215 initialisation is used as the "normal maximum" and default
216 buffer allocation size, but messages arriving which are
217 larger are accepted. (RIC-309)
221 2020 April 7; version 3.7.0
222 ---------------------------
224 The health check support programme was renamed to rmr_probe
229 2020 April 6; version 3.6.6
230 ---------------------------
232 Correct bug in SI95 address conversion module (RIC-327)
233 Correct bug in SI initialisation module
237 2020 April 2; version 3.6.5
238 ---------------------------
240 Correct potential nil pointer use when examining interfaces
241 for use as a listen target (RIC-307)
245 2020 April 1; version 3.6.4
246 ---------------------------
248 Correct potential nil pointer use in the NNG interface
249 (RIC-303) Correct issue preventing CI build without a
254 2020 March 30; version 3.6.3
255 ----------------------------
257 Correct the max receive message size constant in rmr.h
262 2020 March 23; version 3.6.2
263 ----------------------------
265 Fix message initialisation bug when pulling a message from
270 2020 March 19; version 3.6.1
271 ----------------------------
273 Fix problem with RPM package install
277 2020 March 18; version 3.6.0
278 ----------------------------
280 Add message types to support traffic steering
284 2020 March 16; version 3.5.2
285 ----------------------------
287 Correct bug in the meid table parser that prevented the
288 ack/nack of meid tables (RIC-273)
292 2020 March 10; version 3.5.1
293 ----------------------------
295 Add missing health check message types.
299 2020 March 9; version 3.5.0
300 ---------------------------
302 Added new wormhole send function: rmr_wh_call().
306 2020 March 6; version 3.4.0
307 ---------------------------
309 Add new wormhole state function: rmr_wh_state().
313 2020 March 5; Version 3.3.1
314 ---------------------------
316 Correct several "bugs" identified by automatic code analysis.
320 2020 March 4; Version 3.3.0
321 ---------------------------
323 Add SI95 based unit testing Health check support binary added
324 (reason for minor bump)
328 2020 February 26; version 3.2.5
329 -------------------------------
331 Fix source address bug in SI95 receive/send funcitons. Fix
332 threading issues involving session disconnection in SI95
333 Remove unused SI95 status variable.
337 2020 February 24; version 3.2.4
338 -------------------------------
340 Fix meid bug (RIC-220) causing core dump.
344 2020 February 21; version 3.2.3
345 -------------------------------
347 Add meid routing support to the SI95 interface.
351 2020 February 20; version 3.2.2
352 -------------------------------
354 Fix receive thread related core dump (ring early unlock).
358 2020 February 19; version 3.2.1
359 -------------------------------
361 Added missing message types (E2-Setup)
365 2020 February 18; version 3.2.0
366 -------------------------------
368 Added support for new Route Manager and it's ability to
369 accept a request for table update.
373 2020 February 14; version 3.1.3
374 -------------------------------
376 Fix bug in SIsend which was causing a core dump in some cases
377 where the application attempted to send on a connection that
378 had disconnected. (RIC-207).
382 2020 February 6; version 3.1.2
383 ------------------------------
385 Fix disconnection detection bug in interface to SI95.
389 2020 January 31; verison 3.1.1
390 ------------------------------
392 Allow route table thread logging to be completely disabled
393 when logging is turned off.
397 2020 January 26; verison 3.1.0
398 ------------------------------
400 First step to allowing the user programme to control messages
401 written to standard error. Introduces the rmr_set_vlevel()
402 function, and related environment variable.
406 2020 January 24; verison 3.0.5
407 ------------------------------
409 Fix bug in SI95 with receive buffer allocation.
413 2020 January 23; verison 3.0.4
414 ------------------------------
416 Fix bug in SI95 causing excessive CPU usage on poll.
420 2020 January 22; verison 3.0.3
421 ------------------------------
423 Enable thread support for multiple receive threads.
427 2020 January 21; verison 3.0.2
428 ------------------------------
430 Fix bug in SI95 (missing reallocate payload function).
434 2020 January 20; verison 3.0.1
435 ------------------------------
437 Enable support for dynamic route table updates via RMR
442 2020 January 16; version 3.0.0
443 ------------------------------
445 Introduce support for SI95 transport library to replace NNG.
446 (RMR library versions will use leading odd numbers to avoid
447 tag collisions with the wrapper tags which will use even
452 2019 December 9; version 1.13.1
453 -------------------------------
455 Correct documentation and missing rel-notes update for RTD.
459 2019 December 6; version 1.13.0
460 -------------------------------
462 Add ability to route messages based on the MEID in a message
463 combined with the message type/subscription-ID.
472 2019 November 14; version 1.11.1
473 --------------------------------
475 Fix bug in payload reallocation function; correct length of
476 payload was not always copied.
480 2019 November 13; version 1.12.1
481 --------------------------------
483 New message type constants added to support A1.
487 2019 November 4; version 1.11.0
488 -------------------------------
490 Version bump to move away from the 1.10.* to distinguish
491 between release A and the trial.
495 2019 November 7; version 1.12.0
496 -------------------------------
498 Version cut to support continued development for next release
499 preserving the 1.11.* versions for release 1 (Amber) and
504 2019 October 31; version 1.10.2
505 -------------------------------
507 Provide the means to increase the payload size of a received
508 message without losing the data needed to use the
509 rmr_rts_msg() funciton.
513 2019 October 21; version 1.10.1
514 -------------------------------
516 Fix to prevent null message buffer from being returned by the
517 timeout receive function if the function is passed one to
522 2019 October 21; version 1.10.1
523 -------------------------------
525 Add periodic dump of send count info to stderr.
529 2019 September 27; version 1.9.0
530 --------------------------------
532 Python bindings added receive all queued function and
533 corrected a unit test
537 2019 September 25; version 1.8.3
538 --------------------------------
540 Correct application level test issue causing timing problems
541 during jenkins verification testing at command and merge
543 Handle the NNG connection shutdown status which may now be
544 generated when a connection throug a proxy is reset.
548 2019 September 25; version 1.8.2
549 --------------------------------
551 Correct bug in rmr_torcv_msg() when timeout set to zero (0).
555 2019 September 19; version 1.8.1
556 --------------------------------
558 Correct missing constant for wrappers.
562 2019 September 19; version 1.8.0
563 --------------------------------
565 New message types added:
566 RAN_CONNECTED, RAN_RESTARTED, RAN_RECONFIGURED
570 2019 September 17; version 1.7.0
571 --------------------------------
573 Initial connection mode now defaults to asynchronous. Set
574 RMR_ASYNC_CONN=0 in the environment before rmr_init() is
575 invoked to revert to synchronous first TCP connections.
576 (Recovery connection attempts have always been asynchronous).
580 2019 September 3; version 1.6.0
581 -------------------------------
583 Fix bug in the rmr_rts_msg() function. If a return to sender
584 message failed, the source IP address was not correctly
585 adjusted and could cause the message to be "reflected" back
586 to the sender on a retry.
588 Added the ability to set the source "ID" via an environment
589 var (RMR_SRC_ID). When present in the environment, the string
590 will be placed in to the message header as the source and
591 thus be used by an application calling rmr_rts_smg() to
592 return a response to the sender. If this environment variable
593 is not present, the host name (original behaviour) is used.
597 2019 August 26; version 1.4.0
598 -----------------------------
600 New message types were added.
604 2019 August 16; version 1.3.0
605 -----------------------------
607 New mesage types added.
611 2019 August 13; version 1.2.0 (API change, non-breaking)
612 --------------------------------------------------------
614 The function rmr_get_xact() was added to proide a convenient
615 way to extract the transaction field from a message.
619 2019 August 8; version 1.1.0 (API change)
620 -----------------------------------------
622 This change should be backward compatable/non-breaking A new
623 field has been added to the message buffer (rmr_mbuf_t). This
624 field (tp_state) is used to communicate the errno value that
625 the transport mechanism might set during send and/or receive
626 operations. C programmes should continue to use errno
627 directly, but in some environments wrappers may not be able
628 to access errno and this provides the value to them. See the
629 rmr_alloc_msg manual page for more details.
633 2019 August 6; version 1.0.45 (build changes)
634 ---------------------------------------------
636 Support for the Nanomsg transport library has been dropped.
637 The library librmr.* will no longer be included in packages.
639 Packages will install RMR libraries into the system preferred
640 target directory. On some systems this is /usr/local/lib
641 and on others it is /usr/local/lib64. The diretory is
642 determined by the sytem on which the package is built and
643 NOT by the system installing the package, so it's possible
644 that the RMR libraries end up in a strange location if the
645 .deb or .rpm file was generated on a Linux flavour that
646 has a different preference than the one where the package
651 2019 August 6; version 1.0.44 (API change)
652 ------------------------------------------
654 Added a new message type constant.
658 2019 July 15; Version 1.0.39 (bug fix)
659 --------------------------------------
661 Prevent unnecessary usleep in retry loop.
665 2019 July 12; Version 1.0.38 (API change)
666 -----------------------------------------
668 Added new message types to RIC_message_types.h.
672 2019 July 11; Version 1.0.37
673 ----------------------------
676 librmr and librmr_nng
677 - Add message buffer API function rmr_trace_ref()
678 (see rmr_trace_ref.3 manual page in dev package).
682 2020 April 8; Version n/a
683 -------------------------
685 RMR Python moved to Python Xapp Framework
686 (https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py)
690 2020 February 29; Version 2.4.0
691 -------------------------------
693 Add consolidated testing under CMake Add support binary for
694 health check (SI95 only)
698 2020 February 28; Version 2.3.6
699 -------------------------------
701 Fix bug in Rt. Mgr comm which prevented table ID from being
702 sent on ack message (RIC-232).