aboutsummaryrefslogtreecommitdiff
path: root/src/ats/gnunet-service-ats_addresses.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-07-17 09:47:51 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-07-17 09:47:51 +0000
commit615d5aef87f985e4c489fac6c6d6232d35f8b0c2 (patch)
tree82eb29b40821ee0a5405737ac2d9f0428c6c2619 /src/ats/gnunet-service-ats_addresses.c
parent6053799e5d05b8d5c6c664b66e48f367b3dd6578 (diff)
downloadgnunet-615d5aef87f985e4c489fac6c6d6232d35f8b0c2.tar.gz
gnunet-615d5aef87f985e4c489fac6c6d6232d35f8b0c2.zip
do not use NBO internally
Diffstat (limited to 'src/ats/gnunet-service-ats_addresses.c')
-rw-r--r--src/ats/gnunet-service-ats_addresses.c111
1 files changed, 58 insertions, 53 deletions
diff --git a/src/ats/gnunet-service-ats_addresses.c b/src/ats/gnunet-service-ats_addresses.c
index 718925e68..357358c7c 100644
--- a/src/ats/gnunet-service-ats_addresses.c
+++ b/src/ats/gnunet-service-ats_addresses.c
@@ -505,6 +505,10 @@ create_address (const struct GNUNET_PeerIdentity *peer,
505 aa->plugin = GNUNET_strdup (plugin_name); 505 aa->plugin = GNUNET_strdup (plugin_name);
506 aa->session_id = session_id; 506 aa->session_id = session_id;
507 aa->local_address_info = local_address_info; 507 aa->local_address_info = local_address_info;
508 aa->assigned_bw_out = 0;
509 aa->assigned_bw_in = 0;
510 aa->last_notified_bw_out = 0;
511 aa->last_notified_bw_in = 0;
508 512
509 for (c1 = 0; c1 < GNUNET_ATS_QualityPropertiesCount; c1++) 513 for (c1 = 0; c1 < GNUNET_ATS_QualityPropertiesCount; c1++)
510 { 514 {
@@ -830,15 +834,11 @@ GAS_addresses_add (struct GAS_Addresses_Handle *handle,
830 handle->env.sf.s_bulk_stop (handle->solver); 834 handle->env.sf.s_bulk_stop (handle->solver);
831 835
832 /* Notify performance clients about new address */ 836 /* Notify performance clients about new address */
833 GAS_performance_notify_all_clients (&new_address->peer, 837 GAS_performance_notify_all_clients (&new_address->peer, new_address->plugin,
834 new_address->plugin, 838 new_address->addr, new_address->addr_len, new_address->active,
835 new_address->addr, 839 new_address->atsi, new_address->atsi_count,
836 new_address->addr_len, 840 GNUNET_BANDWIDTH_value_init (new_address->assigned_bw_out),
837 new_address->active, 841 GNUNET_BANDWIDTH_value_init (new_address->assigned_bw_in));
838 new_address->atsi,
839 new_address->atsi_count,
840 new_address->assigned_bw_out,
841 new_address->assigned_bw_in);
842 return; 842 return;
843 } 843 }
844 844
@@ -874,14 +874,11 @@ GAS_addresses_add (struct GAS_Addresses_Handle *handle,
874 { 874 {
875 /* Notify performance clients about properties */ 875 /* Notify performance clients about properties */
876 GAS_performance_notify_all_clients (&existing_address->peer, 876 GAS_performance_notify_all_clients (&existing_address->peer,
877 existing_address->plugin, 877 existing_address->plugin, existing_address->addr,
878 existing_address->addr, 878 existing_address->addr_len, existing_address->active,
879 existing_address->addr_len, 879 existing_address->atsi, existing_address->atsi_count,
880 existing_address->active, 880 GNUNET_BANDWIDTH_value_init (existing_address->assigned_bw_out),
881 existing_address->atsi, 881 GNUNET_BANDWIDTH_value_init (existing_address->assigned_bw_in));
882 existing_address->atsi_count,
883 existing_address->assigned_bw_out,
884 existing_address->assigned_bw_in);
885 882
886 for (c1 = 0; c1 < atsi_delta_count; c1++) 883 for (c1 = 0; c1 < atsi_delta_count; c1++)
887 { 884 {
@@ -1010,15 +1007,11 @@ GAS_addresses_update (struct GAS_Addresses_Handle *handle,
1010 } 1007 }
1011 1008
1012 /* Notify performance clients about updated address */ 1009 /* Notify performance clients about updated address */
1013 GAS_performance_notify_all_clients (&aa->peer, 1010 GAS_performance_notify_all_clients (&aa->peer, aa->plugin, aa->addr,
1014 aa->plugin, 1011 aa->addr_len, aa->active, aa->atsi, aa->atsi_count,
1015 aa->addr, 1012 GNUNET_BANDWIDTH_value_init (aa->assigned_bw_out),
1016 aa->addr_len, 1013 GNUNET_BANDWIDTH_value_init (aa->assigned_bw_in));
1017 aa->active, 1014
1018 aa->atsi,
1019 aa->atsi_count,
1020 aa->assigned_bw_out,
1021 aa->assigned_bw_in);
1022 handle->env.sf.s_bulk_start (handle->solver); 1015 handle->env.sf.s_bulk_start (handle->solver);
1023 GAS_normalization_normalize_property (handle->addresses, 1016 GAS_normalization_normalize_property (handle->addresses,
1024 aa, 1017 aa,
@@ -1405,9 +1398,9 @@ GAS_addresses_request_address (struct GAS_Addresses_Handle *handle,
1405 aa, GNUNET_i2s (peer)); 1398 aa, GNUNET_i2s (peer));
1406 1399
1407 GAS_scheduling_transmit_address_suggestion (peer, aa->plugin, aa->addr, 1400 GAS_scheduling_transmit_address_suggestion (peer, aa->plugin, aa->addr,
1408 aa->addr_len, aa->local_address_info, aa->session_id, 1401 aa->addr_len, aa->local_address_info, aa->session_id, aa->atsi,
1409 aa->atsi, aa->atsi_count, 1402 aa->atsi_count, GNUNET_BANDWIDTH_value_init (aa->assigned_bw_out),
1410 aa->assigned_bw_out, aa->assigned_bw_in); 1403 GNUNET_BANDWIDTH_value_init (aa->assigned_bw_in));
1411 1404
1412 aa->block_interval = GNUNET_TIME_relative_add (aa->block_interval, 1405 aa->block_interval = GNUNET_TIME_relative_add (aa->block_interval,
1413 ATS_BLOCKING_DELTA); 1406 ATS_BLOCKING_DELTA);
@@ -1865,8 +1858,7 @@ load_quotas (const struct GNUNET_CONFIGURATION_Handle *cfg,
1865 * @param address the address with changes 1858 * @param address the address with changes
1866 */ 1859 */
1867static void 1860static void
1868bandwidth_changed_cb (void *cls, 1861bandwidth_changed_cb (void *cls, struct ATS_Address *address)
1869 struct ATS_Address *address)
1870{ 1862{
1871 struct GAS_Addresses_Handle *handle = cls; 1863 struct GAS_Addresses_Handle *handle = cls;
1872 struct GAS_Addresses_Suggestion_Requests *cur; 1864 struct GAS_Addresses_Suggestion_Requests *cur;
@@ -1878,15 +1870,12 @@ bandwidth_changed_cb (void *cls,
1878 GNUNET_i2s (&address->peer)); 1870 GNUNET_i2s (&address->peer));
1879 1871
1880 /* Notify performance clients about changes to address */ 1872 /* Notify performance clients about changes to address */
1881 GAS_performance_notify_all_clients (&address->peer, 1873 GAS_performance_notify_all_clients (&address->peer, address->plugin,
1882 address->plugin, 1874 address->addr, address->addr_len, address->active, address->atsi,
1883 address->addr, 1875 address->atsi_count,
1884 address->addr_len, 1876 GNUNET_BANDWIDTH_value_init (address->assigned_bw_out),
1885 address->active, 1877 GNUNET_BANDWIDTH_value_init (address->assigned_bw_in));
1886 address->atsi, 1878
1887 address->atsi_count,
1888 address->assigned_bw_out,
1889 address->assigned_bw_in);
1890 cur = handle->pending_requests_head; 1879 cur = handle->pending_requests_head;
1891 while (NULL != cur) 1880 while (NULL != cur)
1892 { 1881 {
@@ -1902,27 +1891,42 @@ bandwidth_changed_cb (void *cls,
1902 return; 1891 return;
1903 } 1892 }
1904 1893
1905 if ((0 == ntohl (address->assigned_bw_in.value__)) 1894 if ((0 == address->assigned_bw_in) && (0 == address->assigned_bw_out))
1906 && (0 == ntohl (address->assigned_bw_out.value__)))
1907 { 1895 {
1908 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 1896 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1909 "Telling transport to disconnect peer `%s'\n", 1897 "Telling transport to disconnect peer `%s'\n",
1910 GNUNET_i2s (&address->peer)); 1898 GNUNET_i2s (&address->peer));
1899
1900 /* *Notify scheduling clients about suggestion */
1901 GAS_scheduling_transmit_address_suggestion (&address->peer, address->plugin,
1902 address->addr, address->addr_len, address->local_address_info,
1903 address->session_id, address->atsi, address->atsi_count,
1904 GNUNET_BANDWIDTH_value_init (0),
1905 GNUNET_BANDWIDTH_value_init (0));
1906
1907 return;
1908
1911 } 1909 }
1912 else 1910
1913 { 1911 /* Do bandwidth stability check */
1914 GNUNET_log(GNUNET_ERROR_TYPE_INFO, 1912 int diff = abs (address->assigned_bw_out - address->last_notified_bw_out);
1915 "Sending bandwidth update for peer `%s': %u %u\n", 1913
1916 GNUNET_i2s (&address->peer), 1914
1917 (unsigned int) ntohl (address->assigned_bw_out.value__), 1915
1918 (unsigned int) ntohl (address->assigned_bw_out.value__)); 1916 GNUNET_log(GNUNET_ERROR_TYPE_INFO,
1919 } 1917 "Sending bandwidth update for peer `%s': %u %u\n",
1918 GNUNET_i2s (&address->peer), address->assigned_bw_out,
1919 address->assigned_bw_out);
1920 1920
1921 /* *Notify scheduling clients about suggestion */ 1921 /* *Notify scheduling clients about suggestion */
1922 GAS_scheduling_transmit_address_suggestion (&address->peer, address->plugin, 1922 GAS_scheduling_transmit_address_suggestion (&address->peer, address->plugin,
1923 address->addr, address->addr_len, address->local_address_info, 1923 address->addr, address->addr_len, address->local_address_info,
1924 address->session_id, address->atsi, 1924 address->session_id, address->atsi, address->atsi_count,
1925 address->atsi_count, address->assigned_bw_out, address->assigned_bw_in); 1925 GNUNET_BANDWIDTH_value_init (address->assigned_bw_out),
1926 GNUNET_BANDWIDTH_value_init (address->assigned_bw_in));
1927
1928 address->last_notified_bw_out = address->assigned_bw_out;
1929 address->last_notified_bw_in = address->assigned_bw_in;
1926} 1930}
1927 1931
1928 1932
@@ -2260,7 +2264,8 @@ peerinfo_it (void *cls,
2260 { 2264 {
2261 pi_ctx->it (pi_ctx->it_cls, &addr->peer, addr->plugin, addr->addr, 2265 pi_ctx->it (pi_ctx->it_cls, &addr->peer, addr->plugin, addr->addr,
2262 addr->addr_len, addr->active, addr->atsi, addr->atsi_count, 2266 addr->addr_len, addr->active, addr->atsi, addr->atsi_count,
2263 addr->assigned_bw_out, addr->assigned_bw_in); 2267 GNUNET_BANDWIDTH_value_init (addr->assigned_bw_out),
2268 GNUNET_BANDWIDTH_value_init (addr->assigned_bw_in));
2264 } 2269 }
2265 return GNUNET_YES; 2270 return GNUNET_YES;
2266} 2271}