Preparation for release 4.9.0
[ric-plt/lib/rmr.git] / docs / rel-notes.rst
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.
6
7 ============================================================================================
8 RMR Release Notes
9 ============================================================================================
10
11
12 RMR Release Notes
13 =================
14
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.
23
24
25 2023 Feb 14; version 4.9.0
26 ------------------------------
27
28 Added new message type for subscription delete required
29
30 2022 Nov 10; version 4.8.5
31 ------------------------------
32
33 Fixes for errors detected by source code scanning (RIC-939)
34
35 2022 May 11; version 4.8.3
36 ------------------------------
37
38 Added header definitions for config transfer messages (RIC-638)
39
40 2022 January 17; version 4.8.2
41 ------------------------------
42
43 Fixes routing statistics printout crash (RIC-872).
44
45
46
47 2022 January 7; version 4.8.1
48 ------------------------------
49
50 Re-enables RMR libary's module tests (RIC-861).
51 Creates a new unit test for the debugging rmr rx queue API.
52 Fixes some bugs and possible memory likeage in SI95 code.
53
54
55
56 2021 December 2; version 4.8.0
57 ------------------------------
58
59 Fixing memory leak in python support function (RIC-858).
60 New API added for debugging rmr rx queue (RIC-838).
61
62
63
64 2021 April 22; version 4.7.4
65 ----------------------------
66
67 Beef up unit testing in SI package and fix a few static
68 analysis bugs. (RIC-777)
69
70
71
72 2021 April 19; version 4.7.3
73 ----------------------------
74
75 Correct flag check bug in route table functions (RIC-777).
76
77
78
79 2021 April 9; version 4.7.2
80 ---------------------------
81
82 Ensure that route table update received from route generator
83 is not applied before a full route table is received.
84
85
86
87 2021 April 2; version 4.7.1
88 ---------------------------
89
90 Correct issues found during static code analysis.
91
92
93
94 2021 March 31; version 4.7.0
95 ----------------------------
96
97 The route table collector thread will capture the current
98 "offering" from the Route Manager (table generator) if the
99 RMR_SEED_RT environment variable is set.
100
101
102
103 2021 March 10; version 4.6.1
104 ----------------------------
105
106 Corrected unit test "framework" to make manual testing
107 easier, and to add the ability to set the code optimisation
108 level via the CMake command line parameter OPT_LEVEL=n.
109
110
111
112 2021 February 22; Version 4.6.0
113 -------------------------------
114
115 Enhanced to use millisecond based timestamps when writing log
116 messages. (RIC-627)
117
118 Enhanced to eliminate the reqirement that the file specified
119 by the RMR_VCTL_FILE environment variable exist when RMR is
120 initialised. RMR will correctly find this file if it is
121 created after initialisation. Further, if the environment
122 variable is not given, the user may create and populate
123 /tmp/rmr.v at any time and the contents of this file will be
124 used as if it were supplied via the environment variable.
125 This should make debugging in existing containers easier.
126
127 Enhanced to send an alarm manager when the user application
128 is not receiving messages fast enough. The original messages
129 written to the standard error are still generated. (RIC-204)
130
131
132
133 2021 January 21; Version 4.5.2
134 ------------------------------
135
136 Fixes the excessive TCP session bug when sending to a slow
137 receiver and a related segment fault because of too many open
138 file descriptors. (RIC-735)
139
140
141
142 2021 January 19; Version 4.5.1
143 ------------------------------
144
145 Version bump to work round a CI job bug preventing push of
146 the 4.5.0 packages from staging to release in package cloud.
147 (RIC-732)
148
149
150
151 2021 January 8; Version 4.5.0
152 -----------------------------
153
154 Version bump for next release tracking. Corrected a potential
155 locking issue in message allocation. (RIC-732)
156
157
158
159 Cherry Release
160 ==============
161
162
163
164 2020 December 4; Version 4.4.6
165 ------------------------------
166
167 Correct a range check bug when cloning a route table in prep
168 to load a new one. (RIC-720)
169
170
171
172 2020 November 17; Version 4.4.5
173 -------------------------------
174
175 Correct bug in round robin group allocation that could lead
176 to an empty group. (RIC-695)
177
178
179
180 2020 November 13; Version 4.4.4
181 -------------------------------
182
183 Correct address memory leak in the RTE cleanup. (RIC-674)
184
185
186
187 2020 November 4; Version 4.4.3
188 ------------------------------
189
190 Correct bug introduced with race fix (4.4.0) (RIC-674)
191
192
193
194 2020 November 4; Version 4.4.2
195 ------------------------------
196
197 Changes to correct more complaints generated by a code scan.
198 (RIC-673) Also addressed some sonar coverage issues with unit
199 test changes.
200
201
202
203 2020 November 4; Version 4.4.1
204 ------------------------------
205
206 Changes to correct complaints generated by a code scan.
207 (RIC-673)
208
209
210
211 2020 November 4; Version 4.4.0
212 ------------------------------
213
214 Changes to address a potential race condition when route
215 tables arrive in quick succession. (RIC-674)
216
217
218
219 2020 October 30; Version 4.3.1
220 ------------------------------
221
222 Changes to address code analyser scans and two bug fixes
223 identified while addressing the analysis data. (RIC-673)
224
225
226
227 2020 October 2; Version 4.3.0
228 -----------------------------
229
230 Add message types for traffic steering anomaly messages
231
232
233
234 2020 September 15; Version 4.2.4
235 --------------------------------
236
237 Add man page for the rmr_set_low_latency() function (RIC-631)
238
239
240
241 2020 September 15; Version 4.2.3
242 --------------------------------
243
244 Correct arg processing bug in rmr_rpobe (RIC-645)
245
246
247
248 2020 August 4; Version 4.2.2
249 ----------------------------
250
251 Correct bug in the rmr_probe support utility when -r option
252 is used on the command line (RIC-644)
253
254
255
256 2020 August 4; Version 4.2.1
257 ----------------------------
258
259 Add additional environment variable dump if RMR_LOG_VLEVEL
260 set to 4 at start.
261
262
263
264 2020 August 3; Version 4.2.0
265 ----------------------------
266
267 Add support for the RMR_RTREQ_FREQ environment variable to
268 control the request frequency for a new route table (default
269 5s if not supplied). (RIC-630)
270
271
272
273 2020 July 21; Version 4.1.4
274 ---------------------------
275
276 Fix bug in SI95 -- possible use of pointer after free
277 (RIC-626).
278
279
280
281 2020 July 9; version 4.1.3
282 --------------------------
283
284 Allow RTS messages to be sent before the arrival of the
285 initial route table. Calls to RTS (heart beat responses)
286 prior to the initial route table load could cause a crash if
287 a framework blindly assumes that RTS is valid. (RIC-589)
288
289
290
291 2020 June 22; version 4.1.2
292 ---------------------------
293
294 Fix typo in RIC Message header file.
295
296 Add document for message type constants and the scripts which
297 generate them.
298
299
300
301 2020 June 22; version 4.1.1
302 ---------------------------
303
304 Add new message types to RIC header file for
305     RIC_ALARM           (110)
306     RIC_ALARM_QUERY     (111)
307     RIC_METRICS         (120)
308     RAN_E2_RESET_REQ    (12008)
309     RAN_E2_RESET_RESP   (12009)
310
311
312
313 2020 June 18; version 4.1.0
314 ---------------------------
315
316 Bump version minor to move away from 4.0.* which will bump
317 for any patches applied back to bronze.
318
319 Add magic C++ goo to symtab header file allowing C++ xAPPs to
320 use the symbol table directly.
321
322
323
324 Bronze Release
325 ==============
326
327
328
329 2020 May 06; version 4.0.5
330 --------------------------
331
332 Fix the bug in SI95 receive message management semaphore
333 count issue. (RIC-355)
334
335
336
337 2020 April 29; version 4.0.4
338 ----------------------------
339
340 Fix the traffic steering message type constants (again)
341 (RIC-342)
342
343
344
345 2020 April 28; version 4.0.3
346 ----------------------------
347
348 Fix sonar flagged bugs (RIC-78)
349
350
351
352 2020 April 24; version 4.0.2
353 ----------------------------
354
355 Correct bug in SI95 transport header length validation
356 (RIC-341)
357
358
359
360 2020 April 22; version 4.0.1
361 ----------------------------
362
363 Correct message type constant for Traffic Steering
364 predication (RIC-342)
365
366
367
368 2020 April 21; version 4.0.0
369 ----------------------------
370
371 The NNG based libraries are no longer included in the RMR
372 packages. This is considered a breaking change as NNG will
373 not be supported by default. It is still possible to build
374 with RMR-NNG libraries, but that is the exception. The API
375 between 3.8.2 and 4.0.0 is the SAME. Upgrading to 4.0.0 only
376 means that the underlying transport mechanism is limited only
377 to SI95.
378
379 The rmr_rcv_specific() function has been deprecated as it was
380 necessary only for NNG and Nanomsg support. Its use should be
381 discontinued.
382
383
384
385 2020 April 20; version 3.8.2
386 ----------------------------
387
388 Fix bug which was preventing an instance receiving dynamic
389 route table updates. (RIC-336)
390
391
392
393 2020 April 20; version 3.8.1
394 ----------------------------
395
396 Add user guide which replaces the concatenation of man pages
397 (RIC-328)
398
399
400
401 2020 April 17; version 3.8.0
402 ----------------------------
403
404 Add safe connect to avoid potential connect bug on Linux
405 (RIC-332)
406
407 Change debugging in route table collector to avoid possible
408 segment fault when in level 2 debug (RIC-335)
409
410
411
412 2020 April 15; version 3.7.4
413 ----------------------------
414
415 Add missing message type to header file (RIC-334)
416
417
418
419 2020 April 14; version 3.7.3
420 ----------------------------
421
422 Fix bug in rmr_call() when using SI95 (RIC-333)
423
424
425
426 2020 April 10; version 3.7.2
427 ----------------------------
428
429 Fix bug related to static route table only mode (RIC-331)
430
431
432
433 2020 April 9; version 3.7.1
434 ---------------------------
435
436 The max length restriction for receiving messages when using
437 SI95 has been removed. The length supplied during
438 initialisation is used as the "normal maximum" and default
439 buffer allocation size, but messages arriving which are
440 larger are accepted. (RIC-309)
441
442
443
444 2020 April 7; version 3.7.0
445 ---------------------------
446
447 The health check support programme was renamed to rmr_probe
448 (RIC-308).
449
450
451
452 2020 April 6; version 3.6.6
453 ---------------------------
454
455 Correct bug in SI95 address conversion module (RIC-327)
456 Correct bug in SI initialisation module
457
458
459
460 2020 April 2; version 3.6.5
461 ---------------------------
462
463 Correct potential nil pointer use when examining interfaces
464 for use as a listen target (RIC-307)
465
466
467
468 2020 April 1; version 3.6.4
469 ---------------------------
470
471 Correct potential nil pointer use in the NNG interface
472 (RIC-303) Correct issue preventing CI build without a
473 container
474
475
476
477 2020 March 30; version 3.6.3
478 ----------------------------
479
480 Correct the max receive message size constant in rmr.h
481 (RIC-301)
482
483
484
485 2020 March 23; version 3.6.2
486 ----------------------------
487
488 Fix message initialisation bug when pulling a message from
489 the pool (RIC-295)
490
491
492
493 2020 March 19; version 3.6.1
494 ----------------------------
495
496 Fix problem with RPM package install
497
498
499
500 2020 March 18; version 3.6.0
501 ----------------------------
502
503 Add message types to support traffic steering
504
505
506
507 2020 March 16; version 3.5.2
508 ----------------------------
509
510 Correct bug in the meid table parser that prevented the
511 ack/nack of meid tables (RIC-273)
512
513
514
515 2020 March 10; version 3.5.1
516 ----------------------------
517
518 Add missing health check message types.
519
520
521
522 2020 March 9; version 3.5.0
523 ---------------------------
524
525 Added new wormhole send function: rmr_wh_call().
526
527
528
529 2020 March 6; version 3.4.0
530 ---------------------------
531
532 Add new wormhole state function: rmr_wh_state().
533
534
535
536 2020 March 5; Version 3.3.1
537 ---------------------------
538
539 Correct several "bugs" identified by automatic code analysis.
540
541
542
543 2020 March 4; Version 3.3.0
544 ---------------------------
545
546 Add SI95 based unit testing Health check support binary added
547 (reason for minor bump)
548
549
550
551 2020 February 26; version 3.2.5
552 -------------------------------
553
554 Fix source address bug in SI95 receive/send funcitons. Fix
555 threading issues involving session disconnection in SI95
556 Remove unused SI95 status variable.
557
558
559
560 2020 February 24; version 3.2.4
561 -------------------------------
562
563 Fix meid bug (RIC-220) causing core dump.
564
565
566
567 2020 February 21; version 3.2.3
568 -------------------------------
569
570 Add meid routing support to the SI95 interface.
571
572
573
574 2020 February 20; version 3.2.2
575 -------------------------------
576
577 Fix receive thread related core dump (ring early unlock).
578
579
580
581 2020 February 19; version 3.2.1
582 -------------------------------
583
584 Added missing message types (E2-Setup)
585
586
587
588 2020 February 18; version 3.2.0
589 -------------------------------
590
591 Added support for new Route Manager and it's ability to
592 accept a request for table update.
593
594
595
596 2020 February 14; version 3.1.3
597 -------------------------------
598
599 Fix bug in SIsend which was causing a core dump in some cases
600 where the application attempted to send on a connection that
601 had disconnected. (RIC-207).
602
603
604
605 2020 February 6; version 3.1.2
606 ------------------------------
607
608 Fix disconnection detection bug in interface to SI95.
609
610
611
612 2020 January 31; verison 3.1.1
613 ------------------------------
614
615 Allow route table thread logging to be completely disabled
616 when logging is turned off.
617
618
619
620 2020 January 26; verison 3.1.0
621 ------------------------------
622
623 First step to allowing the user programme to control messages
624 written to standard error. Introduces the rmr_set_vlevel()
625 function, and related environment variable.
626
627
628
629 2020 January 24; verison 3.0.5
630 ------------------------------
631
632 Fix bug in SI95 with receive buffer allocation.
633
634
635
636 2020 January 23; verison 3.0.4
637 ------------------------------
638
639 Fix bug in SI95 causing excessive CPU usage on poll.
640
641
642
643 2020 January 22; verison 3.0.3
644 ------------------------------
645
646 Enable thread support for multiple receive threads.
647
648
649
650 2020 January 21; verison 3.0.2
651 ------------------------------
652
653 Fix bug in SI95 (missing reallocate payload function).
654
655
656
657 2020 January 20; verison 3.0.1
658 ------------------------------
659
660 Enable support for dynamic route table updates via RMR
661 session.
662
663
664
665 2020 January 16; version 3.0.0
666 ------------------------------
667
668 Introduce support for SI95 transport library to replace NNG.
669 (RMR library versions will use leading odd numbers to avoid
670 tag collisions with the wrapper tags which will use even
671 numbers.)
672
673
674
675 2019 December 9; version 1.13.1
676 -------------------------------
677
678 Correct documentation and missing rel-notes update for RTD.
679
680
681
682 2019 December 6; version 1.13.0
683 -------------------------------
684
685 Add ability to route messages based on the MEID in a message
686 combined with the message type/subscription-ID.
687
688
689
690 Amber Release
691 =============
692
693
694
695 2019 November 14; version 1.11.1
696 --------------------------------
697
698 Fix bug in payload reallocation function; correct length of
699 payload was not always copied.
700
701
702
703 2019 November 13; version 1.12.1
704 --------------------------------
705
706 New message type constants added to support A1.
707
708
709
710 2019 November 4; version 1.11.0
711 -------------------------------
712
713 Version bump to move away from the 1.10.* to distinguish
714 between release A and the trial.
715
716
717
718 2019 November 7; version 1.12.0
719 -------------------------------
720
721 Version cut to support continued development for next release
722 preserving the 1.11.* versions for release 1 (Amber) and
723 related fixes.
724
725
726
727 2019 October 31; version 1.10.2
728 -------------------------------
729
730 Provide the means to increase the payload size of a received
731 message without losing the data needed to use the
732 rmr_rts_msg() funciton.
733
734
735
736 2019 October 21; version 1.10.1
737 -------------------------------
738
739 Fix to prevent null message buffer from being returned by the
740 timeout receive function if the function is passed one to
741 reuse.
742
743
744
745 2019 October 21; version 1.10.1
746 -------------------------------
747
748 Add periodic dump of send count info to stderr.
749
750
751
752 2019 September 27; version 1.9.0
753 --------------------------------
754
755 Python bindings added receive all queued function and
756 corrected a unit test
757
758
759
760 2019 September 25; version 1.8.3
761 --------------------------------
762
763 Correct application level test issue causing timing problems
764 during jenkins verification testing at command and merge
765
766 Handle the NNG connection shutdown status which may now be
767 generated when a connection throug a proxy is reset.
768
769
770
771 2019 September 25; version 1.8.2
772 --------------------------------
773
774 Correct bug in rmr_torcv_msg() when timeout set to zero (0).
775
776
777
778 2019 September 19; version 1.8.1
779 --------------------------------
780
781 Correct missing constant for wrappers.
782
783
784
785 2019 September 19; version 1.8.0
786 --------------------------------
787
788 New message types added:
789     RAN_CONNECTED, RAN_RESTARTED, RAN_RECONFIGURED
790
791
792
793 2019 September 17; version 1.7.0
794 --------------------------------
795
796 Initial connection mode now defaults to asynchronous. Set
797 RMR_ASYNC_CONN=0 in the environment before rmr_init() is
798 invoked to revert to synchronous first TCP connections.
799 (Recovery connection attempts have always been asynchronous).
800
801
802
803 2019 September 3; version 1.6.0
804 -------------------------------
805
806 Fix bug in the rmr_rts_msg() function. If a return to sender
807 message failed, the source IP address was not correctly
808 adjusted and could cause the message to be "reflected" back
809 to the sender on a retry.
810
811 Added the ability to set the source "ID" via an environment
812 var (RMR_SRC_ID). When present in the environment, the string
813 will be placed in to the message header as the source and
814 thus be used by an application calling rmr_rts_smg() to
815 return a response to the sender. If this environment variable
816 is not present, the host name (original behaviour) is used.
817
818
819
820 2019 August 26; version 1.4.0
821 -----------------------------
822
823 New message types were added.
824
825
826
827 2019 August 16; version 1.3.0
828 -----------------------------
829
830 New mesage types added.
831
832
833
834 2019 August 13; version 1.2.0 (API change, non-breaking)
835 --------------------------------------------------------
836
837 The function rmr_get_xact() was added to proide a convenient
838 way to extract the transaction field from a message.
839
840
841
842 2019 August 8; version 1.1.0 (API change)
843 -----------------------------------------
844
845 This change should be backward compatable/non-breaking A new
846 field has been added to the message buffer (rmr_mbuf_t). This
847 field (tp_state) is used to communicate the errno value that
848 the transport mechanism might set during send and/or receive
849 operations. C programmes should continue to use errno
850 directly, but in some environments wrappers may not be able
851 to access errno and this provides the value to them. See the
852 rmr_alloc_msg manual page for more details.
853
854
855
856 2019 August 6; version 1.0.45 (build changes)
857 ---------------------------------------------
858
859 Support for the Nanomsg transport library has been dropped.
860     The library librmr.* will no longer be included in packages.
861
862 Packages will install RMR libraries into the system preferred
863     target directory. On some systems this is /usr/local/lib
864     and on others it is /usr/local/lib64.  The diretory is
865     determined by the sytem on which the package is built and
866     NOT by the system installing the package, so it's possible
867     that the RMR libraries end up in a strange location if the
868     .deb or .rpm file was generated on a Linux flavour that
869     has a different preference than the one where the package
870     is installed.
871
872
873
874 2019 August 6; version 1.0.44 (API change)
875 ------------------------------------------
876
877 Added a new message type constant.
878
879
880
881 2019 July 15; Version 1.0.39 (bug fix)
882 --------------------------------------
883
884 Prevent unnecessary usleep in retry loop.
885
886
887
888 2019 July 12; Version 1.0.38 (API change)
889 -----------------------------------------
890
891 Added new message types to RIC_message_types.h.
892
893
894
895 2019 July 11; Version 1.0.37
896 ----------------------------
897
898
899 librmr and librmr_nng
900     - Add message buffer API function rmr_trace_ref()
901       (see rmr_trace_ref.3 manual page in dev package).
902
903
904
905 2020 April 8; Version n/a
906 -------------------------
907
908 RMR Python moved to Python Xapp Framework
909 (https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py)
910
911
912
913 2020 February 29; Version 2.4.0
914 -------------------------------
915
916 Add consolidated testing under CMake Add support binary for
917 health check (SI95 only)
918
919
920
921 2020 February 28; Version 2.3.6
922 -------------------------------
923
924 Fix bug in Rt. Mgr comm which prevented table ID from being
925 sent on ack message (RIC-232).