Fix bug in message type header file 20/4220/4 4.1.2
authorE. Scott Daniels <daniels@research.att.com>
Mon, 22 Jun 2020 20:25:31 +0000 (16:25 -0400)
committerE. Scott Daniels <daniels@research.att.com>
Wed, 24 Jun 2020 15:12:41 +0000 (11:12 -0400)
There was a dangling 'i' on one of the new constants.

The script to scrape the message type header file and the
resulting RTD document are also included in this change.
The comments which provide supplemental documentation have
been added to the header file.

Issue-ID: RIC-514

Signed-off-by: E. Scott Daniels <daniels@research.att.com>
Change-Id: I8ba2eaa4242f0870e05030896050f7fe8e2dd106

CHANGES_CORE.txt
CMakeLists.txt
doc/src/rtd/Makefile
doc/src/rtd/scrape_types.sh [new file with mode: 0755]
doc/src/txt.im
docs/index.rst
docs/msg_types.rst [new file with mode: 0644]
docs/rel-notes.rst
src/rmr/common/include/RIC_message_types.h

index 05e0f73..8f58711 100644 (file)
@@ -5,6 +5,12 @@
 # API and build change  and fix summaries. Doc correctsions
 # and/or changes are not mentioned here; see the commit messages.
 
+2020 June 22; version 4.1.2
+       Fix typo in RIC Message header file.
+
+       Add document for message type constants and the scripts
+       which generate them.
+
 2020 June 22; version 4.1.1
        Add new message types to RIC header file for
                RIC_ALARM           (110)
index 1ea8d25..47bc69e 100644 (file)
@@ -41,7 +41,7 @@ cmake_minimum_required( VERSION 3.5 )
 
 set( major_version "4" )               # should be automatically populated from git tag later, but until CI process sets a tag we use this
 set( minor_version "1" )
-set( patch_level "1" )
+set( patch_level "2" )
 
 set( install_root "${CMAKE_INSTALL_PREFIX}" )
 set( install_inc "include/rmr" )
index 5f8cc68..dc8f4be 100644 (file)
@@ -59,11 +59,12 @@ $(docs:%=%.html): always
 publish : $(docs:%=%.rst)
        bash publish_man.sh;\
        bash publish_lib.sh;\
+       bash scrape_types.sh;\
        for f in *.rst;\
        do\
                if ! diff -N -q $$f ../../../docs/$$f >/dev/null 2>&1;\
                then\
-                       cp -p $$f ../../../docs/;\
+                       sed 's/ *$$//' $$f >../../../docs/$${f##*/};\
                fi;\
        done
 
diff --git a/doc/src/rtd/scrape_types.sh b/doc/src/rtd/scrape_types.sh
new file mode 100755 (executable)
index 0000000..de02835
--- /dev/null
@@ -0,0 +1,166 @@
+# :vim setet ts=4 sw=4:
+#==================================================================================
+#        Copyright (c) 2020 Nokia
+#        Copyright (c) 2020 AT&T Intellectual Property.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#==================================================================================
+
+#      Mnemonic:       scrape_types.sh
+#      Abstract:       This parses the RIC_msg_types header file and geneates
+#                              some doc.  See the header file for a description of what
+#                              is recognised by this parser.
+#      Date:           23 June 2020
+#      Author:         E. Scott Daniels
+# ----------------------------------------------------------------------------------
+
+
+sdir="../../../docs"                   # dir where RTD scraper looks
+input=../../../src/rmr/common/include/RIC_message_types.h
+xsrc=/tmp/PID$$.xfm
+export XFM_OUTPUT_TYPE=rst             # it should be this
+out_suffix=rst
+
+while [[ $1 == -* ]]
+do
+       case $1 in
+               -o)     export XFM_OUTPUT_TYPE=$2
+                       out_suffix=$2
+                       shift
+                       ;;
+
+               -t) sdir=$2; shift;;
+       esac
+
+       shift
+done
+
+export OUTPUT_TYPE=$XFM_OUTPUT_TYPE                    # compat with project setup
+
+cat <<endKat >$xsrc
+.**  CAUTION:
+.**  This {X}fm source is generated by $0 in $PWD. Any edits
+.**  are very likely to be lost.
+.**
+
+.dv doc_title RIC Message Types
+.im setup.im
+
+endKat
+
+sed 's/^ *//' $input | awk '
+       BEGIN {
+               space_ok = 1
+
+               off = 0                         # snarf types
+               anything = 1
+               desc = 2
+       }
+
+       # starting with token stk, build remaining tokens into a record
+       function build_rec( stk ) {
+               rec = ""
+               for( ; stk <= NF; stk++ ) {
+                       rec = rec $(stk) " "
+               }
+               return rec
+       }
+
+       # ------------------------------------------------------------------------
+
+       snarf && /^$/ && space_ok {
+               printf( "&space\n\n" );
+               space_ok = 0                                            # eat multiple blank lines
+               if( snarf == desc ) {
+                       snarf = off
+               }
+               next
+       }
+
+       $1 == "/*+" {
+               expect_header = 1
+               snarf = anything
+               space_ok = 1
+               next
+       }
+
+       expect_header {
+               if( dl_open ) {
+                       printf( "&end_dlist\n" );
+                       dl_open = 0
+               }
+               printf( "\n&h2(%s)\n", $0 )
+               space_ok = 1
+               expect_header = 0
+               next
+       }
+
+       snarf && $1 == "*/" {
+               snarf = off
+               space_ok = 0
+               next
+       }
+
+       /^#[ ]*define/ {
+               if( $4 == "//--" ) {                            # ignored completely
+                       next
+               }
+
+               if( ! dl_open ) {
+                       printf( "\n&beg_dlist( 1.5i Helvetica-bold : : 30,70) \n" )
+                       dl_open = 1
+               }
+
+               if( $4 == "//+" ) {
+                       printf( "&di(%s) %s\n", $2, build_rec( 5 ) )
+               } else {
+                       if( $4 == "//-" ) {
+                               printf( "&di(%s) deprecated\n", $2 )
+                       } else {
+                               printf( "&di(%s) &break\n", $2 )
+                       }
+               }
+
+               snarf = desc;                                           # snarf next only if //+ is the first token
+               next
+       }
+
+       snarf == desc {
+               if( $1 == "//+" ) {                                     # continued description, add it on
+                       printf( "%s\n", build_rec( 5 ) )
+               } else {
+                       snarf = off
+               }
+               next
+       }
+
+       snarf == anything {
+               print
+               next
+       }
+
+       END {
+               if( dl_open ) {
+                       printf( "&end_dlist\n" );
+               }
+
+               printf( ".qu\n" )
+       }
+' >>$xsrc
+
+tfm $xsrc stdout | sed 's/^ //; s/ *$//' >$sdir/msg_types.$out_suffix
+
+
+rm -f /tmp/PID$$.*
+
+
index 8caad33..0cd7951 100644 (file)
@@ -1,4 +1,4 @@
-f false
+.if false
 ==================================================================================
        Copyright (c) 2019 Nokia
        Copyright (c) 2018-2019 AT&T Intellectual Property.
@@ -60,6 +60,7 @@ f false
 .dv esc : .** rst needs an escape for some things
 
 .dv line_len .ll $1
+.dv break .br
 .dv space .sp 1
 .dv mult_space .sp $1
 .dv half_space .sp 1
