12 #ifndef SSTMAC_BACKENDS_NATIVE_COMPONENTS_NIC_NETWORKINTERFACE_H_INCLUDED 13 #define SSTMAC_BACKENDS_NATIVE_COMPONENTS_NIC_NETWORKINTERFACE_H_INCLUDED 33 #define nic_debug(...) \ 34 debug_printf(sprockit::dbg::nic, "NIC on node %d: %s", \ 35 int(addr()), sprockit::printf(__VA_ARGS__).c_str()) 50 #if SSTMAC_INTEGRATED_SST_CORE 52 void handle_event(SST::Event* ev);
stat_global_int * global_bytes_sent_
A class describing an event.
void internode_send(network_message *payload)
Perform the set of operations standard to all NICs.
void recv_message(message *msg)
The NIC can either receive an entire message (bypass the byte-transfer layer) or it can receive packe...
stat_spyplot * spy_bytes_
void intranode_send(network_message *payload)
Perform the set of operations standard to all NICs for transfers within a node.
interconnect * interconn_
DeclareFactory1InitParam(nic, sprockit::factory_type *)
nic(sprockit::factory_type *interconn)
void record_message(network_message *msg)
void mtl_handle(event *ev)
virtual void set_node(node *nd)
Set an event handler wrapper encapsulation the parent computational unit.
The main interface for something that can respond to an event (sst_message).
bool negligible_size(int bytes) const
void send_to_node(network_message *netmsg)
void send_to_interconn(network_message *netmsg)
A basic container for time (subject to future transplant).
static void delete_statics()
Delete all static variables associated with this class.
event_handler * mtl_handler() const
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
stat_histogram * hist_msg_size_
virtual std::string to_string() const =0
virtual void init_factory_params(sprockit::sim_parameters *params)
Initialize all member variables from the parameters object.
A networkinterface is a delegate between a node and a server module.
virtual void handle(event *ev)=0
this stat_collector class keeps a spy plot
virtual void finalize_init()
A final initialization function called for the object after all parameters have been read...
The interface for something that can schedule messages.
void ack_send(network_message *payload)
For messages requiring an NIC ACK to signal that the message has injected into the interconnect...
virtual void set_event_parent(event_scheduler *m)
Set the eventmanager for this scheduler.
virtual double injection_bandwidth() const =0
virtual void do_send(network_message *payload)=0
Start the message sending and inject it into the network This performs all model-specific work...
event_handler * mtl_handler_
stat_local_int * local_bytes_sent_
virtual timestamp injection_latency() const =0
stat_spyplot * spy_num_messages_