Table of Contents |
---|
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:
JSON Viewer | ||||
---|---|---|---|---|
| ||||
{
"attributeListIn": {
"sliceProfileId": "3a589dd0-b52c-4e46-8653-a1a636fd3b1e",
"sNSSAIList": [
"001-12345"
],
"pLMNIdList": [
"460-00"
],
"perfReq": {
"perfReqEmbbList": [
{
"expDataRateDL": 2000,
"expDataRateUL": 1000,
"areaTrafficCapDL": 2000,
"areaTrafficCapUL": 1000,
"overallUserDensity": 500,
"activityFactor": 50
}
]
},
"maxNumberofUEs": 180,
"coverageAreaTAList": [
612
],
"latency": 20,
"uEMobilityLevel": "stationary",
"resourceSharingLevel": "non-shared"
}
} |
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:
JSON Viewer | ||||
---|---|---|---|---|
| ||||
{
"href": "c9520f103a7343b6b119819d447a72a6",
"attributeListOut": {}
} |
DeallocateNssi
Method | URI |
---|---|
DELETE | /ObjectManagement/NSS/SliceProfiles/{sliceProfileId} |
Request body example:
JSON Viewer | ||||
---|---|---|---|---|
| ||||
{
"nSSId": "c9520f103a7343b6b119819d447a72a6"
} |
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: |
---|
{ |