From 45cc4bacea3ca7cecdad9920cb384de44acb9f8b Mon Sep 17 00:00:00 2001 From: "selvi.j" Date: Wed, 8 Jun 2022 18:23:31 +0000 Subject: [PATCH 1/2] Added SOL003 APIs documentation --- 12-osm-nbi.md | 125 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 124 insertions(+), 1 deletion(-) diff --git a/12-osm-nbi.md b/12-osm-nbi.md index 0c67e5d..4c2b0b2 100644 --- a/12-osm-nbi.md +++ b/12-osm-nbi.md @@ -76,7 +76,7 @@ Some special keys used for administration are: ## URL and Methods summary -North Bound Interface (O: OSM specific; X,5: SOL005 not OSM implemented yet; O5: OSM and SOL005) +North Bound Interface (O: OSM specific; X,5: SOL005 not OSM implemented yet; O5: OSM and SOL005, 3: SOL003 implemented) ```text URL: /osm GET POST PUT DELETE PATCH @@ -124,6 +124,17 @@ URL: /osm GET POST /subscriptions 5 5 / 5 X + /vnflcm/v1 + /vnf_instances 3 3 + / 3 3 + instantiate 3 + terminate 3 + scale 3 + /vnf_lcm_op_occs 3 + / 3 + /subscriptions 3 3 + / 3 3 + /pdu/v1 /pdu_descriptors O O / O O O O @@ -646,3 +657,115 @@ netslice-vld: `/nsilcm/v1/netslice_instances/nsi_lcm_op_occ/ID`. (rbac: `slice_instances:opps:id`) - GET: Show details of a concrete Network Slice Instance operation + +## VNFLCM Details + +The Virtual Network Function Manager (VNF Manager or VNFM) is responsible for lifecycle management of VNFs. VNFM operations include: + +- Instantiation of VNF +- Scaling of VNF +- Termination of VNF + +OSM supports the Or-Vnfm interface (SOL003 Std.) to connect to VNFM to perform life cycle operation of VNFs. With the support of SOL003 API's, OSM enables the ability to serve as independent VNFM that can be integrated with any other Orchestrator and can perform VNF Life cycle management operations. + +### Virtual Network Function Lifecycle Management Operations + +`/vnflcm/v1/vnf_instances`. (rbac: `vnflcm_instances`) + +- GET: Obtain the list of VNF Instances +- POST: Creates a VNF, but do not instantiate it. It returns the vnfInstanceId in the response header `'Location'`. Example of request content: + +```yaml +vnfdId: vnfd-internal-id # mandatory +vnfInstanceName: instance-name # mandatory +vimAccountId: vim-id # mandatory +vnfInstanceDescription: instance-description +additionalParams: + constituent-cpd-id: connection-point-ref + virtual-link-desc: + - + id: vld-name + mgmt-network: true + virtual-link-profile-id: vld-name +``` + +`/vnflcm/v1/vnf_instances/ID`. (rbac: `vnflcm_instances:id`) + +- GET: Show details of a concrete VNF Instance +- DELETE: Deletes a VNF. It fails if VNF is in 'INSTANTIATED' state + +`/vnflcm/v1/vnf_instances/ID/instantiate`. (rbac: `vnflcm_instances:id:instantiate:post`) + +- POST: (Asynchronous). Deploys a VNF that it is in NOT_INSTANTIATED state. It returns the vnfLcmOpOccId (Operations Occurrence Id) in the response header `'Location'`. Example of request content: + +```yaml +vnfName: instance-name # mandatory +vnfId: vnfd-id # mandatory +vimAccountId: vim-id # mandatory +vnfDescription: instance-description # mandatory +``` + +`/vnflcm/v1/vnf_instances/ID/terminate`. (rbac: `vnflcm_instances:id:terminate:post`) + +- POST: (Asynchronous). Undeploys a VNF that it is in INSTANTIATED state. It returns the vnfLcmOpOccId (Operations Occurrence Id) in the response header `'Location'`. Example of request content: + +```yaml +terminationType: str +gracefulTerminationTimeout: int +``` + +`/vnflcm/v1/vnf_instances/ID/scale`. (rbac: `vnflcm_instances:id:scale:post`) + +- POST: (Asynchronous). Performs a manual scale OUT/IN of the VNF. It returns the vnfLcmOpOccId (Operations Occurence Id) in the response header `'Location'`. Example of request content: + +```yaml +type: SCALE_OUT|SCALE_IN +aspectId: scaling-aspect-id +numberOfSteps: int +additionalParams: + member-vnf-index: member-vnf-index +``` + +`/vnflcm/v1/vnf_instances/vnf_lcm_op_occs`. (rbac: `vnf_instances:opps`) + +- GET: Obtain the list of VNF Instances operations + +`/vnflcm/v1/vnf_instances/vnf_lcm_op_occs/ID`. (rbac: `vnf_instances:opps:id`) + +- GET: Show details of a concrete VNF Instance operation + +### VNFLCM Subscription and Notification support + +`/vnflcm/v1/subscriptions`. (rbac: `vnflcm_subscriptions`) + +- GET: Obtain the list of subscriptions +- POST: Creates a subscription. It returns the subscriptionId in the response header `'Location'`. Example of request content: + +Refer ETSI SOL003 document for filter options [Page no 97](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf) +```yaml +filter: + VnfInstanceSubscriptionFilter: + vnfdIds: + - hackfest_basic_metrics-vnf + notificationTypes: + - VnfLcmOperationOccurrenceNotification + operationTypes: + - INSTANTIATE + operationStates: + - PROCESSING +CallbackUri: "http://webhook.site/82b1d459-dce8-4ed2-bda1-360049d23bc1" +authentication: + authType: basic + paramsBasic: + userName: user + password: user +``` + +This payload implies that, for vnfd id `hackfest_basic_metrics-vnf` if operation state is `PROCESSING` and operation type is `INSTANTIATE` then, send a notification to `http://webhook.site/82b1d459-dce8-4ed2-bda1-360049d23bc1` using the "authentication" mechanism whose payload is of datatype `VnfLcmOperationOccurrenceNotification`. Refer ETSI SOL003 document for notification reference [Page no 102](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf) + +> Note: For detailed subscription and notification workflow refer (https://osm.etsi.org/docs/user-guide/latest/05-osm-usage.html#subscription-and-notification-support-in-osm) + +`/vnflcm/v1/subscriptions/ID`. (rbac: `vnflcm_subscriptions:id`) + +- GET: Show details of a concrete VNF subscription +- DELETE: Deletes a VNF subscription -- GitLab From a284d13175646491e13c132082ce4dbb5fcde289 Mon Sep 17 00:00:00 2001 From: garciadeblas Date: Wed, 29 Jun 2022 15:21:07 +0000 Subject: [PATCH 2/2] Update 12-osm-nbi.md --- 12-osm-nbi.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/12-osm-nbi.md b/12-osm-nbi.md index 4c2b0b2..42fb216 100644 --- a/12-osm-nbi.md +++ b/12-osm-nbi.md @@ -660,13 +660,10 @@ netslice-vld: ## VNFLCM Details -The Virtual Network Function Manager (VNF Manager or VNFM) is responsible for lifecycle management of VNFs. VNFM operations include: +Since Release TWELVE, OSM supports the Or-Vnfm interface (SOL003) to allow life cycle operation of VNFs. With the support of [ETSI GS NFV-SOL003(https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf) +API, OSM enables the ability to serve as independent VNFM that can be integrated with any other Orchestrator and can perform VNF Life cycle management operations. -- Instantiation of VNF -- Scaling of VNF -- Termination of VNF - -OSM supports the Or-Vnfm interface (SOL003 Std.) to connect to VNFM to perform life cycle operation of VNFs. With the support of SOL003 API's, OSM enables the ability to serve as independent VNFM that can be integrated with any other Orchestrator and can perform VNF Life cycle management operations. +Besides the addition of VNF lifecycle API calls to instantiate, scale and terminate the NF, this feature is complemented with the capability to subscribe to those events and be notified, in the same way that it was already supported for NS lifecycle events. ### Virtual Network Function Lifecycle Management Operations @@ -742,6 +739,7 @@ additionalParams: - POST: Creates a subscription. It returns the subscriptionId in the response header `'Location'`. Example of request content: Refer ETSI SOL003 document for filter options [Page no 97](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf) + ```yaml filter: VnfInstanceSubscriptionFilter: -- GitLab