33a34
> from MessageBuffer import MessageBuffer
41a43,46
> int_link_buffers = VectorParam.MessageBuffer("Buffers for int_links")
> # int_links do not recycle buffers, so this parameter is not used.
> # TODO: Move recycle_latency out of MessageBuffers and into controllers
> recycle_latency = Param.Cycles(0, "")
42a48,78
> def setup_buffers(self):
> # Note that all SimpleNetwork MessageBuffers are currently ordered
> network_buffers = []
> for link in self.int_links:
> # The network needs number_of_virtual_networks buffers per
> # int_link port
> for i in xrange(self.number_of_virtual_networks):
> network_buffers.append(MessageBuffer(ordered = True))
> network_buffers.append(MessageBuffer(ordered = True))
> self.int_link_buffers = network_buffers
>
> # Also add buffers for all router-link connections
> for router in self.routers:
> router_buffers = []
> # Add message buffers to routers for each internal link connection
> for link in self.int_links:
> if link.node_a == router:
> for i in xrange(self.number_of_virtual_networks):
> router_buffers.append(MessageBuffer(ordered = True))
> if link.node_b == router:
> for i in xrange(self.number_of_virtual_networks):
> router_buffers.append(MessageBuffer(ordered = True))
>
> # Add message buffers to routers for each external link connection
> for link in self.ext_links:
> # Routers can only be int_nodes on ext_links
> if link.int_node in self.routers:
> for i in xrange(self.number_of_virtual_networks):
> router_buffers.append(MessageBuffer(ordered = True))
> router.port_buffers = router_buffers
>
47a84,87
> port_buffers = VectorParam.MessageBuffer("Port buffers")
> # Ports do not recycle buffers, so this parameter is not used.
> # TODO: Move recycle_latency out of MessageBuffers and into controllers
> recycle_latency = Param.Cycles(0, "")