]> rtime.felk.cvut.cz Git - frescor/fna.git/blobdiff - src_frescan/frescan_bwres.c
changes to use the FRSH FSA module to do the analysis and spare capacity. TODO: finis...
[frescor/fna.git] / src_frescan / frescan_bwres.c
index f45fb8a9f50d482568ad075ec78737d239d3ae18..ebffa1a02469361c771f7c0e72a600e72db44fef 100644 (file)
  *
  * @author Daniel Sangorrin <daniel.sangorrin@unican.es>
  *
+ * @license
+ *
+ * -----------------------------------------------------------------------
+ *  Copyright (C) 2006 - 2008 FRESCOR consortium partners:
+ *
+ *    Universidad de Cantabria,              SPAIN
+ *    University of York,                    UK
+ *    Scuola Superiore Sant'Anna,            ITALY
+ *    Kaiserslautern University,             GERMANY
+ *    Univ. Politécnica  Valencia,           SPAIN
+ *    Czech Technical University in Prague,  CZECH REPUBLIC
+ *    ENEA                                   SWEDEN
+ *    Thales Communication S.A.              FRANCE
+ *    Visual Tools S.A.                      SPAIN
+ *    Rapita Systems Ltd                     UK
+ *    Evidence                               ITALY
+ *
+ *    See http://www.frescor.org for a link to partners' websites
+ *
+ *           FRESCOR project (FP6/2005/IST/5-034026) is funded
+ *        in part by the European Union Sixth Framework Programme
+ *        The European Union is not liable of any use that may be
+ *        made of this code.
+ *
+ *  This file is part of FRESCAN
+ *
+ *  FRESCAN is free software; you can  redistribute it and/or  modify
+ *  it under the terms of  the GNU General Public License as published by
+ *  the Free Software Foundation;  either  version 2, or (at  your option)
+ *  any later version.
+ *
+ *  FRESCAN  is distributed  in  the hope  that  it  will  be useful,  but
+ *  WITHOUT  ANY  WARRANTY;     without  even the   implied   warranty  of
+ *  MERCHANTABILITY  or  FITNESS FOR  A  PARTICULAR PURPOSE. See  the  GNU
+ *  General Public License for more details.
+ *
+ *  You should have  received a  copy of  the  GNU  General Public License
+ *  distributed  with  FRESCAN;  see file COPYING.   If not,  write to the
+ *  Free Software  Foundation,  59 Temple Place  -  Suite 330,  Boston, MA
+ *  02111-1307, USA.
+ *
+ * As a special exception, including FRESCAN header files in a file,
+ * instantiating FRESCAN generics or templates, or linking other files
+ * with FRESCAN objects to produce an executable application, does not
+ * by itself cause the resulting executable application to be covered
+ * by the GNU General Public License. This exception does not
+ * however invalidate any other reasons why the executable file might be
+ * covered by the GNU Public License.
+ * -----------------------------------------------------------------------
+ *
  */
 
 #include "frescan_bwres.h"
@@ -43,9 +93,9 @@ int frescan_bwres_init(frescan_network_t net)
                               &sa_init_params);
         if (ret != 0) return ret;
 
-        server_params.values.budget = 5;
-        server_params.values.period.tv_sec = 1;
-        server_params.values.period.tv_nsec = 0;
+        server_params.budget = 5;
+        server_params.period.tv_sec = 1;
+        server_params.period.tv_nsec = 0;
         server_params.prio = FRESCAN_BWRES_NEG_MESSAGES_PRIO;
 
         ret = frescan_servers_create(net, &server_params,
@@ -84,7 +134,7 @@ int frescan_bwres_init(frescan_network_t net)
  */
 
 int frescan_bwres_negotiate(frescan_network_t net,
-                            const frescan_contract_t *contract,
+                            const frsh_contract_t *contract,
                             frescan_ss_t *ss,
                             bool *accepted)
 {
@@ -103,7 +153,7 @@ int frescan_bwres_negotiate(frescan_network_t net,
 
         req_data->type         = FRESCAN_REQ_NEG;
         req_data->req          = req;
-        req_data->contract     = (frescan_contract_t *)contract;
+        req_data->contract     = (frsh_contract_t *)contract;
         req_data->request_node = the_networks[net].local_node;
         req_data->net          = net;
 
@@ -111,9 +161,10 @@ int frescan_bwres_negotiate(frescan_network_t net,
         if (ret != 0) return ret;
 
         // NOTE: we preallocate a server for the negotiation process
-        server_params.values.budget = contract->min_values.budget;
-        server_params.values.period = contract->min_values.period;
-        server_params.prio          = contract->prio;
+        server_params.budget = 0;
+        server_params.period.tv_sec = 0;
+        server_params.period.tv_nsec = 0;
+        server_params.prio   = 0;
 
         ret = frescan_servers_create(net, &server_params, &req_data->ss);
         if (ret != 0) return ret;
@@ -136,7 +187,7 @@ int frescan_bwres_negotiate(frescan_network_t net,
                 DEBUG(FRESCAN_BWRES_ENABLE_DEBUG, "negotiation OK\n");
                 *accepted = true;
                 *ss = req_data->ss;
-                server_params.prio = req_data->final_values.server_prio;
+                server_params = req_data->final_values;
                 ret = frescan_servers_update(net, &server_params, *ss);
                 if (ret != 0) return ret;
                 break;
@@ -149,7 +200,7 @@ int frescan_bwres_negotiate(frescan_network_t net,
                 break;
 
         default:
-                ERROR("return_value unknown\n");
+                FRESCAN_ERROR("return_value unknown\n");
                 return -1;
         }
 
@@ -162,7 +213,7 @@ int frescan_bwres_negotiate(frescan_network_t net,
  */
 
 int frescan_bwres_renegotiate(frescan_network_t net,
-                              const frescan_contract_t *contract,
+                              const frsh_contract_t *contract,
                               frescan_ss_t ss,
                               bool *accepted)
 {
@@ -181,7 +232,7 @@ int frescan_bwres_renegotiate(frescan_network_t net,
 
         req_data->type         = FRESCAN_REQ_RENEG;
         req_data->req          = req;
-        req_data->contract     = (frescan_contract_t *)contract;
+        req_data->contract     = (frsh_contract_t *)contract;
         req_data->request_node = the_networks[net].local_node;
         req_data->net          = net;
         req_data->ss           = ss;
@@ -206,9 +257,7 @@ int frescan_bwres_renegotiate(frescan_network_t net,
         case FRESCAN_REQ_ACCEPTED:
                 DEBUG(FRESCAN_BWRES_ENABLE_DEBUG, "renegotiation OK\n");
                 *accepted = true;
-                server_params.values.budget = contract->min_values.budget;
-                server_params.values.period = contract->min_values.period;
-                server_params.prio = req_data->final_values.server_prio;
+                server_params = req_data->final_values;
                 ret = frescan_servers_update(net, &server_params, ss);
                 if (ret != 0) return ret;
                 break;
@@ -220,7 +269,7 @@ int frescan_bwres_renegotiate(frescan_network_t net,
                 break;
 
         default:
-                ERROR("return_value unknown\n");
+                FRESCAN_ERROR("return_value unknown\n");
                 return -1;
         }