Loading README.md +17 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,14 @@ Open source SDK to abstract CAMARA/GSMA Transformation Functions (TFs) for Edge | i2CAT O-RAN controller | WIP | ### O-RAN Platforms | Platform | Status | CAMARA QoD | |------------------|---------|------------| | i2CAT RIC & NEF | ✅ | ✅ | | Juniper | ❌ | ❌ | --- ## How to Use Loading Loading @@ -166,6 +174,15 @@ API ->> SDK: network_client.create_qos_session(QOS_SESSION_REQUEST) SDK ->> NEF: Equivalent endpoint NEF ->> 5GS: QoS session creation ``` <<<<<<< HEAD --- ## Roadmap for Open SDK 2nd release - [ ] Add support to GSMA OPG.02 TFs - [x] Include JUNIPER O-RAN adapter ======= >>>>>>> main --- Loading examples/example.py +11 −13 Original line number Diff line number Diff line Loading @@ -5,23 +5,21 @@ from sunrise6g_opensdk.common.sdk import Sdk as sdkclient # For developers def main(): # The module that imports the SDK package, must specify which adapters will be used: adapter_specs = { "edgecloud": { "client_name": "kubernetes", "base_url": "http://IP:PORT", }, "network": { "client_name": "open5gs", "base_url": "http://IP:PORT", "scs_as_id": "id_example", }, "oran": { "client_name": "i2cat_ric", "base_url": "http://127.0.0.1:30000", "scs_as_id": "scs-test", } } adapters = sdkclient.create_adapters_from(adapter_specs) edgecloud_client = adapters.get("edgecloud") network_client = adapters.get("network") # edgecloud_client = adapters.get("edgecloud") # network_client = adapters.get("network") oran_client = adapters.get("oran") print("EdgeCloud client ready to be used:", edgecloud_client) print("Network client ready to be used:", network_client) # print("EdgeCloud client ready to be used:", edgecloud_client) # print("Network client ready to be used:", network_client) print("Oran client ready to be used:", oran_client) # Examples: # EdgeCloud Loading pyproject.toml +1 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "sunrise6g-opensdk" version = "1.0.18" version = "1.0.19" description = "Open source SDK to abstract CAMARA/GSMA Transformation Functions (TFs) for Edge Cloud platforms, 5G network cores and Open RAN solutions." keywords = [ "Federation", Loading src/sunrise6g_opensdk/common/adapters_factory.py +18 −3 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ from sunrise6g_opensdk.network.adapters.open5gcore.client import ( from sunrise6g_opensdk.network.adapters.open5gs.client import ( NetworkManager as Open5GSClient, ) from sunrise6g_opensdk.oran.adapters.i2cat_ric.client import ( OranManager as OranManageri2CAT, ) def _edgecloud_adapters_factory(client_name: str, base_url: str, **kwargs): Loading Loading @@ -64,15 +67,27 @@ def _network_adapters_factory(client_name: str, base_url: str, **kwargs): ) # def _oran_adapters_factory(client_name: str, base_url: str): # # TODO def _oran_adapters_factory(client_name: str, base_url: str, **kwargs): if "scs_as_id" not in kwargs: raise ValueError("Missing required 'scs_as_id' for network adapters.") scs_as_id = kwargs.pop("scs_as_id") oran_factory = { "i2cat_ric": lambda url, scs_id, **kw: OranManageri2CAT( base_url=url, scs_as_id=scs_id, **kw ), } try: return oran_factory[client_name](base_url, scs_as_id, **kwargs) except KeyError: raise ValueError(f"Invalid Oran client '{client_name}'. Available: {list(oran_factory)}") class AdaptersFactory: _domain_factories = { "edgecloud": _edgecloud_adapters_factory, "network": _network_adapters_factory, # "oran": _oran_adapters_factory, "oran": _oran_adapters_factory, } @classmethod Loading src/sunrise6g_opensdk/oran/clients/__init__.py→src/sunrise6g_opensdk/oran/adapters/__init__.py +0 −0 File moved. Loading
README.md +17 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,14 @@ Open source SDK to abstract CAMARA/GSMA Transformation Functions (TFs) for Edge | i2CAT O-RAN controller | WIP | ### O-RAN Platforms | Platform | Status | CAMARA QoD | |------------------|---------|------------| | i2CAT RIC & NEF | ✅ | ✅ | | Juniper | ❌ | ❌ | --- ## How to Use Loading Loading @@ -166,6 +174,15 @@ API ->> SDK: network_client.create_qos_session(QOS_SESSION_REQUEST) SDK ->> NEF: Equivalent endpoint NEF ->> 5GS: QoS session creation ``` <<<<<<< HEAD --- ## Roadmap for Open SDK 2nd release - [ ] Add support to GSMA OPG.02 TFs - [x] Include JUNIPER O-RAN adapter ======= >>>>>>> main --- Loading
examples/example.py +11 −13 Original line number Diff line number Diff line Loading @@ -5,23 +5,21 @@ from sunrise6g_opensdk.common.sdk import Sdk as sdkclient # For developers def main(): # The module that imports the SDK package, must specify which adapters will be used: adapter_specs = { "edgecloud": { "client_name": "kubernetes", "base_url": "http://IP:PORT", }, "network": { "client_name": "open5gs", "base_url": "http://IP:PORT", "scs_as_id": "id_example", }, "oran": { "client_name": "i2cat_ric", "base_url": "http://127.0.0.1:30000", "scs_as_id": "scs-test", } } adapters = sdkclient.create_adapters_from(adapter_specs) edgecloud_client = adapters.get("edgecloud") network_client = adapters.get("network") # edgecloud_client = adapters.get("edgecloud") # network_client = adapters.get("network") oran_client = adapters.get("oran") print("EdgeCloud client ready to be used:", edgecloud_client) print("Network client ready to be used:", network_client) # print("EdgeCloud client ready to be used:", edgecloud_client) # print("Network client ready to be used:", network_client) print("Oran client ready to be used:", oran_client) # Examples: # EdgeCloud Loading
pyproject.toml +1 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "sunrise6g-opensdk" version = "1.0.18" version = "1.0.19" description = "Open source SDK to abstract CAMARA/GSMA Transformation Functions (TFs) for Edge Cloud platforms, 5G network cores and Open RAN solutions." keywords = [ "Federation", Loading
src/sunrise6g_opensdk/common/adapters_factory.py +18 −3 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ from sunrise6g_opensdk.network.adapters.open5gcore.client import ( from sunrise6g_opensdk.network.adapters.open5gs.client import ( NetworkManager as Open5GSClient, ) from sunrise6g_opensdk.oran.adapters.i2cat_ric.client import ( OranManager as OranManageri2CAT, ) def _edgecloud_adapters_factory(client_name: str, base_url: str, **kwargs): Loading Loading @@ -64,15 +67,27 @@ def _network_adapters_factory(client_name: str, base_url: str, **kwargs): ) # def _oran_adapters_factory(client_name: str, base_url: str): # # TODO def _oran_adapters_factory(client_name: str, base_url: str, **kwargs): if "scs_as_id" not in kwargs: raise ValueError("Missing required 'scs_as_id' for network adapters.") scs_as_id = kwargs.pop("scs_as_id") oran_factory = { "i2cat_ric": lambda url, scs_id, **kw: OranManageri2CAT( base_url=url, scs_as_id=scs_id, **kw ), } try: return oran_factory[client_name](base_url, scs_as_id, **kwargs) except KeyError: raise ValueError(f"Invalid Oran client '{client_name}'. Available: {list(oran_factory)}") class AdaptersFactory: _domain_factories = { "edgecloud": _edgecloud_adapters_factory, "network": _network_adapters_factory, # "oran": _oran_adapters_factory, "oran": _oran_adapters_factory, } @classmethod Loading
src/sunrise6g_opensdk/oran/clients/__init__.py→src/sunrise6g_opensdk/oran/adapters/__init__.py +0 −0 File moved.