index e7e4f6c..d0d3aeb 100644 (file)
@@ -18,6 +18,7 @@ for an overview of the library.
    user-guide.rst
    developer-guide.rst
    rt_tables.rst
+   msg_types.rst
 
 
 .. toctree::
diff --git a/docs/msg_types.rst b/docs/msg_types.rst
new file mode 100644 (file)
index 0000000..9ee41af
--- /dev/null
@@ -0,0 +1,498 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. CAUTION: this document is generated from source in doc/src/rtd.
+.. To make changes edit the source and recompile the document.
+.. Do NOT make changes directly to .rst or .md files.
+
+============================================================================================
+RIC Message Types
+============================================================================================
+
+
+Overview
+--------
+
+RMR routes messages based on a combination of message type
+and subscription ID both of which are integers. The message
+type constants are defined in the RIC_msg_types.h header file
+included with the RMR development package while subscription
+IDs are generated by the subscription manager process at
+run-time. This document does not include the constant values
+to avoid incorrectly propigating a stale value through the
+reference of an outdated document.
+
+
+Non-Routable Message Types
+--------------------------
+
+These message types are not routable and a message passed to
+an RMR function with any of these constants set will not be
+sent.
+
+   .. list-table::
+     :widths: 30,70
+     :header-rows: 0
+     :class: borderless
+
+     * - **RIC_UNDEFINED**
+       -
+         Message type is unset or undefined. Newly allocated messages
+         have the type value set to this constant.
+
+
+
+
+RMR Reserved Message Types
+--------------------------
+
+These message types are reserved for RMR communications (e.g.
+with Route Manager).
+
+   .. list-table::
+     :widths: 30,70
+     :header-rows: 0
+     :class: borderless
+
+     * - **RMRRM_TABLE_DATA**
+       -
+         Table data from route manger. Route manager sends all route
+         mse, etc.) with this type.
+
+     * - **RMRRM_REQ_TABLE**
+       -
+         Request for table update. RMR will send a message with this a
+         table update from route manger.
+
+     * - **RMRRM_TABLE_STATE**
+       -
+         This message type conveys the state of the route table to the
+         end of a table is noticed.
+
+
+
+
+System Support Message Types
+----------------------------
+
+These message types are used for systems level communications
+such as health checks, alarms and probes.
+
+   .. list-table::
+     :widths: 30,70
+     :header-rows: 0
+     :class: borderless
+
+     * - **RIC_HEALTH_CHECK_REQ**
+       -
+         When received the application is expected to return a
+         response to the current "health" of the application.
+
+     * - **RIC_HEALTH_CHECK_RESP**
+       -
+         Health responses are sent with a message of this type.
+
+     * - **RIC_ALARM**
+       -
+         Alarm messages with this type are routed to the alarm
+         collection process.
+
+     * - **RIC_ALARM_QUERY**
+       -
+         Unknown meaning
+
+     * - **RIC_METRICS**
+       -
+         This message type causes the message to be routed to the xAPP
+         responsible redistributing metrics.
+
+
+
+
+Unclassified Message Types
+--------------------------
+
+The following message types have not been clasified into a
+specific category.
+
+   .. list-table::
+     :widths: 30,70
+     :header-rows: 0
+     :class: borderless
+
+     * - **RIC_SCTP_CONNECTION_FAILURE**
+       -
+         |
+
+     * - **RIC_SCTP_CLEAR_ALL**
+       -
+         |
+
+     * - **E2_TERM_INIT**
+       -
+         |
+
+     * - **E2_TERM_KEEP_ALIVE_REQ**
+       -
+         |
+
+     * - **E2_TERM_KEEP_ALIVE_RESP**
+       -
+         |
+
+     * - **RAN_CONNECTED**
+       -
+         |
+
+     * - **RAN_RESTARTED**
+       -
+         |
+
+     * - **RAN_RECONFIGURED**
+       -
+         |
+
+     * - **RIC_ENB_LOAD_INFORMATION**
+       -
+         |
+
+     * - **RIC_ERROR_INDICATION**
+       -
+         |
+
+     * - **RIC_SN_STATUS_TRANSFER**
+       -
+         |
+
+     * - **RIC_UE_CONTEXT_RELEASE**
+       -
+         |
+
+     * - **RIC_X2_SETUP_REQ**
+       -
+         |
+
+     * - **RIC_X2_SETUP_RESP**
+       -
+         |
+
+     * - **RIC_X2_SETUP_FAILURE**
+       -
+         |
+
+     * - **RIC_X2_RESET**
+       -
+         |
+
+     * - **RIC_X2_RESET_RESP**
+       -
+         |
+
+     * - **RIC_ENB_CONF_UPDATE**
+       -
+         |
+
+     * - **RIC_ENB_CONF_UPDATE_ACK**
+       -
+         |
+
+     * - **RIC_ENB_CONF_UPDATE_FAILURE**
+       -
+         |
+
+     * - **RIC_RES_STATUS_REQ**
+       -
+         |
+
+     * - **RIC_RES_STATUS_RESP**
+       -
+         |
+
+     * - **RIC_RES_STATUS_FAILURE**
+       -
+         |
+
+     * - **RIC_RESOURCE_STATUS_UPDATE**
+       -
+         |
+
+     * - **RIC_SGNB_ADDITION_REQ**
+       -
+         |
+
+     * - **RIC_SGNB_ADDITION_ACK**
+       -
+         |
+
+     * - **RIC_SGNB_ADDITION_REJECT**
+       -
+         |
+
+     * - **RIC_SGNB_RECONF_COMPLETE**
+       -
+         |
+
+     * - **RIC_SGNB_MOD_REQUEST**
+       -
+         |
+
+     * - **RIC_SGNB_MOD_REQUEST_ACK**
+       -
+         |
+
+     * - **RIC_SGNB_MOD_REQUEST_REJ**
+       -
+         |
+
+     * - **RIC_SGNB_MOD_REQUIRED**
+       -
+         |
+
+     * - **RIC_SGNB_MOD_CONFIRM**
+       -
+         |
+
+     * - **RIC_SGNB_MOD_REFUSE**
+       -
+         |
+
+     * - **RIC_SGNB_RELEASE_REQUEST**
+       -
+         |
+
+     * - **RIC_SGNB_RELEASE_REQUEST_ACK**
+       -
+         |
+
+     * - **RIC_SGNB_RELEASE_REQUIRED**
+       -
+         |
+
+     * - **RIC_SGNB_RELEASE_CONFIRM**
+       -
+         |
+
+     * - **RIC_RRC_TRANSFER**
+       -
+         |
+
+     * - **RIC_ENDC_X2_SETUP_REQ**
+       -
+         |
+
+     * - **RIC_ENDC_X2_SETUP_RESP**
+       -
+         |
+
+     * - **RIC_ENDC_X2_SETUP_FAILURE**
+       -
+         |
+
+     * - **RIC_ENDC_CONF_UPDATE**
+       -
+         |
+
+     * - **RIC_ENDC_CONF_UPDATE_ACK**
+       -
+         |
+
+     * - **RIC_ENDC_CONF_UPDATE_FAILURE**
+       -
+         |
+
+     * - **RIC_SECONDARY_RAT_DATA_USAGE_REPORT**
+       -
+         |
+
+     * - **RIC_GNB_STATUS_INDICATION**
+       -
+         |
+
+     * - **RIC_E2_SETUP_REQ**
+       -
+         |
+
+     * - **RIC_E2_SETUP_RESP**
+       -
+         |
+
+     * - **RIC_E2_SETUP_FAILURE**
+       -
+         |
+
+     * - **RIC_E2_RESET_REQ**
+       -
+         |
+
+     * - **RIC_E2_RESET_RESP**
+       -
+         |
+
+     * - **RIC_E2_RAN_ERROR_INDICATION**
+       -
+         |
+
+     * - **RIC_E2_RIC_ERROR_INDICATION**
+       -
+         |
+
+     * - **RAN_E2_RESET_REQ**
+       -
+         |
+
+     * - **RAN_E2_RESET_RESP**
+       -
+         |
+
+     * - **RIC_SUB_REQ**
+       -
+         |
+
+     * - **RIC_SUB_RESP**
+       -
+         |
+
+     * - **RIC_SUB_FAILURE**
+       -
+         |
+
+     * - **RIC_SUB_DEL_REQ**
+       -
+         |
+
+     * - **RIC_SUB_DEL_RESP**
+       -
+         |
+
+     * - **RIC_SUB_DEL_FAILURE**
+       -
+         |
+
+     * - **RIC_SERVICE_UPDATE**
+       -
+         |
+
+     * - **RIC_SERVICE_UPDATE_ACK**
+       -
+         |
+
+     * - **RIC_SERVICE_UPDATE_FAILURE**
+       -
+         |
+
+     * - **RIC_CONTROL_REQ**
+       -
+         |
+
+     * - **RIC_CONTROL_ACK**
+       -
+         |
+
+     * - **RIC_CONTROL_FAILURE**
+       -
+         |
+
+     * - **RIC_INDICATION**
+       -
+         |
+
+     * - **RIC_SERVICE_QUERY**
+       -
+         |
+
+     * - **DC_ADM_INT_CONTROL**
+       -
+         |
+
+     * - **DC_ADM_INT_CONTROL_ACK**
+       -
+         |
+
+     * - **DC_ADM_GET_POLICY**
+       -
+         |
+
+     * - **DC_ADM_GET_POLICY_ACK**
+       -
+         |
+
+     * - **A1_POLICY_REQ**
+       -
+         |
+
+     * - **A1_POLICY_RESP**
+       -
+         |
+
+     * - **A1_POLICY_QUERY**
+       -
+         |
+
+     * - **TS_UE_LIST**
+       -
+         |
+
+     * - **TS_QOE_PRED_REQ**
+       -
+         |
+
+     * - **TS_QOE_PREDICTION**
+       -
+         |
+
+     * - **MC_REPORT**
+       -
+         |
+
+     * - **DCAPTERM_RTPM_RMR_MSGTYPE**
+       -
+         |
+
+     * - **DCAPTERM_GEO_RMR_MSGTYPE**
+       -
+         |
+
+     * - **RIC_X2_SETUP**
+       -
+         deprecated
+
+     * - **RIC_X2_RESPONSE**
+       -
+         deprecated
+
+     * - **RIC_X2_RESOURCE_STATUS_REQUEST**
+       -
+         deprecated
+
+     * - **RIC_X2_RESOURCE_STATUS_RESPONSE**
+       -
+         deprecated
+
+     * - **RIC_X2_LOAD_INFORMATION**
+       -
+         deprecated
+
+     * - **RIC_E2_TERMINATION_HC_REQUEST**
+       -
+         deprecated
+
+     * - **RIC_E2_TERMINATION_HC_RESPONSE**
+       -
+         deprecated
+
+     * - **RIC_E2_MANAGER_HC_REQUEST**
+       -
+         deprecated
+
+     * - **RIC_E2_MANAGER_HC_RESPONSE**
+       -
+         deprecated
+
+     * - **RIC_CONTROL_XAPP_CONFIG_REQUEST**
+       -
+         deprecated
+
+     * - **RIC_CONTROL_XAPP_CONFIG_RESPONSE**
+       -
+         deprecated
+
+
index cb1559e..2c12615 100644 (file)
@@ -1,48 +1,58 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License. 
-.. SPDX-License-Identifier: CC-BY-4.0 
-.. CAUTION: this document is generated from source in doc/src/rtd. 
-.. To make changes edit the source and recompile the document. 
-.. Do NOT make changes directly to .rst or .md files. 
-============================================================================================ 
-RMR Release Notes 
-============================================================================================ 
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. CAUTION: this document is generated from source in doc/src/rtd.
+.. To make changes edit the source and recompile the document.
+.. Do NOT make changes directly to .rst or .md files.
+
+============================================================================================
+RMR Release Notes
+============================================================================================
 
 
 RMR Release Notes
 =================
 
