@@ -855,9 +855,11 @@ Any of the VMs can be accessed through SSH to further monitor (with `htop`, for
## Using Network Slices
In order to illustrate better how network slicing works in OSM, it will be discussed in the context of a running example.
### Resources
This network slicing example of usage requires a set of resources (VNFs, NSs, NSTs) that are available in the following [link](https://osm-download.etsi.org/ftp/osm-6.0-six/8th-hackfest/packages/)
This example of use network slicing requires a set of resources (VNFs, NSs, NSTs) that are available in the following [link](https://osm-download.etsi.org/ftp/osm-6.0-six/8th-hackfest/packages/)
@@ -874,13 +876,13 @@ This network slicing example of usage requires a set of resources (VNFs, NSs, NS
### Network Slice Template Diagram
The diagram below shows the Network Slice Template created for the example. As is shown in the picture, three network slice subnets are connected by Virtual Links Descriptors (VLDs) through the connection points of the network services. We have a Virtual Link for management slice_vld_mgmt and two Virtual links for data, slice_vld_data1 and slice_vld_data2. In the middle, we have a network-slice-subnet that interconnects the Netslice subnets we have on both sides.
The diagram below shows the Network Slice Template created for the example. As is shown in the picture, three network slice subnets are connected by Virtual Links Descriptors (VLDs) through the connection points of the network services. We have a Virtual Link for management `slice_vld_mgmt` and two Virtual links for data, `slice_vld_data1` and `slice_vld_data2`. In the middle, we have a `network-slice-subnet` that interconnects the Netslice subnets we have on both sides.

#### Virtual Network Functions
We use two VNFs for this example. The difference between them is the number of network interfaces to create connections. While the *slice_hackfest_middle_vnfd* VNF have three interfaces (mgmt, data1, data2), the *slice_hackfest_vnfd* have only two (mgmt, data). The specifications vCPU (1), RAM (1GB), disk (10GB), and image-name ('US1604') are the same in both VNFs.
We use two VNFs for this example. The difference between them is the number of network interfaces to create connections. While the `slice_hackfest_middle_vnfd` VNF have three interfaces (`mgmt`, `data1`, `data2`), the `slice_hackfest_vnfd` have only two (mgmt, data). The specifications vCPU (1), RAM (1GB), disk (10GB), and `image-name` ('US1604') are the same in both VNFs.

@@ -890,9 +892,9 @@ We use two VNFs for this example. The difference between them is the number of n
We use two network services in this example. They are differentiated by 1) the number of interfaces that posses, 2) the VNF contained inside the Network service, 3) the NS *slice_hackfest_nsd* have two VLDs, one for data and other for management 4) the *slice_hackfest_middle_nsd* has three VLDs, one for management and the other two for data1 and data2.
The *slice_hackfest_middle_nsd* have inside the *slice_hackfest_middle_vnfd* and the *slice_hackfest_nsd* has the vnf *slice_hackfest_vnfd*.
The *slice_hackfest_middle_nsd* have inside the `slice_hackfest_middle_vnfd` and the *slice_hackfest_nsd* has the vnf `slice_hackfest_vnfd`.
The diagram below shows the *slice_hackfest_nsd* and *slice_hackfest_middle_nsd*, its connection points, VLDs and VNFs.
The diagram below shows the `slice_hackfest_nsd` and `slice_hackfest_middle_nsd`, its connection points, VLDs and VNFs.

