From: Martin Molnar Date: Wed, 27 May 2009 11:24:44 +0000 (+0200) Subject: Add support for changing fwp vres X-Git-Url: http://rtime.felk.cvut.cz/gitweb/frescor/fwp.git/commitdiff_plain/2fbda04dc8d2a8e72d410643f8587f7c7d68c4d8 Add support for changing fwp vres Signed-off-by: Martin --- diff --git a/fwp/lib/frsh_fwp/fwp_fra.c b/fwp/lib/frsh_fwp/fwp_fra.c index a0e3d55..bfdd7d1 100644 --- a/fwp/lib/frsh_fwp/fwp_fra.c +++ b/fwp/lib/frsh_fwp/fwp_fra.c @@ -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; }