53#define UWALOHA_DROP_REASON_WRONG_STATE "WST"
54#define UWALOHA_DROP_REASON_WRONG_RECEIVER "WRCV"
55#define UWALOHA_DROP_REASON_UNKNOWN_TYPE "UPT"
56#define UWALOHA_DROP_REASON_BUFFER_FULL "DBF"
57#define UWALOHA_DROP_REASON_ERROR "ERR"
90 virtual int command(
int argc,
const char *
const *argv);
376 virtual void expire(Event *e);
406 virtual void expire(Event *e);
477 virtual void txAck(
int dest_addr);
656 hdr_cmn *ch = hdr_cmn::access(p);
679 map<pktSeqNum, Packet *>::iterator it_p;
682 Packet::free((*it_p).second);
704 map<pktSeqNum, AckTimer>::iterator it_a;
719 return (up_data_pkts_rx -
mapPacket.size());
734 return up_data_pkts_rx;
802 static map<UWALOHA_REASON_STATUS, string>
805 static map<UWALOHA_PKT_TYPE, string>
809 map<pktSeqNum, Packet *>
virtual void expire(Event *e)
Definition uwaloha.cpp:68
virtual ~AckTimer()
Definition uwaloha.h:367
AckTimer(UWAloha *m)
Definition uwaloha.h:359
virtual void expire(Event *e)
Definition uwaloha.cpp:90
BackOffTimer(UWAloha *m)
Definition uwaloha.h:389
virtual ~BackOffTimer()
Definition uwaloha.h:397
int counter
Definition uwaloha.h:342
virtual void unFreeze()
Definition uwaloha.h:215
double getDuration()
Definition uwaloha.h:332
virtual void stop()
Definition uwaloha.h:228
int getCounter()
Definition uwaloha.h:322
double start_time
Definition uwaloha.h:338
virtual void freeze()
Definition uwaloha.h:201
bool isIdle()
Definition uwaloha.h:252
bool isRunning()
Definition uwaloha.h:262
void resetCounter()
Definition uwaloha.h:302
virtual ~UWAlohaTimer()
Definition uwaloha.h:189
double left_duration
Definition uwaloha.h:340
UWAloha *UWALOHA_TIMER_STATUS timer_status
Definition uwaloha.h:346
virtual void schedule(double val)
Definition uwaloha.h:239
UWAlohaTimer(UWAloha *m)
Definition uwaloha.h:175
void incrCounter()
Definition uwaloha.h:312
bool isActive()
Definition uwaloha.h:292
bool isExpired()
Definition uwaloha.h:272
bool isFrozen()
Definition uwaloha.h:282
This is the base class of UWAloha protocol, which is a derived class of MMac.
Definition uwaloha.h:69
void putAckTimerInMap(int seq_num)
Definition uwaloha.h:692
int rttsamples
Definition uwaloha.h:769
int txsn
Definition uwaloha.h:778
static map< UWALOHA_STATUS, string > status_info
Definition uwaloha.h:799
double start_tx_time
Definition uwaloha.h:765
virtual void waitForUser()
Definition uwaloha.cpp:840
static map< UWALOHA_REASON_STATUS, string > reason_info
Definition uwaloha.h:803
UWALOHA_STATUS prev_prev_state
Definition uwaloha.h:793
BackOffTimer backoff_timer
Definition uwaloha.h:783
void eraseItemFromPktQueue(int seq_num)
Definition uwaloha.h:677
virtual ~UWAloha()
Definition uwaloha.cpp:162
UWAloha()
Definition uwaloha.cpp:119
static bool initialized
Definition uwaloha.h:754
virtual void stateTxData()
Definition uwaloha.cpp:661
int max_payload
Definition uwaloha.h:742
UWALOHA_TIMER_STATUS
Definition uwaloha.h:157
@ UWALOHA_IDLE
Definition uwaloha.h:158
@ UWALOHA_FROZEN
Definition uwaloha.h:160
@ UWALOHA_RUNNING
Definition uwaloha.h:159
@ UWALOHA_EXPIRED
Definition uwaloha.h:161
UWALOHA_ACK_MODES
Definition uwaloha.h:151
@ UWALOHA_NO_ACK_MODE
Definition uwaloha.h:151
@ UWALOHA_ACK_MODE
Definition uwaloha.h:151
int last_sent_data_id
Definition uwaloha.h:759
virtual void txData()
Definition uwaloha.cpp:524
virtual void Phy2MacStartRx(const Packet *p)
Definition uwaloha.cpp:457
virtual void stateRxData(Packet *p)
Definition uwaloha.cpp:764
virtual void stateRxAck(Packet *p)
Definition uwaloha.cpp:789
UWALOHA_PKT_TYPE
Definition uwaloha.h:139
@ UWALOHA_ACK_PKT
Definition uwaloha.h:140
@ UWALOHA_DATAMAX_PKT
Definition uwaloha.h:142
@ UWALOHA_DATA_PKT
Definition uwaloha.h:141
bool print_transitions
Definition uwaloha.h:761
int buffer_pkts
Definition uwaloha.h:746
double srtt
Definition uwaloha.h:766
virtual void stateWaitAck()
Definition uwaloha.cpp:722
UWALOHA_STATUS prev_state
Definition uwaloha.h:791
virtual void updateLastDataIdRx(int id)
Definition uwaloha.h:641
virtual void stateCheckAckExpired()
Definition uwaloha.cpp:548
double ACK_timeout
Definition uwaloha.h:745
double backoff_tuner
Definition uwaloha.h:741
virtual void stateIdle()
Definition uwaloha.cpp:605
int getUpLayersDataPktsRx()
Definition uwaloha.h:732
virtual void resetCurrTxRounds()
Definition uwaloha.h:609
virtual void updateRTT(double rtt)
Definition uwaloha.cpp:255
UWALOHA_REASON_STATUS
Definition uwaloha.h:117
@ UWALOHA_REASON_BACKOFF_PENDING
Definition uwaloha.h:132
@ UWALOHA_REASON_DATA_PENDING
Definition uwaloha.h:118
@ UWALOHA_REASON_DATA_EMPTY
Definition uwaloha.h:124
@ UWALOHA_REASON_WAIT_ACK_PENDING
Definition uwaloha.h:129
@ UWALOHA_REASON_DATA_TX
Definition uwaloha.h:120
@ UWALOHA_REASON_START_RX
Definition uwaloha.h:127
@ UWALOHA_REASON_BACKOFF_TIMEOUT
Definition uwaloha.h:131
@ UWALOHA_REASON_MAX_TX_TRIES
Definition uwaloha.h:126
@ UWALOHA_REASON_ACK_TX
Definition uwaloha.h:121
@ UWALOHA_REASON_NOT_SET
Definition uwaloha.h:125
@ UWALOHA_REASON_ACK_TIMEOUT
Definition uwaloha.h:123
@ UWALOHA_REASON_ACK_RX
Definition uwaloha.h:122
@ UWALOHA_REASON_PKT_ERROR
Definition uwaloha.h:130
@ UWALOHA_REASON_PKT_NOT_FOR_ME
Definition uwaloha.h:128
@ UWALOHA_REASON_DATA_RX
Definition uwaloha.h:119
virtual void initInfo()
Definition uwaloha.cpp:208
virtual double computeTxTime(UWALOHA_PKT_TYPE type)
Definition uwaloha.cpp:310
int curr_tx_rounds
Definition uwaloha.h:771
virtual void stateCheckBackoffExpired()
Definition uwaloha.cpp:578
virtual void stateRxIdle()
Definition uwaloha.cpp:625
UWALOHA_STATUS curr_state
Definition uwaloha.h:788
UWALOHA_STATUS
Definition uwaloha.h:96
@ UWALOHA_STATE_TX_ACK
Definition uwaloha.h:100
@ UWALOHA_STATE_CHK_ACK_TIMEOUT
Definition uwaloha.h:105
@ UWALOHA_STATE_RX_BACKOFF
Definition uwaloha.h:109
@ UWALOHA_STATE_ACK_RX
Definition uwaloha.h:103
@ UWALOHA_STATE_RX_WAIT_ACK
Definition uwaloha.h:107
@ UWALOHA_STATE_TX_DATA
Definition uwaloha.h:99
@ UWALOHA_STATE_NOT_SET
Definition uwaloha.h:104
@ UWALOHA_STATE_IDLE
Definition uwaloha.h:97
@ UWALOHA_STATE_BACKOFF
Definition uwaloha.h:98
@ UWALOHA_STATE_DATA_RX
Definition uwaloha.h:102
@ UWALOHA_STATE_WAIT_ACK
Definition uwaloha.h:101
@ UWALOHA_STATE_CHK_BACKOFF_TIMEOUT
Definition uwaloha.h:108
@ UWALOHA_STATE_WRONG_PKT_RX
Definition uwaloha.h:110
@ UWALOHA_STATE_RX_IDLE
Definition uwaloha.h:106
double sumrtt
Definition uwaloha.h:767
virtual void Phy2MacEndTx(const Packet *p)
Definition uwaloha.cpp:403
virtual double getRTT()
Definition uwaloha.h:626
int getPktSeqNum(Packet *p)
Definition uwaloha.h:653
virtual void stateRxBackoff()
Definition uwaloha.cpp:651
virtual void exitBackoff()
Definition uwaloha.cpp:280
virtual int getRemainingPkts()
Definition uwaloha.h:717
int last_data_id_rx
Definition uwaloha.h:772
int max_backoff_counter
Definition uwaloha.h:748
virtual void Phy2MacEndRx(Packet *p)
Definition uwaloha.cpp:465
static const double prop_speed
Definition uwaloha.h:780
bool has_buffer_queue
Definition uwaloha.h:762
virtual double getBackoffTime()
Definition uwaloha.cpp:286
virtual void incrCurrTxRounds()
Definition uwaloha.h:600
void putPktInQueue(Packet *p)
Definition uwaloha.h:667
AckTimer ack_timer
Definition uwaloha.h:782
virtual void Mac2PhyStartTx(Packet *p)
Definition uwaloha.cpp:393
map< pktSeqNum, AckTimer > mapAckTimer
Definition uwaloha.h:811
UWALOHA_ACK_MODES ack_mode
Definition uwaloha.h:797
virtual int command(int argc, const char *const *argv)
Definition uwaloha.cpp:169
int max_tx_tries
Definition uwaloha.h:738
static map< UWALOHA_PKT_TYPE, string > pkt_type_info
Definition uwaloha.h:806
UWALOHA_REASON_STATUS last_reason
Definition uwaloha.h:786
virtual void stateBackoff()
Definition uwaloha.cpp:634
virtual void initPkt(Packet *p, UWALOHA_PKT_TYPE pkt_type, int dest_addr=0)
Definition uwaloha.cpp:369
void eraseItemFrommapAckTimer(int seq_num)
Definition uwaloha.h:702
int ACK_size
Definition uwaloha.h:744
double sumrtt2
Definition uwaloha.h:768
virtual void stateRxWaitAck()
Definition uwaloha.cpp:741
int recv_data_id
Definition uwaloha.h:773
double wait_constant
Definition uwaloha.h:739
map< pktSeqNum, Packet * > mapPacket
Definition uwaloha.h:810
virtual void incrUpperDataRx()
Definition uwaloha.h:726
virtual void refreshState(UWALOHA_STATUS state)
Definition uwaloha.h:578
int uwaloha_debug
Definition uwaloha.h:751
virtual void recvFromUpperLayers(Packet *p)
Definition uwaloha.cpp:339
ofstream fout
Definition uwaloha.h:814
virtual void stateTxAck(int dest_addr)
Definition uwaloha.cpp:750
virtual void updateAckTimeout(double rtt)
Definition uwaloha.cpp:265
virtual void printStateInfo(double delay=0)
Definition uwaloha.cpp:815
virtual void refreshReason(UWALOHA_REASON_STATUS reason)
Definition uwaloha.h:590
double alpha_
Definition uwaloha.h:747
Packet * curr_data_pkt
Definition uwaloha.h:776
int HDR_size
Definition uwaloha.h:743
virtual void txAck(int dest_addr)
Definition uwaloha.cpp:538
int pktSeqNum
Definition uwaloha.h:61
packet_t PT_MMAC_ACK
Definition initlib.cpp:44
std::pair< int, int > counter
Definition uwinterference.h:53