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 |
---|---|
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 |
---|---|
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: |
---|
{ |
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: |
---|
{ |