Versions Compared

Key

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

...

The following APIs of External RAN NSSMF Simulator reference 3GPP TS 28.531 V16.6.0.

AllocateNssi

MethodURI
POST/ObjectManagement/NSS/SliceProfiles


Request body example:

Elite soft json viewer
width720
height600540
{
  "attributeListIn": {
    "sliceProfileId": "3a589dd0-b52c-4e46-8653-a1a636fd3b1e",
    "sNSSAIList": [
      "001-12345"
    ],
    "pLMNIdList": [
      "460-00"
    ],
    "perfReq": {
      "perfReqEmbb": {
        "expDataRateDL": 2000,
        "expDataRateUL": 1000,
        "areaTrafficCapDL": 2000,
        "areaTrafficCapUL": 1000,
        "overallUserDensity": 500,
        "activityFactor": 50
      }
    },
    "maxNumberofUEs": 180,
    "coverageAreaTAList": [
      612
    ],
    "latency": 20,
    "uEMobilityLevel": "stationary",
    "resourceSharingLevel": "non-shared"
  }
}

...

Elite soft json viewer
width720
height200
{
  "href": "c9520f103a7343b6b119819d447a72a6",
  "attributeListOut": {}
}


DeallocateNssi

MethodURI
DELETE/ObjectManagement/NSS/SliceProfiles/{sliceProfileId}


Request body example:

Elite soft json viewer
width720
height200
{
  "nSSId": "c9520f103a7343b6b119819d447a72a6"
}

...

Deployment Guide

1. Download:

git clone https://gerrit.onap.org/r/integration

cd integration/test/mocks/ran-nssmf-simulator


2. Environment Setup (Optional):

1) The default listening port of RESTful API is 8443, and you can set environment variable RAN_NSSMF_REST_PORT to change it, such as:

export RAN_NSSMF_REST_PORT=18443

2) The default username and password are in RanNssmfSimulator/etc/auth.json, and you can edit the file to change them or add new ones.

...

Option 1. Directly run it in the current directory:

pip3 install -r requirements.txt

python3 main.py


Option 2. Install it using setuptools, and run it in any directory:

python3 setup.py install --user

python3 -m RanNssmfSimulator.MainApp


Register to ONAP ESR

1. Add an esr-thirdparty-sdnc to ESR:

Run command:
curl -s -k -u "AAI:AAI" -H "X-FromAppId: testApp" -H "X-TransactionId: 1001" -H "Content-Type: application/json" -H "Accept: application/json" -X PUT https://aai.onap:30233/aai/v20/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/sdnc-an-01 -d @sdnc-an-01.json


Example of sdnc-an-01.json:

{

  "thirdparty-sdnc-id": "sdnc-an-01"

}


2. Add an esr-system-info (RAN NSSMF) to ESR:

Run command:
curl -s -k -u "AAI:AAI" -H "X-FromAppId: testApp" -H "X-TransactionId: 1001" -H "Content-Type: application/json" -H "Accept: application/json" -X PUT https://aai.onap:30233/aai/v20/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/sdnc-an-01/esr-system-info-list/esr-system-info/nssmf-an-01 -d @nssmf-an-01.json


Example of nssmf-an-01.json:
{
  "esr-system-info-id": "nssmf-an-01",
  "type": "an",
  "vendor": "Huawei",
  "system-type": "thirdparty-sdnc",
  "ip-address": "192.168.35.83",
  "port": "8443",
  "user-name": "admin",
  "password": "123456",
  "ssl-cacert": "test.ca"
}

Where,

ip-address is the IP address or hostname which runs the External RAN NSSMF Simulator,

port is the listening port of RESTful API of the simulator,

and user-name and password are set in config file RanNssmfSimulator/etc/auth.json of the simulator.


3. Check the added RAN NSSMF from ESR:

Run command:
curl -s -k -u "AAI:AAI" -H "X-FromAppId: testApp" -H "X-TransactionId: 1001" -H "Accept: application/json" -X GET https://aai.onap:30233/aai/v20/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/sdnc-an-01/esr-system-info-list | python -m json.tool


Example of response:

{
  "esr-system-info": [
    {
      "esr-system-info-id": "nssmf-an-01",
      "ip-address": "192.168.35.83",
      "password": "123456",
      "port": "8443",
      "resource-version": "1601018172373",
      "ssl-cacert": "test.ca",
      "system-type": "thirdparty-sdnc",
      "type": "an",
      "user-name": "admin",
      "vendor": "Huawei"
    }
  ]
}