-The following is a list of release highlights for the RMR 
-library. At one point in time the RMR repo also housed a 
-wrapper library with a separate version and release cycle. 
-This resulted in *leap frogging* versions for each package; 
-the RMR core library was assigned odd major numbers (e.g. 
-3.1.0). When the wrapper code was moved to a different repo 
-the need to leap frog versions ceased, and beginning with 
-version 4.0.0, the RMR versions should no longer skip. 
+The following is a list of release highlights for the RMR
+library. At one point in time the RMR repo also housed a
+wrapper library with a separate version and release cycle.
+This resulted in *leap frogging* versions for each package;
+the RMR core library was assigned odd major numbers (e.g.
+3.1.0). When the wrapper code was moved to a different repo
+the need to leap frog versions ceased, and beginning with
+version 4.0.0, the RMR versions should no longer skip.
+
+
+2020 June 22; version 4.1.2
+---------------------------
+
+Fix typo in RIC Message header file.
+
+Add document for message type constants and the scripts which
+generate them.
+
 
 
 2020 June 22; version 4.1.1
 ---------------------------
 
-Add new message types to RIC header file for 
+Add new message types to RIC header file for
     RIC_ALARM           (110)
     RIC_ALARM_QUERY     (111)
     RIC_METRICS         (120)
     RAN_E2_RESET_REQ    (12008)
     RAN_E2_RESET_RESP   (12009)
+
 
 
 2020 June 18; version 4.1.0
 ---------------------------
 
-Bump version minor to move away from 4.0.* which will bump 
-for any patches applied back to bronze. 
-Add magic C++ goo to symtab header file allowing C++ xAPPs to 
-use the symbol table directly. 
+Bump version minor to move away from 4.0.* which will bump
+for any patches applied back to bronze.
+
+Add magic C++ goo to symtab header file allowing C++ xAPPs to
+use the symbol table directly.
+
 
 
 Bronze Release
@@ -53,362 +63,362 @@ Bronze Release
 2020 May 06; version 4.0.5
 --------------------------
 
-Fix the bug in SI95 receive message management semaphore 
-count issue. (RIC-355) 
+Fix the bug in SI95 receive message management semaphore
+count issue. (RIC-355)
+
 
 
 2020 April 29; version 4.0.4
 ----------------------------
 
-Fix the traffic steering message type constants (again) 
-(RIC-342) 
+Fix the traffic steering message type constants (again)
+(RIC-342)
+
 
 
 2020 April 28; version 4.0.3
 ----------------------------
 
-Fix sonar flagged bugs (RIC-78) 
+Fix sonar flagged bugs (RIC-78)
+
 
 
 2020 April 24; version 4.0.2
 ----------------------------
 
