def evaluation(self): totalRelibility = 0 for SFCId in sfcListSingleton.getSFCList(): SFCInstance = SFC(SFCId, sfcListSingleton.dict_maxDelay[SFCId], sfcListSingleton.dict_minReliability[SFCId], sfcListSingleton.dict_VNFList[SFCId], sfcListSingleton.dict_createdtime[SFCId]) totalRelibility += SFCInstance.get_SFC_relialibility( SFCInstance.getVNFList()) print("totalRelibility = %f" % totalRelibility) costInstance = MigrationCostCaculation() cost = costInstance.getCostOfMigratingVNFsOnOneSFC( self.migrated_SFC_id, self.SFCDelayBeforMigration, self.SFCRequestedResourceBefore, self.needMigratedVNFList, self.destinationPhysicalNodeList) print("cost = %f" % cost) return 100 + totalRelibility - cost
def getDelayIncreationOfSFC(self, migrated_SFC_id, SFCDelayBeforMigration): SFCInstance = SFC( migrated_SFC_id, sfcListSingleton.dict_maxDelay[migrated_SFC_id], sfcListSingleton.dict_minReliability[migrated_SFC_id], sfcListSingleton.dict_VNFList[migrated_SFC_id], sfcListSingleton.dict_createdtime[migrated_SFC_id]) VNFList = SFCInstance.getVNFList() print(VNFList) nodeidlist = [] i = 0 for vnfid in VNFList: if vnfid == 15: VNFinstance = VNF( vnfid, vnfListSingelton.dict_VNFListType[vnfid], vnfListSingelton.dict_VNFRequestCPU[vnfid], vnfListSingelton.dict_VNFRequestMemory[vnfid], vnfListSingelton.dict_locatedVMID[vnfid], vnfListSingelton.dict_locatedSFCIDList[vnfid], vnfListSingelton.dict_numbersOnSFCList[vnfid], vnfListSingelton.dict_VNFReliability[vnfid]) vmid = VNFinstance.get_VM_id(vnfid) VMinstance = VM( vmid, vmListSingelton.dict_VMRequestCPU[vmid], vmListSingelton.dict_VMRequestMemory[vmid], vmListSingelton.dict_VMLocatedPhysicalnode[vmid], vmListSingelton.dict_VMReliability[vmid]) nodeid = VMinstance.get_physicalNode_id(vmid) print("before node id = %d" % nodeid) VMinstance.setPhysicalNodeId(16) SFCDelayAfterMigration = SFCInstance.get_SFC_delay(VNFList) print("SFCDelayAfterMigration = %f" % SFCDelayAfterMigration) print("SFCDelayBeforMigration = %f" % SFCDelayBeforMigration) print(SFCDelayAfterMigration - SFCDelayBeforMigration) return SFCDelayAfterMigration - SFCDelayBeforMigration