...
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", "nssiName "nssiId": "eMBB-001", NSST-C-001-HDBNJ-NSSMF-01-A-ZX", "nssiName": "eMBB-001", "sliceProfile": { "snssaiListsNSSAIList": [ "001-100001" ], "sliceProfileId": "ab9af40f13f721b5f13539d87484098", "plmnIdListpLMNIdList": [ "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-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", "serviceTypensiId": "5G" } } NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nssiId": "NSST-C-001-HDBNJ-NSSMF-01-A-ZX", "subscriptionServiceType": "5G" } } |
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_YYY" BBB" } ] }, { "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" } } |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Activate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/{snssai}/activation |
REQ example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "actDeActNssi": { "vendornsiId": "huawei"NSI-M-001-HDBNJ-NSMF-01-A-ZX", "networkTypenssiId": "transportNSSI-C-001-HDBNJ-NSSMF-01-A-ZX" }, "serviceInfoesrInfo": { "serviceInvariantUuidvendor": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51huawei", "serviceUuidnetworkType": "8ee5926d-720b-4bb2-86f9-d20e921c143b", core/access/transport" }, "serviceInfo": { "serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "5GCustomer", "serviceTypesubscriptionServiceType": "5G", } } |
Response example:
Status:202
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{"jobId": "db245365e79c47ed88fcd60caa8f6549" } |
...
DeActivate NSSI:
...
[AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/{ |
snssai}/deactivation |
REQ example:
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "modifyAnNSSIactDeActNssi": { "nssiIdnsiId": "NSSINSI-CM-001-HDBNJ-NSSMFNSMF-01-A-ZX", "nssiName": "eMBB-001", "sNssaiListnssiId": [ "001-100001"NSSI-C-001-HDBNJ-NSSMF-01-A-ZX" ]}, "nsiInfoesrInfo": { "nsiIdvendor": "NSI-M-001-HDBNJ-NSMF-01-A-ZXhuawei", "nsiNamenetworkType": "eMBB-001core/access/transport" }, "scriptName "serviceInfo": { "serviceInvariantUuid": "TN1e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "additionalProperties "serviceUuid": { "XXX"8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "XXX5GCustomer", } }, "esrInfo": { "vendor": "huawei", "networkType": "transport" } } |
Response example:
Status:202
JSON Viewer | ||
---|---|---|
| ||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Activate NSSI: [AN/TN/CN]
"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/{ |
nssiId} |
REQ example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"deAllocateNssi": {
"snssaiList": [
"001-100001"
],
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "actDeActNssi": { "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX " }, "esrInfoterminateNssiOption": {0, "vendorscriptName": "huaweiCN1", "networkTypeextension": { "XXX": "XXX" } }, "esrInfo": { "vendor": "huawei", "networkType": "core/access/transport" }, "serviceInfo": { "serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "5GCustomer", "serviceTypesubscriptionServiceType": "5G" } } |
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
...
,
"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/{snssaijobId}/deactivation |
REQ example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"responseId": "3",
"esrInfo | ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "actDeActNssi": { "vendor": "huawei", "networkType": "core/access/transport" }, "serviceInfo": { "nsiIdnssiId": "NSINSSI-M-001-HDBNJ-NSMFNSSMF-01-A-ZX", "nssiId "nsiId": "NSSINSI-CM-001-HDBNJ-NSSMFNSMF-01-A-ZX" }, "esrInfo": { "vendor": "huawei", "networkType": "core/access/transport" }, "serviceInfo": {, "nssiName": "eMBB-001", "sST":"embb", "PLMNIdList":"39-00", "globalSubscriberId": "5GCustomer", "subscriptionServiceType": "5G" "serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "5GCustomer", "serviceType": "5G" } } |
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
Deallocate NSSI: [AN/TN/CN]
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/nssi/{nssiId}
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,
"expDataRateDL": 1000,
"expDataRateUL": 1000,
"areaTrafficCapDL": 1000,
"areaTrafficCapUL": 1000
}
]
},
"maxNumberofUEs": 200,
"maxNumberofPDUSession": 200,
"totalDataVolume": 100,
"upfDeployLocation": "customer",
"coverageAreaTAList": [
"07D300"
],
"latency": 30, |
REQ example:
JSON Viewer | ||||
---|---|---|---|---|
| ||||
{
"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",
"serviceType": "5G"
}
}
|
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
Query JOB Status:
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/jobs/{jobId}
REQ example:
JSON Viewer | ||
---|---|---|
| ||
{ "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "responseId": "3", "esrInfo": { "vendorueMobilityLevel": "huaweistationary", "networkTyperesourceSharingLevel": "core/access/transport" } } |
Response example:
Status:200
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "responseDescriptornon-shared" }, "nsiInfo": { "statusnsiId": "processingNSI-C-002-HBBJ-NSMF-1-A-ZX", "progressnsiName": 20 "eMBB_02" }, "statusDescriptionscriptName": "Initiating VNF Instance", "responseId": "1", "nssiId": "" } } |
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.
eMBB_02_base_111113"
} |
Response Status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX",
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
DeallocateNSSI (deallocate NSSI with service)
Method | Domain | URL |
---|---|---|
DELETE | CN |
/api/rest/provMns |
REQ example(TN)
JSON Viewer | ||
---|---|---|
| ||
{
"subnetCapabilityQuery": {
"subnetTypes": [
"TN-FH","TN-MH","TN-BH"
]
},
"esrInfo": {
"vendor": "huawei/ONAP",
"networkType": "transport"
}
} |
Response example:(TN)
JSON Viewer | ||
---|---|---|
| ||
{
"TN-FH":{
"latency": "",
"maxThroughput": ""
},
"TN-MH":{
"latency": "",
"maxThroughput": ""
},
"TN-BH":{
"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
...
JSON Viewer |
---|
{
"esrInfo": {
"vendor": "huawei/ONAP",
"networkType": "transport"
}
} |
Response example:
Status:200
JSON Viewer |
---|
{
"selection": "NSMF/NSSMF"
} |
NSSMF Adapter call NSSMF APIs
...
/{apiVersion}/NSS/SliceProfiles/{sliceProfileId} | ||
DELETE | AN |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"nsiId" : "4115d3c8-dd59-45d6-b09d-e756dee9b518",
"nssiId" : "1a636c4d-5e76-427e-bfd6-241a947224b0",
"snssaiList" : [ "01-6A106175" ],
"terminateNssiOption": 0,
"scriptName": "CN1"
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
ActivateNSSI(activate NSSI)
Method | URL |
---|---|
PUT | /api/rest/provMns/{apiVersion}/NSS/{snssai}/activation |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"nsiId" : "ed76c0a0-582d-4885-b75e-b544924addf8",
"nssiId": "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"
}
]
}
} |