NSSMF Adapter
This page contains two parts of the interface. NSMF call NSSMF Adapter through internal APIs and NSSMF Adapter call NSSMF through standard APIs.
INFO:
EsrInfo has to be mandatorily filled for every rest request(filled by NSMF). It contains two params. Vendor and network type.
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)
- 1 NSMF call NSSMF Adapter APIs
- 1.1 Allocate NSSI: [AN/TN/CN]
- 1.2 Activate NSSI: [AN/TN/CN]
- 1.2.1 REQ example:
- 1.2.2 Response example:
- 1.3 DeActivate NSSI: [AN/TN/CN]
- 1.3.1 REQ example:
- 1.3.2 Response example:
- 1.4 Deallocate NSSI: [AN/TN/CN]
- 1.4.1 Deallocate NSSI: [AN/TN/CN]
- 1.4.2 Response example:
- 1.5 Query JOB Status
- 1.5.1 REQ example:
- 1.5.2 Response example:
- 1.6 Sub-net Capability query
- 1.7 Query NSSI selection capability
- 2 NSSMF Adapter call NSSMF APIs
- 2.1 Implementation difference
- 2.2 External NSSMF
- 2.2.1 Allocate NSSI (create NSSI with service)
- 2.2.1.1 REQ example:
- 2.2.1.2 Response example:
- 2.2.2 DeallocateNSSI (deallocate NSSI with service)
- 2.2.2.1 REQ example:
- 2.2.2.2 Response example:
- 2.2.3 ActivateNSSI(activate NSSI)
- 2.2.3.1 REQ example:
- 2.2.3.2 Response example:
- 2.2.4 DeactivateNSSI(slice proflice(S-NSSAI) deactivate)
- 2.2.4.1 REQ example:
- 2.2.4.2 Response example:
- 2.2.5 GetJobStatus (query the operation progress)
- 2.2.5.1 Response example:
- 2.2.1 Allocate NSSI (create NSSI with service)
- 2.3 Internal NSSMF
NSMF call NSSMF Adapter APIs
Allocate NSSI: [AN/TN/CN]
Method | URL |
---|---|
POST | {adapter-url}/api/rest/provMns/v1/NSS/SliceProfiles |
Allocate AN/CN NSSI REQ body example:
{
"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": 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-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 |
Allocate TN NSSI REQ body example:
{
"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": {
"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
Response example:
{
"jobId": "db245365e79c47ed88fcd60caa8f6549"
}
Activate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/{snssai}/activation |
REQ example:
REQ example:
Response status:202
Response example:
DeActivate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/{snssai}/deactivation |
REQ example:
REQ example:
Response status:202
Response example:
Deallocate NSSI: [AN/TN/CN]
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/nssi/{nssiId} |
REQ example:
Deallocate NSSI: [AN/TN/CN]
Response status:202
Response example:
Query JOB Status
Method | URL |
POST | {adapter-url}/api/rest/provMns/v1/NSS/jobs/{jobId} |
REQ example:
Response Status:200
Response example:
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)
Response example:(TN)
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 |
Response example:
Status:200
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 | /ObjectManagement/NSS/SliceProfiles |
REQ example:
Response Status:202
Response example:
DeallocateNSSI (deallocate NSSI with service)
Method | Domain | URL |
---|---|---|
DELETE | CN | /api/rest/provMns/{apiVersion}/NSS/SliceProfiles/{sliceProfileId} |
DELETE | AN | /ObjectManagement/NSS/SliceProfiles/{SliceProfileId} |
REQ example:
Response status:202
Response example:
ActivateNSSI(activate NSSI)
Method | URL |
---|---|
PUT | /api/rest/provMns/{apiVersion}/NSS/{snssai}/activation |
REQ example:
Response status:202
Response example:
DeactivateNSSI(slice proflice(S-NSSAI) deactivate)
Method | URL |
---|---|
PUT | /api/rest/provMns/{apiVersion}/NSS/{snssai}/deactivation |
REQ example:
Response status:202
Response example:
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