DRAFT
Work in progress documentation
The ONAP vFW VNF used for testing and demonstration was created because there wasn't a readily available opensource VNF that could be used for testing. Over time maintaining the source has been a challenge and it would be good to use a supported full featured VNF for the vFW/vLB functions. This Tutorial will show the steps to make the DANOS Virtual Router work as a vFW VNF for ONAP. It will describe both the steps to add a VES client and the steps to create the heat template artifacts, service mapping and preload data so that the DANOS vRouter can be automatically on boarded and instantiated just like the standard vFW in ONAP. Over time we may consider using the DANOS vRouter for more use cases since it is a more feature VNF than the home grown vFW.
The steps below have been added into the ONAP repositories already so they do not need to be repeated but will document the steps taken so that they could be used for other VNFs as appropriate. To simplify the tutorial we will point to other wiki pages and source files in gerrit rather than showing all the steps of editing the files.
It is important to point out that while DANOS has a commercial equivalent that is deployed in production, the VES client we are using is for demonstration only and does not cover all the things needed for a production deployment. It does however support the functions we need for testing.
These steps could be followed as a general outline to add automated testing for any VNF to ONAP.
Step-by-step guide
- Add VES to your VNF
- Create a debian package of the VES client for DANOS using the VESreporting_vFW5.0_DANOS sub-directory from the demo repository
- The DANOS build process uses debian packages so this step is creating a VES reporting Debian client that can use the DANOS API's to retrieve statistics
- libevel.so must be built and bundled into the package since its not available on the ONAP artifact repositories as a debian package.
- Create a Openstack Image
- Create a DANOS ISO image that includes the VES client
- This is following the existing DANOS procedures for building an ISO from binaries and the procedures for creating an Openstack image
- Follow instructions in BUILD_DANOS.md in the demo repository which has slight changes from the DANOS tutorials.
- https://danosproject.atlassian.net/wiki/spaces/DAN/pages/491554/Creating+a+DANOS+ISO+using+binary+packages
- https://danosproject.atlassian.net/wiki/spaces/DAN/pages/79560705/Creating+a+DANOS+Virtual+Router+VNF+in+Openstack
- DANOS supports SNMP already but we want to use the vRouter as a replacement for the existing vFW which is VES based.
- DANOS could be used for both VES and SNMP based testing with the addition of this simplified VES client.
- Create the heat template
- Create the heat template for DANOS under a new service vFWCLDN
- vFWCLDN is a short hand that makes naming of the VNFs fit within the string lengths in Openstack and ONAP.
- The full VNF will be the same packet generator and traffic sink as the standard vFWCL but use DANOS vRouter instead of the ONAP vFW
- The DANOS vRouter heat template is minimal.
- Create the preload_data
- This will be the same data items as vFWCL but will demonstrate one of the steps to use for onboarding any VNF to ONAP's automated testing
- Create the service mapping data
- This will add the pointers to the heat templates that are primarily just a name change from vFWCL to vFWCLDN so that the testing tools can map the service to the locations of the various artifacts
- Add the QCOW2 image for your VNF to your glance repository
- Add the QCOW2 image for the DANOS with VES vRouter to your Openstack glance repository
- Create the flavor for your VNF
- Create the flavor for the DANOS vRouter - 4 vcpu, 4 Gig ram, 8 GB disk
- Standard vFW is m1.medium but DANOS is a smaller footprint and an on disk image that is only 8 GB instead of a full Ubuntu volume.
- Add a tag for running tests with your VNF
- Add instantiateVFWCLDN tag and data for an instantiate VNF testcase to demo.robot
- The command line "./ete-k8s.sh onap instantiateVFWCLDN" would now onboard the vFWCLDN models and instantiate the VNF as a DANOS vFW and a traffic sink and a traffic generator without having to use the GUI's directly so it could be used for regression.
- Document any post instantiation steps
- DANOS Post Install Configuration
- Use curl/postman to make Netconf configuration changes to the vRouter to configure the ports - this demonstrates post instantiation configuration through SDNC
- Update the DACE collector ip addres and port in the vRouter if not provided on your VNF by cloud-init (also works for PNFs)
- Use horizon to remove the "Port Security" on the ports for the 3 virtual machines in case your version of openstack defaults to activate port security.
- DANOS Post Install Configuration
- Test that the VNF works with ONAP
- Closed Loop telemetry from DANOS to DCAE/VES can be confirmed indicting both correct traffic flow from the packet generator to the traffic sink through the DANOS vRouter but also that VES telemetry is properly going to DCAE and being processed as events.
Related articles