Interface Switch

All Superinterfaces:
Comparable<SimEntity>, Identifiable, Nameable, 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
  • 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:
    • 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:
    • 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:
    • 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:
    • 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 (in seconds)
    • 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

      List<Switch> getUplinkSwitches()
      Gets the list of Switches in the upper layer that this Switch is connected to.
      Returns:
    • getDownlinkSwitches

      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 on whether it is a RootSwitch (layer 0), AggregateSwitch (layer 1) or EdgeSwitch (layer 2).
      Returns:
      the switch network level