SST/macro
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sstmac::hw::packet_flow_nic_packetizer Class Reference

#include <packet_flow_packetizer.h>

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

Public Member Functions

 packet_flow_nic_packetizer ()
 
std::string to_string () const
 
virtual void init_factory_params (sprockit::sim_parameters *params)
 
virtual ~packet_flow_nic_packetizer ()
 
void setNotify (event_handler *handler)
 
bool spaceToSend (int vn, int num_bits) const
 We assume the injection buffer has infinite occupancy. More...
 
void inject (int vn, long bytes, long byte_offset, message *payload)
 
void set_output (int port, connectable *output, int credits)
 Set up the injection/ejection links to the switch the NIC is connected to. More...
 
void set_input (int port, connectable *input)
 
virtual void set_event_parent (event_scheduler *m)
 Set the eventmanager for this scheduler. More...
 
virtual void finalize_init ()
 
void set_acker (event_handler *handler)
 
double injection_bandwidth () const
 
- Public Member Functions inherited from sstmac::hw::packet_flow_packetizer
void handle (event *ev)
 
- Public Member Functions inherited from sstmac::hw::packetizer
virtual ~packetizer ()
 
void start (int vn, message *payload)
 
void packetArrived (int vn, packet *pkt)
 
void sendWhatYouCan (int vn)
 
void setNotify (packetizer_callback *handler)
 
int packetSize () const
 
- Public Member Functions inherited from sprockit::factory_type
virtual void init_factory_params (sim_parameters *params)
 
- Public Member Functions inherited from sstmac::event_subscheduler
 event_subscheduler ()
 
timestamp now () const
 get the current time More...
 
void schedule (timestamp t, event_handler *handler, event *ev)
 Add an event to the event queue, where msg will get delivered to handler at time t. More...
 
void schedule (timestamp t, event_queue_entry *ev)
 
void schedule_now (event_queue_entry *ev)
 
void schedule_now (event_handler *handler, event *ev)
 
void schedule_delay (timestamp delay, event_handler *handler, event *ev)
 
void schedule_delay (timestamp delay, event_queue_entry *ev)
 
void send_self_event (timestamp arrival, event *ev)
 
void send_delayed_self_event (timestamp delay, event *ev)
 
void send_now_self_event (event *ev)
 
void send_self_event_queue (timestamp arrival, event_queue_entry *ev)
 
void send_delayed_self_event_queue (timestamp delay, event_queue_entry *ev)
 
void send_now_self_event_queue (event_queue_entry *ev)
 
event_schedulerparent () const
 
- Public Member Functions inherited from sstmac::event_handler
virtual ~event_handler ()
 
event_loc_id event_location () const
 
virtual bool ipc_handler () const
 Whether an event handler is a "fake" handler that represents logical process boundary. More...
 
int thread_id () const
 
virtual void deadlock_check (event *ev)
 
virtual void deadlock_check ()
 

Protected Member Functions

void recv_packet_common (packet_flow_payload *pkt)
 
virtual void recv_credit (packet_flow_credit *credit)
 
- Protected Member Functions inherited from sstmac::hw::packetizer
 packetizer ()
 
void bytesArrived (int vn, uint64_t unique_id, int bytes, message *parent)
 
- Protected Member Functions inherited from sstmac::event_handler
 event_handler ()
 
void init_loc_id (event_loc_id id)
 
void init_thread_id (int id)
 

Protected Attributes

double inj_bw_
 
double ej_bw_
 
int buffer_size_
 
packet_flow_injection_bufferinj_buffer_
 
packet_flow_eject_bufferej_buffer_
 
recv_cq completion_queue_
 
node_id my_addr_
 
packet_sent_statsstat_collector_
 
packet_sent_statsbuf_stats_
 
packet_allocatorpkt_allocator_
 
- Protected Attributes inherited from sstmac::event_subscheduler
event_schedulerparent_
 

Additional Inherited Members

- Static Public Attributes inherited from sstmac::event_handler
static const int null_lpid = -1
 
static const int null_threadid = -1
 

Detailed Description

