Scenario Scope in Guilin

This scenario is for the "RAN sub-net slicing with ONAP interacting with an External RAN NSSMF" in REQ-342.

We add an External RAN NSSMF Simulator in integration project (INT-1707). The simulator is used to interact with ONAP SO NSSMF Adapter, and mainly supports the following operations:

  • AllocateNssi
  • DeallocateNssi


APIs of External RAN NSSMF Simulator

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:

The content of attributeListIn field in request body references SliceProfile defined in 3GPP TS 28.541 V16.5.0.


Response status code:

200: indicate the operation is succeeded.
others: indicate the operation is failed.


Response body example:


DeallocateNssi

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


Request body example:


Response status code:
200: indicate the operation is succeeded.
others: indicate the operation is failed.


Response body: empty


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.


3. Install and Run:

There are two options to run the simulator:

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"
    }
  ]
}

  • No labels