- surf_network_resource->common_public->states.ready_action_set =
- xbt_swag_new(xbt_swag_offset(action, state_hookup));
- surf_network_resource->common_public->states.running_action_set =
- xbt_swag_new(xbt_swag_offset(action, state_hookup));
- surf_network_resource->common_public->states.failed_action_set =
- xbt_swag_new(xbt_swag_offset(action, state_hookup));
- surf_network_resource->common_public->states.done_action_set =
- xbt_swag_new(xbt_swag_offset(action, state_hookup));
+ global_routing->finalize();
+
+ lmm_system_free(network_maxmin_system);
+ network_maxmin_system = NULL;
+}
+
+static void surf_network_model_init_internal(void)
+{
+ surf_network_model = surf_model_init();
+
+ surf_network_model->name = "network";
+ surf_network_model->action_unref = net_action_unref;
+ surf_network_model->action_cancel = net_action_cancel;
+ surf_network_model->action_recycle = net_action_recycle;
+ surf_network_model->get_remains = net_action_get_remains;
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ surf_network_model->get_latency_limited = net_get_link_latency_limited;
+#endif
+
+ surf_network_model->model_private->resource_used = net_resource_used;
+ surf_network_model->model_private->share_resources = net_share_resources;
+ surf_network_model->model_private->update_actions_state =
+ net_update_actions_state;
+ surf_network_model->model_private->update_resource_state =
+ net_update_resource_state;
+ surf_network_model->model_private->finalize = net_finalize;
+
+ surf_network_model->suspend = net_action_suspend;
+ surf_network_model->resume = net_action_resume;
+ surf_network_model->is_suspended = net_action_is_suspended;
+ surf_network_model->set_max_duration = net_action_set_max_duration;
+#ifdef HAVE_TRACING
+ surf_network_model->set_category = net_action_set_category;
+#endif
+
+ surf_network_model->extension.network.communicate = net_communicate;
+ surf_network_model->extension.network.get_route = net_get_route;
+ surf_network_model->extension.network.get_link_bandwidth =
+ net_get_link_bandwidth;
+ surf_network_model->extension.network.get_link_latency =
+ net_get_link_latency;
+ surf_network_model->extension.network.link_shared = net_link_shared;
+ surf_network_model->extension.network.add_traces = net_add_traces;
+ surf_network_model->extension.network.create_resource =
+ net_create_resource;
+
+ if (!network_maxmin_system)
+ network_maxmin_system = lmm_system_new();
+
+ routing_model_create(sizeof(link_CM02_t),
+ net_link_new(xbt_strdup("__loopback__"),
+ 498000000, NULL, 0.000015, NULL,
+ SURF_RESOURCE_ON, NULL,
+ SURF_LINK_FATPIPE, NULL),
+ net_get_link_latency);
+}