The following section is a step-by-step instruction on how to create a VNF once you have onboarded the VNFC(s) in the previous steps. You can create a VNF using the Graphical Designer tools in the Stratoss LM User Interface.
Create Assembly Descriptor
A VNF Descriptor is created by pressing the “Create” button on the top right corner in the Assembly Designer section in Stratoss LM.
To create the VNF, the VNFC needs to have been onboarded. You need to describe the name, the version number, and a free text description of the VNF. When you are ready, press the “Create” button to create the VNF Descriptor. The picture below shows the Create Assembly dialog.
Add elements to the VNF
In order to add an element such as a VNFC, press the “Create element” button. This opens up a new dialog where you need to provide a name for the element. You also need to select the Resource (VNFC) Descriptor you want to use for that element, and whether it is a component or a reference. A component is embedded and part of the Assembly you are creating. A Reference is a reference to a component or Assembly outside of the VNF you are creating that is required for the VNF to function (e.g. a network that needs to be in place for this VNF). When you press “create”, you will see the element being created in your Assembly. The picture below shows the Create Element dialog.
You now have a top-level VNF (Assembly) Descriptor on the left, and on the right you have your Resource (VNFC) that you just added. Clicking on the VNF or the VNFC opens a list of properties.
The next thing to do is to add the Properties that are needed for the VNF to be able to run. In this example, in order to stand up a VNF, we need to have properties such as: a management network, a data network, a management and data address, the deployment location, what Resource Manager to use, and the Image location of the VNFC. Clicking on the Assembly (VNF) Descriptor box on the left in the Designer will open up a panel on the right. In this panel, you are able to Add new properties. The picture below shows the Create Property dialog.
In the Add new Property dialog you give the property a name, a value, a default value, and you check whether the property is required and/or locked. You can also provide a short description of the property. Once you click Create, the property you just created will appear in the VNF box in the Designer
The next step is to pass in properties between the VNF and the VNFC or element. For each property you will notice a greyed out ball on the front and at the back of that. You can pass in a property from one element to the other by simply dragging and dropping. A ball icon on the left side of the property means it is an INPUT, the ball icon on the right side means it is OUTPUT.
The picture below shows the VNF and in this case the VNFC with the properties linked indicated by blue lines.
Metrics and Policies
This section describes how metrics and policies are used on the VNF level. As described in the VNFC Descriptor section, Stratoss LM supports Load and Integrity as the standard metrics that are defined in the VNFC Descriptor. The policy for Integrity (for auto-healing) has already been defined in the VNFC Descriptor and will show up as properties for the VNFC. The policy for Load (for auto-scaling) is defined on the VNF and/OR NS level. In order to make metrics available on a higher level than the VNFC, (VNF, Network Service), they need to be promoted first.
In this example we take a Kamailio VNFC, and promote the Load metric so it can be used in the VNF and Network Service level for a scaling policy. You can promote the metric by selecting the “…” button in the Metrics section of the right hand panel when the VNFC is selected. See the image below.
Once you have done this, you can see a Promoted Metrics section appear in the right hand panel of the VNF that Kamailio is a part of.
In the same way as with Metrics, the Operations that were defined in the VNFC Descriptor that need to be used in a higher level (VNF and/or Network Service), need to be promoted first.
You can do this by clicking the “…” button in the Operations Property section in the right hand panel and clicking “Promote Operation”. See the image below for an example of where to promote the Operation for the Kamailio VNFC) and making that available for use in the VNF/Network Service.
Once you have done this, you will then see the Promoted Operations section in the Property section of the VNF in the VNF assembly design.
Relationships are typically used in Network Services but can also be present at the VNF level. Relationships are very important for the Intent Engine as it uses them to determine in what order and what tasks/elements need to be established, re-established, or torn down when an Intent is carried out.
A VNF can for example consist of multiple VNFCs. You can add multiple VNFCs by adding new elements in the VNF Design and repeating the steps above. It is possible to establish relationships between the VNFC elements, for example if one VNFC needs to be installed before the other, or if an operation needs to be performed.
In order to establish a relationship, you can drag and drop the orange ball on the element in the design between the two VNFC elements. Using the orange ball on the left of the element means a FROM relation that is then dragged to the output orange ball on the right side of the other element. Once the line is drag-and-dropped, a new screen pops up where you define the relation.
You can enter the name of the relationship, the from and to elements, whether it needs to be a pre- or post- condition, and select the source and target state of the element.
You can also select the operations that need to be carried out once the relationship is created and when it is removed. You can also provide additional properties and values. When you have filled in all the required information, press “Done” and an orange line will appear between the VNFCs that represents the relationship. On the right-hand panel the Relationships section is then also populated.
Clustering and auto-scaling
A cluster and scaling policy can be defined for a VNFC (or for a VNF in a Network Service). The (promoted) Load metric is used to automatically trigger a scale in or out action. The scale policy can be based on the metric of the VNFC/VNF itself, or from another element in the Assembly (for example scale out VNF1 based on the Load metric of VNF2).
In order to design a cluster and an auto-scaling policy, you click the “…” button on the right hand panel in the Clustering section of the Properties, and select “Edit”. A new popup window appears. You first select what the cluster looks like. You define the Initial quantity that is instantiated once the VNF is instantiated, the scaling increments, and the minimum and maximum number of nodes.
You can then select the auto-scaling policy and provide a name for the policy. You select the Load metric that is to be used, and the scale-out and scale-in thresholds and smoothing periods (to avoid scaling-in and -out actions happening too frequently if thresholds are violated only once for example). The below image shows the Clustering Property window.
Testing a VNF
See Behaviour Testing