+/**************************************************************************/
+/* ---------------------------------------------------------------------- */
+/* 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 FWP (Frescor WLAN Protocol) */
+/* */
+/* FWP is free software; you can redistribute it and/or modify it */
+/* under terms of the GNU General Public License as published by the */
+/* Free Software Foundation; either version 2, or (at your option) any */
+/* later version. FWP 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 along with FWP; see file */
+/* COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, */
+/* Cambridge, MA 02139, USA. */
+/* */
+/* As a special exception, including FWP header files in a file, */
+/* instantiating FWP generics or templates, or linking other files */
+/* with FWP 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 <fres_sa_scenario.h>
#include <fwp.h>
#include "fwp_idl.h"
#define CTS_FRAME_SIZE 14
#define ACK_FRAME_SIZE 14
-#define BITRATE_BPS (1000*1000)
#define ASLOTTIME_USEC 20 /* 802.11g-2003 p. 46 */
#define ASIFSTIME_USEC 10
#define ADIFSTIME_USEC (ASIFSTIME_USEC + 2*ASLOTTIME_USEC)
#define AAIFSTIME_USEC(n) (ASIFSTIME_USEC + (n)*ASLOTTIME_USEC)
-#define TXTIME_USEC(bytes) ((int64_t)(bytes) * 8 * SEC_TO_USEC / BITRATE_BPS)
-
-
/* Default values from 802.11e */
const int aifsn[FWP_AC_NUM] = { 2, 2, 3, 7 };
const int cwmin[FWP_AC_NUM] = { 3, 7, 15, 15 };
{
int utilization = 0;
- const int rate = 1*1000*1000;
+ const int rate = 22*1000*1000;
const bool erp_ofdm = false;
const bool short_preamble = false;
struct fres_sa_contract *c, *c_new = NULL;
fres_contract_id_to_string(id, &c->contract->id, sizeof(id));
basic = fres_contract_get_basic(c->contract);
- printf(" processing: id=%s, period=%ld ms, budget=%ld ms\n",
+ frsh_network_budget_to_bytes(FRSH_NETPF_FWP,&basic->budget,&bytes);
+ printf(" processing: id=%s, period=%ld ms, budget=%lu bytes\n",
id,
fosa_rel_time_to_msec(basic->period),
- fosa_rel_time_to_msec(basic->budget));
+ (long unsigned int)bytes);
/* Calculate protocol overhead */
- frsh_network_budget_to_bytes(FRSH_NETPF_FWP,&basic->budget,&bytes);
fragments = (bytes + MTU - 1) / MTU;
if (fragments == 0)
basic = fres_contract_get_basic(c->contract);
period_usec = fosa_rel_time_to_msec(basic->period)*1000;
- if (c->status == FRES_SA_CONTRACT_NEW) {
+ if (c->contract == c->new) {
c_new = c;
if (period_usec == 0) {
goto not_schedulable;
}
if (utilization >= 10000 * 96/100) {
goto not_schedulable;
- }
+ }
+
+ scenario->utilization = utilization/100; /* For GUI */
basic = fres_contract_get_basic(c_new->contract);
/*int d = c->deadline_usec;*/