]> rtime.felk.cvut.cz Git - frescor/fna.git/commitdiff
add get budget and period
authorsangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Mon, 24 Nov 2008 16:40:15 +0000 (16:40 +0000)
committersangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Mon, 24 Nov 2008 16:40:15 +0000 (16:40 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1406 35b4ef3e-fd22-0410-ab77-dab3279adceb

src_frescan/frescan_bwres_fna.c

index 98f564b8d9aa3e4c071d07ed6ed22f404d806239..40bad3396c304bd37b1ad5bc69759eeee814ec33 100644 (file)
@@ -71,6 +71,7 @@
 #include "frescan_types.h"
 #include "fna.h" /* fna_vres_id_t, fna_endpoint_data_t */
 #include "frescan_debug.h" /* DEBUG, FRESCAN_ERROR */
+#include "frescan_servers.h"
 
 //////////////////////////////////////////////////////////////////////
 //           INITIALIZATION
@@ -192,12 +193,15 @@ int frescan_fna_group_change_mode_sync
         }
 
         DEBUG(FRESCAN_BWRES_FNA_ENABLE_DEBUG, "negotiation accepted\n");
-
         // convert new ss to fna_vres
         if (contracts_to_neg != NULL) {
                 new_vres->size = ss_new.size;
+                DEBUG(FRESCAN_BWRES_FNA_ENABLE_DEBUG,
+                      "new_vres->size:%d\n", new_vres->size);
                 for(i=0; i<new_vres->size; i++) {
                         new_vres->vres[i] = (fna_vres_id_t)ss_new.ss[i];
+                        DEBUG(FRESCAN_BWRES_FNA_ENABLE_DEBUG,
+                              "new_vres->vres[%d]:%u\n", i, new_vres->vres[i]);
                 }
         }
 
@@ -545,8 +549,24 @@ int frescan_fna_vres_get_budget_and_period
                  struct timespec *budget,
                  struct timespec *period)
 {
-        FRESCAN_ERROR("not implemented\n");
-        return -1;
+        int ret;
+        frescan_server_params_t server_params;
+
+        ret =  frescan_servers_get_data((frescan_network_t)resource_id,
+                                         &server_params,
+                                         (frescan_ss_t)vres);
+        if (ret != 0) return ret;
+
+        *budget = frsh_usec_to_rel_time((long)FRESCAN_FRAME_TX_TIME_US *
+                                        server_params.budget);
+
+        *period = server_params.period;
+
+        DEBUG(FRESCAN_BWRES_FNA_ENABLE_DEBUG,
+              "budget(%d packets %ld us\n",
+              server_params.budget, frsh_rel_time_to_usec(*budget));
+
+        return 0;
 }
 
 /*@}*/