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 September 15; Version 4.2.4
26 --------------------------------
28 Add man page for the rmr_set_low_latency() function (RIC-631)
32 2020 September 15; Version 4.2.3
33 --------------------------------
35 Correct arg processing bug in rmr_rpobe (RIC-645)
39 2020 August 4; Version 4.2.2
40 ----------------------------
42 Correct bug in the rmr_probe support utility when -r option
43 is used on the command line (RIC-644)
47 2020 August 4; Version 4.2.1
48 ----------------------------
50 Add additional environment variable dump if RMR_LOG_VLEVEL
55 2020 August 3; Version 4.2.0
56 ----------------------------
58 Add support for the RMR_RTREQ_FREQ environment variable to
59 control the request frequency for a new route table (default
60 5s if not supplied). (RIC-630)
64 2020 July 21; Version 4.1.4
65 ---------------------------
67 Fix bug in SI95 -- possible use of pointer after free
72 2020 July 9; version 4.1.3
73 --------------------------
75 Allow RTS messages to be sent before the arrival of the
76 initial route table. Calls to RTS (heart beat responses)
77 prior to the initial route table load could cause a crash if
78 a framework blindly assumes that RTS is valid. (RIC-589)
82 2020 June 22; version 4.1.2
83 ---------------------------
85 Fix typo in RIC Message header file.
87 Add document for message type constants and the scripts which
92 2020 June 22; version 4.1.1
93 ---------------------------
95 Add new message types to RIC header file for
99 RAN_E2_RESET_REQ (12008)
100 RAN_E2_RESET_RESP (12009)
104 2020 June 18; version 4.1.0
105 ---------------------------
107 Bump version minor to move away from 4.0.* which will bump
108 for any patches applied back to bronze.
110 Add magic C++ goo to symtab header file allowing C++ xAPPs to
111 use the symbol table directly.
120 2020 May 06; version 4.0.5
121 --------------------------
123 Fix the bug in SI95 receive message management semaphore
124 count issue. (RIC-355)
128 2020 April 29; version 4.0.4
129 ----------------------------
131 Fix the traffic steering message type constants (again)
136 2020 April 28; version 4.0.3
137 ----------------------------
139 Fix sonar flagged bugs (RIC-78)
143 2020 April 24; version 4.0.2
144 ----------------------------
146 Correct bug in SI95 transport header length validation
151 2020 April 22; version 4.0.1
152 ----------------------------
154 Correct message type constant for Traffic Steering
155 predication (RIC-342)
159 2020 April 21; version 4.0.0
160 ----------------------------
162 The NNG based libraries are no longer included in the RMR
163 packages. This is considered a breaking change as NNG will
164 not be supported by default. It is still possible to build
165 with RMR-NNG libraries, but that is the exception. The API
166 between 3.8.2 and 4.0.0 is the SAME. Upgrading to 4.0.0 only
167 means that the underlying transport mechanism is limited only
170 The rmr_rcv_specific() function has been deprecated as it was
171 necessary only for NNG and Nanomsg support. Its use should be
176 2020 April 20; version 3.8.2
177 ----------------------------
179 Fix bug which was preventing an instance receiving dynamic
180 route table updates. (RIC-336)
184 2020 April 20; version 3.8.1
185 ----------------------------
187 Add user guide which replaces the concatenation of man pages
192 2020 April 17; version 3.8.0
193 ----------------------------
195 Add safe connect to avoid potential connect bug on Linux
198 Change debugging in route table collector to avoid possible
199 segment fault when in level 2 debug (RIC-335)
203 2020 April 15; version 3.7.4
204 ----------------------------
206 Add missing message type to header file (RIC-334)
210 2020 April 14; version 3.7.3
211 ----------------------------
213 Fix bug in rmr_call() when using SI95 (RIC-333)
217 2020 April 10; version 3.7.2
218 ----------------------------
220 Fix bug related to static route table only mode (RIC-331)
224 2020 April 9; version 3.7.1
225 ---------------------------
227 The max length restriction for receiving messages when using
228 SI95 has been removed. The length supplied during
229 initialisation is used as the "normal maximum" and default
230 buffer allocation size, but messages arriving which are
231 larger are accepted. (RIC-309)
235 2020 April 7; version 3.7.0
236 ---------------------------
238 The health check support programme was renamed to rmr_probe
243 2020 April 6; version 3.6.6
244 ---------------------------
246 Correct bug in SI95 address conversion module (RIC-327)
247 Correct bug in SI initialisation module
251 2020 April 2; version 3.6.5
252 ---------------------------
254 Correct potential nil pointer use when examining interfaces
255 for use as a listen target (RIC-307)
259 2020 April 1; version 3.6.4
260 ---------------------------
262 Correct potential nil pointer use in the NNG interface
263 (RIC-303) Correct issue preventing CI build without a
268 2020 March 30; version 3.6.3
269 ----------------------------
271 Correct the max receive message size constant in rmr.h
276 2020 March 23; version 3.6.2
277 ----------------------------
279 Fix message initialisation bug when pulling a message from
284 2020 March 19; version 3.6.1
285 ----------------------------
287 Fix problem with RPM package install
291 2020 March 18; version 3.6.0
292 ----------------------------
294 Add message types to support traffic steering
298 2020 March 16; version 3.5.2
299 ----------------------------
301 Correct bug in the meid table parser that prevented the
302 ack/nack of meid tables (RIC-273)
306 2020 March 10; version 3.5.1
307 ----------------------------
309 Add missing health check message types.
313 2020 March 9; version 3.5.0
314 ---------------------------
316 Added new wormhole send function: rmr_wh_call().
320 2020 March 6; version 3.4.0
321 ---------------------------
323 Add new wormhole state function: rmr_wh_state().
327 2020 March 5; Version 3.3.1
328 ---------------------------
330 Correct several "bugs" identified by automatic code analysis.
334 2020 March 4; Version 3.3.0
335 ---------------------------
337 Add SI95 based unit testing Health check support binary added
338 (reason for minor bump)
342 2020 February 26; version 3.2.5
343 -------------------------------
345 Fix source address bug in SI95 receive/send funcitons. Fix
346 threading issues involving session disconnection in SI95
347 Remove unused SI95 status variable.
351 2020 February 24; version 3.2.4
352 -------------------------------
354 Fix meid bug (RIC-220) causing core dump.
358 2020 February 21; version 3.2.3
359 -------------------------------
361 Add meid routing support to the SI95 interface.
365 2020 February 20; version 3.2.2
366 -------------------------------
368 Fix receive thread related core dump (ring early unlock).
372 2020 February 19; version 3.2.1
373 -------------------------------
375 Added missing message types (E2-Setup)
379 2020 February 18; version 3.2.0
380 -------------------------------
382 Added support for new Route Manager and it's ability to
383 accept a request for table update.
387 2020 February 14; version 3.1.3
388 -------------------------------
390 Fix bug in SIsend which was causing a core dump in some cases
391 where the application attempted to send on a connection that
392 had disconnected. (RIC-207).
396 2020 February 6; version 3.1.2
397 ------------------------------
399 Fix disconnection detection bug in interface to SI95.
403 2020 January 31; verison 3.1.1
404 ------------------------------
406 Allow route table thread logging to be completely disabled
407 when logging is turned off.
411 2020 January 26; verison 3.1.0
412 ------------------------------
414 First step to allowing the user programme to control messages
415 written to standard error. Introduces the rmr_set_vlevel()
416 function, and related environment variable.
420 2020 January 24; verison 3.0.5
421 ------------------------------
423 Fix bug in SI95 with receive buffer allocation.
427 2020 January 23; verison 3.0.4
428 ------------------------------
430 Fix bug in SI95 causing excessive CPU usage on poll.
434 2020 January 22; verison 3.0.3
435 ------------------------------
437 Enable thread support for multiple receive threads.
441 2020 January 21; verison 3.0.2
442 ------------------------------
444 Fix bug in SI95 (missing reallocate payload function).
448 2020 January 20; verison 3.0.1
449 ------------------------------
451 Enable support for dynamic route table updates via RMR
456 2020 January 16; version 3.0.0
457 ------------------------------
459 Introduce support for SI95 transport library to replace NNG.
460 (RMR library versions will use leading odd numbers to avoid
461 tag collisions with the wrapper tags which will use even
466 2019 December 9; version 1.13.1
467 -------------------------------
469 Correct documentation and missing rel-notes update for RTD.
473 2019 December 6; version 1.13.0
474 -------------------------------
476 Add ability to route messages based on the MEID in a message
477 combined with the message type/subscription-ID.
486 2019 November 14; version 1.11.1
487 --------------------------------
489 Fix bug in payload reallocation function; correct length of
490 payload was not always copied.
494 2019 November 13; version 1.12.1
495 --------------------------------
497 New message type constants added to support A1.
501 2019 November 4; version 1.11.0
502 -------------------------------
504 Version bump to move away from the 1.10.* to distinguish
505 between release A and the trial.
509 2019 November 7; version 1.12.0
510 -------------------------------
512 Version cut to support continued development for next release
513 preserving the 1.11.* versions for release 1 (Amber) and
518 2019 October 31; version 1.10.2
519 -------------------------------
521 Provide the means to increase the payload size of a received
522 message without losing the data needed to use the
523 rmr_rts_msg() funciton.
527 2019 October 21; version 1.10.1
528 -------------------------------
530 Fix to prevent null message buffer from being returned by the
531 timeout receive function if the function is passed one to
536 2019 October 21; version 1.10.1
537 -------------------------------
539 Add periodic dump of send count info to stderr.
543 2019 September 27; version 1.9.0
544 --------------------------------
546 Python bindings added receive all queued function and
547 corrected a unit test
551 2019 September 25; version 1.8.3
552 --------------------------------
554 Correct application level test issue causing timing problems
555 during jenkins verification testing at command and merge
557 Handle the NNG connection shutdown status which may now be
558 generated when a connection throug a proxy is reset.
562 2019 September 25; version 1.8.2
563 --------------------------------
565 Correct bug in rmr_torcv_msg() when timeout set to zero (0).
569 2019 September 19; version 1.8.1
570 --------------------------------
572 Correct missing constant for wrappers.
576 2019 September 19; version 1.8.0
577 --------------------------------
579 New message types added:
580 RAN_CONNECTED, RAN_RESTARTED, RAN_RECONFIGURED
584 2019 September 17; version 1.7.0
585 --------------------------------
587 Initial connection mode now defaults to asynchronous. Set
588 RMR_ASYNC_CONN=0 in the environment before rmr_init() is
589 invoked to revert to synchronous first TCP connections.
590 (Recovery connection attempts have always been asynchronous).
594 2019 September 3; version 1.6.0
595 -------------------------------
597 Fix bug in the rmr_rts_msg() function. If a return to sender
598 message failed, the source IP address was not correctly
599 adjusted and could cause the message to be "reflected" back
600 to the sender on a retry.
602 Added the ability to set the source "ID" via an environment
603 var (RMR_SRC_ID). When present in the environment, the string
604 will be placed in to the message header as the source and
605 thus be used by an application calling rmr_rts_smg() to
606 return a response to the sender. If this environment variable
607 is not present, the host name (original behaviour) is used.
611 2019 August 26; version 1.4.0
612 -----------------------------
614 New message types were added.
618 2019 August 16; version 1.3.0
619 -----------------------------
621 New mesage types added.
625 2019 August 13; version 1.2.0 (API change, non-breaking)
626 --------------------------------------------------------
628 The function rmr_get_xact() was added to proide a convenient
629 way to extract the transaction field from a message.
633 2019 August 8; version 1.1.0 (API change)
634 -----------------------------------------
636 This change should be backward compatable/non-breaking A new
637 field has been added to the message buffer (rmr_mbuf_t). This
638 field (tp_state) is used to communicate the errno value that
639 the transport mechanism might set during send and/or receive
640 operations. C programmes should continue to use errno
641 directly, but in some environments wrappers may not be able
642 to access errno and this provides the value to them. See the
643 rmr_alloc_msg manual page for more details.
647 2019 August 6; version 1.0.45 (build changes)
648 ---------------------------------------------
650 Support for the Nanomsg transport library has been dropped.
651 The library librmr.* will no longer be included in packages.
653 Packages will install RMR libraries into the system preferred
654 target directory. On some systems this is /usr/local/lib
655 and on others it is /usr/local/lib64. The diretory is
656 determined by the sytem on which the package is built and
657 NOT by the system installing the package, so it's possible
658 that the RMR libraries end up in a strange location if the
659 .deb or .rpm file was generated on a Linux flavour that
660 has a different preference than the one where the package
665 2019 August 6; version 1.0.44 (API change)
666 ------------------------------------------
668 Added a new message type constant.
672 2019 July 15; Version 1.0.39 (bug fix)
673 --------------------------------------
675 Prevent unnecessary usleep in retry loop.
679 2019 July 12; Version 1.0.38 (API change)
680 -----------------------------------------
682 Added new message types to RIC_message_types.h.
686 2019 July 11; Version 1.0.37
687 ----------------------------
690 librmr and librmr_nng
691 - Add message buffer API function rmr_trace_ref()
692 (see rmr_trace_ref.3 manual page in dev package).
696 2020 April 8; Version n/a
697 -------------------------
699 RMR Python moved to Python Xapp Framework
700 (https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py)
704 2020 February 29; Version 2.4.0
705 -------------------------------
707 Add consolidated testing under CMake Add support binary for
708 health check (SI95 only)
712 2020 February 28; Version 2.3.6
713 -------------------------------
715 Fix bug in Rt. Mgr comm which prevented table ID from being
716 sent on ack message (RIC-232).