This document page contains two parts of the interface. NSMF call NSSMF Adapter through internal APIs and NSSMF Adapter call NSSMF through standard APIs.
...
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", "nssiId": "NSST-C-001-HDBNJ-NSSMF-01-A-ZX", "nssiName": "eMBB-001", "sliceProfile": { "sNSSAIList": [ "001-100001" ], "sliceProfileId": "ab9af40f13f721b5f13539d87484098", "pLMNIdList": [ "460-00", "460-01" ], "perfReq": { "perfReqEmbbList ": [ { "activityFactor": 50 } ] }, "maxNumberofUEs": "sliceProfile": { "snssaiList": [ 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", "nssiId": "NSST-C-001-100001" -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.
Attribute | Optional | Description |
---|---|---|
nssiId | Y | When reuse existing NSSI. |
nsstId | Y | NSST artifact ID |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "allocateTnNssi": { "networkSliceInfos": [ { "snssai": "123", "customer": "company_x", "serviceType": "IoT" } ], "transportSliceNetworks": [ { "connectionLinks": [ { "transportEndpointA": "tranportEp_ID_XXX", "transportEndpointB": "tranportEp_ID_YYY" }, { "transportEndpointA": "tranportEp_ID_AAA", "transportEndpointB": "tranportEp_ID_BBB" } ] }, { "connectionLinks": [ { "transportEndpointA": "tranportEp_ID_CCC", "transportEndpointB": "tranportEp_ID_DDD" }, { "transportEndpointA": "tranportEp_ID_EEE", "transportEndpointB": "tranportEp_ID_FFF" } ] } ] }, "esrInfo": "sliceProfileId{ "vendor": "huawei", "networkType": "ab9af40f13f721b5f13539d87484098transport" }, "serviceInfo": { "serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "5GCustomer", "subscriptionServiceType": "5G", "plmnIdListnssiId": [ "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": {
"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"
},
"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"
} |
DeActivate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/{snssai}/deactivation |
REQ example:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "actDeActNssi": { "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "460-00", "460-01" "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX" ]}, "esrInfo": { "perfReqvendor": {"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"
} |
Deallocate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/nssi/{nssiId} |
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": { "perfReqEmbbList ": [ { "activityFactor": 50 } ] }, "maxNumberofUEs": 200, "coverageAreaTAListsNSSAIList": [ "001-111113" ], "sliceProfileId": "1CN-001-111113", "pLMNIdList": [ "2"460-11" ], "perfReq": { "3", perfReqEmbbList": [ { "4activityFactor": 50, "expDataRateDL": ]1000, "latencyexpDataRateUL": 21000, "resourceSharingLevelareaTrafficCapDL": "non-shared" 1000, "areaTrafficCapUL": 1000 } ] }, "nsiInfomaxNumberofUEs": { 200, "maxNumberofPDUSession": 200, "nsiIdtotalDataVolume": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", 100, "upfDeployLocation": "customer", "nsiNamecoverageAreaTAList": [ "eMBB-001" 07D300" ], "latency": }30, "scriptNameueMobilityLevel": "CN1stationary", "extensionresourceSharingLevel": { "non-shared" }, "nsiInfo": { "XXXnsiId": "XXX"NSI-C-002-HBBJ-NSMF-1-A-ZX", }"nsiName": "eMBB_02" }, "esrInfoscriptName": "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", "vendornssiId" : "huawei1a636c4d-5e76-427e-bfd6-241a947224b0", "snssaiList" : [ "01-6A106175" ], "terminateNssiOption": 0, "scriptName": "networkType": "core" } } |
Response example:
Status:202
"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
...