Interface Switch
- All Superinterfaces:
java.lang.Cloneable
,java.lang.Comparable<SimEntity>
,Identifiable
,Nameable
,java.lang.Runnable
,SimEntity
- All Known Implementing Classes:
AbstractSwitch
,AggregateSwitch
,EdgeSwitch
,RootSwitch
public interface Switch extends SimEntity
Represents a Network Switch.
- Author:
- Manoel Campos da Silva Filho
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.cloudbus.cloudsim.core.SimEntity
SimEntity.State
-
Field Summary
-
Method Summary
Modifier and Type Method Description double
downlinkTransferDelay(HostPacket packet, int simultaneousPackets)
Considering a list of packets to be sent simultaneously, computes the expected time to transfer each packet through the downlink, assuming that the bandwidth is shared equally between all packets.NetworkDatacenter
getDatacenter()
Gets the Datacenter where the switch is connected to.double
getDownlinkBandwidth()
Gets the bandwidth this Switch has to communicate with Switches in the lower layer.java.util.List<Switch>
getDownlinkSwitches()
Gets the list of Switches in the lower layer that this Switch is connected to.int
getLevel()
Gets the level (layer) of the Switch in the network topology, depending if it is a root switch (layer 0), aggregate switch (layer 1) or edge switch (layer 2)int
getPorts()
Gets the number of ports the switch has.double
getSwitchingDelay()
Gets the latency time the switch spends to process a received packet.double
getUplinkBandwidth()
Gets the bandwidth this Switch has to communicate with Switches in the upper layer.java.util.List<Switch>
getUplinkSwitches()
Gets the list of Switches in the upper layer that this Switch is connected to.void
setDatacenter(NetworkDatacenter datacenter)
Sets the Datacenter where the switch is connected to.void
setDownlinkBandwidth(double downlinkBandwidth)
Sets the bandwidth this Switch has to communicate with Switches in the lower layer.void
setPorts(int ports)
Sets the number of ports the switch has.void
setSwitchingDelay(double switchingDelay)
Sets the latency time the switch spends to process a received packet.void
setUplinkBandwidth(double uplinkBandwidth)
Sets the bandwidth this Switch has to communicate with Switches in the upper layer.double
uplinkTransferDelay(HostPacket packet, int simultaneousPackets)
Considering a list of packets to be sent simultaneously, computes the expected time to transfer each packet through the uplink, assuming that the bandwidth is shared equally between all packets.Methods inherited from interface org.cloudbus.cloudsim.core.SimEntity
getSimulation, getState, isAlive, isFinished, isStarted, processEvent, run, schedule, schedule, schedule, schedule, schedule, schedule, schedule, setName, setSimulation, setState, shutdownEntity, start
-
Field Details
-
Method Details
-
downlinkTransferDelay
Considering a list of packets to be sent simultaneously, computes the expected time to transfer each packet through the downlink, assuming that the bandwidth is shared equally between all packets.- Parameters:
simultaneousPackets
- number of packets to be simultaneously sent- Returns:
- the expected transmission time in seconds
-
uplinkTransferDelay
Considering a list of packets to be sent simultaneously, computes the expected time to transfer each packet through the uplink, assuming that the bandwidth is shared equally between all packets.- Parameters:
simultaneousPackets
- number of packets to be simultaneously sent- Returns:
- the expected transmission time in seconds
-
getUplinkBandwidth
double getUplinkBandwidth()Gets the bandwidth this Switch has to communicate with Switches in the upper layer.- Returns:
- Bandwidth of uplink (in Megabits/s).
- See Also:
getUplinkSwitches()
-
setUplinkBandwidth
void setUplinkBandwidth(double uplinkBandwidth)Sets the bandwidth this Switch has to communicate with Switches in the upper layer.- Parameters:
uplinkBandwidth
- uplink bandwidth to set (in Megabits/s).- See Also:
getUplinkSwitches()
-
getDownlinkBandwidth
double getDownlinkBandwidth()Gets the bandwidth this Switch has to communicate with Switches in the lower layer.- Returns:
- Bandwidth of downlink (in Megabits/s).
- See Also:
getDownlinkSwitches()
-
setDownlinkBandwidth
void setDownlinkBandwidth(double downlinkBandwidth)Sets the bandwidth this Switch has to communicate with Switches in the lower layer.- Parameters:
downlinkBandwidth
- downlink bandwidth to set (in Megabits/s).- See Also:
getDownlinkSwitches()
-
getPorts
int getPorts()Gets the number of ports the switch has.- Returns:
-
setPorts
void setPorts(int ports)Sets the number of ports the switch has.- Parameters:
ports
- the number of ports to set
-
getSwitchingDelay
double getSwitchingDelay()Gets the latency time the switch spends to process a received packet. This time is considered constant no matter how many packets the switch have to process (in seconds).- Returns:
- the switching delay
-
setSwitchingDelay
void setSwitchingDelay(double switchingDelay)Sets the latency time the switch spends to process a received packet. This time is considered constant no matter how many packets the switch have to process (in seconds).- Parameters:
switchingDelay
- the switching delay to set
-
getUplinkSwitches
java.util.List<Switch> getUplinkSwitches()Gets the list of Switches in the upper layer that this Switch is connected to.- Returns:
-
getDownlinkSwitches
java.util.List<Switch> getDownlinkSwitches()Gets the list of Switches in the lower layer that this Switch is connected to.- Returns:
-
getDatacenter
NetworkDatacenter getDatacenter()Gets the Datacenter where the switch is connected to.- Returns:
-
setDatacenter
Sets the Datacenter where the switch is connected to.- Parameters:
datacenter
- the Datacenter to set
-
getLevel
int getLevel()Gets the level (layer) of the Switch in the network topology, depending if it is a root switch (layer 0), aggregate switch (layer 1) or edge switch (layer 2)- Returns:
- the switch network level
-