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

A networkinterface is a delegate between a node and a server module. More...

#include <simple_nic.h>

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

Public Member Functions

 simple_nic (sprockit::factory_type *interconn)
 
virtual ~simple_nic ()
 Goodbye. More...
 
virtual void init_factory_params (sprockit::sim_parameters *params)
 Initialize all member variables from the parameters object. More...
 
virtual void finalize_init ()
 A final initialization function called for the object after all parameters have been read. More...
 
void handle (event *ev)
 
virtual void connect (int src_outport, int dst_inport, connection_type_t ty, connectable *mod, config *cfg)
 connect More...
 
virtual std::string to_string () const
 
timestamp injection_latency () const
 
double injection_bandwidth () const
 
- Public Member Functions inherited from sstmac::hw::nic
virtual ~nic ()
 
node_id addr () const
 
virtual void set_node (node *nd)
 Set an event handler wrapper encapsulation the parent computational unit. More...
 
void mtl_handle (event *ev)
 
event_handlermtl_handler () const
 
void internode_send (network_message *payload)
 Perform the set of operations standard to all NICs. More...
 
void intranode_send (network_message *payload)
 Perform the set of operations standard to all NICs for transfers within a node. More...
 
virtual void set_event_parent (event_scheduler *m)
 Set the eventmanager for this scheduler. More...
 
- Public Member Functions inherited from sprockit::factory_type
virtual void init_factory_params (sim_parameters *params)
 
- Public Member Functions inherited from sstmac::hw::failable
bool failed () const
 
void fail ()
 
- 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

virtual void do_send (network_message *msg)
 Start the message sending and inject it into the network. More...
 
- Protected Member Functions inherited from sstmac::hw::nic
 nic (sprockit::factory_type *interconn)
 
void send_to_node (network_message *netmsg)
 
bool negligible_size (int bytes) const
 
void recv_message (message *msg)
 The NIC can either receive an entire message (bypass the byte-transfer layer) or it can receive packets. More...
 
- Protected Member Functions inherited from sstmac::hw::failable
 failable ()
 
- 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_inverse_
 
timestamp inj_lat_
 
timestamp next_free_
 
- Protected Attributes inherited from sstmac::hw::nic
node_id my_addr_
 
int negligible_size_
 
interconnect * interconn_
 
nodeparent_
 
- Protected Attributes inherited from sstmac::hw::failable
bool failed_
 
- Protected Attributes inherited from sstmac::event_subscheduler
event_schedulerparent_
 

Private Member Functions

void send_to_injector (timestamp arrival, network_message *netmsg)
 
void send_to_node (timestamp arrival, network_message *netmsg)
 

Additional Inherited Members

- Public Types inherited from sstmac::hw::connectable
enum  config_type_t {
  RedundantConnection =0, WeightedConnection =1, FixedBandwidthConnection =2, FixedConnection =3,
  BasicConnection =4
}
 
enum  connection_type_t { output, input }
 
- Static Public Member Functions inherited from sstmac::hw::nic
static void delete_statics ()
 Delete all static variables associated with this class. More...
 
- Static Public Member Functions inherited from sstmac::hw::connectable
static const char * str (connection_type_t ty)
 
- Static Public Attributes inherited from sstmac::event_handler
static const int null_lpid = -1
 
static const int null_threadid = -1
 
- Static Public Attributes inherited from sstmac::hw::connectable
static const int any_port = -1
 

Detailed Description

A networkinterface is a delegate between a node and a server module.

This object helps ornament network operations with information about the process (ppid) involved.

Definition at line 28 of file simple_nic.h.

Constructor & Destructor Documentation

sstmac::hw::simple_nic::simple_nic ( sprockit::factory_type interconn)
inline

Definition at line 32 of file simple_nic.h.

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

Goodbye.

Definition at line 36 of file simple_nic.h.

References connect(), finalize_init(), handle(), and init_factory_params().

Here is the call graph for this function:

Member Function Documentation

virtual void sstmac::hw::simple_nic::connect ( int  src_outport,
int  dst_inport,
connection_type_t  ty,
connectable mod,
config cfg 
)
virtual

connect

Parameters
src_outportThe outgoing port at the source
dst_inportThe incoming port at the destination
tyWhether we are configuring the input or output direction
modThe device currently being connected
cfgA struct with various special configuration options

Implements sstmac::hw::connectable.

Referenced by ~simple_nic().

virtual void sstmac::hw::simple_nic::do_send ( network_message msg)
protectedvirtual

Start the message sending and inject it into the network.

Parameters
payloadThe network message to send

Implements sstmac::hw::nic.

Referenced by injection_bandwidth().

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

A final initialization function called for the object after all parameters have been read.

Guarantees initialization of all subclass variables.

Reimplemented from sstmac::hw::nic.

Referenced by ~simple_nic().

void sstmac::hw::simple_nic::handle ( event ev)
virtual

Implements sstmac::hw::nic.

Referenced by ~simple_nic().

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

Initialize all member variables from the parameters object.

Parameters
params

Reimplemented from sstmac::hw::nic.

Reimplemented in sstmac::hw::null_nic.

Referenced by ~simple_nic().

double sstmac::hw::simple_nic::injection_bandwidth ( ) const
inlinevirtual

Implements sstmac::hw::nic.

Definition at line 65 of file simple_nic.h.

References do_send(), and inj_bw_inverse_.

Here is the call graph for this function:

timestamp sstmac::hw::simple_nic::injection_latency ( ) const
inlinevirtual
Returns
The injection latency for moving a packet from the NIC to the first network router (or netlink block, etc)

Implements sstmac::hw::nic.

Definition at line 60 of file simple_nic.h.

References inj_lat_.

void sstmac::hw::simple_nic::send_to_injector ( timestamp  arrival,
network_message netmsg 
)
private
void sstmac::hw::simple_nic::send_to_node ( timestamp  arrival,
network_message netmsg 
)
private
virtual std::string sstmac::hw::simple_nic::to_string ( ) const
inlinevirtual

Implements sstmac::hw::nic.

Reimplemented in sstmac::hw::null_nic.

Definition at line 55 of file simple_nic.h.

Member Data Documentation

double sstmac::hw::simple_nic::inj_bw_inverse_
protected

Definition at line 78 of file simple_nic.h.

Referenced by injection_bandwidth().

timestamp sstmac::hw::simple_nic::inj_lat_
protected

Definition at line 80 of file simple_nic.h.

Referenced by injection_latency().

timestamp sstmac::hw::simple_nic::next_free_
protected

Definition at line 82 of file simple_nic.h.


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