...
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)
NSMF call NSSMF Adapter APIs
Allocate NSSI:[AN/TN/CN]
Method | URL |
---|
POST | {adapter-url}/api/rest/provMns/v1/NSS/SliceProfiles |
Code Block |
---|
language | xml |
---|
theme | RDark |
---|
title | Allocate AN/CN NSSI |
---|
|
...
|
JSON Viewer |
---|
mode | Text |
---|
width | 600 |
---|
height | 350 |
---|
|
|
{
{
"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 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 |
---|
language | text |
---|
theme | RDark |
---|
title | Allocate TN NSSI REQ body example: |
---|
collapse | true |
---|
|
JSON Viewer |
---|
mode | Text |
---|
width | 600 |
---|
height | 300 |
---|
|
{
"allocateTnNssi": {
"actionType": "allocate",
"networkSliceInfo"networkSliceInfos": [
{
"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": {
"vendor": "huawei",
"networkType": "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"} |
Modify NSSI: [AN/TN/CN]
}
]
}
]
},
"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 |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Activate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url} |
Method | URL |
---|
PUT | /api/rest/provMns/v1/NSS/{ |
nssiREQ example:
...
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | REQ example: |
---|
collapse | true |
---|
|
{
"actDeActNssi |
JSON Viewer |
---|
|
{
"modifyAnNSSI": {
"nssiId "nsiId": "NSSINSI-CM-001-HDBNJ-NSSMFNSMF-01-A-ZX",
"nssiName "nssiId": "eMBBNSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
},
"sNssaiList "esrInfo": [
"001-100001"
],
"nsiInfo{
"vendor": "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"
} |
...
NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}
} |
Response status:202
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
DeActivate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/{snssai}/ |
activationREQ example:
...
Code Block |
---|
language | xml |
---|
theme | RDark |
---|
title | REQ example: |
---|
collapse | true |
---|
|
{
|
JSON Viewer |
---|
mode | Text |
---|
width | 600 |
---|
height | 200 |
---|
|
{
"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",
"serviceTypesubscriptionServiceType": "5G"
}
}
|
Response example:
Status:202
JSON Viewer |
---|
mode | Text |
---|
width | 450 |
---|
height | 200 |
---|
|
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
...
,
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}
} |
Response status:202
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Deallocate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/nssi/{snssainssiId}/deactivation |
REQ example:
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Deallocate NSSI: [AN/TN/CN] |
---|
collapse | true |
---|
|
{
"deAllocateNssi |
JSON Viewer |
---|
mode | Text |
---|
width | 600 |
---|
height | 200 |
---|
|
{
"actDeActNssi": {
"nsiId "snssaiList": "NSI-M-001-HDBNJ-[
"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"
},
"serviceInfo": {
"serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51",
"serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b",
"globalSubscriberId": "5GCustomer",
"serviceTypesubscriptionServiceType": "5G"
}
} |
Response example:
Status:202
JSON Viewer |
---|
mode | Text |
---|
width | 450 |
---|
height | 200 |
---|
|
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
...
,
"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}
} |
Response status:202
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Query JOB Status
Method | URL |
POST | /{adapter-url}/api/rest/provMns/v1/NSS/nssijobs/{nssiId}jobId} |
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | REQ example: |
---|
|
JSON Viewer |
---|
collapse | true |
---|
mode | Text |
---|
width | 600 |
---|
|
{
"deAllocateNssi "responseId": "3",
"esrInfo": {
"snssaiListvendor": [
"001-100001huawei"
],
"nsiIdnetworkType": "NSIcore/access/transport"
},
"serviceInfo": {
"nssiId": "NSSI-M-001-HDBNJ-NSMFNSSMF-01-A-ZX",
"nssiIdnsiId": "NSSINSI-CM-001-HDBNJ-NSSMFNSMF-01-A-ZX ",
"terminateNssiOptionnssiName": 0"eMBB-001",
"scriptNamesST": "CN1embb",
"extensionPLMNIdList": {
"XXX": "XXX"
}
},
"esrInfo": {
"vendor": "huawei",
"networkType": "core/access/transport"
},
"serviceInfo": {
"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 |
---|
mode | Text |
---|
width | 450 |
---|
height | 200 |
---|
|
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
Query JOB Status
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/jobs/{jobId}
Response Status:200
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
"responseDescriptor": {
"status": "processing",
"progress": 20 |
REQ example:
JSON Viewer |
---|
|
{
"nssiId": "NSSI-M-001-HDBNJ-NSSMF-01-A-ZX",
"nsiIdstatusDescription": "NSI-M-001-HDBNJ-NSMF-01-A-ZX",
"responseId": "3"Initiating VNF Instance",
"esrInfo": {
"vendorresponseId": "huawei1",
"networkTypenssiId": "core/access/transport"
}
} |
...
Status:200
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 |
---|
mode | Text |
---|
width | 400 |
---|
height | 200 |
---|
|
{
"responseDescriptor": {
"status": "processing",
"progress": 20,
"statusDescription": "Initiating VNF Instance",
"responseId": "1",
"nssiIdsubnetTypes": ["TN_FH"]
}
} |
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.
...
REQ example(TN)
JSON Viewer |
---|
|
{
"subnetCapabilityQuery": {
"subnetTypes": [
"TN-FH","TN-MH","TN-BH"
]
},
,
"esrInfo": {
"vendor": "huawei/ONAP_internal",
"networkType": "transporttn"
}
} |
Response example:(TN)
elite-soft-json-viewer |
---|
|
-json-viewer |
---|
|
{
"TN_FH{
"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):
...
Query NSSI selection capability
Method | URL |
---|
POST | {adapter-url}/api/rest/provMns/v1/NSS/NSSISelectionCapability |
...
JSON Viewer |
---|
{
"esrInfo": {
"vendor": "huawei/ONAP_internal",
"networkType": "transport"
}
} |
...
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/ |
SliceProfilesREQ example:
SliceProfiles |
POST | AN | /ObjectManagement/NSS/SliceProfiles |
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | REQ example: |
---|
collapse | true |
---|
|
{
"nsstId": "NSST-C-01V-HBBJ-NSSMF-1-A-ZX",
"nssiName": "CN_eMBB_02",
"sliceProfile": |
JSON Viewer |
---|
|
{
"nsstIdsNSSAIList": [
"NSST-C-01V-HBBJ-NSSMF-1-A-ZX",001-111113"
"nssiName": "CN_eMBB_02" ],
"sliceProfile": { "sliceProfileId": "CN-001-111113",
"snssaiListpLMNIdList": [
"001460-11111311"
],
"sliceProfileIdperfReq": "CN-001-111113",{
"plmnIdListperfReqEmbbList": [
"460-11"{
],
"perfReqactivityFactor": {50,
"perfReqEmbbList": [
"expDataRateDL": 1000,
{"expDataRateUL": 1000,
"activityFactorareaTrafficCapDL": 501000,
"expDataRateDLareaTrafficCapUL": 1000,
}
"expDataRateUL": 1000,
]
},
"areaTrafficCapDLmaxNumberofUEs": 1000200,
"maxNumberofPDUSession": 200,
"areaTrafficCapULtotalDataVolume": 1000100,
"upfDeployLocation": "customer",
}"coverageAreaTAList": [
]"07D300"
}],
"maxNumberofUEslatency": 20030,
"maxNumberofPDUSessionueMobilityLevel": 200"stationary",
"totalDataVolumeresourceSharingLevel": 100,"non-shared"
},
"upfDeployLocationnsiInfo": "customer",{
"coverageAreaTAListnsiId": ["NSI-C-002-HBBJ-NSMF-1-A-ZX",
"nsiName": "07D300eMBB_02"
]},
"scriptName": "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 example:
Status:202
JSON Viewer |
---|
|
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
deallocateNSSI (deallocate NSSI with service)
Response Status:202
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
"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 | /ObjectManagement/NSS/SliceProfiles/{SliceProfileId} |
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | REQ example: |
---|
collapse | true |
---|
|
{
"nsiId" : "4115d3c8-dd59-45d6-b09d-e756dee9b518",
"nssiId" : "1a636c4d-5e76-427e-bfd6-241a947224b0",
"snssaiList" : [ "01-6A106175" ],
"terminateNssiOption": 0,
"scriptName": "CN1"
} |
Response status:202
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
ActivateNSSI(activate NSSI)
Method | URL |
DELETE | /api/rest/provMns/{apiVersion}/NSS |
/SliceProfiles sliceProfileIdREQ example:
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | REQ example: |
---|
collapse | true |
---|
|
{
"nsiId |
JSON Viewer |
---|
|
{
"nsiId" : "4115d3c8-dd59-45d6-b09d-e756dee9b518",
"nssiId" : "1a636c4ded76c0a0-5e76582d-427e4885-bfd6-241a947224b0",
"snssaiList" : [ "01-6A106175" ],
"terminateNssiOption": 0b75e-b544924addf8",
"scriptNamenssiId": "CN1NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
} |
Response example:
Status:202
Response status:202
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
|
JSON Viewer |
---|
|
{"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
...
DeactivateNSSI(slice proflice(S-NSSAI) deactivate)
Method | URL |
---|
PUT | /api/rest/provMns/{apiVersion}/NSS/{snssai}/ |
activationREQ example:
Response example:
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | REQ example: |
---|
collapse | true |
---|
|
{
|
JSON Viewer |
---|
|
{
"nsiId" : "ed76c0a0-582d-4885-b75e-b544924addf8",
"nssiId" : "NSSI-C-L76001-HDBNJ-NSSMF-01-A-ZX"
}
|
Status:202
Response status:202
Code Block |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
collapse | true |
---|
|
{
|
JSON Viewer |
---|
|
{"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 |
---|
language | text |
---|
theme | RDark |
---|
title | Response example: |
---|
|
Status:200
|
JSON Viewer |
---|
|
{
"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
NSSMF