Interface Switch

    • 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
    • Field Detail

      • NULL

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

      • 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