+
+ frsh_rel_time_t deadline;
+ long int d;
+ if (fres_contract_get_deadline(&c->contract, &deadline)) {
+ d = fosa_rel_time_to_msec(deadline)*1000;
+ } else {
+ d = 100/*sec*/*1000*1000;
+ }
+ if (d < 30/*msec*/*1000) {
+ ul_logmsg("Deadline shorter than 30 ms!\n");
+ goto not_schedulable;
+ };
+
+ fwp_sched = malloc(sizeof(*fwp_sched));
+ fwp_sched->ac_id =
+ d < 100*1000 ? FWP_AC_VO :
+ d < 500*1000 ? FWP_AC_VI :
+ d < 1000*1000 ? FWP_AC_BE :
+ FWP_AC_BK;
+ fres_contract_add_block(c->contract, FRES_BLOCK_FWP_SCHED, fwp_sched);