This commit is contained in:
2021-04-06 00:45:28 +02:00
commit 17fabc368e
836 changed files with 3042963 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
/*
* Title: CloudSimSDN
* Description: SDN extension for CloudSim
* Licence: GPL - http://www.gnu.org/copyleft/gpl.html
*
* Copyright (c) 2015, The University of Melbourne, Australia
*/
package org.cloudbus.cloudsim.sdn;
import org.cloudbus.cloudsim.Cloudlet;
import org.cloudbus.cloudsim.UtilizationModelFull;
import org.cloudbus.cloudsim.Vm;
import org.cloudbus.cloudsim.core.CloudSimTags;
/**
* Middlebox represent specific VM that acts as a middle box
*
* @author Jungmin Son
* @author Rodrigo N. Calheiros
* @since CloudSimSDN 1.0
*/
public abstract class Middlebox {
Vm vm;
int mipsPerOp;
SDNHost host;
static int id=0;
public Middlebox(Vm vm, int misPerOperation){
this.vm=vm;
this.mipsPerOp=misPerOperation;
}
public abstract void editRequest(Request req);
public int getId(){
return vm.getId();
}
public Vm getVm(){
return vm;
}
public void setHost(SDNHost host){
this.host=host;
}
public void submitRequest(Request req){
Cloudlet cl = new Cloudlet(id++,mipsPerOp,1,0,0,new UtilizationModelFull(),new UtilizationModelFull(),new UtilizationModelFull());
cl.setVmId(vm.getId());
host.schedule(host.getHost().getDatacenter().getId(), 0.0, CloudSimTags.CLOUDLET_SUBMIT, cl);
}
}