/
External RAN NSSMF

External RAN NSSMF

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

Method

URI

Method

URI

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

Method

URI

Method

URI

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:

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:

Example of sdnc-an-01.json:

{

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

}



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

Run command:

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:

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:

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:

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



Related content

Support 3GPP 28.532 APIs for slicing use case
Support 3GPP 28.532 APIs for slicing use case
More like this
E2E Network Slicing Integration Testing for London Release
E2E Network Slicing Integration Testing for London Release
More like this
Core-NF-Simulator
Core-NF-Simulator
More like this
NSMF and Common NSSMF
NSMF and Common NSSMF
More like this
Proposed Functions for R6 and Impacted Modules
Proposed Functions for R6 and Impacted Modules
More like this
Carry over Test cases from Istanbul Release
Carry over Test cases from Istanbul Release
More like this