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