12 #ifndef SSTMAC_HARDWARE_NETWORK_ROUTING_ROUTER_H_INCLUDED 13 #define SSTMAC_HARDWARE_NETWORK_ROUTING_ROUTER_H_INCLUDED 31 #define rter_debug(...) \ 32 debug_printf(sprockit::dbg::router, "Router on switch %d: %s", int(my_addr_), sprockit::printf(__VA_ARGS__).c_str()) 55 struct structured_path {
66 structured_path() : path_counter(0) {}
73 int ret = path_counter;
74 path_counter = (path_counter + 1) % redundancy;
88 init_factory_params(sprockit::sim_parameters* params);
99 route(packet* pkt) = 0;
113 minimal_route_to_node(
115 structured_routable::path& path);
128 minimal_route_to_switch(
130 structured_routable::path& path);
133 init_stats(event_manager* m){}
147 productive_paths_to_node(
149 structured_routable::path_set& paths);
158 productive_paths_to_switch(
160 structured_routable::path_set& paths) = 0;
200 str_to_algo(
const std::string& str);
209 bool hop_count_reporting_;
211 int hop_count_delta_;
215 typedef std::map<routing::algorithm_t, int> algo_to_vc_map;
216 algo_to_vc_map num_vc_lookup_;
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
#define DeclareDebugSlot(name)
Macro used for declaring a debug slot in a header file.