Skip to main content

RIC SDL

Shared Data Layer in the RAN Intelligent Controller

Shared Data Layer (SDL) provides a lightweight, high-speed interface for accessing shared data storage. The purpose is to enable utilizing clients to become stateless, conforming with, e.g., the requirements of the fifth generation mobile networks.

Concepts

Namespace

Namespaces provide data isolation within SDL data storage. That is, data in certain namespace is isolated from the data in other namespaces. Each SDL client uses one or more namespaces. Namespaces can be used, for example, to isolate data belonging to different use cases.

Keys and Data

Clients save key-data pairs. Data is passed as a bytes type. SDL stores the data as it is. Any structure that this data may have (e.g. a data structure serialized by pickle) is meaningful only to the client itself. Clients are responsible for managing the keys. As namespaces provide data isolation, keys in different namespaces always access different data.

Backend Data Storage

Backend data storage refers to data storage technology behind SDL API, which handles the actual data storing. SDL API hides the backend data storage implementation from SDL API clients, and therefore backend data storage technology can be changed without affecting SDL API clients. Currently, Redis database is used as a backend data storage solution.

Notifications

Notifications functionality provide SDL clients the possibility to receive notifications about data changes in SDL namespaces. SDL client receiving notifications about data changes is referred to as "subscriber", while the SDL client modifying data and publishing notifications is referred to as "publisher".

Install

Install from PyPi

python3 -m pip install ricsdl

Install using the source

python3 setup.py install

Usage

Instructions how to use SDL can be found from O-RAN Software Community (SC) Documentation under Near Realtime RAN Intelligent Controller (RIC) section: O-RAN SC Documentation Home

Unit Testing

To run the unit tests run the following command in the package directory: python3 -m pytest

Examples

See the examples directory.

CI

The ci is done with the tox tool. See tox.ini file for details.

Release files for ricsdl 3.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for ricsdl 3.1.3
File Interpreter ABI Platform
ricsdl-3.1.3-py3-none-any.whl Python 3 none any Details

Release files / ricsdl-3.1.3-py3-none-any.whl

Download URL ricsdl-3.1.3-py3-none-any.whl
Size 34.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
368f41dd8aa6b3ce183c3ff44ca7cdb7b44a187c62dbdc2ac940250784faf7c4
BLAKE2b-256 checksum
How to use checksums
6a3705d6ea1f550309dc32c2e61e4e68767291f14fc68e7063d4f70592f0099f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release history Release notifications | RSS feed

This release

3.1.3 This release

1 release file

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page