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"
87 virtual int command(
int argc,
const char *
const *argv);
393 virtual void expire(Event *e);
423 virtual void expire(Event *e);
494 virtual void txAck(
int dest_addr);
672 hdr_cmn *ch = hdr_cmn::access(p);
687 std::cout <<
"MAC " << addr <<
"putPktInQueue packet "
698 map<pktSeqNum, Packet *>::iterator it_p;
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;
708 std::cout <<
"eraseItemFromPktQueue erased first " << std::endl;
728 map<pktSeqNum, AckTimer>::iterator it_a;
741 return (up_data_pkts_rx -
mapPacket.size());
756 return up_data_pkts_rx;
767 std::cout << NOW <<
"UwOFDMAloha (" << addr <<
")::displayCarriers";
770 std::cout <<
" car[" << i <<
"] = " << ofdmph->
carriers[i];
772 std::cout <<
" " << std::endl;
867 static map<UWOFDMALOHA_REASON_STATUS, string>
870 static map<UWOFDMALOHA_PKT_TYPE, string>
874 map<pktSeqNum, Packet *>
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.