40 #ifndef __MEM_RUBY_NETWORK_NETWORK_HH__
41 #define __MEM_RUBY_NETWORK_NETWORK_HH__
47 #include "mem/protocol/LinkDirection.hh"
48 #include "mem/protocol/MessageSizeType.hh"
52 #include "params/RubyNetwork.hh"
81 int network_num, std::string vnet_type);
84 const NetDest& routing_table_entry) = 0;
86 const NetDest& routing_table_entry) = 0;
88 const NetDest& routing_table_entry,
93 virtual void print(std::ostream& out)
const = 0;
101 {
fatal(
"Functional read not implemented.\n"); }
103 {
fatal(
"Functional write not implemented.\n"); }
150 #endif // __MEM_RUBY_NETWORK_NETWORK_HH__
Network & operator=(const Network &obj)
virtual void makeExtInLink(NodeID src, SwitchID dest, BasicLink *link, const NetDest &routing_table_entry)=0
std::vector< std::vector< MessageBuffer * > > m_toNetQueues
StatsCallback(Network *_ctr)
void setToNetQueue(NodeID id, bool ordered, int netNumber, std::string vnet_type, MessageBuffer *b)
static uint32_t getNumberOfVirtualNetworks()
Callback class used for collating statistics from all the controller of this type.
virtual bool functionalRead(Packet *pkt)
virtual void collateStats()=0
std::vector< bool > m_ordered
virtual void makeExtOutLink(SwitchID src, NodeID dest, BasicLink *link, const NetDest &routing_table_entry)=0
std::vector< std::string > m_vnet_type_names
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
virtual void checkNetworkAllocation(NodeID id, bool ordered, int network_num, std::string vnet_type)
Topology * m_topology_ptr
static uint32_t m_control_msg_size
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
std::string PortDirection
ClockedObject declaration and implementation.
const Params * params() const
virtual void setFromNetQueue(NodeID id, bool ordered, int netNumber, std::string vnet_type, MessageBuffer *b)
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
static uint32_t MessageSizeType_to_int(MessageSizeType size_type)
static uint32_t m_data_msg_size
virtual void makeInternalLink(SwitchID src, SwitchID dest, BasicLink *link, const NetDest &routing_table_entry, PortDirection src_outport, PortDirection dst_inport)=0
Declaration of the Packet class.
virtual uint32_t functionalWrite(Packet *pkt)
const SimObjectParams * _params
Cached copy of the object parameters.
virtual void print(std::ostream &out) const =0
static uint32_t m_virtual_networks
std::ostream & operator<<(std::ostream &out, const Network &obj)
std::vector< std::vector< MessageBuffer * > > m_fromNetQueues
void process()
virtual process function that is invoked when the callback queue is executed.