1 #ifndef PACKETFLOW_ARBITRATOR_H 2 #define PACKETFLOW_ARBITRATOR_H 43 double credit_delta = 1.0/out_bw - 1.0/max_in_bw;
44 credit_delta = std::max(0., credit_delta);
61 clone(
double bw)
const = 0;
93 return "packet_flow null arbitrator";
120 return "packet_flow simple arbitrator";
161 return "cut through arbitrator";
172 void clean_up(ticks_t now);
190 void truncate_after(ticks_t delta_t);
192 void split(ticks_t delta_t);
208 #endif // PACKETFLOW_ARBITRATOR_H
virtual void set_outgoing_bw(double out_bw)
virtual int bytes_sending(timestamp now) const =0
packet_flow_bandwidth_arbitrator * clone(double bw) const
virtual std::string to_string() const =0
double bw_tick_to_sec_conversion_
Convert from bytes/sec to bytes/tick.
virtual packet_flow_bandwidth_arbitrator * clone(double bw) const
static timestamp credit_delay(double max_in_bw, double out_bw, long bytes)
std::string to_string() const
packet_flow_bandwidth_arbitrator()
double bw_sec_to_tick_conversion_
double outgoing_bw() const
A basic container for time (subject to future transplant).
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
virtual void arbitrate(packet_stats_st &st)=0
Assign bandwidth to payload.
virtual void init_noise_model(noise_model *noise)
virtual ~packet_flow_bandwidth_arbitrator()
virtual void partition(noise_model *noise, int num_intervals)
partition Partition the arbitrator time windows into a series of randomly sized chunks ...
virtual packet_flow_bandwidth_arbitrator * clone(double bw) const
std::string to_string() const
std::string to_string() const
virtual packet_flow_bandwidth_arbitrator * clone(double bw) const =0