/* $Id: mcl_flid_sl.h,v 1.1.1.1 2003/09/03 12:45:43 chneuman Exp $ */ /* * Copyright (c) 1999-2003 INRIA - Universite Paris 6 - All rights reserved * (main authors: Julien Laboure - julien.laboure@inrialpes.fr) * Vincent Roca - vincent.roca@inrialpes.fr) * * This program 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 * of the License, or (at your option) any later version. * * This program 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 this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ /* * This file contains headers for FLID SL congestion control module (Static Layer). * See Internet Draft LCC for more informations */ #ifndef MCL_FLID_SL_H /* { */ #define MCL_FLID_SL_H #ifdef FLIDS /* { */ /*--- flids_hdr_t Type ---*/ /* The FLIDs congestion control header block (32bits -> LCT compliant) */ typedef struct { #ifdef _BIT_FIELDS_LTOH u_int8_t tsi:7, /* Time Slot Index (TSI) */ trigger:1; /* Increase signal Trigger (T) */ #else u_int8_t trigger:1, tsi:7; #endif u_int16_t seqno; /* packet's Sequence Number (SEQNO) */ u_int8_t gn; /* packet's Group Number (GN) */ } flids_hdr_t; /*--- flids_cb_t Type ---*/ /* FLIDs control block */ typedef struct { /* NEW Fields */ u_int8_t SessionState; // 1: initial state - 2: working state u_int8_t tsi; /* Warning tsi must only use 7bits */ long long_tsi; int tsd; /* Time Slot Duration (TSD) */ /* For each layer, value of current sequence number */ u_int16_t tx_LayerSeq[MAX_TX_LEVEL]; u_int8_t tx_LayerTrig[MAX_TX_LEVEL]; u_int8_t rx_LayerState[MAX_TX_LEVEL];// 1: initial state - 2: TIMESLOT init state // 3: working state u_int8_t rx_IncreaseTrigger[MAX_TX_LEVEL]; // IncreaseTrigger value u_int16_t rx_WaitFor[MAX_TX_LEVEL]; // next seq number to wait for... u_int8_t rx_DeafPeriod; u_int8_t rx_CongestionDetected; /* remaining time_count till next call to FLIDs_TxTimer function */ mcl_itime_t flids_tx_timer_count; /* Deaf Period Duration in multiple of tsd */ u_int8_t flids_deaf_period; }flids_cb_t; /* For more infos about all these CONSTANTS */ /* Refer to the descriptions of the */ /* corresponding flids_cb member variables */ #define FLIDS_TSD 1000000 /* TimeSlot Duration (should be set to either 0.5, 1.0 or 2.0 sec) */ #define FLIDS_DEAF_PERIOD 3 /* Deaf Period Duration in multiple of FLIDS_TSD */ #endif /* } FLIDS */ #endif /* } MCL_FLID_SL_H */