SST/macro
|
A networkinterface is a delegate between a node and a server module. More...
#include <simple_nic.h>
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_handler * | mtl_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_scheduler * | parent () 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_ |
node * | parent_ |
Protected Attributes inherited from sstmac::hw::failable | |
bool | failed_ |
Protected Attributes inherited from sstmac::event_subscheduler | |
event_scheduler * | parent_ |
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 |
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.
|
inline |
Definition at line 32 of file simple_nic.h.
|
inlinevirtual |
Goodbye.
Definition at line 36 of file simple_nic.h.
References connect(), finalize_init(), handle(), and init_factory_params().
|
virtual |
connect
src_outport | The outgoing port at the source |
dst_inport | The incoming port at the destination |
ty | Whether we are configuring the input or output direction |
mod | The device currently being connected |
cfg | A struct with various special configuration options |
Implements sstmac::hw::connectable.
Referenced by ~simple_nic().
|
protectedvirtual |
Start the message sending and inject it into the network.
payload | The network message to send |
Implements sstmac::hw::nic.
Referenced by injection_bandwidth().
|
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().
|
virtual |
Implements sstmac::hw::nic.
Referenced by ~simple_nic().
|
virtual |
Initialize all member variables from the parameters object.
params |
Reimplemented from sstmac::hw::nic.
Reimplemented in sstmac::hw::null_nic.
Referenced by ~simple_nic().
|
inlinevirtual |
Implements sstmac::hw::nic.
Definition at line 65 of file simple_nic.h.
References do_send(), and inj_bw_inverse_.
|
inlinevirtual |
Implements sstmac::hw::nic.
Definition at line 60 of file simple_nic.h.
References inj_lat_.
|
private |
|
private |
|
inlinevirtual |
Implements sstmac::hw::nic.
Reimplemented in sstmac::hw::null_nic.
Definition at line 55 of file simple_nic.h.
|
protected |
Definition at line 78 of file simple_nic.h.
Referenced by injection_bandwidth().
|
protected |
Definition at line 80 of file simple_nic.h.
Referenced by injection_latency().
|
protected |
Definition at line 82 of file simple_nic.h.