SST/macro
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sstmac::hw::packet_flow_bandwidth_arbitrator Class Referenceabstract

#include <packet_flow_arbitrator.h>

Inheritance diagram for sstmac::hw::packet_flow_bandwidth_arbitrator:
Inheritance graph
Collaboration diagram for sstmac::hw::packet_flow_bandwidth_arbitrator:
Collaboration graph

Public Member Functions

virtual void arbitrate (packet_stats_st &st)=0
 Assign bandwidth to payload. More...
 
virtual std::string to_string () const =0
 
virtual ~packet_flow_bandwidth_arbitrator ()
 
virtual void set_outgoing_bw (double out_bw)
 
double outgoing_bw () const
 
virtual void init_noise_model (noise_model *noise)
 
virtual void partition (noise_model *noise, int num_intervals)
 partition Partition the arbitrator time windows into a series of randomly sized chunks More...
 
virtual packet_flow_bandwidth_arbitratorclone (double bw) const =0
 
virtual int bytes_sending (timestamp now) const =0
 
- Public Member Functions inherited from sprockit::factory_type
virtual void init_factory_params (sim_parameters *params)
 
virtual void finalize_init ()
 

Static Public Member Functions

static timestamp credit_delay (double max_in_bw, double out_bw, long bytes)
 

Protected Member Functions

 packet_flow_bandwidth_arbitrator ()
 

Protected Attributes

double out_bw_
 
double inv_out_bw_
 

Detailed Description

Definition at line 14 of file packet_flow_arbitrator.h.

Constructor & Destructor Documentation

virtual sstmac::hw::packet_flow_bandwidth_arbitrator::~packet_flow_bandwidth_arbitrator ( )
inlinevirtual

Definition at line 29 of file packet_flow_arbitrator.h.

sstmac::hw::packet_flow_bandwidth_arbitrator::packet_flow_bandwidth_arbitrator ( )
protected

Referenced by credit_delay().

Member Function Documentation

virtual void sstmac::hw::packet_flow_bandwidth_arbitrator::arbitrate ( packet_stats_st st)
pure virtual

Assign bandwidth to payload.

Returns
The time at which the packet can be forwarded to the next switch/node/etc.

Implemented in sstmac::hw::packet_flow_cut_through_arbitrator, sstmac::hw::packet_flow_simple_arbitrator, and sstmac::hw::packet_flow_null_arbitrator.

virtual int sstmac::hw::packet_flow_bandwidth_arbitrator::bytes_sending ( timestamp  now) const
pure virtual
virtual packet_flow_bandwidth_arbitrator* sstmac::hw::packet_flow_bandwidth_arbitrator::clone ( double  bw) const
pure virtual
static timestamp sstmac::hw::packet_flow_bandwidth_arbitrator::credit_delay ( double  max_in_bw,
double  out_bw,
long  bytes 
)
inlinestatic

Definition at line 42 of file packet_flow_arbitrator.h.

References bytes_sending(), clone(), init_noise_model(), packet_flow_bandwidth_arbitrator(), and partition().

Here is the call graph for this function:

virtual void sstmac::hw::packet_flow_bandwidth_arbitrator::init_noise_model ( noise_model noise)
virtual
double sstmac::hw::packet_flow_bandwidth_arbitrator::outgoing_bw ( ) const
inline

Definition at line 37 of file packet_flow_arbitrator.h.

References out_bw_.

virtual void sstmac::hw::packet_flow_bandwidth_arbitrator::partition ( noise_model noise,
int  num_intervals 
)
virtual

partition Partition the arbitrator time windows into a series of randomly sized chunks

Parameters
noiseThe noise model that randomly selects time values
num_intervals

Reimplemented in sstmac::hw::packet_flow_cut_through_arbitrator.

Referenced by credit_delay(), and sstmac::hw::packet_flow_cut_through_arbitrator::to_string().

virtual void sstmac::hw::packet_flow_bandwidth_arbitrator::set_outgoing_bw ( double  out_bw)
inlinevirtual
virtual std::string sstmac::hw::packet_flow_bandwidth_arbitrator::to_string ( ) const
pure virtual

Member Data Documentation

double sstmac::hw::packet_flow_bandwidth_arbitrator::inv_out_bw_
protected

Definition at line 71 of file packet_flow_arbitrator.h.

Referenced by set_outgoing_bw().

double sstmac::hw::packet_flow_bandwidth_arbitrator::out_bw_
protected

Definition at line 70 of file packet_flow_arbitrator.h.

Referenced by outgoing_bw(), and set_outgoing_bw().


The documentation for this class was generated from the following file: