aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport_ats.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-07-07 09:53:14 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-07-07 09:53:14 +0000
commit5d7a52c9662c9de88312e2701d5c29a70d03c7e6 (patch)
treeedb4877d17d67799460514983cea89b2ce0b955f /src/transport/transport_ats.c
parentb9499579bee2eff59d998ae0546a84b40fa5bebd (diff)
downloadgnunet-5d7a52c9662c9de88312e2701d5c29a70d03c7e6.tar.gz
gnunet-5d7a52c9662c9de88312e2701d5c29a70d03c7e6.zip
splitting transport service and ats
Diffstat (limited to 'src/transport/transport_ats.c')
-rw-r--r--src/transport/transport_ats.c43
1 files changed, 36 insertions, 7 deletions
diff --git a/src/transport/transport_ats.c b/src/transport/transport_ats.c
index fdd8126cd..e04bc9797 100644
--- a/src/transport/transport_ats.c
+++ b/src/transport/transport_ats.c
@@ -730,7 +730,10 @@ static void _dummy ()
730 730
731static void _dummy2 () 731static void _dummy2 ()
732{ 732{
733 ats_modify_problem_state (NULL, 0);
733 _dummy(); 734 _dummy();
735 int t = ATS_COST_UPDATED + ATS_MODIFIED + ATS_NEW;
736 t = 0;
734} 737}
735 738
736/* 739/*
@@ -765,7 +768,6 @@ struct ATS_Handle * ats_init (const struct GNUNET_CONFIGURATION_Handle *cfg)
765 ats->exec_interval = ATS_EXEC_INTERVAL; 768 ats->exec_interval = ATS_EXEC_INTERVAL;
766 ats->max_exec_duration = ATS_MAX_EXEC_DURATION; 769 ats->max_exec_duration = ATS_MAX_EXEC_DURATION;
767 ats->max_iterations = ATS_MAX_ITERATIONS; 770 ats->max_iterations = ATS_MAX_ITERATIONS;
768 ats->ats_task = GNUNET_SCHEDULER_NO_TASK;
769 771
770 ats->D = 1.0; 772 ats->D = 1.0;
771 ats->U = 1.0; 773 ats->U = 1.0;
@@ -1497,8 +1499,38 @@ void ats_delete_problem (struct ATS_Handle * ats)
1497 ats->stat.valid = GNUNET_SYSERR; 1499 ats->stat.valid = GNUNET_SYSERR;
1498} 1500}
1499 1501
1502void ats_modify_problem_state (struct ATS_Handle * ats, enum ATS_problem_state s)
1503{
1504 if (ats == NULL)
1505 return;
1506 switch (s)
1507 {
1508 case ATS_NEW :
1509 ats->stat.recreate_problem = GNUNET_NO;
1510 ats->stat.modified_quality = GNUNET_NO;
1511 ats->stat.modified_resources = GNUNET_NO;
1512 break;
1513 case ATS_MODIFIED:
1514 ats->stat.recreate_problem = GNUNET_YES;
1515 break;
1516 case ATS_QUALITY_UPDATED :
1517 ats->stat.modified_quality = GNUNET_YES;
1518 break;
1519 case ATS_COST_UPDATED :
1520 ats->stat.modified_resources = GNUNET_YES;
1521 break;
1522 case ATS_QUALITY_COST_UPDATED:
1523 ats->stat.modified_resources = GNUNET_YES;
1524 ats->stat.modified_quality = GNUNET_YES;
1525 break;
1526 default:
1527 return;
1528 }
1529
1500 1530
1501 1531
1532}
1533
1502void ats_solve_problem (struct ATS_Handle * ats, 1534void ats_solve_problem (struct ATS_Handle * ats,
1503 unsigned int max_it, 1535 unsigned int max_it,
1504 unsigned int max_dur, 1536 unsigned int max_dur,
@@ -1646,9 +1678,6 @@ void ats_shutdown (struct ATS_Handle * ats)
1646#if DEBUG_ATS 1678#if DEBUG_ATS
1647 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "ATS shutdown\n"); 1679 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "ATS shutdown\n");
1648#endif 1680#endif
1649 if (ats->ats_task != GNUNET_SCHEDULER_NO_TASK)
1650 GNUNET_SCHEDULER_cancel(ats->ats_task);
1651 ats->ats_task = GNUNET_SCHEDULER_NO_TASK;
1652 ats_delete_problem (ats); 1681 ats_delete_problem (ats);
1653 _lp_free_env(); 1682 _lp_free_env();
1654 1683
@@ -1864,15 +1893,15 @@ ats_calculate_bandwidth_distribution (struct ATS_Handle * ats,
1864 GNUNET_STATISTICS_set (stats, "ATS state",ATS_NEW, GNUNET_NO); 1893 GNUNET_STATISTICS_set (stats, "ATS state",ATS_NEW, GNUNET_NO);
1865 else if ((ats->stat.modified_resources == GNUNET_YES) && 1894 else if ((ats->stat.modified_resources == GNUNET_YES) &&
1866 (ats->stat.modified_quality == GNUNET_NO)) 1895 (ats->stat.modified_quality == GNUNET_NO))
1867 GNUNET_STATISTICS_set (stats, "ATS state", ATS_C_UPDATED, GNUNET_NO); 1896 GNUNET_STATISTICS_set (stats, "ATS state", ATS_COST_UPDATED, GNUNET_NO);
1868 else if ((ats->stat.modified_resources == GNUNET_NO) && 1897 else if ((ats->stat.modified_resources == GNUNET_NO) &&
1869 (ats->stat.modified_quality == GNUNET_YES) && 1898 (ats->stat.modified_quality == GNUNET_YES) &&
1870 (ats->stat.simplex_rerun_required == GNUNET_NO)) 1899 (ats->stat.simplex_rerun_required == GNUNET_NO))
1871 GNUNET_STATISTICS_set (stats, "ATS state", ATS_Q_UPDATED, GNUNET_NO); 1900 GNUNET_STATISTICS_set (stats, "ATS state", ATS_QUALITY_UPDATED, GNUNET_NO);
1872 else if ((ats->stat.modified_resources == GNUNET_YES) && 1901 else if ((ats->stat.modified_resources == GNUNET_YES) &&
1873 (ats->stat.modified_quality == GNUNET_YES) && 1902 (ats->stat.modified_quality == GNUNET_YES) &&
1874 (ats->stat.simplex_rerun_required == GNUNET_NO)) 1903 (ats->stat.simplex_rerun_required == GNUNET_NO))
1875 GNUNET_STATISTICS_set (stats, "ATS state", ATS_QC_UPDATED, GNUNET_NO); 1904 GNUNET_STATISTICS_set (stats, "ATS state", ATS_QUALITY_COST_UPDATED, GNUNET_NO);
1876 else if (ats->stat.simplex_rerun_required == GNUNET_NO) 1905 else if (ats->stat.simplex_rerun_required == GNUNET_NO)
1877 GNUNET_STATISTICS_set (stats, "ATS state", ATS_UNMODIFIED, GNUNET_NO); 1906 GNUNET_STATISTICS_set (stats, "ATS state", ATS_UNMODIFIED, GNUNET_NO);
1878 } 1907 }