-Correct bug in SI95 transport header length validation 
-(RIC-341) 
+Correct bug in SI95 transport header length validation
+(RIC-341)
+
 
 
 2020 April 22; version 4.0.1
 ----------------------------
 
-Correct message type constant for Traffic Steering 
-predication (RIC-342) 
+Correct message type constant for Traffic Steering
+predication (RIC-342)
+
 
 
 2020 April 21; version 4.0.0
 ----------------------------
 
-The NNG based libraries are no longer included in the RMR 
-packages. This is considered a breaking change as NNG will 
-not be supported by default. It is still possible to build 
-with RMR-NNG libraries, but that is the exception. The API 
-between 3.8.2 and 4.0.0 is the SAME. Upgrading to 4.0.0 only 
-means that the underlying transport mechanism is limited only 
-to SI95. 
-The rmr_rcv_specific() function has been deprecated as it was 
-necessary only for NNG and Nanomsg support. Its use should be 
-discontinued. 
+The NNG based libraries are no longer included in the RMR
+packages. This is considered a breaking change as NNG will
+not be supported by default. It is still possible to build
+with RMR-NNG libraries, but that is the exception. The API
+between 3.8.2 and 4.0.0 is the SAME. Upgrading to 4.0.0 only
+means that the underlying transport mechanism is limited only
+to SI95.
+
+The rmr_rcv_specific() function has been deprecated as it was
+necessary only for NNG and Nanomsg support. Its use should be
+discontinued.
+
 
 
 2020 April 20; version 3.8.2
 ----------------------------
 
-Fix bug which was preventing an instance receiving dynamic 
-route table updates. (RIC-336) 
+Fix bug which was preventing an instance receiving dynamic
+route table updates. (RIC-336)
+
 
 
 2020 April 20; version 3.8.1
 ----------------------------
 
-Add user guide which replaces the concatenation of man pages 
-(RIC-328) 
+Add user guide which replaces the concatenation of man pages
+(RIC-328)
+
 
 
 2020 April 17; version 3.8.0
 ----------------------------
 
-Add safe connect to avoid potential connect bug on Linux 
-(RIC-332) 
-Change debugging in route table collector to avoid possible 
-segment fault when in level 2 debug (RIC-335) 
+Add safe connect to avoid potential connect bug on Linux
+(RIC-332)
+
+Change debugging in route table collector to avoid possible
+segment fault when in level 2 debug (RIC-335)
+
 
 
 2020 April 15; version 3.7.4
 ----------------------------
 
-Add missing message type to header file (RIC-334) 
+Add missing message type to header file (RIC-334)
+
 
 
 2020 April 14; version 3.7.3
 ----------------------------
 
-Fix bug in rmr_call() when using SI95 (RIC-333) 
+Fix bug in rmr_call() when using SI95 (RIC-333)
+
 
 
 2020 April 10; version 3.7.2
 ----------------------------
 
-Fix bug related to static route table only mode (RIC-331) 
+Fix bug related to static route table only mode (RIC-331)
+
 
 
 2020 April 9; version 3.7.1
 ---------------------------
 
-The max length restriction for receiving messages when using 
-SI95 has been removed. The length supplied during 
-initialisation is used as the "normal maximum" and default 
-buffer allocation size, but messages arriving which are 
-larger are accepted. (RIC-309) 
+The max length restriction for receiving messages when using
+SI95 has been removed. The length supplied during
+initialisation is used as the "normal maximum" and default
+buffer allocation size, but messages arriving which are
+larger are accepted. (RIC-309)
+
 
 
 2020 April 7; version 3.7.0
 ---------------------------
 
-The health check support programme was renamed to rmr_probe 
-(RIC-308). 
+The health check support programme was renamed to rmr_probe
+(RIC-308).
+
 
 
 2020 April 6; version 3.6.6
 ---------------------------
 
-Correct bug in SI95 address conversion module (RIC-327) 
-Correct bug in SI initialisation module 
+Correct bug in SI95 address conversion module (RIC-327)
+Correct bug in SI initialisation module
+
 
 
 2020 April 2; version 3.6.5
 ---------------------------
 
-Correct potential nil pointer use when examining interfaces 
-for use as a listen target (RIC-307) 
+Correct potential nil pointer use when examining interfaces
+for use as a listen target (RIC-307)
+
 
 
 2020 April 1; version 3.6.4
 ---------------------------
 
-Correct potential nil pointer use in the NNG interface 
-(RIC-303) Correct issue preventing CI build without a 
-container 
+Correct potential nil pointer use in the NNG interface
+(RIC-303) Correct issue preventing CI build without a
+container
+
 
 
 2020 March 30; version 3.6.3
 ----------------------------
 
-Correct the max receive message size constant in rmr.h 
-(RIC-301) 
+Correct the max receive message size constant in rmr.h
+(RIC-301)
+
 
 
 2020 March 23; version 3.6.2
 ----------------------------
 
-Fix message initialisation bug when pulling a message from 
-the pool (RIC-295) 
+Fix message initialisation bug when pulling a message from
+the pool (RIC-295)
+
 
 
 2020 March 19; version 3.6.1
 ----------------------------
 
-Fix problem with RPM package install 
+Fix problem with RPM package install
+
 
 
 2020 March 18; version 3.6.0
 ----------------------------
 
-Add message types to support traffic steering 
+Add message types to support traffic steering
+
 
 
 2020 March 16; version 3.5.2
 ----------------------------
 
-Correct bug in the meid table parser that prevented the 
-ack/nack of meid tables (RIC-273) 
+Correct bug in the meid table parser that prevented the
+ack/nack of meid tables (RIC-273)
+
 
 
 2020 March 10; version 3.5.1
 ----------------------------
 
-Add missing health check message types. 
+Add missing health check message types.
+
 
 
 2020 March 9; version 3.5.0
 ---------------------------
 
-Added new wormhole send function: rmr_wh_call(). 
+Added new wormhole send function: rmr_wh_call().
+
 
 
 2020 March 6; version 3.4.0
 ---------------------------
 
-Add new wormhole state function: rmr_wh_state(). 
+Add new wormhole state function: rmr_wh_state().
+
 
 
 2020 March 5; Version 3.3.1
 ---------------------------
 
-Correct several "bugs" identified by automatic code analysis. 
+Correct several "bugs" identified by automatic code analysis.
+
 
 
 2020 March 4; Version 3.3.0
 ---------------------------
 
-Add SI95 based unit testing Health check support binary added 
-(reason for minor bump) 
+Add SI95 based unit testing Health check support binary added
+(reason for minor bump)
+
 
 
 2020 February 26; version 3.2.5
 -------------------------------
 
-Fix source address bug in SI95 receive/send funcitons. Fix 
-threading issues involving session disconnection in SI95 
-Remove unused SI95 status variable. 
+Fix source address bug in SI95 receive/send funcitons. Fix
+threading issues involving session disconnection in SI95
+Remove unused SI95 status variable.
+
 
 
 2020 February 24; version 3.2.4
 -------------------------------
 
-Fix meid bug (RIC-220) causing core dump. 
+Fix meid bug (RIC-220) causing core dump.
+
 
 
 2020 February 21; version 3.2.3
 -------------------------------
 
-Add meid routing support to the SI95 interface. 
+Add meid routing support to the SI95 interface.
+
 
 
 2020 February 20; version 3.2.2
 -------------------------------
 
