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