50#define CSMA_DROP_REASON_WRONG_STATE \
52#define CSMA_DROP_REASON_WRONG_RECEIVER \
54#define CSMA_DROP_REASON_UNKNOWN_TYPE \
56#define CSMA_DROP_REASON_BUFFER_FULL \
58#define CSMA_DROP_REASON_ERROR "ERR"
86 virtual int command(
int argc,
const char *
const *argv)
override;
352 virtual void expire(Event *e);
380 virtual void expire(Event *e);
410 virtual void expire(Event *e);
484 virtual void txAck(
int dest_addr);
691 Packet::free(
Q.front());
710 return (up_data_pkts_rx -
Q.size());
725 return up_data_pkts_rx;
742 std::queue<Packet *>
Q;
791 static map<CSMA_STATUS, string>
793 static map<CSMA_REASON_STATUS, string>
796 static map<CSMA_PKT_TYPE, string>
Definition uw-csma-aloha.h:359
virtual ~AckTimer()=default
AckTimer(CsmaAloha *m)
Definition uw-csma-aloha.h:365
virtual void expire(Event *e)
Definition uw-csma-aloha.cpp:77
Definition uw-csma-aloha.h:153
virtual ~AlohaTimer()=default
virtual void unFreeze()
Definition uw-csma-aloha.h:194
virtual void schedule(double val)
Definition uw-csma-aloha.h:218
void incrCounter()
Definition uw-csma-aloha.h:291
virtual void stop()
Definition uw-csma-aloha.h:207
CsmaAloha *CSMA_TIMER_STATUS timer_status
Definition uw-csma-aloha.h:324
double left_duration
Definition uw-csma-aloha.h:319
bool isFrozen()
Definition uw-csma-aloha.h:262
double start_time
Definition uw-csma-aloha.h:317
bool isActive()
Definition uw-csma-aloha.h:272
int counter
Definition uw-csma-aloha.h:321
void resetCounter()
Definition uw-csma-aloha.h:282
virtual void freeze()
Definition uw-csma-aloha.h:179
AlohaTimer(CsmaAloha *m)
Definition uw-csma-aloha.h:159
bool isRunning()
Definition uw-csma-aloha.h:241
int getCounter() const
Definition uw-csma-aloha.h:301
double getDuration() const
Definition uw-csma-aloha.h:311
bool isIdle()
Definition uw-csma-aloha.h:231
bool isExpired()
Definition uw-csma-aloha.h:252
Definition uw-csma-aloha.h:331
virtual ~BackOffTimer()=default
virtual void expire(Event *e)
Definition uw-csma-aloha.cpp:98
BackOffTimer(CsmaAloha *m)
Definition uw-csma-aloha.h:337
Definition uw-csma-aloha.h:389
ListenTimer(CsmaAloha *m)
Definition uw-csma-aloha.h:395
virtual void expire(Event *e)
Definition uw-csma-aloha.cpp:120
virtual ~ListenTimer()=default
Definition uw-csma-aloha.h:66
int rttsamples
Definition uw-csma-aloha.h:768
double ACK_timeout
Definition uw-csma-aloha.h:736
int ACK_size
Definition uw-csma-aloha.h:735
virtual void stateRxWaitAck()
Definition uw-csma-aloha.cpp:941
virtual void stateIdle()
Definition uw-csma-aloha.cpp:798
virtual int getRemainingPkts() override
Definition uw-csma-aloha.h:708
std::queue< int > data_sn_queue
Definition uw-csma-aloha.h:744
virtual void txAck(int dest_addr)
Definition uw-csma-aloha.cpp:656
virtual void stateTxData()
Definition uw-csma-aloha.cpp:886
virtual void setSessionDistance(double distance)
Definition uw-csma-aloha.h:616
virtual void stateCheckAckExpired()
Definition uw-csma-aloha.cpp:743
virtual void refreshState(CSMA_STATUS state)
Definition uw-csma-aloha.h:591
int buffer_pkts
Definition uw-csma-aloha.h:737
virtual void queuePop(bool flag=true)
Definition uw-csma-aloha.h:689
virtual void initInfo()
Definition uw-csma-aloha.cpp:246
CSMA_ACK_MODES
Definition uw-csma-aloha.h:139
@ CSMA_ACK_MODE
Definition uw-csma-aloha.h:139
@ CSMA_NO_ACK_MODE
Definition uw-csma-aloha.h:139
virtual void updateRTT(double rtt)
Definition uw-csma-aloha.cpp:304
virtual void updateAckTimeout(double rtt)
Definition uw-csma-aloha.cpp:314
std::queue< Packet * > Q
Definition uw-csma-aloha.h:742
int last_sent_data_id
Definition uw-csma-aloha.h:750
CSMA_STATUS prev_prev_state
Definition uw-csma-aloha.h:786
virtual void stateRxAck(Packet *p)
Definition uw-csma-aloha.cpp:1037
virtual void resetSession()
Definition uw-csma-aloha.cpp:298
virtual void Phy2MacStartRx(const Packet *p) override
Definition uw-csma-aloha.cpp:550
virtual int getUpLayersDataPktsRx()
Definition uw-csma-aloha.h:723
Packet * curr_data_pkt
Definition uw-csma-aloha.h:774
CSMA_STATUS
Definition uw-csma-aloha.h:93
@ CSMA_STATE_TX_DATA
Definition uw-csma-aloha.h:96
@ CSMA_STATE_BACKOFF
Definition uw-csma-aloha.h:95
@ CSMA_STATE_CHK_ACK_TIMEOUT
Definition uw-csma-aloha.h:103
@ CSMA_STATE_DATA_RX
Definition uw-csma-aloha.h:99
@ CSMA_STATE_RX_WAIT_ACK
Definition uw-csma-aloha.h:109
@ CSMA_STATE_ACK_RX
Definition uw-csma-aloha.h:100
@ CSMA_STATE_RX_BACKOFF
Definition uw-csma-aloha.h:108
@ CSMA_STATE_LISTEN
Definition uw-csma-aloha.h:102
@ CSMA_STATE_CHK_LISTEN_TIMEOUT
Definition uw-csma-aloha.h:104
@ CSMA_STATE_RX_IDLE
Definition uw-csma-aloha.h:106
@ CSMA_STATE_TX_ACK
Definition uw-csma-aloha.h:97
@ CSMA_STATE_WAIT_ACK
Definition uw-csma-aloha.h:98
@ CSMA_STATE_WRONG_PKT_RX
Definition uw-csma-aloha.h:110
@ CSMA_STATE_CHK_BACKOFF_TIMEOUT
Definition uw-csma-aloha.h:105
@ CSMA_STATE_NOT_SET
Definition uw-csma-aloha.h:101
@ CSMA_STATE_IDLE
Definition uw-csma-aloha.h:94
@ CSMA_STATE_RX_LISTEN
Definition uw-csma-aloha.h:107
virtual int command(int argc, const char *const *argv) override
Definition uw-csma-aloha.cpp:201
double alpha_
Definition uw-csma-aloha.h:738
bool RxActive
Definition uw-csma-aloha.h:753
CSMA_REASON_STATUS
Definition uw-csma-aloha.h:114
@ CSMA_REASON_ACK_TX
Definition uw-csma-aloha.h:118
@ CSMA_REASON_WAIT_ACK_PENDING
Definition uw-csma-aloha.h:131
@ CSMA_REASON_DATA_PENDING
Definition uw-csma-aloha.h:115
@ CSMA_REASON_BACKOFF_TIMEOUT
Definition uw-csma-aloha.h:120
@ CSMA_REASON_DATA_RX
Definition uw-csma-aloha.h:116
@ CSMA_REASON_DATA_TX
Definition uw-csma-aloha.h:117
@ CSMA_REASON_NOT_SET
Definition uw-csma-aloha.h:123
@ CSMA_REASON_DATA_EMPTY
Definition uw-csma-aloha.h:122
@ CSMA_REASON_ACK_RX
Definition uw-csma-aloha.h:119
@ CSMA_REASON_LISTEN_TIMEOUT
Definition uw-csma-aloha.h:127
@ CSMA_REASON_PKT_NOT_FOR_ME
Definition uw-csma-aloha.h:130
@ CSMA_REASON_LISTEN
Definition uw-csma-aloha.h:126
@ CSMA_REASON_BACKOFF_PENDING
Definition uw-csma-aloha.h:125
@ CSMA_REASON_MAX_TX_TRIES
Definition uw-csma-aloha.h:124
@ CSMA_REASON_START_RX
Definition uw-csma-aloha.h:129
@ CSMA_REASON_ACK_TIMEOUT
Definition uw-csma-aloha.h:121
@ CSMA_REASON_LISTEN_PENDING
Definition uw-csma-aloha.h:128
@ CSMA_REASON_PKT_ERROR
Definition uw-csma-aloha.h:132
virtual void initPkt(Packet *p, CSMA_PKT_TYPE pkt_type, int dest_addr=0)
Definition uw-csma-aloha.cpp:417
static map< CSMA_PKT_TYPE, string > pkt_type_info
Definition uw-csma-aloha.h:797
virtual void stateWaitAck()
Definition uw-csma-aloha.cpp:926
virtual ~CsmaAloha()=default
static const double prop_speed
Definition uw-csma-aloha.h:89
virtual void stateRxData(Packet *p)
Definition uw-csma-aloha.cpp:965
bool has_buffer_queue
Definition uw-csma-aloha.h:760
virtual void stateCheckListenExpired()
Definition uw-csma-aloha.cpp:710
int last_data_id_rx
Definition uw-csma-aloha.h:772
static int u_pkt_id
Definition uw-csma-aloha.h:748
virtual void stateRxListen()
Definition uw-csma-aloha.cpp:851
virtual void refreshReason(CSMA_REASON_STATUS reason)
Definition uw-csma-aloha.h:602
CSMA_ACK_MODES ack_mode
Definition uw-csma-aloha.h:788
double wait_costant
Definition uw-csma-aloha.h:731
virtual void incrCurrTxRounds()
Definition uw-csma-aloha.h:635
virtual void stateRxPacketNotForMe(Packet *p)
Definition uw-csma-aloha.cpp:666
double session_distance
Definition uw-csma-aloha.h:776
CsmaAloha()
Definition uw-csma-aloha.cpp:150
virtual void txData()
Definition uw-csma-aloha.cpp:643
virtual void Phy2MacEndTx(const Packet *p) override
Definition uw-csma-aloha.cpp:460
static map< CSMA_REASON_STATUS, string > reason_info
Definition uw-csma-aloha.h:794
virtual void Phy2MacEndRx(Packet *p) override
Definition uw-csma-aloha.cpp:587
int max_payload
Definition uw-csma-aloha.h:733
BackOffTimer backoff_timer
Definition uw-csma-aloha.h:780
virtual double getBackoffTime()
Definition uw-csma-aloha.cpp:375
virtual void printStateInfo(double delay=0)
Definition uw-csma-aloha.cpp:1079
virtual void recvFromUpperLayers(Packet *p) override
Definition uw-csma-aloha.cpp:398
int HDR_size
Definition uw-csma-aloha.h:734
double sumrtt
Definition uw-csma-aloha.h:766
bool print_transitions
Definition uw-csma-aloha.h:757
CSMA_TIMER_STATUS
Definition uw-csma-aloha.h:142
@ CSMA_IDLE
Definition uw-csma-aloha.h:143
@ CSMA_FROZEN
Definition uw-csma-aloha.h:145
@ CSMA_EXPIRED
Definition uw-csma-aloha.h:146
@ CSMA_RUNNING
Definition uw-csma-aloha.h:144
virtual double computeTxTime(CSMA_PKT_TYPE type)
Definition uw-csma-aloha.cpp:336
static bool initialized
Definition uw-csma-aloha.h:746
AckTimer ack_timer
Definition uw-csma-aloha.h:779
int max_backoff_counter
Definition uw-csma-aloha.h:739
int u_data_id
Definition uw-csma-aloha.h:749
virtual void updateLastDataIdRx(int id)
Definition uw-csma-aloha.h:680
virtual void stateBackoff()
Definition uw-csma-aloha.cpp:860
bool TxActive
Definition uw-csma-aloha.h:752
virtual void exitBackoff()
Definition uw-csma-aloha.cpp:369
virtual void stateRxBackoff()
Definition uw-csma-aloha.cpp:876
bool session_active
Definition uw-csma-aloha.h:754
ListenTimer listen_timer
Definition uw-csma-aloha.h:781
CSMA_STATUS prev_state
Definition uw-csma-aloha.h:785
virtual void stateListen()
Definition uw-csma-aloha.cpp:830
static map< CSMA_STATUS, string > status_info
Definition uw-csma-aloha.h:792
double srtt
Definition uw-csma-aloha.h:765
int curr_tx_rounds
Definition uw-csma-aloha.h:770
CSMA_REASON_STATUS last_reason
Definition uw-csma-aloha.h:783
double start_tx_time
Definition uw-csma-aloha.h:763
virtual void resetCurrTxRounds()
Definition uw-csma-aloha.h:644
double sumrtt2
Definition uw-csma-aloha.h:767
virtual void Mac2PhyStartTx(Packet *p)
Definition uw-csma-aloha.cpp:450
virtual double getRTT() const
Definition uw-csma-aloha.h:663
virtual bool keepDataPkt(int serial_number)
Definition uw-csma-aloha.cpp:325
double backoff_tuner
Definition uw-csma-aloha.h:729
CSMA_STATUS curr_state
Definition uw-csma-aloha.h:784
int max_tx_tries
Definition uw-csma-aloha.h:728
virtual void incrUpperDataRx() override
Definition uw-csma-aloha.h:717
virtual void stateCheckBackoffExpired()
Definition uw-csma-aloha.cpp:769
ofstream fout
Definition uw-csma-aloha.h:799
virtual void stateRxIdle()
Definition uw-csma-aloha.cpp:821
CSMA_PKT_TYPE
Definition uw-csma-aloha.h:136
@ CSMA_ACK_PKT
Definition uw-csma-aloha.h:136
@ CSMA_DATAMAX_PKT
Definition uw-csma-aloha.h:136
@ CSMA_DATA_PKT
Definition uw-csma-aloha.h:136
double listen_time
Definition uw-csma-aloha.h:740
virtual void stateTxAck(int dest_addr)
Definition uw-csma-aloha.cpp:950
packet_t PT_MMAC_ACK
Definition initlib.cpp:44
std::pair< int, int > counter
Definition uwinterference.h:53