#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
}
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]);
}
}
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;
}
/*@}*/