1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 64 unchanged lines hidden (view full) --- 73SimpleNetwork::~SimpleNetwork() 74{ 75 deletePointers(m_switches); 76 deletePointers(m_int_link_buffers); 77} 78 79// From a switch to an endpoint node 80void |
81SimpleNetwork::makeExtOutLink(SwitchID src, NodeID dest, BasicLink* link, |
82 const NetDest& routing_table_entry) 83{ 84 assert(dest < m_nodes); 85 assert(src < m_switches.size()); 86 assert(m_switches[src] != NULL); 87 88 SimpleExtLink *simple_link = safe_cast<SimpleExtLink*>(link); 89 90 m_switches[src]->addOutPort(m_fromNetQueues[dest], routing_table_entry, 91 simple_link->m_latency, 92 simple_link->m_bw_multiplier); 93} 94 95// From an endpoint node to a switch 96void |
97SimpleNetwork::makeExtInLink(NodeID src, SwitchID dest, BasicLink* link, |
98 const NetDest& routing_table_entry) 99{ 100 assert(src < m_nodes); 101 m_switches[dest]->addInPort(m_toNetQueues[src]); 102} 103 104// From a switch to a switch 105void 106SimpleNetwork::makeInternalLink(SwitchID src, SwitchID dest, BasicLink* link, |
107 const NetDest& routing_table_entry) 108{ 109 // Create a set of new MessageBuffers 110 std::vector<MessageBuffer*> queues(m_virtual_networks); 111 112 for (int i = 0; i < m_virtual_networks; i++) { 113 // allocate a buffer 114 assert(m_num_connected_buffers < m_int_link_buffers.size()); --- 93 unchanged lines hidden --- |