flowsim.core
Interface Link

All Known Implementing Classes:
LinkImpl

public abstract interface Link

A link object simulates the physical behaviour of a real-link. It does have a total bandwidth, which can be used by flows which circulate on it. The unused bandwidth is called 'residual bandwidth'. A link is in flowsim like a bucket which can be filled up-to it's capacity. The delay (for the added packet, maximal and minimal) can be also asked from the link object.

The packet queuing implementation could be simulated in flowsim by modelling the delay with a function of the residual bandwidth.

See Also:
FixedDelayLink

Method Summary
 boolean add_flow(int fbw)
          Add a flow on the link.
 void attach_monitor(LinkMonitor lmo)
          Attach a LinkMonitor on the link.
 int get_bw()
          Get the total bandwidth of the link.
 int get_delay()
          Get the (probable) delay which would have a flow sent now.
 Node get_from()
          Get the source node.
 int get_max_delay()
          Get the maximal delay that a flow can take on this link.
 int get_min_delay()
          Get the minimal delay that a flow can take on this link.
 LinkMonitor get_monitor()
          Get attached monitor.
 int get_rbw()
          Get the residual bandwidth of the link.
 Node get_to()
          Get the destination node.
 void remove_flow(int fbw)
          Remove a flow from the link.
 

Method Detail

get_from

public Node get_from()
Get the source node.

get_to

public Node get_to()
Get the destination node.

get_bw

public int get_bw()
Get the total bandwidth of the link.

get_rbw

public int get_rbw()
Get the residual bandwidth of the link.

get_delay

public int get_delay()
Get the (probable) delay which would have a flow sent now.

get_min_delay

public int get_min_delay()
Get the minimal delay that a flow can take on this link.

get_max_delay

public int get_max_delay()
Get the maximal delay that a flow can take on this link.

add_flow

public boolean add_flow(int fbw)
Add a flow on the link.

remove_flow

public void remove_flow(int fbw)
Remove a flow from the link.

attach_monitor

public void attach_monitor(LinkMonitor lmo)
Attach a LinkMonitor on the link.

get_monitor

public LinkMonitor get_monitor()
Get attached monitor.