// NODE L1 CACHE
// From this node's L1 cache TO the network
// a local L1 -> this L2 bank, currently ordered with directory forwarded requests
- MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false";
+ MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false", vnet_type="request";
// a local L1 -> this L2 bank
- MessageBuffer responseFromL1Cache, network="To", virtual_network="1", ordered="false";
- MessageBuffer unblockFromL1Cache, network="To", virtual_network="2", ordered="false";
+ MessageBuffer responseFromL1Cache, network="To", virtual_network="1", ordered="false", vnet_type="response";
+ MessageBuffer unblockFromL1Cache, network="To", virtual_network="2", ordered="false", vnet_type="unblock";
// To this node's L1 cache FROM the network
// a L2 bank -> this L1
- MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false";
+ MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false", vnet_type="request";
// a L2 bank -> this L1
- MessageBuffer responseToL1Cache, network="From", virtual_network="1", ordered="false";
+ MessageBuffer responseToL1Cache, network="From", virtual_network="1", ordered="false", vnet_type="response";
// STATES
state_declaration(State, desc="Cache states", default="L1Cache_State_I") {
{
// L2 BANK QUEUES
// From local bank of L2 cache TO the network
- MessageBuffer DirRequestFromL2Cache, network="To", virtual_network="0", ordered="false"; // this L2 bank -> Memory
- MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false"; // this L2 bank -> a local L1
- MessageBuffer responseFromL2Cache, network="To", virtual_network="1", ordered="false"; // this L2 bank -> a local L1 || Memory
+ MessageBuffer DirRequestFromL2Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // this L2 bank -> Memory
+ MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // this L2 bank -> a local L1
+ MessageBuffer responseFromL2Cache, network="To", virtual_network="1", ordered="false", vnet_type="response"; // this L2 bank -> a local L1 || Memory
// FROM the network to this local bank of L2 cache
- MessageBuffer unblockToL2Cache, network="From", virtual_network="2", ordered="false"; // a local L1 || Memory -> this L2 bank
- MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false"; // a local L1 -> this L2 bank
- MessageBuffer responseToL2Cache, network="From", virtual_network="1", ordered="false"; // a local L1 || Memory -> this L2 bank
-// MessageBuffer unblockToL2Cache, network="From", virtual_network="4", ordered="false"; // a local L1 || Memory -> this L2 bank
+ MessageBuffer unblockToL2Cache, network="From", virtual_network="2", ordered="false", vnet_type="unblock"; // a local L1 || Memory -> this L2 bank
+ MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false", vnet_type="request"; // a local L1 -> this L2 bank
+ MessageBuffer responseToL2Cache, network="From", virtual_network="1", ordered="false", vnet_type="response"; // a local L1 || Memory -> this L2 bank
+// MessageBuffer unblockToL2Cache, network="From", virtual_network="4", ordered="false", vnet_type="unblock"; // a local L1 || Memory -> this L2 bank
// STATES
state_declaration(State, desc="L2 Cache states", default="L2Cache_State_NP") {
int directory_latency = 6
{
- MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false";
- MessageBuffer responseToDir, network="From", virtual_network="1", ordered="false";
+ MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false", vnet_type="request";
+ MessageBuffer responseToDir, network="From", virtual_network="1", ordered="false", vnet_type="response";
- MessageBuffer requestFromDir, network="To", virtual_network="0", ordered="false";
- MessageBuffer responseFromDir, network="To", virtual_network="1", ordered="false";
+ MessageBuffer requestFromDir, network="To", virtual_network="0", ordered="false", vnet_type="request";
+ MessageBuffer responseFromDir, network="To", virtual_network="1", ordered="false", vnet_type="response";
// STATES
state_declaration(State, desc="Directory states", default="Directory_State_I") {
int request_latency = 6
{
- MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", no_vector="true";
- MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", no_vector="true";
+ MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", vnet_type="response", no_vector="true";
+ MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", vnet_type="request", no_vector="true";
state_declaration(State, desc="DMA states", default="DMA_State_READY") {
READY, AccessPermission:Invalid, desc="Ready to accept a new request";
// NODE L1 CACHE
// From this node's L1 cache TO the network
// a local L1 -> this L2 bank, currently ordered with directory forwarded requests
- MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false";
+ MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false", vnet_type="request";
// a local L1 -> this L2 bank
- MessageBuffer responseFromL1Cache, network="To", virtual_network="2", ordered="false";
-// MessageBuffer writebackFromL1Cache, network="To", virtual_network="3", ordered="false";
+ MessageBuffer responseFromL1Cache, network="To", virtual_network="2", ordered="false", vnet_type="response";
+// MessageBuffer writebackFromL1Cache, network="To", virtual_network="3", ordered="false", vnet_type="writeback";
// To this node's L1 cache FROM the network
// a L2 bank -> this L1
- MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false";
+ MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false", vnet_type="request";
// a L2 bank -> this L1
- MessageBuffer responseToL1Cache, network="From", virtual_network="2", ordered="false";
+ MessageBuffer responseToL1Cache, network="From", virtual_network="2", ordered="false", vnet_type="response";
// L2 BANK QUEUES
// From local bank of L2 cache TO the network
- MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false"; // this L2 bank -> a local L1
- MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="1", ordered="false"; // this L2 bank -> mod-directory
- MessageBuffer responseFromL2Cache, network="To", virtual_network="2", ordered="false"; // this L2 bank -> a local L1 || mod-directory
+ MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // this L2 bank -> a local L1
+ MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="1", ordered="false", vnet_type="request"; // this L2 bank -> mod-directory
+ MessageBuffer responseFromL2Cache, network="To", virtual_network="2", ordered="false", vnet_type="response"; // this L2 bank -> a local L1 || mod-directory
// FROM the network to this local bank of L2 cache
- MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false"; // a local L1 -> this L2 bank, Lets try this???
- MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="1", ordered="false"; // mod-directory -> this L2 bank
- MessageBuffer responseToL2Cache, network="From", virtual_network="2", ordered="false"; // a local L1 || mod-directory -> this L2 bank
-// MessageBuffer L1WritebackToL2Cache, network="From", virtual_network="3", ordered="false";
+ MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false", vnet_type="request"; // a local L1 -> this L2 bank, Lets try this???
+ MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="1", ordered="false", vnet_type="request"; // mod-directory -> this L2 bank
+ MessageBuffer responseToL2Cache, network="From", virtual_network="2", ordered="false", vnet_type="response"; // a local L1 || mod-directory -> this L2 bank
+// MessageBuffer L1WritebackToL2Cache, network="From", virtual_network="3", ordered="false", vnet_type="writeback";
// STATES
state_declaration(State, desc="L2 Cache states", default="L2Cache_State_I") {
{
// ** IN QUEUES **
- MessageBuffer foo1, network="From", virtual_network="0", ordered="false"; // a mod-L2 bank -> this Dir
- MessageBuffer requestToDir, network="From", virtual_network="1", ordered="false"; // a mod-L2 bank -> this Dir
- MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false"; // a mod-L2 bank -> this Dir
+ MessageBuffer foo1, network="From", virtual_network="0", ordered="false", vnet_type="foo"; // a mod-L2 bank -> this Dir
+ MessageBuffer requestToDir, network="From", virtual_network="1", ordered="false", vnet_type="request"; // a mod-L2 bank -> this Dir
+ MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false", vnet_type="response"; // a mod-L2 bank -> this Dir
- MessageBuffer goo1, network="To", virtual_network="0", ordered="false";
- MessageBuffer forwardFromDir, network="To", virtual_network="1", ordered="false";
- MessageBuffer responseFromDir, network="To", virtual_network="2", ordered="false"; // Dir -> mod-L2 bank
+ MessageBuffer goo1, network="To", virtual_network="0", ordered="false", vnet_type="goo";
+ MessageBuffer forwardFromDir, network="To", virtual_network="1", ordered="false", vnet_type="forward";
+ MessageBuffer responseFromDir, network="To", virtual_network="2", ordered="false", vnet_type="response"; // Dir -> mod-L2 bank
// STATES
int response_latency = 14
{
- MessageBuffer goo1, network="From", virtual_network="0", ordered="false";
- MessageBuffer goo2, network="From", virtual_network="1", ordered="false";
- MessageBuffer responseFromDir, network="From", virtual_network="2", ordered="false";
+ MessageBuffer goo1, network="From", virtual_network="0", ordered="false", vnet_type="goo";
+ MessageBuffer goo2, network="From", virtual_network="1", ordered="false", vnet_type="goo";
+ MessageBuffer responseFromDir, network="From", virtual_network="2", ordered="false", vnet_type="response";
- MessageBuffer foo1, network="To", virtual_network="0", ordered="false";
- MessageBuffer reqToDir, network="To", virtual_network="1", ordered="false";
- MessageBuffer respToDir, network="To", virtual_network="2", ordered="false";
+ MessageBuffer foo1, network="To", virtual_network="0", ordered="false", vnet_type="foo";
+ MessageBuffer reqToDir, network="To", virtual_network="1", ordered="false", vnet_type="request";
+ MessageBuffer respToDir, network="To", virtual_network="2", ordered="false", vnet_type="dmaresponse";
state_declaration(State, desc="DMA states", default="DMA_State_READY") {
READY, AccessPermission:Invalid, desc="Ready to accept a new request";
// From this node's L1 cache TO the network
// a local L1 -> this L2 bank
- MessageBuffer responseFromL1Cache, network="To", virtual_network="4", ordered="false";
- MessageBuffer persistentFromL1Cache, network="To", virtual_network="3", ordered="true";
+ MessageBuffer responseFromL1Cache, network="To", virtual_network="4", ordered="false", vnet_type="response";
+ MessageBuffer persistentFromL1Cache, network="To", virtual_network="3", ordered="true", vnet_type="persistent";
// a local L1 -> this L2 bank, currently ordered with directory forwarded requests
- MessageBuffer requestFromL1Cache, network="To", virtual_network="1", ordered="false";
+ MessageBuffer requestFromL1Cache, network="To", virtual_network="1", ordered="false", vnet_type="request";
// To this node's L1 cache FROM the network
// a L2 bank -> this L1
- MessageBuffer responseToL1Cache, network="From", virtual_network="4", ordered="false";
- MessageBuffer persistentToL1Cache, network="From", virtual_network="3", ordered="true";
+ MessageBuffer responseToL1Cache, network="From", virtual_network="4", ordered="false", vnet_type="response";
+ MessageBuffer persistentToL1Cache, network="From", virtual_network="3", ordered="true", vnet_type="persistent";
// a L2 bank -> this L1
- MessageBuffer requestToL1Cache, network="From", virtual_network="1", ordered="false";
+ MessageBuffer requestToL1Cache, network="From", virtual_network="1", ordered="false", vnet_type="request";
// STATES
state_declaration(State, desc="Cache states", default="L1Cache_State_I") {
// From local bank of L2 cache TO the network
// this L2 bank -> a local L1 || mod-directory
- MessageBuffer responseFromL2Cache, network="To", virtual_network="4", ordered="false";
+ MessageBuffer responseFromL2Cache, network="To", virtual_network="4", ordered="false", vnet_type="response";
// this L2 bank -> mod-directory
- MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="2", ordered="false";
+ MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="2", ordered="false", vnet_type="request";
// this L2 bank -> a local L1
- MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="1", ordered="false";
+ MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="1", ordered="false", vnet_type="request";
// FROM the network to this local bank of L2 cache
// a local L1 || mod-directory -> this L2 bank
- MessageBuffer responseToL2Cache, network="From", virtual_network="4", ordered="false";
- MessageBuffer persistentToL2Cache, network="From", virtual_network="3", ordered="true";
+ MessageBuffer responseToL2Cache, network="From", virtual_network="4", ordered="false", vnet_type="response";
+ MessageBuffer persistentToL2Cache, network="From", virtual_network="3", ordered="true", vnet_type="persistent";
// mod-directory -> this L2 bank
- MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="2", ordered="false";
+ MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="2", ordered="false", vnet_type="request";
// a local L1 -> this L2 bank
- MessageBuffer L1RequestToL2Cache, network="From", virtual_network="1", ordered="false";
+ MessageBuffer L1RequestToL2Cache, network="From", virtual_network="1", ordered="false", vnet_type="request";
// STATES
state_declaration(State, desc="L2 Cache states", default="L2Cache_State_I") {
int fixed_timeout_latency = 100
{
- MessageBuffer dmaResponseFromDir, network="To", virtual_network="5", ordered="true";
- MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false";
- MessageBuffer persistentFromDir, network="To", virtual_network="3", ordered="true";
- MessageBuffer requestFromDir, network="To", virtual_network="1", ordered="false";
-
- MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false";
- MessageBuffer persistentToDir, network="From", virtual_network="3", ordered="true";
- MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false";
- MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true";
+ MessageBuffer dmaResponseFromDir, network="To", virtual_network="5", ordered="true", vnet_type="response";
+ MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false", vnet_type="response";
+ MessageBuffer persistentFromDir, network="To", virtual_network="3", ordered="true", vnet_type="persistent";
+ MessageBuffer requestFromDir, network="To", virtual_network="1", ordered="false", vnet_type="request";
+
+ MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false", vnet_type="response";
+ MessageBuffer persistentToDir, network="From", virtual_network="3", ordered="true", vnet_type="persistent";
+ MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false", vnet_type="request";
+ MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true", vnet_type="request";
// STATES
state_declaration(State, desc="Directory states", default="Directory_State_O") {
int request_latency = 6
{
- MessageBuffer responseFromDir, network="From", virtual_network="5", ordered="true", no_vector="true";
- MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", no_vector="true";
+ MessageBuffer responseFromDir, network="From", virtual_network="5", ordered="true", vnet_type="response", no_vector="true";
+ MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", vnet_type="request", no_vector="true";
state_declaration(State, desc="DMA states", default="DMA_State_READY") {
READY, AccessPermission:Invalid, desc="Ready to accept a new request";
{
// NETWORK BUFFERS
- MessageBuffer requestFromCache, network="To", virtual_network="2", ordered="false";
- MessageBuffer responseFromCache, network="To", virtual_network="4", ordered="false";
- MessageBuffer unblockFromCache, network="To", virtual_network="5", ordered="false";
+ MessageBuffer requestFromCache, network="To", virtual_network="2", ordered="false", vnet_type="request";
+ MessageBuffer responseFromCache, network="To", virtual_network="4", ordered="false", vnet_type="response";
+ MessageBuffer unblockFromCache, network="To", virtual_network="5", ordered="false", vnet_type="unblock";
- MessageBuffer forwardToCache, network="From", virtual_network="3", ordered="false";
- MessageBuffer responseToCache, network="From", virtual_network="4", ordered="false";
+ MessageBuffer forwardToCache, network="From", virtual_network="3", ordered="false", vnet_type="forward";
+ MessageBuffer responseToCache, network="From", virtual_network="4", ordered="false", vnet_type="response";
// STATES
bool full_bit_dir_enabled = false
{
- MessageBuffer forwardFromDir, network="To", virtual_network="3", ordered="false";
- MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false";
+ MessageBuffer forwardFromDir, network="To", virtual_network="3", ordered="false", vnet_type="forward";
+ MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false", vnet_type="response";
//
// For a finite buffered network, note that the DMA response network only
// works at this relatively lower numbered (lower priority) virtual network
// because the trigger queue decouples cache responses from DMA responses.
//
- MessageBuffer dmaResponseFromDir, network="To", virtual_network="1", ordered="true";
+ MessageBuffer dmaResponseFromDir, network="To", virtual_network="1", ordered="true", vnet_type="response";
- MessageBuffer unblockToDir, network="From", virtual_network="5", ordered="false";
- MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false";
- MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false", recycle_latency="1";
- MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true";
+ MessageBuffer unblockToDir, network="From", virtual_network="5", ordered="false", vnet_type="unblock";
+ MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false", vnet_type="response";
+ MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false", vnet_type="request", recycle_latency="1";
+ MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true", vnet_type="request";
// STATES
state_declaration(State, desc="Directory states", default="Directory_State_E") {
int request_latency = 6
{
- MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", no_vector="true";
- MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", no_vector="true";
+ MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", vnet_type="response", no_vector="true";
+ MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", vnet_type="request", no_vector="true";
state_declaration(State,
desc="DMA states",
{
// NETWORK BUFFERS
- MessageBuffer requestFromCache, network="To", virtual_network="0", ordered="false";
- MessageBuffer forwardFromCache, network="To", virtual_network="1", ordered="false";
- MessageBuffer responseFromCache, network="To", virtual_network="2", ordered="false";
+ MessageBuffer requestFromCache, network="To", virtual_network="0", ordered="false", vnet_type = "request";
+ MessageBuffer forwardFromCache, network="To", virtual_network="1", ordered="false", vnet_type = "forward";
+ MessageBuffer responseFromCache, network="To", virtual_network="2", ordered="false", vnet_type = "response";
// STATES
state_declaration(State, desc="Cache states", default="L1Cache_State_I") {
:
{
- MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false";
- MessageBuffer forwardToDir, network="From", virtual_network="1", ordered="false";
- MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false";
+ MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false", vnet_type = "request";
+ MessageBuffer forwardToDir, network="From", virtual_network="1", ordered="false", vnet_type = "forward";
+ MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false", vnet_type = "response";
// STATES
state_declaration(State, desc="Directory states", default="Directory_State_I") {
// returns the queue requested for the given component
virtual MessageBuffer* getToNetQueue(NodeID id, bool ordered,
- int netNumber) = 0;
+ int netNumber, std::string vnet_type) = 0;
virtual MessageBuffer* getFromNetQueue(NodeID id, bool ordered,
- int netNumber) = 0;
+ int netNumber, std::string vnet_type) = 0;
virtual const std::vector<Throttle*>* getThrottles(NodeID id) const;
virtual int getNumNodes() {return 1;}
}
MessageBuffer*
-GarnetNetwork_d::getToNetQueue(NodeID id, bool ordered, int network_num)
+GarnetNetwork_d::getToNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type)
{
+ // TODO:
+ //if (vnet_type == "response")
+ // mark vnet as data vnet and use buffers_per_data_vc
+
checkNetworkAllocation(id, ordered, network_num);
return m_toNetQueues[id][network_num];
}
MessageBuffer*
-GarnetNetwork_d::getFromNetQueue(NodeID id, bool ordered, int network_num)
+GarnetNetwork_d::getFromNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type)
{
checkNetworkAllocation(id, ordered, network_num);
return m_fromNetQueues[id][network_num];
int getBuffersPerCtrlVC() {return m_buffers_per_ctrl_vc; }
// returns the queue requested for the given component
- MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num);
- MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num);
+ MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type);
+ MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type);
void clearStats();
void printStats(std::ostream& out) const;
}
MessageBuffer*
-GarnetNetwork::getToNetQueue(NodeID id, bool ordered, int network_num)
+GarnetNetwork::getToNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type)
{
checkNetworkAllocation(id, ordered, network_num);
return m_toNetQueues[id][network_num];
}
MessageBuffer*
-GarnetNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num)
+GarnetNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type)
{
checkNetworkAllocation(id, ordered, network_num);
return m_fromNetQueues[id][network_num];
int getNumPipeStages() {return m_number_of_pipe_stages; }
// returns the queue requested for the given component
- MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num);
- MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num);
+ MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type);
+ MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type);
void clearStats();
void printStats(std::ostream& out) const;
}
MessageBuffer*
-SimpleNetwork::getToNetQueue(NodeID id, bool ordered, int network_num)
+SimpleNetwork::getToNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type)
{
checkNetworkAllocation(id, ordered, network_num);
return m_toNetQueues[id][network_num];
}
MessageBuffer*
-SimpleNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num)
+SimpleNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num,
+ std::string vnet_type)
{
checkNetworkAllocation(id, ordered, network_num);
return m_fromNetQueues[id][network_num];
void reset();
// returns the queue requested for the given component
- MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num);
- MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num);
+ MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num, std::string vnet_type);
+ MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num, std::string vnet_type);
virtual const std::vector<Throttle*>* getThrottles(NodeID id) const;
bool isVNetOrdered(int vnet) { return m_ordered[vnet]; }
network = var["network"]
ordered = var["ordered"]
vnet = var["virtual_network"]
+ vnet_type = var["vnet_type"]
assert var.machine is not None
code('''
machine_type = string_to_MachineType("${{var.machine.ident}}");
base = MachineType_base_number(machine_type);
-$vid = m_net_ptr->get${network}NetQueue(m_version + base, $ordered, $vnet);
+$vid = m_net_ptr->get${network}NetQueue(m_version + base, $ordered, $vnet, "$vnet_type");
''')
code('assert($vid != NULL);')