Versions Compared

Key

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

...

where modifynssi.json is, 
SLA MS - Policy

{
    "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
    "topology_template": {
        "policies": [
            {
            "operational.modifynssi": {
               "type": "onap.policies.controlloop.operational.common.Drools",
               "type_version": "1.0.0",
               "version": "1.0.0",
               "name": "operational.modifynssi",
               "metadata": {
                  "policy-id": "operational.modifynssi"
               },
               "properties": {
                  "id": "ControlLoop-Slicing-116d7b00-dbeb-4d03-8719-d0a658fa735b",
                  "timeout": 1200,
                  "abatement": false,
                  "trigger": "unique-policy-id-1-modify-nssi",
                  "operations": [
                     {
                        "id": "unique-policy-id-1-modify-nssi",
                        "description": "Modify resource allocation for a slice subnet instance",
                        "operation": {
                           "actor": "SO",
                           "operation": "Modify NSSI",
                           "target": {
                              "targetType": "VNF"
                           }
                        },
                        "timeout": 1200,
                        "retries": 0,
                        "success": "final_success",
                        "failure": "final_failure",
                        "failure_timeout": "final_failure_timeout",
                        "failure_retries": "final_failure_retries",
                        "failure_exception": "final_failure_exception",
                        "failure_guard": "final_failure_guard"
                     }
                  ],
                  "controllerName": "usecases"
               }
            }
         }
        ]
    }
}


To push the policy:

curl --silent -k --user 'healthcheck:zb!XztG34' -X POST "https://policy-pap:6969/policy/pap/v1/pdps/policies" -H "Accept: application/json" -H "Content-Type: application/json" -d @push_modifynssi.json

where push_modifynssi.json is,
SLA MS - Push the Policy

{
  "policies": [
    {
      "policy-id": "operational.modifynssi",
      "policy-version": 1
    }
  ]
}

ConfigDB:

  1. Download the configDb source files from https://wiki.onap.org/download/attachments/84671149/configdb.tar?version=2&modificationDate=1631095492000&api=v2
  2. cd configdb (after extracting the files)
  3. Setup and run maridb container
    1. sudo docker run -p 3306:3306 -v $PWD/SDNC_ConfigDB_SchemaV4.sql:/docker-entrypoint-initdb.d/SDNC_ConfigDB_SchemaV4.sql --name mariadb -e MYSQL_ROOT_PASSWORD=password -d mariadb
  4. Navigate to project directory
    1. cd configdb/Config-DB-API-App
  5. Build the application
    1. JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install
  6. Run the application
    1. JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn spring-boot:run &

...

  1. git clone "https://gerrit.onap.org/r/cps/cps-tbdmt
  2. cd cps-tbdmt/
  3. mvn clean install
  4. cd docker-compose/
  5. update cps & ncmp ip-address in application.yml
  6. docker-compose up (use the image built using the above steps in the docker-compose file)


CPS CONFIGURATION (DB, SCHEMAS, INITIAL DATA)

For CPS configuration, please refer to RAN Slicing - TBDMT Templates

In addition, you need to upload the following 3 templates too:Creating dataspace: 


curl --location --user cpsuser:cpsr0cks! -H "Accept: application/json" -H "request POST \
http://$CPS_TBDMT_IP:8080/templates \
--header 'Content-Type: application/json" ' \
---request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces?dataspace-name=E2EDemo

Creating schema set: 

ran-network.zip
curl --location --user cpsuser:cpsr0cks! \
--request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces/E2EDemo/schema-sets --form 'file=@"ran-network.zip"' --form 'schema-set-name="ran-network"'

data-raw '{"templateId": "get-nearrtric-config","model": "ran-network","requestType": "query-cps-path","xpathTemplate": "//sNSSAIList[@sNssai='\''{{sNssai}}'\'']/ancestor::NearRTRIC","includeDescendants": true}'

Creating anchor:
curl --location --user cpsuser:cpsr0cks!  --request POST \
http://$CPS_TBDMT_IP:8080/cps/api/v1/dataspaces/E2EDemo/anchors?schema-set-name=ran-network templates \
-d anchor-name=ran-network-anchor

Uploading cps payload:

payload-ran-network.json
curl --location --user cpsuser:cpsr0cks! --request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces/E2EDemo/anchors/ran-network-anchor/nodes \
--header 'Content-Type: application/json' \
-d @payload-ran-network.json

Uploading tbdmt-templates:-header 'Content-Type: application/json' \
--data-raw '{"templateId": "get-gnbdufunction-by-snssai","model": "ran-network","requestType": "query-cps-path","xpathTemplate": "//sNSSAIList[@sNssai='\''{{sNssai}}'\'']/ancestor::GNBDUFunction","includeDescendants": true}'

curl --location --request POST \
http://$CPS_TBDMT_IP:8080/templates \
--header 'Content-Type: application/json' \
--data-raw '{"templateId": "get-nearrtric-config","model": "ran-network","requestType": "query-cps-path","xpathTemplate": "//sNSSAIList[@sNssai='\''{{sNssai}}'\'']/ancestor::NearRTRIC","includeDescendants": true}'

curl --location --request POST \
http://$CPS_TBDMT_IP:8080/templates \
--header 'Content-Type: application/json' \
--data-raw '{"templateId": "get-gnbdufunction-by-snssai","model": "ran-network","requestType": "query-cps-path","xpathTemplate": "//sNSSAIList[@sNssai='\''{{sNssai}}'\'']/ancestor::GNBDUFunction","includeDescendants": true}'

-nrcelldu-by-snssai","model": "ran-network","requestType": "query-cps-path","xpathTemplate": "//sNSSAIList[@sNssai='\''{{sNssai}}'\'']/ancestor::NearRTRIC","includeDescendants": true}'


AAI Configuration for CPS option (if only closed-loop is being demonstrated without E2E service creation):

Preload the SliceProfile into ransim-honeycomb 11 [Near RTRIC]

curl -X POST "https://{{sdnc}}:30267/rests/data/network-topology:network-topology/topology=topology-netconf/node=11/yang-ext:mount/ran-network:ran-network/NearRTRIC=11/attributes/sliceProfilesList=878f32c0-3677-4dbd-95a3-1f01d6c763c1"
-H "accept: */*"
-H "Content-Type: application/json"
-d "{\"sNSSAI\":\"01-3C5C90\",\"maxNumberofUEs\":1000,\"latency\":20,\"uLThptPerSlice\":100,\"dLThptPerSlice\":1000,\"maxNumberofConns\":100000,\"uEMobilityLevel\":\"stationary\",\"coverageAreaList\":[\"\"],\"resourceSharingLevel\":\"Shared\"}"


Change sdnc ip, sliceprofileid, snssai according to your configuration.curl --location --request POST \
http://$CPS_TBDMT_IP:8080/templates \
--header 'Content-Type: application/json' \
--data-raw '{"templateId": "get-nrcelldu-by-snssai","model": "ran-network","requestType": "query-cps-path","xpathTemplate": "//sNSSAIList[@sNssai='\''{{sNssai}}'\'']/ancestor::NearRTRIC","includeDescendants": true}'


Further References:

Issues faced during the RAN Simulator set up are documented in Setup related issues and Integration Test of Closed Loop for Network Slicing .


Demo data file(if only closed-loop is being demonstrated without E2E service creation):

...