.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. Copyright (C) CMCC

.. amber release project index


O-RAN SC Amber Release Project
==============================


(Near Realtime) RICAPP
----------------------
* :doc:`RIC Measurement Campaign (MC) xApp <ric-app-mc:index>`

(Near Realtime) RIC Platform
----------------------------

* :doc:`RIC Dashboard <portal-ric-dashboard:index>`

NONRTRIC
--------


OAM
---


OCU
---


ODUHIGH
-------


ODULOW
------


INF
---


SIM
---


INT
---


