SST/macro
|
Network interface compatible with sending packet trains. More...
#include <packet_flow_nic.h>
Public Member Functions | |
packet_flow_nic (sprockit::factory_type *interconn) | |
std::string | to_string () const |
virtual void | init_factory_params (sprockit::sim_parameters *params) |
Initialize all member variables from the parameters object. More... | |
virtual | ~packet_flow_nic () throw () |
void | handle (event *ev) |
void | notify (int vn, message *msg) |
virtual void | connect (int src_outport, int dst_inport, connection_type_t ty, connectable *mod, config *cfg) |
connect More... | |
virtual void | set_event_parent (event_scheduler *m) |
Set the eventmanager for this scheduler. More... | |
timestamp | injection_latency () const |
double | injection_bandwidth () const |
int | initial_credits () 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... | |
virtual void | finalize_init () |
A final initialization function called for the object after all parameters have been read. 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... | |
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 () |
Public Member Functions inherited from sstmac::hw::packetizer_callback | |
virtual | ~packetizer_callback () |
Protected Member Functions | |
virtual void | do_send (network_message *payload) |
Start the message sending and inject it into the network This performs all model-specific work. 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 | |
packetizer * | packetizer_ |
timestamp | inj_lat_ |
int | injection_credits_ |
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_ |
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 |
Network interface compatible with sending packet trains.
Definition at line 18 of file packet_flow_nic.h.
|
inline |
Definition at line 25 of file packet_flow_nic.h.
|
virtual |
Referenced by to_string().
|
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 notify(), and sstmac::hw::packet_flow_netlink::to_string().
|
protectedvirtual |
Start the message sending and inject it into the network This performs all model-specific work.
payload | The network message to send |
Implements sstmac::hw::nic.
Referenced by initial_credits().
|
virtual |
Implements sstmac::hw::nic.
Referenced by to_string(), and sstmac::hw::packet_flow_netlink::to_string().
|
virtual |
Initialize all member variables from the parameters object.
params |
Reimplemented from sstmac::hw::nic.
Referenced by to_string(), and sstmac::hw::packet_flow_netlink::to_string().
|
inline |
Definition at line 73 of file packet_flow_nic.h.
References do_send(), and injection_credits_.
|
virtual |
Implements sstmac::hw::nic.
Referenced by injection_latency().
|
inlinevirtual |
Implements sstmac::hw::nic.
Definition at line 65 of file packet_flow_nic.h.
References inj_lat_, and injection_bandwidth().
|
inlinevirtual |
Implements sstmac::hw::packetizer_callback.
Definition at line 49 of file packet_flow_nic.h.
References connect(), sstmac::hw::nic::recv_message(), and set_event_parent().
|
virtual |
Set the eventmanager for this scheduler.
Unfortunately, this always has to be called after an event_scheduler is constructed.
m | the simulation eventmanager |
Reimplemented from sstmac::hw::nic.
Referenced by notify(), and sstmac::hw::packet_flow_netlink::to_string().
|
inlinevirtual |
Implements sstmac::hw::nic.
Definition at line 33 of file packet_flow_nic.h.
References sstmac::hw::nic::addr(), handle(), init_factory_params(), sstmac::event_subscheduler::parent(), sprockit::printf(), and ~packet_flow_nic().
|
protected |
Definition at line 83 of file packet_flow_nic.h.
Referenced by injection_latency().
|
protected |
Definition at line 84 of file packet_flow_nic.h.
Referenced by initial_credits().
|
protected |
Definition at line 82 of file packet_flow_nic.h.