-Fix receive thread related core dump (ring early unlock). 
+Fix receive thread related core dump (ring early unlock).
+
 
 
 2020 February 19; version 3.2.1
 -------------------------------
 
-Added missing message types (E2-Setup) 
+Added missing message types (E2-Setup)
+
 
 
 2020 February 18; version 3.2.0
 -------------------------------
 
-Added support for new Route Manager and it's ability to 
-accept a request for table update. 
+Added support for new Route Manager and it's ability to
+accept a request for table update.
+
 
 
 2020 February 14; version 3.1.3
 -------------------------------
 
-Fix bug in SIsend which was causing a core dump in some cases 
-where the application attempted to send on a connection that 
-had disconnected. (RIC-207). 
+Fix bug in SIsend which was causing a core dump in some cases
+where the application attempted to send on a connection that
+had disconnected. (RIC-207).
+
 
 
 2020 February 6; version 3.1.2
 ------------------------------
 
-Fix disconnection detection bug in interface to SI95. 
+Fix disconnection detection bug in interface to SI95.
+
 
 
 2020 January 31; verison 3.1.1
 ------------------------------
 
-Allow route table thread logging to be completely disabled 
-when logging is turned off. 
+Allow route table thread logging to be completely disabled
+when logging is turned off.
+
 
 
 2020 January 26; verison 3.1.0
 ------------------------------
 
-First step to allowing the user programme to control messages 
-written to standard error. Introduces the rmr_set_vlevel() 
-function, and related environment variable. 
+First step to allowing the user programme to control messages
+written to standard error. Introduces the rmr_set_vlevel()
+function, and related environment variable.
+
 
 
 2020 January 24; verison 3.0.5
 ------------------------------
 
-Fix bug in SI95 with receive buffer allocation. 
+Fix bug in SI95 with receive buffer allocation.
+
 
 
 2020 January 23; verison 3.0.4
 ------------------------------
 
-Fix bug in SI95 causing excessive CPU usage on poll. 
+Fix bug in SI95 causing excessive CPU usage on poll.
+
 
 
 2020 January 22; verison 3.0.3
 ------------------------------
 
-Enable thread support for multiple receive threads. 
+Enable thread support for multiple receive threads.
+
 
 
 2020 January 21; verison 3.0.2
 ------------------------------
 
-Fix bug in SI95 (missing reallocate payload function). 
+Fix bug in SI95 (missing reallocate payload function).
+
 
 
 2020 January 20; verison 3.0.1
 ------------------------------
 
-Enable support for dynamic route table updates via RMR 
-session. 
+Enable support for dynamic route table updates via RMR
+session.
+
 
 
 2020 January 16; version 3.0.0
 ------------------------------
 
-Introduce support for SI95 transport library to replace NNG. 
-(RMR library versions will use leading odd numbers to avoid 
-tag collisions with the wrapper tags which will use even 
-numbers.) 
+Introduce support for SI95 transport library to replace NNG.
+(RMR library versions will use leading odd numbers to avoid
+tag collisions with the wrapper tags which will use even
+numbers.)
+
 
 
 2019 December 9; version 1.13.1
 -------------------------------
 
-Correct documentation and missing rel-notes update for RTD. 
+Correct documentation and missing rel-notes update for RTD.
+
 
 
 2019 December 6; version 1.13.0
 -------------------------------
 
-Add ability to route messages based on the MEID in a message 
-combined with the message type/subscription-ID. 
+Add ability to route messages based on the MEID in a message
+combined with the message type/subscription-ID.
+
 
 
 Amber Release
@@ -419,171 +429,171 @@ Amber Release
 2019 November 14; version 1.11.1
 --------------------------------
 
-Fix bug in payload reallocation function; correct length of 
-payload was not always copied. 
+Fix bug in payload reallocation function; correct length of
+payload was not always copied.
+
 
 
 2019 November 13; version 1.12.1
 --------------------------------
 
-New message type constants added to support A1. 
+New message type constants added to support A1.
+
 
 
 2019 November 4; version 1.11.0
 -------------------------------
 
-Version bump to move away from the 1.10.* to distinguish 
-between release A and the trial. 
+Version bump to move away from the 1.10.* to distinguish
+between release A and the trial.
+
 
 
 2019 November 7; version 1.12.0
 -------------------------------
 
-Version cut to support continued development for next release 
-preserving the 1.11.* versions for release 1 (Amber) and 
-related fixes. 
+Version cut to support continued development for next release
+preserving the 1.11.* versions for release 1 (Amber) and
+related fixes.
+
 
 
 2019 October 31; version 1.10.2
 -------------------------------
 
-Provide the means to increase the payload size of a received 
-message without losing the data needed to use the 
-rmr_rts_msg() funciton. 
+Provide the means to increase the payload size of a received
+message without losing the data needed to use the
+rmr_rts_msg() funciton.
+
 
 
 2019 October 21; version 1.10.1
 -------------------------------
 
-Fix to prevent null message buffer from being returned by the 
-timeout receive function if the function is passed one to 
-reuse. 
+Fix to prevent null message buffer from being returned by the
+timeout receive function if the function is passed one to
+reuse.
+
 
 
 2019 October 21; version 1.10.1
 -------------------------------
 
-Add periodic dump of send count info to stderr. 
+Add periodic dump of send count info to stderr.
+
 
 
 2019 September 27; version 1.9.0
 --------------------------------
 
-Python bindings added receive all queued function and 
-corrected a unit test 
+Python bindings added receive all queued function and
+corrected a unit test
+
 
 
 2019 September 25; version 1.8.3
 --------------------------------
 
-Correct application level test issue causing timing problems 
-during jenkins verification testing at command and merge 
-Handle the NNG connection shutdown status which may now be 
-generated when a connection throug a proxy is reset. 
+Correct application level test issue causing timing problems
+during jenkins verification testing at command and merge
+
+Handle the NNG connection shutdown status which may now be
+generated when a connection throug a proxy is reset.
+
 
 
 2019 September 25; version 1.8.2
 --------------------------------
 
-Correct bug in rmr_torcv_msg() when timeout set to zero (0). 
+Correct bug in rmr_torcv_msg() when timeout set to zero (0).
+
 
 
 2019 September 19; version 1.8.1
 --------------------------------
 
-Correct missing constant for wrappers. 
+Correct missing constant for wrappers.
+
 
 
 2019 September 19; version 1.8.0
 --------------------------------
 
-New message types added: 
+New message types added:
     RAN_CONNECTED, RAN_RESTARTED, RAN_RECONFIGURED
+
 
 
 2019 September 17; version 1.7.0
 --------------------------------
 
-Initial connection mode now defaults to asynchronous. Set 
-RMR_ASYNC_CONN=0 in the environment before rmr_init() is 
-invoked to revert to synchronous first TCP connections. 
-(Recovery connection attempts have always been asynchronous). 
+Initial connection mode now defaults to asynchronous. Set
+RMR_ASYNC_CONN=0 in the environment before rmr_init() is
+invoked to revert to synchronous first TCP connections.
+(Recovery connection attempts have always been asynchronous).
+
 
 
 2019 September 3; version 1.6.0
 -------------------------------
 
