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

    Fields 
    Modifier and Type Field Description
    static Switch NULL
    An attribute that implements the Null Object Design Pattern for Switch objects.
  • 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 java.lang.Comparable

    compareTo

    Methods inherited from interface org.cloudbus.cloudsim.core.Identifiable

    getId

    Methods inherited from interface org.cloudbus.cloudsim.core.Nameable

    getName
  • Field Details

    • NULL

      static final Switch NULL
      An attribute that implements the Null Object Design Pattern for Switch objects.
  • Method Details

    • downlinkTransferDelay

      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.
      Parameters:
      simultaneousPackets - number of packets to be simultaneously sent
      Returns:
      the expected transmission time in seconds
    • uplinkTransferDelay

      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.
      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

      void setDatacenter​(NetworkDatacenter datacenter)
      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