--- /dev/null
+.. 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
+
+
-.. 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
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
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
.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).
+// :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 //-