From 67de6d7d42841e482c64a875986713c58206c42e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 10 Oct 2011 11:20:47 +0000 Subject: [PATCH] removing dead bw code --- src/core/gnunet-service-core_ats.c | 159 ----------------------------- 1 file changed, 159 deletions(-) delete mode 100644 src/core/gnunet-service-core_ats.c diff --git a/src/core/gnunet-service-core_ats.c b/src/core/gnunet-service-core_ats.c deleted file mode 100644 index 3be2da205..000000000 --- a/src/core/gnunet-service-core_ats.c +++ /dev/null @@ -1,159 +0,0 @@ - -/** - * How much inbound bandwidth are we supposed to be using per second? - */ -static unsigned long long bandwidth_target_in_bps; - -/** - * How much outbound bandwidth are we supposed to be using per second? - */ -static unsigned long long bandwidth_target_out_bps; - - - -/** - * Schedule the task that will recalculate the bandwidth - * quota for this peer (and possibly force a disconnect of - * idle peers by calculating a bandwidth of zero). - */ -static void -schedule_quota_update (struct Neighbour *n) -{ - GNUNET_assert (n->quota_update_task == GNUNET_SCHEDULER_NO_TASK); - n->quota_update_task = - GNUNET_SCHEDULER_add_delayed (QUOTA_UPDATE_FREQUENCY, - &neighbour_quota_update, n); -} - - -/** - * Function that recalculates the bandwidth quota for the - * given neighbour and transmits it to the transport service. - * - * @param cls neighbour for the quota update - * @param tc context - */ -static void -neighbour_quota_update (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) -{ - struct Neighbour *n = cls; - struct GNUNET_BANDWIDTH_Value32NBO q_in; - struct GNUNET_BANDWIDTH_Value32NBO q_out; - struct GNUNET_BANDWIDTH_Value32NBO q_out_min; - double pref_rel; - double share; - unsigned long long distributable; - uint64_t need_per_peer; - uint64_t need_per_second; - unsigned int neighbour_count; - -#if DEBUG_CORE > 1 - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Neighbour quota update calculation running for peer `%4s'\n", - GNUNET_i2s (&n->peer)); -#endif - n->quota_update_task = GNUNET_SCHEDULER_NO_TASK; - /* calculate relative preference among all neighbours; - * divides by a bit more to avoid division by zero AND to - * account for possibility of new neighbours joining any time - * AND to convert to double... */ - neighbour_count = GNUNET_CONTAINER_multihashmap_size (neighbours); - if (neighbour_count == 0) - return; - if (preference_sum == 0) - { - pref_rel = 1.0 / (double) neighbour_count; - } - else - { - pref_rel = (double) n->current_preference / preference_sum; - } - need_per_peer = - GNUNET_BANDWIDTH_value_get_available_until (MIN_BANDWIDTH_PER_PEER, - GNUNET_TIME_UNIT_SECONDS); - need_per_second = need_per_peer * neighbour_count; - - /* calculate inbound bandwidth per peer */ - distributable = 0; - if (bandwidth_target_in_bps > need_per_second) - distributable = bandwidth_target_in_bps - need_per_second; - share = distributable * pref_rel; - if (share + need_per_peer > UINT32_MAX) - q_in = GNUNET_BANDWIDTH_value_init (UINT32_MAX); - else - q_in = GNUNET_BANDWIDTH_value_init (need_per_peer + (uint32_t) share); - - /* calculate outbound bandwidth per peer */ - distributable = 0; - if (bandwidth_target_out_bps > need_per_second) - distributable = bandwidth_target_out_bps - need_per_second; - share = distributable * pref_rel; - if (share + need_per_peer > UINT32_MAX) - q_out = GNUNET_BANDWIDTH_value_init (UINT32_MAX); - else - q_out = GNUNET_BANDWIDTH_value_init (need_per_peer + (uint32_t) share); - n->bw_out_internal_limit = q_out; - - q_out_min = - GNUNET_BANDWIDTH_value_min (n->bw_out_external_limit, - n->bw_out_internal_limit); - GNUNET_BANDWIDTH_tracker_update_quota (&n->available_send_window, n->bw_out); - - /* check if we want to disconnect for good due to inactivity */ - if ((GNUNET_TIME_absolute_get_duration (get_neighbour_timeout (n)).rel_value > - 0) && - (GNUNET_TIME_absolute_get_duration (n->time_established).rel_value > - GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT.rel_value)) - { -#if DEBUG_CORE - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Forcing disconnect of `%4s' due to inactivity\n", - GNUNET_i2s (&n->peer)); -#endif - GNUNET_STATISTICS_update (stats, - gettext_noop ("# peers disconnected due to inactivity"), 1, - GNUNET_NO); - q_in = GNUNET_BANDWIDTH_value_init (0); /* force disconnect */ - } -#if DEBUG_CORE_QUOTA - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Current quota for `%4s' is %u/%llu b/s in (old: %u b/s) / %u out (%u internal)\n", - GNUNET_i2s (&n->peer), (unsigned int) ntohl (q_in.value__), - bandwidth_target_out_bps, (unsigned int) ntohl (n->bw_in.value__), - (unsigned int) ntohl (n->bw_out.value__), - (unsigned int) ntohl (n->bw_out_internal_limit.value__)); -#endif - if ((n->bw_in.value__ != q_in.value__) || - (n->bw_out.value__ != q_out_min.value__)) - { - if (n->bw_in.value__ != q_in.value__) - n->bw_in = q_in; - if (n->bw_out.value__ != q_out_min.value__) - n->bw_out = q_out_min; - if (GNUNET_YES == n->is_connected) - GNUNET_TRANSPORT_set_quota (transport, &n->peer, n->bw_in, n->bw_out); - handle_peer_status_change (n); - } - schedule_quota_update (n); -} - - - -void -GSC_ATS_init () -{ - if ((GNUNET_OK != - GNUNET_CONFIGURATION_get_value_number (c, "CORE", "TOTAL_QUOTA_IN", - &bandwidth_target_in_bps)) || - (GNUNET_OK != - GNUNET_CONFIGURATION_get_value_number (c, "CORE", "TOTAL_QUOTA_OUT", - &bandwidth_target_out_bps)) ) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - _ - ("Core service is lacking key configuration settings. Exiting.\n")); - GNUNET_SCHEDULER_shutdown (); - return; - } -} -- 2.25.1