Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The A1 Policy Management Service and the (optional) A1-enabled Controller (SDNC with A1-Adapter) will run in a local demonstrative deployment with four near-RT-RIC A1 simulator instances (docker containers). These simulators will be configured to emulate devices implementing either the "OSC_2.1.0" version or "STD_2.0.0" version of the O-RAN A1 interface. (For more information on the OSC A1 Simulator functions see OSC NONRTRIC Wiki page (Release EF))

All components run as docker containers and communicate via a private docker network. Details of the architecture can be found from Jakara Jakarta Release page.

Note: Version numbers used in this page may not be the most recent ... you should verify the latest version numbers for released pre-built components in the docker image repository (https://nexus3.onap.org)

...

ComponentRelease image and version tagStaging images and version tagManual snapshot (only available if manually built)
and version tag
A1 Policy Management Service

nexus3.onap.org:10002/onap/ccsdk-oran-a1policymanagementservice:1.3.13

nexus3.onap.org:10004/onap/ccsdk-oran-a1policymanagementservice:1.3.14-STAGING-latest

onap/ccsdk-oran-a1policymanagementservice:1.3.24-SNAPSHOT

SDNC imagenexus3.onap.org:10002/onap/sdnc-image:2.3.1nexus3.onap.org:10004/onap/sdnc-image:2.3.1-STAGING-latestonap/sdnc-image:2.3.2-SNAPSHOT

...

  • Start docker containers for each near-RT-RIC defined in oran/a1-policy-management/config/application_configuration.json in the step "Configure the A1 Policy Management Service" above.
    Different Simulators can use different A1-Interface profiles, for example OSC_2.1.0 and STD_2.0.0 below. Start each simulator instance with the following commands (use separate shells):

    Code Block
         (Each in a new shell) 
    docker run -p 8085:8085 -p 8185:8185 -e A1_VERSION=OSC_2.1.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric1 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.23.01
    docker run -p 8086:8085 -p 8186:8185 -e A1_VERSION=OSC_2.1.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric2 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.23.01
    docker run -p 8087:8085 -p 8187:8185 -e A1_VERSION=STD_2.0.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric3 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.23.01
    docker run -p 8088:8085 -p 8188:8185 -e A1_VERSION=STD_2.0.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric4 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.23.01

    (Note these commands create a deployment scenario aligned towards the sample A1 Policy configuration given above)
    (Note these commands can be run in the background - all in one shell - by using docker run -d -p ..... )

  • For the OSC.2.1.0 simulators create a new A1 Policy Type policy type definition (JSON), and load it into each of the OSC.2.1.0 A1 Simulators instances.
    (Note the format for A1 Policy Type Definitions (JSON) differs for different A1-Interface profiles)

    Code Block
    languagejs
    titlept1.json
    collapsetrue
    {
      "name": "pt1",
      "description": "pt1 policy type",
      "policy_type_id": 1,
      "create_schema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "OSC_Type1_1.0.0",
        "description": "Type 1 policy type",
        "type": "object",
        "properties": {
          "scope": {
            "type": "object",
            "properties": {
              "ueId": {
                "type": "string"
              },
              "qosId": {
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "ueId",
              "qosId"
            ]
          },
          "qosObjectives": {
            "type": "object",
            "properties": {
              "priorityLevel": {
                "type": "number"
              }
            },
            "additionalProperties": false,
            "required": [
              "priorityLevel"
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "scope", "qosObjectives"
        ]
      }
    }


    • Insert the example policy type into the started OSC_2.1.0 A1 Simulator instances by running these curl commands (in this example to ric1 exposed to port 8085 and ric2 exposed to port 8086):

      Code Block
      languagebash
      curl -X PUT -v "http://localhost:8085/a1-p/policytypes/1" -H "accept: application/json" \
       -H "Content-Type: application/json" --data-binary @pt1.json
      curl -X PUT -v "http://localhost:8086/a1-p/policytypes/1" -H "accept: application/json" \
       -H "Content-Type: application/json" --data-binary @pt1.json


  • For the STD_2.0.0 simulators create a new A1 Policy Type policy type definition (JSON), and load it into each of the STD_2.0.0A1 Simulators instances.
    (Note the format for A1 Policy Type Definitions (JSON) differs for different A1-Interface profiles)

    Code Block
    languagejs
    titlestd_qos2_0.0.1.json
    collapsetrue
    {
        "policySchema": {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "title": "STD_QOS2_0.1.0",
          "description": "STD QOS2 policy type",
          "type": "object",
          "properties": {
            "scope": {
              "type": "object",
              "properties": {
                "ueId": {
                  "type": "string"
                },
                "qosId": {
                  "type": "string"
                }
              },
              "additionalProperties": false,
              "required": [
                "ueId",
                "qosId"
              ]
            },
            "qosObjectives": {
              "type": "object",
              "properties": {
                "priorityLevel": {
                  "type": "number"
                }
              },
              "additionalProperties": false,
              "required": [
                "priorityLevel"
              ]
            }
          }
        },
        "statusSchema": {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "title": "STD_QOS_0.2.0",
          "description": "STD QOS policy type status",
          "type": "object",
          "properties": {
            "enforceStatus": {
              "type": "string"
            },
            "enforceReason": {
              "type": "string"
            },
            "additionalProperties": false,
            "required": [
              "enforceStatus"
            ]
          }
        }
      }


    • Insert the example policy type into the started STD_2.0.0 A1 Simulator instances by running these curl commands (in this example to ric3 exposed to port 8087 and ric4 exposed to port 8088):

      Code Block
      languagebash
      curl -X PUT -v "http://localhost:8087/policytype?id=STD_QOS2_0.1.0" -H "accept: application/json" \
       -H "Content-Type: application/json" --data-binary @std_qos2_0.0.1.json
      curl -X PUT -v "http://localhost:8088/policytype?id=STD_QOS2_0.1.0" -H "accept: application/json" \
       -H "Content-Type: application/json" --data-binary @std_qos2_0.0.1.json


For more details about running the OSC A1 Simulator see the related OSC NONRTRIC Wiki page (Release EF) and OSC A1 Simulator Documentation (latestf-release)

Run ONAP A1 Policy Management Service Docker Container

  • Run A1 Policy Management Service docker container using the command below, after the A1-Controller and simulators have been fully started.
    It may be useful to set the logging level to TRACE level, where you can verify the A1-Controller, A1-Simualtors and A1 Policy Management Service is fully up and running.

    The configuration file (application_configuration.json described above) must be mounted as a volume into the container, so absolute path and name of the file must be substituted in the following command:

    Code Block
    languagebash
    titleDocker: Run the A1 Policy Management Service
    docker run -p 8081:8081 --network=nonrtric-docker-net --name=a1policymanagmentservice --volume <Absolute path to application_configuration.json created above>:/opt/app/policy-agent/data/application_configuration.json nexus3.onap.org:10002/onap/ccsdk-oran-a1policymanagementservice:1.3.13

    Note: Version numbers used in this page may not be the most recent ... you should verify the latest version numbers for released pre-built components in the docker image repository (https://nexus3.onap.org)

    Code Block
    languagebash
    titleOptional: Enable TRACE level logging in A1 Policy Management Service
    collapsetrue
    curl -X POST  http://localhost:8081/actuator/loggers/org.onap.ccsdk.oran.a1policymanagementservice -H "Content-Type:application/json" -d {\"configuredLevel\":\"trace\"}


  • Once the Policy Management Service is up and running, it establishes connections to all configured near-RT-RICs (ric1, ric2, ric3, ric4) via the A1 Controller.

  • If the a1policymanagmentservice container is configured to log at TRACE level, the following logs entries should appear indicating that connection to the configured RICs has been established successfully via A1 Controller.

...