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)

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.

AttributeOptionalDescription
nssiIdYWhen reuse existing NSSI.
nsstIdYNSST 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:
{
	"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

Response example:
{
  "jobId": "db245365e79c47ed88fcd60caa8f6549"
}

DeActivate NSSI: [AN/TN/CN]

Method

URL

POST

{adapter-url}/api/rest/provMns/v1/NSS/{snssai}/deactivation

REQ example:

REQ example:
{
    "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

Response example:
{
  "jobId": "db245365e79c47ed88fcd60caa8f6549"
}

Deallocate NSSI: [AN/TN/CN]

Method

URL

POST

{adapter-url}/api/rest/provMns/v1/NSS/nssi/{nssiId}

REQ example:

Deallocate NSSI: [AN/TN/CN]
{
	"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

Response example:
{
  "jobId": "db245365e79c47ed88fcd60caa8f6549"
}

Query JOB Status

Method

URL

POST

{adapter-url}/api/rest/provMns/v1/NSS/jobs/{jobId}

REQ example:
{
	"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

Response example:
{
  "responseDescriptor": {
    "status": "processing",
    "progress": 20,
    "statusDescription": "Initiating VNF Instance",
    "responseId": "1",
    "nssiId": ""
  }
}
AttributeRequired
responseIdN

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.

MethodURL
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

MethodURL
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)

MethodDomainURL
POSTCN/api/rest/provMns/{apiVersion}/NSS/SliceProfiles 
POSTAN
/ObjectManagement/NSS/SliceProfiles


REQ example:
{
    "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

Response example:
{
	"nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX",
	"jobId": "db245365e79c47ed88fcd60caa8f6549"
}

DeallocateNSSI (deallocate NSSI with service)

MethodDomainURL
DELETECN/api/rest/provMns/{apiVersion}/NSS/SliceProfiles/{sliceProfileId}
DELETEAN
/ObjectManagement/NSS/SliceProfiles/{SliceProfileId}


REQ example:
{
  "nsiId" : "4115d3c8-dd59-45d6-b09d-e756dee9b518",
  "nssiId" : "1a636c4d-5e76-427e-bfd6-241a947224b0",
  "snssaiList" : [ "01-6A106175" ],
  "terminateNssiOption": 0,
  "scriptName": "CN1"
}

  Response status:202

Response example:
{
  "jobId": "db245365e79c47ed88fcd60caa8f6549"
}

ActivateNSSIactivate NSSI

MethodURL
PUT/api/rest/provMns/{apiVersion}/NSS/{snssai}/activation


REQ example:
{
     "nsiId" : "ed76c0a0-582d-4885-b75e-b544924addf8",
     "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}

   Response status:202

Response example:
{
  "jobId": "db245365e79c47ed88fcd60caa8f6549"
}

DeactivateNSSIslice proflice(S-NSSAI) deactivate

MethodURL
PUT

/api/rest/provMns/{apiVersion}/NSS/{snssai}/deactivation

REQ example:
{
     "nsiId" : "ed76c0a0-582d-4885-b75e-b544924addf8",
     "nssiId": "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"
}

   Response status:202

Response example:
{
  "jobId": "db245365e79c47ed88fcd60caa8f6549"
}

GetJobStatus (query the operation progress)

MethodURL
GET

/api/rest/provMns/{apiVersion}/NSS/jobs/{jobId}?responseId={responseId}

Info: responseId is optional, not necessary.

   Response status:200

Response example:
{
	"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

  • No labels

2 Comments

  1. Zhang Min , the diagram indicated that the APIs between NSSMF Adapter and external NSSMF are "standard" APIs. Which standard APIs for Core do you refer? Could you provide us the API details? Is this based on 3gpp? Many thanks!!

    1. Hi Byung, we have implemented allocate NSSI, deallocate NSSI based on 3GPP APIs,  and also have activeNSSI, and deactive NSSI now. In future releases, we also consider to do modify NSSI.