-Fix bug in the rmr_rts_msg() function. If a return to sender 
-message failed, the source IP address was not correctly 
-adjusted and could cause the message to be "reflected" back 
-to the sender on a retry. 
-Added the ability to set the source "ID" via an environment 
-var (RMR_SRC_ID). When present in the environment, the string 
-will be placed in to the message header as the source and 
-thus be used by an application calling rmr_rts_smg() to 
-return a response to the sender. If this environment variable 
-is not present, the host name (original behaviour) is used. 
+Fix bug in the rmr_rts_msg() function. If a return to sender
+message failed, the source IP address was not correctly
+adjusted and could cause the message to be "reflected" back
+to the sender on a retry.
+
+Added the ability to set the source "ID" via an environment
+var (RMR_SRC_ID). When present in the environment, the string
+will be placed in to the message header as the source and
+thus be used by an application calling rmr_rts_smg() to
+return a response to the sender. If this environment variable
+is not present, the host name (original behaviour) is used.
+
 
 
 2019 August 26; version 1.4.0
 -----------------------------
 
-New message types were added. 
+New message types were added.
+
 
 
 2019 August 16; version 1.3.0
 -----------------------------
 
-New mesage types added. 
+New mesage types added.
+
 
 
 2019 August 13; version 1.2.0 (API change, non-breaking)
 --------------------------------------------------------
 
-The function rmr_get_xact() was added to proide a convenient 
-way to extract the transaction field from a message. 
+The function rmr_get_xact() was added to proide a convenient
+way to extract the transaction field from a message.
+
 
 
 2019 August 8; version 1.1.0 (API change)
 -----------------------------------------
 
-This change should be backward compatable/non-breaking A new 
-field has been added to the message buffer (rmr_mbuf_t). This 
-field (tp_state) is used to communicate the errno value that 
-the transport mechanism might set during send and/or receive 
-operations. C programmes should continue to use errno 
-directly, but in some environments wrappers may not be able 
-to access errno and this provides the value to them. See the 
-rmr_alloc_msg manual page for more details. 
+This change should be backward compatable/non-breaking A new
+field has been added to the message buffer (rmr_mbuf_t). This
+field (tp_state) is used to communicate the errno value that
+the transport mechanism might set during send and/or receive
+operations. C programmes should continue to use errno
+directly, but in some environments wrappers may not be able
+to access errno and this provides the value to them. See the
+rmr_alloc_msg manual page for more details.
+
 
 
 2019 August 6; version 1.0.45 (build changes)
 ---------------------------------------------
 
-Support for the Nanomsg transport library has been dropped. 
+Support for the Nanomsg transport library has been dropped.
     The library librmr.* will no longer be included in packages.
-Packages will install RMR libraries into the system preferred 
+
+Packages will install RMR libraries into the system preferred
     target directory. On some systems this is /usr/local/lib
     and on others it is /usr/local/lib64.  The diretory is
     determined by the sytem on which the package is built and
@@ -592,58 +602,58 @@ Packages will install RMR libraries into the system preferred
     .deb or .rpm file was generated on a Linux flavour that
     has a different preference than the one where the package
     is installed.
+
 
 
 2019 August 6; version 1.0.44 (API change)
 ------------------------------------------
 
-Added a new message type constant. 
+Added a new message type constant.
+
 
 
 2019 July 15; Version 1.0.39 (bug fix)
 --------------------------------------
 
-Prevent unnecessary usleep in retry loop. 
+Prevent unnecessary usleep in retry loop.
+
 
 
 2019 July 12; Version 1.0.38 (API change)
 -----------------------------------------
 
-Added new message types to RIC_message_types.h. 
+Added new message types to RIC_message_types.h.
+
 
 
 2019 July 11; Version 1.0.37
 ----------------------------
 
-librmr and librmr_nng 
+
+librmr and librmr_nng
     - Add message buffer API function rmr_trace_ref()
       (see rmr_trace_ref.3 manual page in dev package).
+
 
 
 2020 April 8; Version n/a
 -------------------------
 
-RMR Python moved to Python Xapp Framework 
-(https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py) 
+RMR Python moved to Python Xapp Framework
+(https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py)
+
 
 
 2020 February 29; Version 2.4.0
 -------------------------------
 
-Add consolidated testing under CMake Add support binary for 
-health check (SI95 only) 
+Add consolidated testing under CMake Add support binary for
+health check (SI95 only)
+
 
 
 2020 February 28; Version 2.3.6
 -------------------------------
 
-Fix bug in Rt. Mgr comm which prevented table ID from being 
-sent on ack message (RIC-232). 
+Fix bug in Rt. Mgr comm which prevented table ID from being
+sent on ack message (RIC-232).
index b336237..3b8f8ea 100644 (file)
@@ -1,7 +1,8 @@
+// :vim setet ts=4 sw=4:
 /*
 ==================================================================================
-        Copyright (c) 2019 Nokia
-        Copyright (c) 2018-2019 AT&T Intellectual Property.
+        Copyright (c) 2019-2020 Nokia
+        Copyright (c) 2018-2020 AT&T Intellectual Property.
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
 
 
 /*
-       Header  file defining  message types for various RMR messages
+    Header  file defining  message types for various RMR messages.
+    This file is an exception: please expand tabs.
 */
 
-#define RIC_UNDEFINED                          -1
-
 /*
----------------------------------------------------------
-       RMR Reserved types
-               All message types 0 - 99 are reserved for RMM.
----------------------------------------------------------
+    This file is scraped and documentation is produced from the comments. Block
+    comments which have have a plus sign immediately following the asterisk
+    (e.g. /*+) will be interpereted as a header, followed by a paragraph
+    of text. Blank lines are preserved, and consecutive text lines are combined
+    such that the convenient method of starting a new sentance on a new line
+    is enabled.
+
+    Line comments which have a trailing plus sign (e.g. //+) are used to document
+    the individual constant.  These _must_ begin on the same line as the constant
+    and may "splill" to following lines if needed.
+
+    Occasionally constants are deprecated and should not be used. Tagging a comment
+    with //- will cause the constant to be included in the document and flagged as
+    deprecated while //-- will cause the constant to be ignored when generating the
+    document.
+
+    All recognised comment symbols must have at least one trailing space, or be
+    the last token on the line (//+boo wont be recognised).
+
+    The layout of this file is "two column" to allow the eyes to easy read down
+    though constant names and values without being interrupted by the documentation
+    (commetns) which are placed to the right.   Only major section descriptions
+    should break the "flow."
+
+    Other requests:
+        - Please keep additions in numerical order
+        - Please vet the file before commiting changes to ensure that it compiles
+            and that there are no dupicates.
+        - Please try to avoid excessivly long constant names e.g. RIC_SECONDARY_RAT_DATA_USAGE_REPORT
 */
 
-#define RMRRM_TABLE_DATA                       20              // table data from route manger
-#define        RMRRM_REQ_TABLE                         21              // request for table update to route mangager
-#define RMRRM_TABLE_STATE                      22              // state of table to route mgr
+/*+
+    Overview
+    RMR routes messages based on a combination of message type and subscription ID
+       both of which are integers.
+    The message type constants are defined in the RIC_msg_types.h header file included with the RMR
+    development package while subscription IDs are generated by the subscription manager
+       process at run-time.
+       This document does not include the constant values to avoid incorrectly propagating
+       a stale value through the reference of an outdated document.
+*/
 
