Appendix: Compatibility with Opensource MANO

VNF vendors should be aware of differences between the OpenMANO and RIFT resource orchestratorsResource Orchestrator (RO) is responsible for the creation and placement of compute and networking resources. It is also responsible for interfacing with the SDN controller. The RIFT.ware Launchpad is a resource orchestrator. (RO), as you might need to modify descriptors when switching between the two ROs.

Implicit versus explicit management network

The primary difference is the RIFT RO implicitly creates interfaces on the configured OpenStack cloud account management network, even if the descriptor does not include interfaces.

OpenMANO RO: "mgmt" external-connection

VNFD

In OpenMANO, management networks are explicitly referenced in the VNFD interfaces as "mgmt" external-connections. All interfaces in the VDU are explicitly called out.

vnf:
    name:        dataplaneVNF1
    description: "Example of a dataplane VNF consisting of a single VM for data plane workloads with high I/O performance requirements: 14 HW threads, 16 GB hugepages and 4 10G interfaces"
    external-connections:
    -   name:              mgmt
        type:              mgmt       # "mgmt"(autoconnect to management net)
        VNFC:              dataplaneVNF1-VM
        local_iface_name:  eth0
        description:       Management interface for general use

When a VNF has a "mgmt" external connection point, OpenMANO automatically associates the IP address from that connection point to the VNF. The VNF IP address is returned in the payload of the NS status response (http://{host}:{port}/openmano/{tenant}/instances/{instance}).

NSD

The "mgmt" network is optionally specified in the NSD. OpenMANO allows the network to be excluded from the NSD if a datacenter network exists called "mgmt" in the VIM. In this scenario, all VNFs in the network service that have "mgmt" external connections are implicitly bound to that datacenter network. However, if there is a network in the NSD that refers to the "mgmt" external connection point types, then these connection points are bound to that network. This allows the same set of descriptors to run on different VIMs just by creating a network with "mgmt" as the name in the VIM.

Specifying "mgmt" connection point types in RIFT descriptor

To accommodate OpenMANO semantics, RIFT.ware provides a specific virtual interface type called OM-MGMT. Because this interface type is understood only by the OpenMANO RO plugin, having an OM-MGMT interface type when you instantiate the network service through the RIFT RO leads to an error.

RIFT RO

The RIFT resource orchestrator implicitly adds an interface to each VDU in the management network. This management network is a property of the VIM and is configured at cloud account configuration time (mgmt-network field in the Virtual Link Descriptor (nsd:vld).

Making management VLD explicit in RIFT.ware descriptors

RIFT.ware provides a backward-compatible way of introducing an explicit management network into the RIFT NSDs. This function maintains the existing RIFT descriptors, while allowing the creation of a descriptor that behaves identically on both RIFT and OpenMANO ROs.

Explicit management VLD

The management VLD should be a specially designated VLD in the NSD with the purpose of binding to whatever management network is described by the VIM. Currently, this VLD is configured in the VIM (mgmt-network field) and is implicitly attached to all VNFs.

The following is the RIFT.ware management VLD model

list vld {
    ...
	choice init-params {
        description "Extra parameters for VLD instantiation";
        case vim-network-ref {
          leaf vim-network-name {
            description
                "Name of network in VIM account. This is used to indicate
                   pre-provisioned network name in cloud account.";
            type string;
          }
        }
        case vim-network-profile {
          leaf ip-profile-ref {
            description "Named reference to IP-profile object";
            type string;
          }
        }
        case mgmt-network {
          leaf mgmt-network {
             description "Flag indicating whether this network is a VIM management network"; 
             type boolean;
             default false;
          }
        }
      }
    }