]> rtime.felk.cvut.cz Git - frescor/fna.git/blobdiff - src_frescan/frescan_bwres_threads.c
added message to notify a budget increase or decrease (due to spare capacity)
[frescor/fna.git] / src_frescan / frescan_bwres_threads.c
index e4efcc426df8049c1bb65b91345d6e60786ba79e..d23582fdf910546515a82eee20cb8bccc9cc5f58 100644 (file)
@@ -223,41 +223,34 @@ static void frescan_manager_neg(frescan_request_data_t *req_data)
 {
         int ret;
         bool accepted;
+        frescan_sa_scenario_t *scenario;
 
         DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG, "negotiation request\n");
 
+        scenario = &the_networks[req_data->net].scenario;
+
         if (the_networks[req_data->net].local_node == FRESCAN_NEG_MASTER_NODE) {
                 DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                       "add contract to scenario\n");
 
                 ret = frescan_sa_add_contract
-                                (&the_networks[req_data->net].scenario,
+                                (scenario,
                                  req_data->ss,
                                  req_data->request_node,
                                  req_data->contract);
                 assert(ret == 0);
 
-                DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
-                      "assign priorities\n");
-
-                ret = frsh_sa_assign_priorities
-                                (&the_networks[req_data->net].scenario);
-                assert(ret == 0);
-
                 DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                       "perform sched analysis\n");
 
-                ret = frescan_sa_sched_test
-                                (&the_networks[req_data->net].scenario,
-                                 &accepted);
+                ret = frescan_sa_sched_test(scenario, &accepted);
                 assert(ret == 0);
 
                 if (accepted) {
                         DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                               "schedulable! distribute spare capacity\n");
 
-                        ret = frescan_sa_spare_capacity
-                                       (&the_networks[req_data->net].scenario);
+                        ret = frescan_sa_spare_capacity(scenario);
                         assert(ret == 0);
 
                         req_data->return_value = FRESCAN_REQ_ACCEPTED;
@@ -272,7 +265,7 @@ static void frescan_manager_neg(frescan_request_data_t *req_data)
                               "not schedulable!\n");
 
                         ret = frescan_sa_remove_contract
-                                        (&the_networks[req_data->net].scenario,
+                                        (scenario,
                                          req_data->ss,
                                          req_data->request_node);
                         assert(ret == 0);
@@ -309,40 +302,33 @@ static void frescan_manager_reneg(frescan_request_data_t *req_data)
         int ret;
         bool is_schedulable;
         frsh_contract_t old_contract;
+        frescan_sa_scenario_t *scenario;
 
         DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG, "renegotiation request\n");
 
+        scenario = &the_networks[req_data->net].scenario;
+
         if (the_networks[req_data->net].local_node == FRESCAN_NEG_MASTER_NODE) {
                 // scheduling analysis
                 ret = frescan_sa_update_contract
-                                (&the_networks[req_data->net].scenario,
+                                (scenario,
                                  req_data->ss,
                                  req_data->request_node,
                                  req_data->contract,
                                  &old_contract);
                 assert(ret == 0);
 
-                DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
-                      "assign priorities\n");
-
-                ret = frsh_sa_assign_priorities
-                                (&the_networks[req_data->net].scenario);
-                assert(ret == 0);
-
                 DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                       "perform sched analysis\n");
 
-                ret = frescan_sa_sched_test
-                                (&the_networks[req_data->net].scenario,
-                                 &is_schedulable);
+                ret = frescan_sa_sched_test(scenario, &is_schedulable);
                 assert(ret == 0);
 
-                if (accepted) {
+                if (is_schedulable) {
                         DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                               "schedulable! distribute spare capacity\n");
 
-                        ret = frescan_sa_spare_capacity
-                                        (&the_networks[req_data->net].scenario);
+                        ret = frescan_sa_spare_capacity(scenario);
                         assert(ret == 0);
 
                         req_data->return_value = FRESCAN_REQ_ACCEPTED;
@@ -354,7 +340,7 @@ static void frescan_manager_reneg(frescan_request_data_t *req_data)
                         assert(ret == 0);
                 } else {
                         ret = frescan_sa_update_contract
-                                        (&the_networks[req_data->net].scenario,
+                                        (scenario,
                                          req_data->ss,
                                          req_data->request_node,
                                          &old_contract,
@@ -385,12 +371,15 @@ static void frescan_manager_cancel(frescan_request_data_t *req_data)
 {
         int ret;
         bool is_schedulable;
+        frescan_sa_scenario_t *scenario;
 
         DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG, "cancel request\n");
 
+        scenario = &the_networks[req_data->net].scenario;
+
         if (the_networks[req_data->net].local_node == FRESCAN_NEG_MASTER_NODE) {
                 ret = frescan_sa_remove_contract
-                                (&the_networks[req_data->net].scenario,
+                                (scenario,
                                  req_data->ss,
                                  req_data->request_node);
                 assert(ret == 0);
@@ -398,16 +387,10 @@ static void frescan_manager_cancel(frescan_request_data_t *req_data)
                 DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                       "assign priorities\n");
 
-                ret = frsh_sa_assign_priorities
-                                (&the_networks[req_data->net].scenario);
-                assert(ret == 0);
-
                 DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                       "perform sched analysis\n");
 
-                ret = frescan_sa_sched_test
-                                (&the_networks[req_data->net].scenario,
-                                 &is_schedulable);
+                ret = frescan_sa_sched_test(scenario, &is_schedulable);
                 assert(ret == 0);
 
                 assert(is_schedulable == true);
@@ -415,8 +398,7 @@ static void frescan_manager_cancel(frescan_request_data_t *req_data)
                 DEBUG(FRESCAN_MANAGER_ENABLE_DEBUG,
                       "redistribute spare capacity\n");
 
-                ret = frescan_sa_spare_capacity
-                                (&the_networks[req_data->net].scenario);
+                ret = frescan_sa_spare_capacity(scenario);
                 assert(ret == 0);
 
                 ret = frescan_bwres_mode_change_protocol(req_data);