+/*+
+    Non-Routable Message Types
+    These message types are not routable and a message passed to an RMR function with any of
+       these constants set will not be sent.
+*/
 
-// --- system support messages -----------------------
-#define RIC_HEALTH_CHECK_REQ    100
-#define RIC_HEALTH_CHECK_RESP   101
+#define RIC_UNDEFINED                       -1          //+ Message type is unset or undefined. Newly allocated messages
+                                                        //+ by rmr_alloc_msg() will have the type value set to this constant.
 
-#define RIC_ALARMi                             110
-#define RIC_ALARM_QUERY                        111
+/*+
+    RMR Reserved Message Types
+    These message types are reserved for RMR communications (e.g. with Route Manager).
+*/
+// All message types 0 - 99 are reserved for RMR.
 
-#define RIC_METRICS                            120
+#define RMRRM_TABLE_DATA                    20          //+ Table data from route manger. Route manager sends all route
+                                                        //+ table records (rte, mse, etc.) with this type.
+#define RMRRM_REQ_TABLE                     21          //+ Request for table update. RMR will send a message with this
+                                                        //+ type when requesting a table update from route manger.
+#define RMRRM_TABLE_STATE                   22          //+ This message type conveys the state of the route table to
+                                                        //+ route manager after the end of a table is noticed.
 
-// --- please keep additions in numerical order ------
 
-#define RIC_SCTP_CONNECTION_FAILURE 1080
-#define RIC_SCTP_CLEAR_ALL                     1090
+/*+
+    System Support Message Types
+    These message types are used for systems level communications such
+    as health checks, alarms and probes.
+*/
+// Values for system constants are 100-299
+
+#define RIC_HEALTH_CHECK_REQ                100         //+ When received the application is expected to return a response to
+                                                        //+ the sender indicating the current "health" of the application.
+#define RIC_HEALTH_CHECK_RESP               101         //+ Health responses are sent with a message of this type.
 
-#define        E2_TERM_INIT                            1100
-#define E2_TERM_KEEP_ALIVE_REQ         1101
-#define E2_TERM_KEEP_ALIVE_RESP                1102
+#define RIC_ALARM                           110         //+ Alarm messages with this type are routed to the alarm collection process.
+#define RIC_ALARM_QUERY                     111         //+ Unknown meaning
 
-#define        RAN_CONNECTED                           1200
-#define        RAN_RESTARTED                           1210
-#define        RAN_RECONFIGURED                        1220
+#define RIC_METRICS                         120         //+ This message type causes the message to be routed to the xAPP responsible
+                                                        //+ for collecting and redistributing metrics.
 
+// TODO: classify these types for documentation purposes :)
+/*+
+       Unclassified Message Types
+       The following message types have not been clasified into a specific category.
+*/
 
-#define RIC_ENB_LOAD_INFORMATION       10020
+#define RIC_SCTP_CONNECTION_FAILURE         1080
+#define RIC_SCTP_CLEAR_ALL                  1090
 
-#define RIC_ERROR_INDICATION           10030
+#define E2_TERM_INIT                        1100
+#define E2_TERM_KEEP_ALIVE_REQ              1101
+#define E2_TERM_KEEP_ALIVE_RESP             1102
 
-#define        RIC_SN_STATUS_TRANSFER          10040
+#define RAN_CONNECTED                       1200
+#define RAN_RESTARTED                       1210
+#define RAN_RECONFIGURED                    1220
 
-#define RIC_UE_CONTEXT_RELEASE         10050
 
-#define RIC_X2_SETUP_REQ                       10060
-#define RIC_X2_SETUP_RESP                      10061
-#define RIC_X2_SETUP_FAILURE           10062
-#define RIC_X2_RESET                           10070
-#define        RIC_X2_RESET_RESP                       10071
+#define RIC_ENB_LOAD_INFORMATION            10020
 
-#define RIC_ENB_CONF_UPDATE                    10080
-#define RIC_ENB_CONF_UPDATE_ACK                10081
-#define RIC_ENB_CONF_UPDATE_FAILURE    10082
+#define RIC_ERROR_INDICATION                10030
 
-#define RIC_RES_STATUS_REQ                     10090
-#define RIC_RES_STATUS_RESP                    10091
-#define RIC_RES_STATUS_FAILURE         10092
+#define RIC_SN_STATUS_TRANSFER              10040
 
-#define RIC_RESOURCE_STATUS_UPDATE     10100
+#define RIC_UE_CONTEXT_RELEASE              10050
 
-#define RIC_SGNB_ADDITION_REQ          10270
-#define RIC_SGNB_ADDITION_ACK          10271
-#define RIC_SGNB_ADDITION_REJECT       10272
-#define RIC_SGNB_RECONF_COMPLETE       10280
+#define RIC_X2_SETUP_REQ                    10060
+#define RIC_X2_SETUP_RESP                   10061
+#define RIC_X2_SETUP_FAILURE                10062
+#define RIC_X2_RESET                        10070
+#define RIC_X2_RESET_RESP                   10071
 
-#define        RIC_SGNB_MOD_REQUEST            10290
-#define        RIC_SGNB_MOD_REQUEST_ACK        10291
-#define        RIC_SGNB_MOD_REQUEST_REJ        10292
+#define RIC_ENB_CONF_UPDATE                 10080
+#define RIC_ENB_CONF_UPDATE_ACK             10081
+#define RIC_ENB_CONF_UPDATE_FAILURE         10082
 
-#define        RIC_SGNB_MOD_REQUIRED           10300
-#define        RIC_SGNB_MOD_CONFIRM            10301
-#define        RIC_SGNB_MOD_REFUSE                     10302
+#define RIC_RES_STATUS_REQ                  10090
+#define RIC_RES_STATUS_RESP                 10091
+#define RIC_RES_STATUS_FAILURE              10092
 
-#define        RIC_SGNB_RELEASE_REQUEST        10310
-#define        RIC_SGNB_RELEASE_REQUEST_ACK 10311
+#define RIC_RESOURCE_STATUS_UPDATE          10100
 
-#define        RIC_SGNB_RELEASE_REQUIRED       10320
-#define        RIC_SGNB_RELEASE_CONFIRM        10321
+#define RIC_SGNB_ADDITION_REQ               10270
+#define RIC_SGNB_ADDITION_ACK               10271
+#define RIC_SGNB_ADDITION_REJECT            10272
+#define RIC_SGNB_RECONF_COMPLETE            10280
 
-#define RIC_RRC_TRANSFER                       10350
+#define RIC_SGNB_MOD_REQUEST                10290
+#define RIC_SGNB_MOD_REQUEST_ACK            10291
+#define RIC_SGNB_MOD_REQUEST_REJ            10292
 
-#define RIC_ENDC_X2_SETUP_REQ          10360
-#define RIC_ENDC_X2_SETUP_RESP         10361
-#define RIC_ENDC_X2_SETUP_FAILURE      10362
+#define RIC_SGNB_MOD_REQUIRED               10300
+#define RIC_SGNB_MOD_CONFIRM                10301
+#define RIC_SGNB_MOD_REFUSE                 10302
 
-#define RIC_ENDC_CONF_UPDATE           10370
-#define RIC_ENDC_CONF_UPDATE_ACK       10371
-#define RIC_ENDC_CONF_UPDATE_FAILURE   10372
+#define RIC_SGNB_RELEASE_REQUEST            10310
+#define RIC_SGNB_RELEASE_REQUEST_ACK        10311
 
