How to develop a VNF
There are a number of tasks involved in creating VNFs that can be used as part of network services. In order to understand what a VNF is, we first need to look at what it consists of.
Anatomy of a VNF
A VNF, or Virtual Network Function, provides a single function within a network service. A VNF consists of one or more VNFCs. The image below displays the components of a VNF.
|VDU||A VDU is the package or script that can create an image for specific virtual infrastructure.|
|VNFC||This is the VNF Component as a standalone network function that is managed by a Resource manager. In Stratoss LM this is also called a Resource|
|VDU||May contain one or multiple VDUs|
|Descriptor (Resource)||A yaml file that describes the interface for a VNFC. Contains properties and other details to describe the interface for the item.|
|Lifecycle scripts||Scripts that map the standard lifecycle actions as start, stop, install, configure, stop to the VDU specific instructions as well as operations, e.g. Ansible playbooks|
|VNF||Provides a single function within a Network Service|
|VNFC||May contain one or multiple VNFC|
|VNF Descriptor (assembly)||An assembly.yaml file that describes the interface for a VNF. Contains properties and other details to describe the interface for the VNF. Implemented within LM by an assembly|
|Service behaviour test scenarios||scripts that are used to test VNF functionality and are created during the design phase|
Tasks to develop a VNF
To develop a VNF, there are multiple steps that can be seen in the picture below:
Tools to develop a VNF
To develop a VNF, there are multiple tools that are used to allow people to collaborate on creating, testing, maintaining and automating the development of VNFs.
The Continuous Integration / Continuous Delivery Hub, or CI/CD Hub, provides a set of standards, tools and automation patterns designed to simplify and accelerate the network service continuous integration and deployment journey. The CI/CD Hub includes a source code repository, image repository and an automation server.
More information about the tools in the CI/CD Hub can be found here
Stratoss™ Lifecycle Manager (LM) environment
Designing a VNF is done through the Designer section of Stratoss LM. This is typically done on a local or dedicated development environment. The Designer has a graphical User Interface with which you can drag and drop VNFC and resources, establish relationships, modify properties, etc.
LMCTL is a command line tool that allows you to create, pull, push and test VNF and Network Service projects to a Stratoss LM environment. LMCTL is also used by the automation server to issue these commands and execute the automated pipeline. The LMCTL tool can be installed from the CI/CD Hub.