...
The allowed network type values are: core, access, transport. Network type decides whether you are sending the request for an/cn/tn. Vendor decides which NSSMF the request is sent to.
ESR INFO: Network Type and Vendor, must match with the ESRegistry
(Note: Above block diagram needs update)
Table of Contents
NSMF call NSSMF Adapter APIs
Allocate NSSI:[AN/TN/CN]
Method | URL |
---|---|
POST | {adapter-url}/api/rest/provMns/v1/NSS/SliceProfiles |
Code Block | ||||||
---|---|---|---|---|---|---|
|
...
| ||||||||
JSON Viewer | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "allocateCnNssi": { "nsstId": "NSST-C-001-HDBNJ-NSSMF-01-A-ZX", "nssiNamenssiId": "eMBBNSST-C-001-HDBNJ-NSSMF-01-A-ZX", "nssiName", : "eMBB-001", "sliceProfile": { "snssaiList "sNSSAIList": [ "001-100001" ], "001-100001" ], "sliceProfileId": "ab9af40f13f721b5f13539d87484098", "plmnIdList "pLMNIdList": [ "460-00", "460-01" ], ], "perfReq": { "perfReqEmbbList ": [ { "activityFactor": 50 } ] }, "maxNumberofUEs": 200, "coverageAreaTAList": [ "1", "2", "3", "4" ], "latency": 2, "resourceSharingLevel": "non-shared" }, "endPoint":{ "IpAdress":"", "LogicalLinkId":"", "nextHopInfo":"" }, "nsiInfo": { "nsiId": "NSI-M-001- { "activityFactor": 50 } ] }, "maxNumberofUEs": 200, "coverageAreaTAList": [ "1", "2", "3", "4" ], "latency": 2, "resourceSharingLevel": "non-shared" }, "endPoint": { "IpAdress": "", "LogicalLinkId": "", "nextHopInfo": "" }, "nsiInfo": { "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nsiName": "eMBB-001" }, "scriptName": "CN1", "extension": { "XXX": "XXX" } }, "esrInfo": { "vendor": "huawei", "networkType": "core" }, "serviceInfo": { "serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "5GCustomer", "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nsiNamenssiId": "eMBB-001" }, "scriptNameNSST-C-001-HDBNJ-NSSMF-01-A-ZX", "subscriptionServiceType": "CN15G", "extension": { "XXX": "XXX" } }, "esrInfo": { "vendor": "huawei", "networkType": "core" } } } } |
Info:For the value of nsstId, if NSST doesn't contain artifact, the value is NSST UUID, Info:For the value of nsstId, if NSST doesn't contain artifact, the value is NSST UUID, otherwise it is the ID in the artifact file.
Allocate TN NSSI REQ body example:
Attribute | Optional | Description |
---|---|---|
nssiId | Y | When reuse existing NSSI. |
nsstId | Y | NSST artifact ID |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "allocateTnNssi": { "actionType": "allocate", "networkSliceInfonetworkSliceInfos": [ { "snssai": "123", "customer": "company_x", "serviceType": "IoT" } ], "transportSliceNetworks": [ { "typeconnectionLinks": "P2P",[ "slaPolicy": { "latencytransportEndpointA": 123, "jitter": 123, "maxBandwidth": 123, "tranportEp_ID_XXX", "reliabilitytransportEndpointB": "1+1_protectiontranportEp_ID_YYY" }, "connectionLinks": [ { "transportEndpointA": "tranportEp_ID_XXXAAA", "transportEndpointB": "tranportEp_ID_YYYBBB" }, {] }, "{ "connectionLinks": [ { "transportEndpointA": "tranportEp_ID_AAACCC", "transportEndpointB": "tranportEp_ID_BBBDDD" }, ] }, { { "typetransportEndpointA": "MP2MPtranportEp_ID_EEE", "slaPolicytransportEndpointB": {"tranportEp_ID_FFF" "latency": 456, "jitter": 456, "maxBandwidth": 456, "reliability": "unprotected" }, "connectionLinks": [ { "transportEndpointA": "tranportEp_ID_CCC", "transportEndpointB": "tranportEp_ID_DDD" }, { "transportEndpointA": "tranportEp_ID_EEE", "transportEndpointB": "tranportEp_ID_FFF" } ] } ] }, "esrInfo": { } ] } ] }, "esrInfo": { "vendor": "huawei", "networkType": "transport" }, "serviceInfo": { "serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "5GCustomer", "subscriptionServiceType": "5G", "nssiId": "NSST-C-001-HDBNJ-NSSMF-01-A-ZX" "vendor": "huawei", "networkType": "transport" } } |
Response example:
Status:202
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{"jobId": "db245365e79c47ed88fcd60caa8f6549" } |
...
Activate NSSI:
...
[AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/{ |
snssai}/activation |
REQ example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "modifyAnNSSIactDeActNssi": { "nssiId "nsiId": "NSSINSI-CM-001-HDBNJ-NSSMFNSMF-01-A-ZX", "nssiName "nssiId": "eMBBNSSI-C-001-HDBNJ-NSSMF-01-A-ZX" }, "sNssaiList "esrInfo": { "vendor": [ "001-100001" ], "nsiInfo"huawei", "networkType": "core/access/transport" }, "serviceInfo": { "nsiId "serviceInvariantUuid": "NSIe75698d9-M925a-0014cdd-HDBNJ-NSMF-01-A-ZXa6c0-edacbe6a0b51", "nsiName "serviceUuid": "eMBB-001" }, "scriptName8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "TN15GCustomer", "additionalProperties "subscriptionServiceType": { "XXX"5G", "nssiId": "XXX" } }, "esrInfo": { "vendor": "huawei", "networkType": "transport" } } |
Response example:
Status:202
JSON Viewer | ||
---|---|---|
| ||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Activate NSSI: [AN/TN/CN]
NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
DeActivate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/ |
Method
URL
POST
api/rest/provMns/v1/NSS/{snssai}/ |
deactivation |
REQ example:
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{
"actDeActNssi": {
"nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX",
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
},
"esrInfo": {
"vendor": "huawei",
"networkType": "core/access/transport"
}
} |
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
DeActivate NSSI: [AN/TN/CN]
,
"serviceInfo": {
"serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51",
"serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b",
"globalSubscriberId": "5GCustomer",
"subscriptionServiceType": "5G",
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Deallocate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url} |
Method | URL |
POST | /api/rest/provMns/v1/NSS/nssi/{snssainssiId}/deactivation |
REQ example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"deAllocateNssi": {
"snssaiList": [
"001-100001"
],
"nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX",
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX ",
"terminateNssiOption": 0,
"scriptName": "CN1",
"extension": {
"XXX": "XXX"
}
},
"esrInfo": {
"vendor": "huawei",
"networkType": "core/access/transport"
},
"serviceInfo": {
"serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51",
"serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b",
"globalSubscriberId": "5GCustomer",
"subscriptionServiceType": "5G",
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Query JOB Status
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/jobs/{jobId} |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"responseId": "3",
"esrInfo": {
"vendor": "huawei",
"networkType": "core/access/transport"
},
"serviceInfo": {
"nssiId": "NSSI-M-001-HDBNJ-NSSMF-01-A-ZX",
"nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX",
"nssiName": "eMBB-001",
"sST":"embb",
"PLMNIdList":"39-00",
"globalSubscriberId": "5GCustomer",
"subscriptionServiceType": "5G"
"serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51",
"serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b"
}
} |
Response Status:200
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"responseDescriptor": {
"status": "processing",
"progress": 20,
"statusDescription": "Initiating VNF Instance",
"responseId": "1",
"nssiId": ""
}
} |
Attribute | Required |
---|---|
responseId | N |
Sub-net Capability query
Request can contain the sub-net type. 1 request can be used to fetch capabilities of more than 1 subnet managed by the same NSSMF - for e.g., in case of Transport, a single request can fetch the capabilities of FH, MH and BH subnets managed by the same TN NSSMF.
Method | URL |
---|---|
POST | {adapter-url}/api/rest/provMns/v1/NSS/subnetCapabilityQuery |
REQ example(TN)
JSON Viewer | ||
---|---|---|
| ||
{
"subnetCapabilityQuery": {
"subnetTypes": ["TN_FH"]
},
"esrInfo": {
"vendor": "huawei/ONAP_internal",
"networkType": "tn"
}
} |
Response example:(TN)
JSON Viewer | ||
---|---|---|
| ||
{
"TN_FH":{
"latency": "",
"maxThroughput": ""
}
} |
Response can be a json blob (or parameter list) containing a minimum set of relevant attributes such as the below (based on 3GPP TS 28.541):
Attribute | AN | CN | TN |
Latency | Yes | Yes | Yes |
maxNumberofUEs | Yes | ||
maxNumberofConns | Yes | ||
Max Throughput | Yes | Yes | Yes |
Terminal density | Yes |
Query NSSI selection capability
Method | URL |
---|---|
POST | {adapter-url}/api/rest/provMns/v1/NSS/NSSISelectionCapability |
JSON Viewer |
---|
{
"esrInfo": {
"vendor": "huawei/ONAP_internal",
"networkType": "transport"
}
} |
Response example:
Status:200
JSON Viewer |
---|
{
"selection": "NSMF/NSSMF"
} |
NSSMF Adapter call NSSMF APIs
Implementation difference
For Jobstatus api, the internal NSSMF needs to update db table resource_operation_status, the external NSSMF needs to provide this api.
External NSSMF
Allocate NSSI (create NSSI with service)
Method | Domain | URL |
---|---|---|
POST | CN | /api/rest/provMns/{apiVersion}/NSS/SliceProfiles |
POST | AN |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"nsstId": "NSST-C-01V-HBBJ-NSSMF-1-A-ZX",
"nssiName": "CN_eMBB_02",
"sliceProfile": {
"sNSSAIList": [
"001-111113"
],
"sliceProfileId": "CN-001-111113",
"pLMNIdList": [
"460-11"
],
"perfReq": {
"perfReqEmbbList": [
{
"activityFactor": 50,
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "actDeActNssi": { "nsiIdexpDataRateDL": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", 1000, "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX" "expDataRateUL": 1000, }, "esrInfo": { "vendorareaTrafficCapDL": "huawei"1000, "networkType": "core/access/transport" } } |
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
Deallocate NSSI: [AN/TN/CN]
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/nssi/{nssiId}
REQ example:
JSON Viewer | ||||
---|---|---|---|---|
| ||||
{ "deAllocateNssi": { "areaTrafficCapUL": 1000 } "snssaiList": [ ] }, "001-100001" maxNumberofUEs": 200, "maxNumberofPDUSession": ]200, "nsiIdtotalDataVolume": "NSI-M-001-HDBNJ-NSMF-01-A-ZX"100, "nssiIdupfDeployLocation": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX customer", "terminateNssiOptioncoverageAreaTAList": 0, [ "scriptName": "CN1"07D300" ], "extensionlatency": { 30, "XXXueMobilityLevel": "XXXstationary", }"resourceSharingLevel": "non-shared" }, "esrInfonsiInfo": { "vendornsiId": "huaweiNSI-C-002-HBBJ-NSMF-1-A-ZX", "networkTypensiName": "core/access/transporteMBB_02" } } |
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
Query JOB Status:
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/jobs/{jobId}
,
"scriptName": "eMBB_02_base_111113"
} |
Response Status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
" |
REQ example:
JSON Viewer | ||
---|---|---|
| ||
{ "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX", "responseId": "3", "esrInfo": { "vendor", "jobId": "huaweidb245365e79c47ed88fcd60caa8f6549", "networkType": "core/access/transport" } } |
Response example:
Status:200
} |
DeallocateNSSI (deallocate NSSI with service)
Method | Domain | URL |
---|---|---|
DELETE | CN | /api/rest/provMns/{apiVersion}/NSS/SliceProfiles/{sliceProfileId} |
DELETE | AN |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "responseDescriptornsiId" : { "4115d3c8-dd59-45d6-b09d-e756dee9b518", "statusnssiId" : "processing1a636c4d-5e76-427e-bfd6-241a947224b0", "snssaiList" : [ "progress01-6A106175": 20], "statusDescriptionterminateNssiOption": "Initiating VNF Instance"0, "responseId": "1", "nssiId"scriptName": "CN1" } |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "jobId": "db245365e79c47ed88fcd60caa8f6549" } } |
...
ActivateNSSI(activate NSSI)
Method | URL |
---|
PUT | /api/rest/provMns/ |
{apiVersion}/NSS |
/{snssai}/activation |
Code Block | ||||||
---|---|---|---|---|---|---|
|
...
| |||
JSON Viewer | |||
---|---|---|---|
| |||
{ "subnetCapabilityQuery": { "subnetTypes": [ "AN","CN","TN-FH","TN-MH","TN-BH" ] }, "esrInfo": { nsiId" : "ed76c0a0-582d-4885-b75e-b544924addf8", "vendornssiId": "huawei", "networkType": "core/access/transport" } } |
Response example:
JSON Viewer | ||
---|---|---|
| ||
{
"AN":{
"latency": "",
"maxNumberofUEs": "",
"maxThroughput": "",
"terminalDensity": ""
},
"CN":{
"latency": "",
"maxThroughput": "",
"maxNumberofConns": ""
},
"TN-FH":{
"latency": "",
"maxThroughput": ""
},
"TN-MH":{
"latency": "",
"maxThroughput": ""
},
"TN-BH":{
"latency": "",
"maxThroughput": ""
}
} |
Note: Refer SO for subnet specific capabilities
Query NSSI selection capability
...
NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
DeactivateNSSI(slice proflice(S-NSSAI) deactivate)
Method | URL |
---|---|
PUT | /api/rest/provMns/{apiVersion}/NSS/{snssai}/deactivation |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"nsiId" : "ed76c0a0-582d-4885-b75e-b544924addf8",
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
GetJobStatus (query the operation progress)
Method | URL |
---|---|
GET | /api/rest/provMns/{apiVersion}/NSS/jobs/{jobId}?responseId={responseId} |
Info: responseId is optional, not necessary.
Response status:200
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"responseDescriptor": {
"status": "processing",
"progress": 40,
"statusDescription": "Preparing for Instantiating NSSI",
"responseId": "2",
"responseHistoryList": [
{
"status": "processing",
"progress": 20,
"statusDescription": "Initiating VNF Instance",
"responseId": "1"
}
]
}
} |
Internal NSSMF
Response example:
Status:200
JSON Viewer |
---|
{"selection":"NSMF/NSSMF"} |
...