return openmano
-def rift2openmano_vnfd(rift_vnfd):
+def rift2openmano_vnfd(rift_vnfd, rift_nsd):
openmano_vnf = {"vnf":{}}
vnf = openmano_vnf["vnf"]
raise ValueError("Internal connection point reference %s not found" % cp_ref_id)
- def rift2openmano_if_type(rift_type):
+ def rift2openmano_if_type(ext_if):
+
+ cp_ref_name = ext_if.vnfd_connection_point_ref
+ for vld in rift_nsd.vlds:
+
+ # if it is an explicit mgmt_network then check if the given
+ # cp_ref is a part of it
+ if not vld.mgmt_network:
+ continue
+
+ for vld_cp in vld.vnfd_connection_point_ref:
+ if vld_cp.vnfd_connection_point_ref == cp_ref_name:
+ return "mgmt"
+
+
+ rift_type = ext_if.virtual_interface.type_yang
+ # Retaining it for backward compatibility!
if rift_type == "OM_MGMT":
return "mgmt"
elif rift_type == "VIRTIO" or rift_type == "E1000":
vdu, ext_if = find_vdu_and_ext_if_by_cp_ref(cp.name)
connection = {
"name": cp.name,
- "type": rift2openmano_if_type(ext_if.virtual_interface.type_yang),
+ "type": rift2openmano_if_type(ext_if),
"VNFC": vdu.name,
"local_iface_name": ext_if.name,
"description": "%s iface on VDU %s" % (ext_if.name, vdu.name),
}
# Add the specific VDU connection points
- for int_cp_ref in vld.internal_connection_point_ref:
- vdu, int_if = find_vdu_and_int_if_by_cp_ref(int_cp_ref)
+ for int_cp in vld.internal_connection_point:
+ vdu, int_if = find_vdu_and_int_if_by_cp_ref(int_cp.id_ref)
connection["elements"].append({
"VNFC": vdu.name,
"local_iface_name": int_if.name,
vnfc["image name"] = vdu.image
if vdu.has_field("image_checksum"):
vnfc["image checksum"] = vdu.image_checksum
-
- if vdu.guest_epa.has_field("numa_node_policy"):
+ dedicated_int = False
+ for intf in list(vdu.internal_interface) + list(vdu.external_interface):
+ if intf.virtual_interface.type_yang in ["SR_IOV", "PCI_PASSTHROUGH"]:
+ dedicated_int = True
+ if vdu.guest_epa.has_field("numa_node_policy") or dedicated_int:
vnfc["numas"] = [{
"memory": max(int(vdu.vm_flavor.memory_mb/1024), 1),
"interfaces":[],
if vdu.host_epa.has_field("om_cpu_feature"):
vnfc["processor"]["features"] = []
for feature in vdu.host_epa.om_cpu_feature:
- vnfc["processor"]["features"].append(feature)
+ vnfc["processor"]["features"].append(feature.feature)
vnf["VNFC"].append(vnfc)
elif int_if.virtual_interface.type_yang in ["OM_MGMT"]:
vnfc["bridge-ifaces"].append(intf)
- elif int_if.virtual_interface.type_yang == "SR-IOV":
+ elif int_if.virtual_interface.type_yang == "SR_IOV":
intf["bandwidth"] = "10 Gbps"
- intf["dedicated"] = "yes:sriov"
+ intf["dedicated"] = "no"
vnfc["numas"][0]["interfaces"].append(intf)
elif int_if.virtual_interface.type_yang == "PCI_PASSTHROUGH":