Definition at line 32 of file packet_flow_packetizer.h.

Constructor & Destructor Documentation

sstmac::hw::packet_flow_nic_packetizer::packet_flow_nic_packetizer ( )
virtual sstmac::hw::packet_flow_nic_packetizer::~packet_flow_nic_packetizer ( )
virtual

Member Function Documentation

virtual void sstmac::hw::packet_flow_nic_packetizer::finalize_init ( )
virtual

Reimplemented from sprockit::factory_type.

virtual void sstmac::hw::packet_flow_nic_packetizer::init_factory_params ( sprockit::sim_parameters *  params)
virtual

Reimplemented from sstmac::hw::packetizer.

void sstmac::hw::packet_flow_nic_packetizer::inject ( int  vn,
long  bytes,
long  byte_offset,
message payload 
)
virtual
double sstmac::hw::packet_flow_nic_packetizer::injection_bandwidth ( ) const
inline

Definition at line 79 of file packet_flow_packetizer.h.

References sstmac::hw::packet_flow_packetizer::recv_credit().

Here is the call graph for this function:

virtual void sstmac::hw::packet_flow_nic_packetizer::recv_credit ( packet_flow_credit *  credit)
protectedvirtual
void sstmac::hw::packet_flow_nic_packetizer::recv_packet_common ( packet_flow_payload *  pkt)
protected
void sstmac::hw::packet_flow_nic_packetizer::set_acker ( event_handler handler)
virtual void sstmac::hw::packet_flow_nic_packetizer::set_event_parent ( event_scheduler m)
virtual

Set the eventmanager for this scheduler.

Unfortunately, this always has to be called after an event_scheduler is constructed.

Parameters
mthe simulation eventmanager

Reimplemented from sstmac::event_subscheduler.

void sstmac::hw::packet_flow_nic_packetizer::set_input ( int  port,
connectable input 
)
void sstmac::hw::packet_flow_nic_packetizer::set_output ( int  port,
connectable output,
int  credits 
)

Set up the injection/ejection links to the switch the NIC is connected to.

Parameters
swThe switch that injects/ejects
void sstmac::hw::packet_flow_nic_packetizer::setNotify ( event_handler handler)
bool sstmac::hw::packet_flow_nic_packetizer::spaceToSend ( int  vn,
int  num_bits 
) const
virtual

We assume the injection buffer has infinite occupancy.

Implements sstmac::hw::packetizer.

std::string sstmac::hw::packet_flow_nic_packetizer::to_string ( ) const
inlinevirtual

Member Data Documentation

packet_sent_stats* sstmac::hw::packet_flow_nic_packetizer::buf_stats_
protected

Definition at line 102 of file packet_flow_packetizer.h.

int sstmac::hw::packet_flow_nic_packetizer::buffer_size_
protected

Definition at line 93 of file packet_flow_packetizer.h.

recv_cq sstmac::hw::packet_flow_nic_packetizer::completion_queue_
protected

Definition at line 97 of file packet_flow_packetizer.h.

packet_flow_eject_buffer* sstmac::hw::packet_flow_nic_packetizer::ej_buffer_
protected

Definition at line 95 of file packet_flow_packetizer.h.

double sstmac::hw::packet_flow_nic_packetizer::ej_bw_
protected

Definition at line 92 of file packet_flow_packetizer.h.

packet_flow_injection_buffer* sstmac::hw::packet_flow_nic_packetizer::inj_buffer_
protected

Definition at line 94 of file packet_flow_packetizer.h.

double sstmac::hw::packet_flow_nic_packetizer::inj_bw_
protected

Definition at line 91 of file packet_flow_packetizer.h.

node_id sstmac::hw::packet_flow_nic_packetizer::my_addr_
protected

Definition at line 99 of file packet_flow_packetizer.h.

packet_allocator* sstmac::hw::packet_flow_nic_packetizer::pkt_allocator_
protected

Definition at line 103 of file packet_flow_packetizer.h.

packet_sent_stats* sstmac::hw::packet_flow_nic_packetizer::stat_collector_
protected

Definition at line 101 of file packet_flow_packetizer.h.


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