Skip to content

OSS Client Service

ETSI HypO integrates with ETSI OpenSlice; a standardized Operations Support System (OSS) that provides compute and network resources as a service. ETSI HypO uses TMF-based APIs to submit service orders towards the underlying OSS. The specifications can be summarized in the following distinct categories:

  • Various flavours of Kubernetes-as-a-Service (K8aaS) service specifications.
  • Other network specifications like 5G-as-a-Service (5GaaS) service specifications.

All these services are injected into ETSI HypO's catalog via the Peering API. The user can order the services via the ETSI HypO UI. Part of the orchestration is the service orders towards OSS.

K8aaS service order flow

OSS Client listens to Kafka topic oss-client-k8s-order and reads a new K8saaS request message.

{
  "id": "ad0398fc-c9eb-4379-bab1-a898fecd298c",
  "source": "/process/ossClientOrderK8saasProcess",
  "type": "oss-client-k8s-order",
  "specversion": "1.0",
  "kogitoprocinstanceid": "81493da0-8940-4c1d-9a3e-d3d98871bb4c",
  "kogitoprocid": "ossClientOrderK8saasProcess",
  "kogitoparentprociid": "b37d727a-5c28-4267-82b8-7408ec5de9ea",
  "data": {
    "serviceOrderId": "2a254b8e-2c35-4478-9219-371a7f4ea780",
    "serviceOrderItemId": "8a3443d3-d231-440b-bb26-b9e8ed1a1f97",
    "serviceId": "b237c6d9-57cd-4f49-a17d-0112dc226bb1",
    "authHeader": "",
    "serviceSpecificationId": "c04f3d66-5350-49ea-8b31-ff325f149232",
    "serviceSpecificationName": "K8aaS",
    "serviceOrderCharacteristics": [
      {
        "characteristicName": "Number of worker nodes",
        "characteristicType": "TEXT",
        "values": [
          {
            "value": "1",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "Flavor of Nodes",
        "characteristicType": "ENUM",
        "values": [
          {
            "value": "cpu4.m8192.d20g",
            "alias": null
          }
        ]
      }
    ],
    "requestedCompletionDate": "2026-02-19T14:25:36Z",
    "requestedStartDate": "2026-02-19T13:25:36Z",
    "organizationCharacteristics": {
      "organizationId": "2582308c-9f26-497e-9547-ec88d60ef9ff",
      "organizationName": "Openslice-dev"
    }
  }
}

The OSS Client then translates it into a TMF based service order and proceeds by calling OpenSlice for dynamic creation of a new Kubernetes as a Service. OSS Client creates a periodic polling mechanism checking the OpenSlice service order management until the status of the service order is in COMPLETED state. After that, OSS Client obtains the service RFS ID and polls once again OpenSlice until it obtains a Kubernetes config file. Next, a message that indicates the success and containing the Kubernetes config file data is published to the topic oss-client-k8s-configuration. SONATA receives the message and then completes the OSS Client subprocess flow.

5GaaS service order flow

OSS Client listens to Kafka topic oss-client-5g-order and receives a new 5GaaS request message.

{
  "specversion": "1.0",
  "id": "21627e26-31eb-43e7-8343-92a696fd96b1",
  "source": "",
  "type": "oss-client-5g-order",
  "kogitoprocrefid": "08a1115f-4d26-48a9-b334-cce6f6e0c504",
  "data": {
    "serviceOrderId": "2c4fecbc-c436-4f8c-a5db-4a1159ebad2a",
    "serviceOrderItemId": "5df1a752-aa1d-4709-877b-637df5cf4df0",
    "serviceId": "ecc4345a-2097-4c3b-a40c-a9e791cdccbb",
    "serviceCharacteristics": [
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::RAN Profile",
        "characteristicType": "ENUM",
        "values": [
          {
            "value": "2",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::MCC",
        "characteristicType": "TEXT",
        "values": [
          {
            "value": "001",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::5G Radio Nodes",
        "characteristicType": "SET",
        "values": [
          {
            "value": "west_agent",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::TAC",
        "characteristicType": "TEXT",
        "values": [
          {
            "value": "100",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::MNC",
        "characteristicType": "TEXT",
        "values": [
          {
            "value": "01",
            "alias": null
          }
        ]
      }
    ],
    "organizationCharacteristics": {
      "organizationId": "2582308c-9f26-497e-9547-ec88d60ef9ff",
      "organizationName": "osl"
    }
  }
}

OSS Client then translates it into a TMF based service order and proceeds by calling OpenSlice for the deployment of 5G. After that, OSS Client polls OpenSlice to check the completion of the order. Once this is done, a message indicating the operation success is published to the Kafka topic oss-client-5g-order-result. SONATA receives the message and then completes the OSS Client subprocess flow.

Platform service update flow

OSS Client listens to Kafka topic oss-client-platform-service-update and receives a platform service update message.

{
  "specversion": "1.0",
  "id": "21627e26-31eb-43e7-8343-92a696fd96b1",
  "source": "",
  "type": "oss-client-platform-service-update",
  "kogitoprocrefid": "08a1115f-4d26-48a9-b334-cce6f6e0c504",
  "data": {
    "serviceOrderId": "2c4fecbc-c436-4f8c-a5db-4a1159ebad2a",
    "serviceOrderItemId": "5df1a752-aa1d-4709-877b-637df5cf4df0",
    "serviceId": "ecc4345a-2097-4c3b-a40c-a9e791cdccbb",
    "serviceCharacteristics": [
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::RAN Profile",
        "characteristicType": "ENUM",
        "values": [
          {
            "value": "2",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::MCC",
        "characteristicType": "TEXT",
        "values": [
          {
            "value": "001",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::5G Radio Nodes",
        "characteristicType": "SET",
        "values": [
          {
            "value": "west_agent",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::TAC",
        "characteristicType": "TEXT",
        "values": [
          {
            "value": "100",
            "alias": null
          }
        ]
      },
      {
        "characteristicName": "open5gs-core_ns@OSM TEN::MNC",
        "characteristicType": "TEXT",
        "values": [
          {
            "value": "01",
            "alias": null
          }
        ]
      }
    ],
    "organizationCharacteristics": {
      "organizationId": "2582308c-9f26-497e-9547-ec88d60ef9ff",
      "organizationName": "osl"
    }
  }
}

OSS Client retrieves the corresponding OpenSlice service ID via the ETSI HypO serviceId of the request and proceeds by retrieving the actual service from OpenSlice's service inventory. In case of ACTIVE or INACTIVE service state, it proceeds with a service update request to OpenSlice service inventory. Finally, a result message towards SONATA is published in the Kafka topic oss-client-platform-service-update-result.

Platform service termination flow

OSS Client listens to Kafka topic oss-client-service-termination and receives a service termination message.

{
  "id": "bf90757c-e442-433f-93dc-8ec0a38aa0d7",
  "source": "/process/ossClientUpdateTerminationDate",
  "type": "oss-client-service-termination",
  "specversion": "1.0",
  "kogitoprocinstanceid": "d56b4da7-95a2-417b-8934-1bd69ff44a4d",
  "kogitoprocid": "ossClientUpdateTerminationDate",
  "kogitoparentprociid": "e24034bf-b5ce-4569-b72b-9a7d5d8c4e66",
  "data": {
    "serviceTerminationData": {
      "serviceOrderId": "2a254b8e-2c35-4478-9219-371a7f4ea780",
      "serviceOrderItemId": "8a3443d3-d231-440b-bb26-b9e8ed1a1f97",
      "serviceId": "b237c6d9-57cd-4f49-a17d-0112dc226bb1",
      "organizationCharacteristics": {
        "organizationId": "2582308c-9f26-497e-9547-ec88d60ef9ff",
        "organizationName": "Openslice-dev"
      }
    },
    "requestedTerminationDate": "2026-02-19T14:25:36Z"
  }
}

OSS client associates the service order ID with the corresponding OpenSlice service order ID and proceeds by retrieving the actual service order from OpenSlice. When the service order is retrieved, the expected completion date field is updated with the requestedTerminationDate field that was received from SONATA and then a service order update request towards OpenSlice takes place. Finally, SONATA is notified about the result of the operation via a message to the Kafka topic oss-client-service-termination-result.

It worths to mention that if an unexpected error occurs in any of the above flows, respective alarms are raised to the TMF API to notify ETSI HypO user via Kafka topic alarm-management-channel.

API

The OSS Client listens to various Kafka topics where SONATA makes K8aaS, 5GaaS or other requests. When a such message is received, the OSS Client reads the input data from the Kafka topic and creates a corresponding service order to OpenSlice as shown in Table 1.

Table 1: OSS Client service API.
Northbound integration with Using Kafka topic Leads to southbound call Purpose
SONATA oss-client-k8s-order OpenSlice TMF-based service order for a certain K8s-aaS flavour to create a Kubernetes cluster for a service deployment
SONATA oss-client-5g-order OpenSlice TMF-based 5GaaS service order to create a 5G deployment at a designated area of service
SONATA oss-client-service-termination OpenSlice TMF-based service order update of completion date to terminate the platform service
SONATA oss-client-platform-service-update OpenSlice TMF-based service inventory update to perform platform service update
Southbound integration with Using Kafka topic Purpose
SONATA oss-client-k8s-configuration to inform about the kubernetes service order request
SONATA oss-client-5g-order-result to inform about the 5G deployment service order request
SONATA oss-client-service-termination-result to inform about the result of the platform service termination request
SONATA oss-client-platform-service-update-result to inform about the result of the platform service update request
TMF-API alarm-management-channel to raise alarms in case of failures in oss-client