...
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" } } |
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:
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.
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": [
{
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "allocateTnNssi": { "actionType": "allocate", "networkSliceInfo": [ { "snssai": "123", "customer": "company_x", "serviceType": "IoT" } ], "transportSliceNetworks": [ { "type": "P2P", "slaPolicy": { "latency": 123, "jitter": 123, "maxBandwidth": 123, "reliability": "1+1_protection" }, "connectionLinks": [ { "transportEndpointA": "tranportEp_ID_XXX", "transportEndpointB": "tranportEp_ID_YYY" }, { "transportEndpointA": "tranportEp_ID_AAA", "transportEndpointB": "tranportEp_ID_BBB" } ] }, { "typeconnectionLinks": "MP2MP",[ "slaPolicy": { { "latencytransportEndpointA": 456, "jitter": 456"tranportEp_ID_CCC", "maxBandwidth": 456, "reliabilitytransportEndpointB": "unprotectedtranportEp_ID_DDD" }, "connectionLinks": [ { "transportEndpointA": "tranportEp_ID_CCCEEE", "transportEndpointB": "tranportEp_ID_DDDFFF" }, ] {} ] }, "esrInfo": { "transportEndpointAvendor": "tranportEp_ID_EEEhuawei", "transportEndpointBnetworkType": "tranportEp_ID_FFFtransport" }, ] } ] }, "esrInfo": { "vendor": "huawei"serviceInfo": { "serviceInvariantUuid": "e75698d9-925a-4cdd-a6c0-edacbe6a0b51", "serviceUuid": "8ee5926d-720b-4bb2-86f9-d20e921c143b", "globalSubscriberId": "5GCustomer", "subscriptionServiceType": "5G", "networkTypenssiId": "transport" NSST-C-001-HDBNJ-NSSMF-01-A-ZX" } } |
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"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": { "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nsiName": "eMBB-001" }, "scriptName": "TN1", "additionalProperties": { "XXX": "XXX" } }, "esrInfo": { "vendor": "huawei", "networkType": "transport" } } |
Response example:
Status:202
JSON Viewer | ||
---|---|---|
| ||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
Activate NSSI: [AN/TN/CN]
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/{snssai}/activation
{
"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",
"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"
} |
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": {
"sNSSAIList": [
"001-111113"
], |
REQ example:
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "actDeActNssi": { "nsiIdsliceProfileId": "NSI-MCN-001-HDBNJ-NSMF-01-A-ZX111113", "nssiIdpLMNIdList": [ "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX "460-11" }, "esrInfo": { ], "vendorperfReq": "huawei", { "networkType": "core/access/transport" } } |
Response example:
Status:202
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{"jobId":"db245365e79c47ed88fcd60caa8f6549"} |
DeActivate NSSI: [AN/TN/CN]
...
Method
...
URL
...
POST
...
/api/rest/provMns/v1/NSS/{snssai}/deactivation
REQ example:
JSON Viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "actDeActNssi": { "perfReqEmbbList": [ { "nsiId": "NSI-M-001-HDBNJ-NSMF-01-A-ZX", "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX" activityFactor": 50, }, "esrInfo": { "vendorexpDataRateDL": "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": { "expDataRateUL": 1000, "areaTrafficCapDL": 1000, "areaTrafficCapUL": 1000 "snssaiList": [} "001-100001"] ]}, "nsiIdmaxNumberofUEs": "NSI-M-001-HDBNJ-NSMF-01-A-ZX"200, "nssiIdmaxNumberofPDUSession": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX " 200, "totalDataVolume": 100, "terminateNssiOptionupfDeployLocation": 0"customer", "scriptNamecoverageAreaTAList": [ "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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"nssiId": "NSSI-C |
REQ example:
JSON Viewer | ||
---|---|---|
| ||
{ "nsiId": "NSI-M-001-HDBNJ-NSMFNSSMF-01-A-ZX", "responseId": "3", "esrInfo": { "vendor": "huawei", "networkType": "core/access/transport" } } |
Response example:
Status:200
",
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
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, "responseIdscriptName": "1CN1", "nssiId": "" } } |
Sub-net Capability query
...
} |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
} |
ActivateNSSI(activate NSSI)
Method | URL |
---|
PUT | /api/rest/provMns/ |
{apiVersion}/NSS |
REQ example(TN)
/{snssai}/activation |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
| ||||||||
JSON Viewer | ||||||||
| ||||||||
{ "subnetCapabilityQuery": { "subnetTypes": [ "TN-FH","TN-MH","TN-BH" ] }, "esrInfonsiId" : { "ed76c0a0-582d-4885-b75e-b544924addf8", "vendornssiId": "huawei/ONAP", "networkTypeNSSI-C-001-HDBNJ-NSSMF-01-A-ZX" } |
Response status:202
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "jobId": "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
...
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"
}
]
}
} |