@@ -912,14 +914,14 @@ nst:
id:1
```
The snippet above contains the mandatory fields for the NST. Additionally, we can find the description below of the 'netslice-subnet' and 'netslice-vld' sections. When we create an NST, the 'id' references the Network Slice Template, and the 'name' is the name set to the NST. Additionally, the required parameter *SNSSAI-identifier* is a reference to which kind of service is inside this slice. In OSM we have three types of slice-service-type. Enhanced mobile broadband (eMBB), Ultra-reliable low-latency communications (URLLC) or massive machine type communications (mMTC). Moreover, we add a *quality-of-service* parameter that is related to the 5G QoS Indicator (5QI).
The snippet above contains the mandatory fields for the NST. Additionally, we can find the description below of the `netslice-subnet` and `netslice-vld` sections. When we create an NST, the `id` references the Network Slice Template, and the `name` is the name set to the NST. Additionally, the required parameter `SNSSAI-identifier` is a reference to which kind of service is inside this slice. In OSM we have three types of `slice-service-type`. Enhanced mobile broadband (eMBB), Ultra-reliable low-latency communications (URLLC) or massive machine type communications (mMTC). Moreover, we add a `quality-of-service` parameter that is related to the 5G QoS Indicator (5QI).
The section *netslice-subnet* shown below is the place to allocate the network services that compose the slice. Each item of the *netslice-subnet* list has:
The section `netslice-subnet` shown below is the place to allocate the network services that compose the slice. Each item of the *netslice-subnet* list has:
1) An `id` to identify the netslice-subnet.
2) The option `is-shared-nss` is a boolean flag to determine if the NSS is shared among Network Slice Instances that use this Netslice Subnet.
3) An optional `description`.
4) The `nsd-ref` is the reference to the Network Service descriptor that forms the netslice subnet.
1. An `id` to identify the netslice-subnet.
2. The option `is-shared-nss` is a boolean flag to determine if the NSS is shared among Network Slice Instances that use this Netslice Subnet.
3. An optional `description`.
4. The `nsd-ref` is the reference to the Network Service descriptor that forms the netslice subnet.
```yaml
netslice-subnet:
@@ -1002,7 +1004,7 @@ Having the network slice template ready is needed to onboard the resources to th
- Show if *slice_hackfest2_nst* was uploaded correctly to OSM
-`osm nst-show slice_hackfest2_nst`
With all resources already available in OSM, it is possible to create the Network Slice Instance (NSI) using the *slice_hackfest_nst*. You can find below the help of the command to create a network slice instance:
With all resources already available in OSM, it is possible to create the Network Slice Instance (NSI) using the `slice_hackfest_nst`. You can find below the help of the command to create a network slice instance:
```text
osm nsi-create --help
@@ -1038,21 +1040,20 @@ Options:
To instantiate the network slice template use the following command:
-`--nsi-name` is the name of the Network Slice Instance: **my_first_slice**
-`--nst-name` is the name of the Network Slice Template: **slice_hackfest_nst**
-`--nsi-name` is the name of the Network Slice Instance: `my_first_slice`
-`--nst-name` is the name of the Network Slice Template: `slice_hackfest_nst`
-`--vim_account` is the default VIM account id or name to be used by the NSI
-`--config` is the configuration parameter used for the slice. For example, it is possible to attach the NS management network to an external network of the VIM to have access to the VNF deployed in the slice. In this case, `netslice-vld` list, contains the name of the VLD **slice_vld_mgmt** used to attach the external network of the VIM by `vim-network-name` key.
-`--config` is the configuration parameter used for the slice. For example, it is possible to attach the NS management network to an external network of the VIM to have access to the VNF deployed in the slice. In this case, `netslice-vld` list, contains the name of the VLD `slice_vld_mgmt` used to attach the external network of the VIM by `vim-network-name` key.
The commands to operate the slice are:
@@ -1118,7 +1119,7 @@ nst:
The YAML above contains 2 *netslice-subnet*, one with the flag *is-shared-nss* as true and the other one with the flag *is-shared-nss* as false. The *netslice-vlds* will connect the *slice_hackfest_middle_nsd* nss with management interface and data2 with the *slice_hackfest_nsd* via *nsd_cp_data*
To instantiate this network slice, we will use the same command used previously but changing the `nst_name` to *slice_hackfest2_nst*:
To instantiate this network slice, we will use the same command used previously but changing the `nst_name` to `slice_hackfest2_nst`:
```text
osm nsi-create\
@@ -1140,7 +1141,7 @@ Only one Network Slice Subnet was instantiated since the middle Network Slice Su
What would happens with the shared Network Slice Subnet and the second Network Slice Instance if we delete the first Network Slice Instance?
With the command `osm nsi-delete my_first_slice` we can delete the first Network Slice Instance. The result is that the middle Network Slice Subnet (shared) belongs to the NSI2, and it is not deleted when NSI1 is deleted. All networks and services created for NSS middle are kept. In the picture below, is shown the result in Openstack and the logical result of the deletion of NSI1:
With the command `osm nsi-delete my_first_slice` we can delete the first Network Slice Instance. The result is that the middle Network Slice Subnet (shared) belongs to the `NSI2`, and it is not deleted when NSI1 is deleted. All networks and services created for NSS middle are kept. In the picture below, is shown the result in Openstack and the logical result of the deletion of NSI1:

@@ -1150,7 +1151,7 @@ To remove the NSI2 run the command: `osm nsi-delete my_shared_slice`.
## Using Kubernetes-based VNFs (KNFs)
From Release SEVEN, OSM supports Kubernetes-based VNF (KNF). In order to test it, you require a K8s cluster connected to a network in the VIM (e.g. "vim-net"
From Release SEVEN, OSM supports Kubernetes-based VNF (KNF). In order to test it, you require a K8s cluster connected to a network in the VIM (e.g. `vim-net`).
You will have to add the K8s cluster to OSM. For that purpose, you can use these instructions: