DESERT 4.0.0
uw-ofdm-aloha.h
Go to the documentation of this file.
1//
2// Copyright (c) 2017 Regents of the SIGNET lab, University of Padova.
3// All rights reserved.
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions
7// are met:
8// 1. Redistributions of source code must retain the above copyright
9// notice, this list of conditions and the following disclaimer.
10// 2. Redistributions in binary form must reproduce the above copyright
11// notice, this list of conditions and the following disclaimer in the
12// documentation and/or other materials provided with the distribution.
13// 3. Neither the name of the University of Padova (SIGNET lab) nor the
14// names of its contributors may be used to endorse or promote products
15// derived from this software without specific prior written permission.
16//
17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
41#ifndef UWOFDMALOHA_H_
42#define UWOFDMALOHA_H_
43
44#include <fstream>
45#include <iostream>
46#include <map>
47#include <mmac.h>
48#include <queue>
49#include <set>
50#include <string>
51
52#include "uwofdmphy_hdr.h"
53#include <mphy.h>
54
55#define UWOFDMALOHA_DROP_REASON_WRONG_STATE "WST"
56#define UWOFDMALOHA_DROP_REASON_WRONG_RECEIVER "WRCV"
57#define UWOFDMALOHA_DROP_REASON_UNKNOWN_TYPE "UPT"
58#define UWOFDMALOHA_DROP_REASON_BUFFER_FULL "DBF"
59#define UWOFDMALOHA_DROP_REASON_ERROR "ERR"
60
61extern packet_t PT_MMAC_ACK;
62
63typedef int pktSeqNum;
64
65class UWOFDMAloha : public MMac
66{
67
68public:
73
77 virtual ~UWOFDMAloha();
78
87 virtual int command(int argc, const char *const *argv);
88
96 void init_macofdm_node(int subCarNum, double subCarSize, int ctrl_subCar,
97 string modulation);
98
99protected:
122
145
156
167
179
184 class UWOFDMAlohaTimer : public TimerHandler
185 {
186
187 public:
192 : TimerHandler()
193 , start_time(0.0)
194 , left_duration(0.0)
195 , counter(0)
196 , module(m)
198 {
199 assert(m != NULL);
200 }
201
206 {
207 }
208
216 virtual void
218 {
220 left_duration -= (NOW - start_time);
221 if (left_duration <= 0.0)
222 left_duration = module->mac2phy_delay_;
223 force_cancel();
225 }
230 virtual void
232 {
234 start_time = NOW;
235 assert(left_duration > 0);
236 sched(left_duration);
238 }
239
243 virtual void
245 {
247 force_cancel();
248 }
249
254 virtual void
255 schedule(double val)
256 {
257 start_time = NOW;
258 left_duration = val;
260 resched(val);
261 }
262
267 bool
269 {
270 return (timer_status == UWOFDMALOHA_IDLE);
271 }
272
277 bool
279 {
281 }
282
287 bool
289 {
291 }
292
297 bool
299 {
301 }
302
307 bool
313
317 void
319 {
320 counter = 0;
321 }
322
327 void
329 {
330 ++counter;
331 }
332
337 int
339 {
340 return counter;
341 }
342
347 double
349 {
350 return left_duration;
351 }
352
353 protected:
354 double start_time;
360 UWOFDMAloha *module;
364 };
365
370 {
371
372 public:
378 {
379 }
380
384 virtual ~AckTimer()
385 {
386 }
387
388 protected:
393 virtual void expire(Event *e);
394 };
395
400 {
401
402 public:
408 {
409 }
410
415 {
416 }
417
418 protected:
423 virtual void expire(Event *e);
424 };
425
431 virtual void recvFromUpperLayers(Packet *p);
432
437 virtual void Mac2PhyStartTx(Packet *p);
438
443 virtual void Phy2MacEndTx(const Packet *p);
444
449 virtual void Phy2MacStartRx(const Packet *p);
450
455 virtual void Phy2MacEndRx(Packet *p);
456
463 virtual double computeTxTime(UWOFDMALOHA_PKT_TYPE type);
464
475 virtual void initPkt(
476 Packet *p, UWOFDMALOHA_PKT_TYPE pkt_type, int dest_addr = 0);
477
483 virtual double getBackoffTime();
484
488 virtual void txData();
489
494 virtual void txAck(int dest_addr);
495
500 virtual void stateIdle();
501
505 virtual void stateRxIdle();
506
511 virtual void stateTxData();
512
517 virtual void stateTxAck(int dest_addr);
518
523 virtual void stateWaitAck();
524
531 virtual void stateRxWaitAck();
532
537 virtual void stateBackoff();
538
544 virtual void stateRxBackoff();
545
550 virtual void stateCheckAckExpired();
551
556 virtual void stateCheckBackoffExpired();
557
563 virtual void stateRxData(Packet *p);
564
570 virtual void stateRxAck(Packet *p);
571
575 virtual void exitBackoff();
576
581 virtual void printStateInfo(double delay = 0);
582
586 virtual void initInfo();
587
594 virtual void
601
606 virtual void
608 {
609 last_reason = reason;
610 }
611
616 virtual void
618 {
620 }
621
625 virtual void
627 {
628 curr_tx_rounds = 0;
629 }
630
636 virtual void updateRTT(double rtt);
637
642 virtual double
644 {
645 return (rttsamples > 0) ? sumrtt / rttsamples : 0;
646 }
647
651 virtual void updateAckTimeout(double rtt);
652
657 virtual void
659 {
660 last_data_id_rx = id;
661 }
662
668 inline int
669 getPktSeqNum(Packet *p)
670 {
671 int seq_num;
672 hdr_cmn *ch = hdr_cmn::access(p);
673 seq_num = ch->uid();
674 return seq_num;
675 }
676
682 inline void
683 putPktInQueue(Packet *p)
684 {
685 mapPacket.insert(pair<pktSeqNum, Packet *>(getPktSeqNum(p), p));
687 std::cout << "MAC " << addr << "putPktInQueue packet "
688 << getPktSeqNum(p) << std::endl;
689 }
690
695 inline void
697 {
698 map<pktSeqNum, Packet *>::iterator it_p;
699 it_p = mapPacket.find(seq_num);
701 std::cout << "MAC " << addr << "eraseItemFromPktQueue packet "
702 << seq_num << std::endl;
703 Packet::free((*it_p).second);
705 std::cout << "eraseItemFromPktQueue freed second " << std::endl;
706 mapPacket.erase((*it_p).first);
708 std::cout << "eraseItemFromPktQueue erased first " << std::endl;
709 }
710
715 inline void
716 putAckTimerInMap(int seq_num)
717 {
718 mapAckTimer.insert(pair<pktSeqNum, AckTimer>(seq_num, ack_timer));
719 }
720
725 inline void
727 {
728 map<pktSeqNum, AckTimer>::iterator it_a;
729 it_a = mapAckTimer.find(seq_num);
730 mapAckTimer.erase((*it_a).first);
731 }
732
738 virtual int
740 {
741 return (up_data_pkts_rx - mapPacket.size());
742 }
743
747 virtual void
749 {
750 up_data_pkts_rx++;
751 }
752
753 inline int
755 {
756 return up_data_pkts_rx;
757 }
758
762 inline void
764 {
765 hdr_OFDM *ofdmph = HDR_OFDM(p);
766
767 std::cout << NOW << "UwOFDMAloha (" << addr << ")::displayCarriers";
768
769 for (int i = 0; i < mac_ncarriers; i++)
770 std::cout << " car[" << i << "] = " << ofdmph->carriers[i];
771
772 std::cout << " " << std::endl;
773 return;
774 }
775
777 inline void
779 {
780 nouse_carriers.push_back(c);
781 }
782
790 double ACK_timeout;
792 double alpha_;
798
800 std::vector<string> mac_carMod; // Vector with carriers modulations
801 std::vector<int> mac_carVec; // Vector with carriers used/not used
802 int mac_ncarriers; // number of subcarriers
803 double mac_carrierSize; // size of each subcarrier
804 int ctrl_car; // number of control subcarriers
805 bool AckInBand = true; // if ACK uses full bandwidth
806 bool alohaOnCarrier = false;
807
808 int waitforpktnum = 0; // sequence number of the next expected packet
809
810 int n_receptions; // number of receptions at a certain moment
811
812 std::vector<Packet *> pkt_rcv_queue; // queue of packets being received
813
814 std::vector<int>
815 nouse_carriers; // vectors of carriers that should not be used
816 bool disturbanceNode; // true if this is a disturbing node, not part of the
817 // main network
818
819 static bool initialized;
831 double srtt;
832 double sumrtt;
833 double sumrtt2;
843 int txsn;
845 static const double prop_speed;
864 static map<UWOFDMALOHA_STATUS, string> status_info;
867 static map<UWOFDMALOHA_REASON_STATUS, string>
870 static map<UWOFDMALOHA_PKT_TYPE, string>
874 map<pktSeqNum, Packet *>
876 map<pktSeqNum, AckTimer> mapAckTimer;
879 ofstream fout;
880};
881
882#endif /* UWUWOFDMALOHA_H_ */
Definition uw-ofdm-aloha.h:370
virtual void expire(Event *e)
Definition uw-ofdm-aloha.cpp:72
virtual ~AckTimer()
Definition uw-ofdm-aloha.h:384
AckTimer(UWOFDMAloha *m)
Definition uw-ofdm-aloha.h:376
Definition uw-ofdm-aloha.h:400
BackOffTimer(UWOFDMAloha *m)
Definition uw-ofdm-aloha.h:406
virtual ~BackOffTimer()
Definition uw-ofdm-aloha.h:414
virtual void expire(Event *e)
Definition uw-ofdm-aloha.cpp:94
Definition uw-ofdm-aloha.h:185
virtual void freeze()
Definition uw-ofdm-aloha.h:217
void incrCounter()
Definition uw-ofdm-aloha.h:328
bool isRunning()
Definition uw-ofdm-aloha.h:278
bool isIdle()
Definition uw-ofdm-aloha.h:268
bool isActive()
Definition uw-ofdm-aloha.h:308
bool isExpired()
Definition uw-ofdm-aloha.h:288
bool isFrozen()
Definition uw-ofdm-aloha.h:298
virtual void schedule(double val)
Definition uw-ofdm-aloha.h:255
int counter
Definition uw-ofdm-aloha.h:358
UWOFDMAlohaTimer(UWOFDMAloha *m)
Definition uw-ofdm-aloha.h:191
double start_time
Definition uw-ofdm-aloha.h:354
double left_duration
Definition uw-ofdm-aloha.h:356
double getDuration()
Definition uw-ofdm-aloha.h:348
virtual void stop()
Definition uw-ofdm-aloha.h:244
virtual ~UWOFDMAlohaTimer()
Definition uw-ofdm-aloha.h:205
virtual void unFreeze()
Definition uw-ofdm-aloha.h:231
void resetCounter()
Definition uw-ofdm-aloha.h:318
int getCounter()
Definition uw-ofdm-aloha.h:338
UWOFDMAloha *UWOFDMALOHA_TIMER_STATUS timer_status
Definition uw-ofdm-aloha.h:363
Definition uw-ofdm-aloha.h:66
virtual ~UWOFDMAloha()
Definition uw-ofdm-aloha.cpp:168
UWOFDMALOHA_REASON_STATUS last_reason
Definition uw-ofdm-aloha.h:851
static map< UWOFDMALOHA_PKT_TYPE, string > pkt_type_info
Definition uw-ofdm-aloha.h:871
void eraseItemFromPktQueue(int seq_num)
Definition uw-ofdm-aloha.h:696
virtual void resetCurrTxRounds()
Definition uw-ofdm-aloha.h:626
Packet * curr_data_pkt
Definition uw-ofdm-aloha.h:841
int getPktSeqNum(Packet *p)
Definition uw-ofdm-aloha.h:669
UWOFDMALOHA_REASON_STATUS
Definition uw-ofdm-aloha.h:127
@ UWOFDMALOHA_REASON_ACK_TX
Definition uw-ofdm-aloha.h:131
@ UWOFDMALOHA_REASON_BACKOFF_TIMEOUT
Definition uw-ofdm-aloha.h:141
@ UWOFDMALOHA_REASON_DATA_RX
Definition uw-ofdm-aloha.h:129
@ UWOFDMALOHA_REASON_PKT_RECEIVING
Definition uw-ofdm-aloha.h:143
@ UWOFDMALOHA_REASON_DATA_EMPTY
Definition uw-ofdm-aloha.h:134
@ UWOFDMALOHA_REASON_ACK_TIMEOUT
Definition uw-ofdm-aloha.h:133
@ UWOFDMALOHA_REASON_ACK_RX
Definition uw-ofdm-aloha.h:132
@ UWOFDMALOHA_REASON_DATA_PENDING
Definition uw-ofdm-aloha.h:128
@ UWOFDMALOHA_REASON_PKT_ERROR
Definition uw-ofdm-aloha.h:140
@ UWOFDMALOHA_REASON_MAX_TX_TRIES
Definition uw-ofdm-aloha.h:136
@ UWOFDMALOHA_REASON_WAIT_ACK_PENDING
Definition uw-ofdm-aloha.h:139
@ UWOFDMALOHA_REASON_BACKOFF_PENDING
Definition uw-ofdm-aloha.h:142
@ UWOFDMALOHA_REASON_DATA_TX
Definition uw-ofdm-aloha.h:130
@ UWOFDMALOHA_REASON_NOT_SET
Definition uw-ofdm-aloha.h:135
@ UWOFDMALOHA_REASON_PKT_NOT_FOR_ME
Definition uw-ofdm-aloha.h:138
@ UWOFDMALOHA_REASON_START_RX
Definition uw-ofdm-aloha.h:137
virtual void txAck(int dest_addr)
Definition uw-ofdm-aloha.cpp:694
UWOFDMALOHA_ACK_MODES ack_mode
Definition uw-ofdm-aloha.h:862
UWOFDMALOHA_STATUS prev_state
Definition uw-ofdm-aloha.h:856
virtual void incrCurrTxRounds()
Definition uw-ofdm-aloha.h:617
UWOFDMAloha()
Definition uw-ofdm-aloha.cpp:123
virtual void stateRxIdle()
Definition uw-ofdm-aloha.cpp:789
void init_macofdm_node(int subCarNum, double subCarSize, int ctrl_subCar, string modulation)
Definition uw-ofdm-aloha.cpp:289
virtual void stateRxData(Packet *p)
Definition uw-ofdm-aloha.cpp:945
double wait_constant
Definition uw-ofdm-aloha.h:784
virtual void stateCheckBackoffExpired()
Definition uw-ofdm-aloha.cpp:737
int waitforpktnum
Definition uw-ofdm-aloha.h:808
int ACK_size
Definition uw-ofdm-aloha.h:789
map< pktSeqNum, Packet * > mapPacket
Definition uw-ofdm-aloha.h:875
virtual void Phy2MacEndRx(Packet *p)
Definition uw-ofdm-aloha.cpp:563
int uwofdmaloha_debug
Definition uw-ofdm-aloha.h:796
virtual void refreshReason(UWOFDMALOHA_REASON_STATUS reason)
Definition uw-ofdm-aloha.h:607
double max_backoff_counter
Definition uw-ofdm-aloha.h:793
int rttsamples
Definition uw-ofdm-aloha.h:834
std::vector< int > nouse_carriers
Definition uw-ofdm-aloha.h:815
virtual int command(int argc, const char *const *argv)
Definition uw-ofdm-aloha.cpp:175
virtual void stateTxAck(int dest_addr)
Definition uw-ofdm-aloha.cpp:931
double srtt
Definition uw-ofdm-aloha.h:831
std::vector< Packet * > pkt_rcv_queue
Definition uw-ofdm-aloha.h:812
UWOFDMALOHA_ACK_MODES
Definition uw-ofdm-aloha.h:163
@ UWOFDMALOHA_ACK_MODE
Definition uw-ofdm-aloha.h:164
@ UWOFDMALOHA_NO_ACK_MODE
Definition uw-ofdm-aloha.h:165
virtual void exitBackoff()
Definition uw-ofdm-aloha.cpp:328
int ctrl_car
Definition uw-ofdm-aloha.h:804
int last_sent_data_id
Definition uw-ofdm-aloha.h:824
static const double prop_speed
Definition uw-ofdm-aloha.h:845
int last_data_id_rx
Definition uw-ofdm-aloha.h:837
virtual double getBackoffTime()
Definition uw-ofdm-aloha.cpp:334
ofstream fout
Definition uw-ofdm-aloha.h:879
virtual void updateLastDataIdRx(int id)
Definition uw-ofdm-aloha.h:658
int curr_tx_rounds
Definition uw-ofdm-aloha.h:836
virtual void refreshState(UWOFDMALOHA_STATUS state)
Definition uw-ofdm-aloha.h:595
virtual void initPkt(Packet *p, UWOFDMALOHA_PKT_TYPE pkt_type, int dest_addr=0)
Definition uw-ofdm-aloha.cpp:422
virtual void stateBackoff()
Definition uw-ofdm-aloha.cpp:798
void addInvalidCarriers(int c)
Definition uw-ofdm-aloha.h:778
virtual double computeTxTime(UWOFDMALOHA_PKT_TYPE type)
Definition uw-ofdm-aloha.cpp:358
UWOFDMALOHA_STATUS curr_state
Definition uw-ofdm-aloha.h:853
double start_tx_time
Definition uw-ofdm-aloha.h:830
double alpha_
Definition uw-ofdm-aloha.h:792
virtual void Phy2MacEndTx(const Packet *p)
Definition uw-ofdm-aloha.cpp:493
virtual void recvFromUpperLayers(Packet *p)
Definition uw-ofdm-aloha.cpp:387
double ACK_timeout
Definition uw-ofdm-aloha.h:790
bool alohaOnCarrier
Definition uw-ofdm-aloha.h:806
static map< UWOFDMALOHA_REASON_STATUS, string > reason_info
Definition uw-ofdm-aloha.h:868
virtual void Mac2PhyStartTx(Packet *p)
Definition uw-ofdm-aloha.cpp:474
virtual void stateRxAck(Packet *p)
Definition uw-ofdm-aloha.cpp:970
static map< UWOFDMALOHA_STATUS, string > status_info
Definition uw-ofdm-aloha.h:864
virtual void txData()
Definition uw-ofdm-aloha.cpp:675
int buffer_pkts
Definition uw-ofdm-aloha.h:791
virtual void updateRTT(double rtt)
Definition uw-ofdm-aloha.cpp:307
virtual double getRTT()
Definition uw-ofdm-aloha.h:643
map< pktSeqNum, AckTimer > mapAckTimer
Definition uw-ofdm-aloha.h:876
virtual void stateRxBackoff()
Definition uw-ofdm-aloha.cpp:823
virtual void stateTxData()
Definition uw-ofdm-aloha.cpp:833
std::vector< string > mac_carMod
Definition uw-ofdm-aloha.h:800
UWOFDMALOHA_PKT_TYPE
Definition uw-ofdm-aloha.h:151
@ UWOFDMALOHA_DATA_PKT
Definition uw-ofdm-aloha.h:153
@ UWOFDMALOHA_ACK_PKT
Definition uw-ofdm-aloha.h:152
@ UWOFDMALOHA_DATAMAX_PKT
Definition uw-ofdm-aloha.h:154
virtual int getRemainingPkts()
Definition uw-ofdm-aloha.h:739
virtual void Phy2MacStartRx(const Packet *p)
Definition uw-ofdm-aloha.cpp:551
void putPktInQueue(Packet *p)
Definition uw-ofdm-aloha.h:683
int getUpLayersDataPktsRx()
Definition uw-ofdm-aloha.h:754
bool print_transitions
Definition uw-ofdm-aloha.h:826
bool AckInBand
Definition uw-ofdm-aloha.h:805
double mac_carrierSize
Definition uw-ofdm-aloha.h:803
AckTimer ack_timer
Definition uw-ofdm-aloha.h:847
int recv_data_id
Definition uw-ofdm-aloha.h:838
int max_tx_tries
Definition uw-ofdm-aloha.h:783
UWOFDMALOHA_STATUS
Definition uw-ofdm-aloha.h:104
@ UWOFDMALOHA_STATE_NOT_SET
Definition uw-ofdm-aloha.h:112
@ UWOFDMALOHA_STATE_BACKOFF
Definition uw-ofdm-aloha.h:106
@ UWOFDMALOHA_STATE_TX_ACK
Definition uw-ofdm-aloha.h:108
@ UWOFDMALOHA_STATE_CHK_BACKOFF_TIMEOUT
Definition uw-ofdm-aloha.h:116
@ UWOFDMALOHA_STATE_WRONG_PKT_RX
Definition uw-ofdm-aloha.h:118
@ UWOFDMALOHA_STATE_WAIT_ACK
Definition uw-ofdm-aloha.h:109
@ UWOFDMALOHA_STATE_DATA_RX
Definition uw-ofdm-aloha.h:110
@ UWOFDMALOHA_STATE_RX_IDLE
Definition uw-ofdm-aloha.h:114
@ UWOFDMALOHA_STATE_RX_IN_PROGRESS
Definition uw-ofdm-aloha.h:119
@ UWOFDMALOHA_STATE_TX_DATA
Definition uw-ofdm-aloha.h:107
@ UWOFDMALOHA_STATE_CHK_ACK_TIMEOUT
Definition uw-ofdm-aloha.h:113
@ UWOFDMALOHA_STATE_MULTIPLE_RX_IN_PROGRESS
Definition uw-ofdm-aloha.h:120
@ UWOFDMALOHA_STATE_RX_BACKOFF
Definition uw-ofdm-aloha.h:117
@ UWOFDMALOHA_STATE_RX_WAIT_ACK
Definition uw-ofdm-aloha.h:115
@ UWOFDMALOHA_STATE_ACK_RX
Definition uw-ofdm-aloha.h:111
@ UWOFDMALOHA_STATE_IDLE
Definition uw-ofdm-aloha.h:105
int txsn
Definition uw-ofdm-aloha.h:843
virtual void stateRxWaitAck()
Definition uw-ofdm-aloha.cpp:922
double sumrtt
Definition uw-ofdm-aloha.h:832
bool has_buffer_queue
Definition uw-ofdm-aloha.h:827
BackOffTimer backoff_timer
Definition uw-ofdm-aloha.h:848
int n_receptions
Definition uw-ofdm-aloha.h:810
int mac_ncarriers
Definition uw-ofdm-aloha.h:802
virtual void printStateInfo(double delay=0)
Definition uw-ofdm-aloha.cpp:1011
double backoff_tuner
Definition uw-ofdm-aloha.h:786
double sumrtt2
Definition uw-ofdm-aloha.h:833
virtual void updateAckTimeout(double rtt)
Definition uw-ofdm-aloha.cpp:317
int max_payload
Definition uw-ofdm-aloha.h:787
static bool initialized
Definition uw-ofdm-aloha.h:819
virtual void incrUpperDataRx()
Definition uw-ofdm-aloha.h:748
int HDR_size
Definition uw-ofdm-aloha.h:788
bool disturbanceNode
Definition uw-ofdm-aloha.h:816
virtual void stateCheckAckExpired()
Definition uw-ofdm-aloha.cpp:708
void displayCarriers(Packet *p)
Definition uw-ofdm-aloha.h:763
virtual void stateWaitAck()
Definition uw-ofdm-aloha.cpp:902
std::vector< int > mac_carVec
Definition uw-ofdm-aloha.h:801
UWOFDMALOHA_STATUS prev_prev_state
Definition uw-ofdm-aloha.h:858
UWOFDMALOHA_TIMER_STATUS
Definition uw-ofdm-aloha.h:173
@ UWOFDMALOHA_RUNNING
Definition uw-ofdm-aloha.h:175
@ UWOFDMALOHA_IDLE
Definition uw-ofdm-aloha.h:174
@ UWOFDMALOHA_FROZEN
Definition uw-ofdm-aloha.h:176
@ UWOFDMALOHA_EXPIRED
Definition uw-ofdm-aloha.h:177
virtual void initInfo()
Definition uw-ofdm-aloha.cpp:233
virtual void stateIdle()
Definition uw-ofdm-aloha.cpp:763
void putAckTimerInMap(int seq_num)
Definition uw-ofdm-aloha.h:716
void eraseItemFrommapAckTimer(int seq_num)
Definition uw-ofdm-aloha.h:726
Definition uwofdmphy_hdr.h:58
int carriers[MAX_CARRIERS]
Definition uwofdmphy_hdr.h:61
int pktSeqNum
Definition uw-ofdm-aloha.h:63
packet_t PT_MMAC_ACK
Definition initlib.cpp:44
std::pair< int, int > counter
Definition uwinterference.h:53
Common structures and variables in the protocol.