-#define        RIC_SECONDARY_RAT_DATA_USAGE_REPORT 10380
+#define RIC_SGNB_RELEASE_REQUIRED           10320
+#define RIC_SGNB_RELEASE_CONFIRM            10321
 
-#define RIC_GNB_STATUS_INDICATION      10450
+#define RIC_RRC_TRANSFER                    10350
 
-#define RIC_E2_SETUP_REQ                       12001
-#define RIC_E2_SETUP_RESP                      12002
-#define RIC_E2_SETUP_FAILURE           12003
-#define RIC_E2_RESET_REQ                       12004
-#define RIC_E2_RESET_RESP                      12005
-#define RIC_E2_RAN_ERROR_INDICATION    12006
-#define RIC_E2_RIC_ERROR_INDICATION    12007
-#define RAN_E2_RESET_REQ                       12008
-#define RAN_E2_RESET_RESP                      12009
+#define RIC_ENDC_X2_SETUP_REQ               10360
+#define RIC_ENDC_X2_SETUP_RESP              10361
+#define RIC_ENDC_X2_SETUP_FAILURE           10362
 
+#define RIC_ENDC_CONF_UPDATE                10370
+#define RIC_ENDC_CONF_UPDATE_ACK            10371
+#define RIC_ENDC_CONF_UPDATE_FAILURE        10372
 
+#define RIC_SECONDARY_RAT_DATA_USAGE_REPORT 10380
 
-#define RIC_SUB_REQ                                    12010
-#define RIC_SUB_RESP                           12011
-#define RIC_SUB_FAILURE                                12012
+#define RIC_GNB_STATUS_INDICATION           10450
 
-#define RIC_SUB_DEL_REQ                                12020
-#define RIC_SUB_DEL_RESP                       12021
-#define RIC_SUB_DEL_FAILURE                    12022
+#define RIC_E2_SETUP_REQ                    12001
+#define RIC_E2_SETUP_RESP                   12002
+#define RIC_E2_SETUP_FAILURE                12003
+#define RIC_E2_RESET_REQ                    12004
+#define RIC_E2_RESET_RESP                   12005
+#define RIC_E2_RAN_ERROR_INDICATION         12006
+#define RIC_E2_RIC_ERROR_INDICATION         12007
+#define RAN_E2_RESET_REQ                    12008
+#define RAN_E2_RESET_RESP                   12009
 
-#define RIC_SERVICE_UPDATE                     12030
-#define RIC_SERVICE_UPDATE_ACK         12031
-#define RIC_SERVICE_UPDATE_FAILURE     12032
 
-#define RIC_CONTROL_REQ                                12040
-#define RIC_CONTROL_ACK                                12041
-#define RIC_CONTROL_FAILURE                    12042
 
-#define RIC_INDICATION                         12050
+#define RIC_SUB_REQ                         12010
+#define RIC_SUB_RESP                        12011
+#define RIC_SUB_FAILURE                     12012
 
-#define RIC_SERVICE_QUERY                      12060
+#define RIC_SUB_DEL_REQ                     12020
+#define RIC_SUB_DEL_RESP                    12021
+#define RIC_SUB_DEL_FAILURE                 12022
 
-#define DC_ADM_INT_CONTROL                     20000
-#define DC_ADM_INT_CONTROL_ACK         20001
-#define DC_ADM_GET_POLICY                      20002
-#define DC_ADM_GET_POLICY_ACK          20003
+#define RIC_SERVICE_UPDATE                  12030
+#define RIC_SERVICE_UPDATE_ACK              12031
+#define RIC_SERVICE_UPDATE_FAILURE          12032
 
-#define A1_POLICY_REQ                          20010
-#define A1_POLICY_RESP                         20011
-#define A1_POLICY_QUERY                                20012
+#define RIC_CONTROL_REQ                     12040
+#define RIC_CONTROL_ACK                     12041
+#define RIC_CONTROL_FAILURE                 12042
+
+#define RIC_INDICATION                      12050
+
+#define RIC_SERVICE_QUERY                   12060
+
+#define DC_ADM_INT_CONTROL                  20000
+#define DC_ADM_INT_CONTROL_ACK              20001
+#define DC_ADM_GET_POLICY                   20002
+#define DC_ADM_GET_POLICY_ACK               20003
+
+#define A1_POLICY_REQ                       20010
+#define A1_POLICY_RESP                      20011
+#define A1_POLICY_QUERY                     20012
 
 
 // --- application specific message numbers 30000 - 39999
 
-#define TS_UE_LIST                                     30000           // traffic steering
-#define TS_QOE_PRED_REQ                                30001
-#define TS_QOE_PREDICTION                      30002
+#define TS_UE_LIST                          30000        // traffic steering
+#define TS_QOE_PRED_REQ                     30001
+#define TS_QOE_PREDICTION                   30002
 
-#define MC_REPORT                                      30010           // Measurement campaign xApp reports
+#define MC_REPORT                           30010        // Measurement campaign xApp reports
 
-#define        DCAPTERM_RTPM_RMR_MSGTYPE       33001
-#define        DCAPTERM_GEO_RMR_MSGTYPE        33002
+#define DCAPTERM_RTPM_RMR_MSGTYPE           33001
+#define DCAPTERM_GEO_RMR_MSGTYPE            33002
 
 
 
 // ---- these are old (release 0) definitions and should not be used ------
 
-/* E2 Related messages  should be in the range
-   10000 to 99999
+/*
+    E2 Related messages  should be in the range 10000 to 99999
 */
 
-#define RIC_X2_SETUP                     10000
-#define RIC_X2_RESPONSE                  10001
-#define RIC_X2_RESOURCE_STATUS_REQUEST   10002
-#define RIC_X2_RESOURCE_STATUS_RESPONSE  10003
-#define RIC_X2_LOAD_INFORMATION          10004
-#define RIC_E2_TERMINATION_HC_REQUEST    10005
-#define RIC_E2_TERMINATION_HC_RESPONSE   10006
-#define RIC_E2_MANAGER_HC_REQUEST        10007
-#define RIC_E2_MANAGER_HC_RESPONSE       10008
+#define RIC_X2_SETUP                        10000        //-
+#define RIC_X2_RESPONSE                     10001        //-
+#define RIC_X2_RESOURCE_STATUS_REQUEST      10002        //-
+#define RIC_X2_RESOURCE_STATUS_RESPONSE     10003        //-
+#define RIC_X2_LOAD_INFORMATION             10004        //-
+#define RIC_E2_TERMINATION_HC_REQUEST       10005        //-
+#define RIC_E2_TERMINATION_HC_RESPONSE      10006        //-
+#define RIC_E2_MANAGER_HC_REQUEST           10007        //-
+#define RIC_E2_MANAGER_HC_RESPONSE          10008        //-
 
 
-/* A1 Related messages should be in the range
-   100000 to 999999
+/*
+    A1 Related messages should be in the range 100000 to 999999
 */
-#define RIC_CONTROL_XAPP_CONFIG_REQUEST  100000
-#define RIC_CONTROL_XAPP_CONFIG_RESPONSE 100001
+#define RIC_CONTROL_XAPP_CONFIG_REQUEST     100000      //-
+#define RIC_CONTROL_XAPP_CONFIG_RESPONSE    100001      //-