...
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 | ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "actDeActNssi": { "nsiId "snssaiList": "NSI-M-001-HDBNJ-NSMF-[ "001-100001" ], "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX " }, "esrInfo "terminateNssiOption": { "vendor0, "scriptName": "huaweiCN1", "extension": { "XXX": "XXX" } }, "esrInfo": { "vendor": "huawei", "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}
,
"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 |
REQ example:
JSON Viewer | ||||
---|---|---|---|---|
| ||||
{ "deAllocateNssi": { "snssaiList": [ "001-100001" ], "nsiId": "NSI-M-001-HDBNJ-NSMFNSSMF-01-A-ZX", "nssiId "nsiId": "NSSINSI-CM-001-HDBNJ-NSSMFNSMF-01-A-ZX ", "terminateNssiOption "nssiName": 0, "scriptName": "CN1", "extension": { "XXX": "XXX" } }, "esrInfo": { "vendor": "huawei", "networkType": "core/access/transport" } } |
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
Query JOB Status:
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/jobs/{jobId}
"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": |
REQ example:
JSON Viewer | ||
---|---|---|
| ||
{ "nsiIdstatus": "NSI-M-001-HDBNJ-NSMF-01-A-ZX""processing", "nssiIdprogress": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"20, "responseIdstatusDescription": "3Initiating VNF Instance", "esrInforesponseId": { "1", "vendornssiId": "huawei", "networkType": "core/access/transport" } } |
Response example:
Status:200
}
} |
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 | ||||||
JSON Viewer | ||||||
| ||||||
{ "responseDescriptor": { "statussubnetTypes": ["processing"TN_FH"] }, "progressesrInfo": 20, { "statusDescriptionvendor": "Initiating VNF Instancehuawei/ONAP_internal", "responseId": "1", "nssiIdnetworkType": "tn" } } |
Sub-net Capability query
...
Response example:(TN)
REQ example
JSON Viewer | ||
---|---|---|
| ||
{ "subnetCapabilityQuery "TN_FH": { "subnetTypeslatency": ["", "AN","CN","TN-FH","TN-MH","TN-BH" ] }, "esrInfo": { "vendor": "huawei/ONAP", "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": ""
}
} |
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
...
"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,
"ueMobilityLevel": "stationary",
"resourceSharingLevel": "non-shared"
},
"nsiInfo": {
"nsiId": "NSI-C-002-HBBJ-NSMF-1-A-ZX",
"nsiName": "eMBB_02"
},
"scriptName": "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/{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"
}
]
}
} |
Internal NSSMF
Response example:
Status:200
JSON Viewer |
---|
{"selection":"NSMF/NSSMF"} |
...