00001 /* 00002 * Copyright (c) 2003 Ericsson Telecommunicatie B.V. 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the 00013 * distribution. 00014 * 3. Neither the name of Ericsson Telecommunicatie B.V. may be used 00015 * to endorse or promote products derived from this software without 00016 * specific prior written permission. 00017 * 00018 * 00019 * THIS SOFTWARE IS PROVIDED BY ERICSSON TELECOMMUNICATIE B.V. AND 00020 * CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, 00021 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00022 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00023 * IN NO EVENT SHALL ERICSSON TELECOMMUNICATIE B.V., THE AUTHOR OR HIS 00024 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00025 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00026 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00027 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 00028 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00029 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00030 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00031 * 00032 * 00033 * Contact for feedback on EURANE: eurane@ti-wmc.nl 00034 * EURANE = Enhanced UMTS Radio Access Network Extensions 00035 * website: http://www.ti-wmc.nl/eurane/ 00036 */ 00037 00038 /* 00039 * $Id$ 00040 */ 00041 00042 00043 #ifndef ns_umts_timers_h 00044 #define ns_umts_timers_h 00045 00046 //#include "virtual_umtsmac.h" 00047 #include "rlc.h" 00048 #include "timer-handler.h" 00049 00050 00051 #define RLC_TIMER_POLL 0 00052 #define RLC_TIMER_RTX 1 00053 #define RLC_TIMER_DELSND 2 00054 #define RLC_TIMER_STPROB 3 00055 #define RLC_TIMER_TTI 4 00056 #define RLC_TIMER_TEMP_PDU 5 // Timeout for Temporary PDUs, in order 00057 // not to get a deadlock when the last 00058 // PDU is not followed by another PDU. 00059 #define RLC_TIMER_CREDIT 6 // Timeout for sending a PDU in the 00060 // Transmission Buffer. 00061 #define RLC_TIMER_STATUS 7 // Timeout for sending Status Information 00062 // in a separate PDU. 00063 #define RLC_TIMER_MRWACK 8 // Timeout for retransmitting a STATUS MRW 00064 00065 00066 #define MACHS_TIMER_FRAME 10 00067 #define MACHS_TIMER_CREDALLOC 11 00068 #define MACHS_TIMER_SCHEDULE 12 00069 #define MACHS_TIMER_REORDER_STALL 13 00070 #define MACHS_TIMER_PROCESS_CLEAR 14 00071 00072 class UmtsTimer:public TimerHandler { 00073 public: 00074 UmtsTimer(RLC * rlc, int timeoutNumber, int flowID = -1); 00075 double timeOfExpiry(); 00076 char *getName(); 00077 void cancel(); // overloaded from TimerHandler 00078 void sched(double delay); // overloaded from TimerHandler 00079 void resched(double delay); // overloaded from TimerHandler 00080 protected: 00081 virtual void expire(Event * e); 00082 RLC *rlc_; 00083 int timeoutNumber_; 00084 }; 00085 00086 00087 /* class HsdpaMacTimer:public TimerHandler { */ 00088 /* public: */ 00089 /* HsdpaMacTimer(VirtualUmtsMac * mac, int timeoutNumber, int flowID = -1); */ 00090 /* double timeOfExpiry(); */ 00091 /* char *getName(); */ 00092 /* void cancel(); // overloaded from TimerHandler */ 00093 /* void sched(double delay); // overloaded from TimerHandler */ 00094 /* void resched(double delay); // overloaded from TimerHandler */ 00095 /* protected: */ 00096 /* virtual void expire(Event * e); */ 00097 /* VirtualUmtsMac *mac_; */ 00098 /* int timeoutNumber_; */ 00099 /* int flowID_; */ 00100 /* }; */ 00101 00102 00103 #endif //ns_umts_timers_h