]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
Add support for changing fwp vres
authorMartin Molnar <molnam1@fel.cvut.cz>
Wed, 27 May 2009 11:24:44 +0000 (13:24 +0200)
committerMartin <molnam1@fel.cvut.cz>
Wed, 27 May 2009 11:24:44 +0000 (13:24 +0200)
Signed-off-by: Martin <molnam1@fel.cvut.cz>
fwp/lib/frsh_fwp/fwp_fra.c

index a0e3d55578485f20f6391209330cd7126447e254..bfdd7d17b161aadfc21d062344fbf77012ade824 100644 (file)
@@ -99,7 +99,7 @@ static int cancel_vres(fres_vres_t *vres, void *priv)
 
        basic = fres_contract_get_basic(vres->allocated);
        fres_contract_id_to_string(id, &vres->id, sizeof(id));
-       printf("Creating FWP VRes (id=%s, period=%ld ms, budget=%ld bytes)\n",
+       printf("Canceling FWP VRes (id=%s, period=%ld ms, budget=%ld bytes)\n",
               id, fosa_rel_time_to_msec(basic->period), basic->budget.tv_sec);
 
        return 0;
@@ -107,6 +107,34 @@ static int cancel_vres(fres_vres_t *vres, void *priv)
 
 int change_vres(fres_vres_t *vres, void *priv)
 {
+       char id[40];
+       fres_block_basic *basic;
+       fres_block_fwp_sched *fwp_sched;
+       fwp_vres_params_t vparams;
+       fwp_vres_d_t      fwp_vresd;
+       int rv;
+       size_t bytes;
+       
+       /* Prepare vres parameters */
+       basic = fres_contract_get_basic(vres->new);
+       fwp_sched = fres_contract_get_block(vres->new, FRES_BLOCK_FWP_SCHED);
+
+       frsh_network_budget_to_bytes(FRSH_NETPF_FWP, &basic->budget, &bytes);
+       vparams.budget = bytes;
+       vparams.period = basic->period;
+       vparams.ac_id = fwp_sched->ac_id;
+       fwp_vresd = vres->priv;
+
+       /* Changing vres */
+       if ((rv = fwp_vres_set_params(fwp_vresd, &vparams))) {
+               return  rv;
+       }
+
+       fres_contract_id_to_string(id, &vres->id, sizeof(id));
+       printf("Changing FWP VRes (id=%s, period=%ld ms, budget=%ld bytes AC=%d)\n",
+               id, fosa_rel_time_to_msec(basic->period), 
+               vparams.budget, vparams.ac_id);
+       
        return 0;
 }