52#define DROP_REASON_SNR "SNR"
53#define DROP_REASON_NOTFORME "NFM"
54#define DROP_REASON_NOTRIGHTSTATE "NRS"
55#define DROP_REASON_GENERICERROR "ERR"
108 virtual void expire(Event *e);
125 virtual int command(
int argc,
const char *
const *argv);
293#define LOGERR(log) printonLog(CSMA_CA_ERROR, log);
294#define LOGDBG(log) printonLog(CSMA_CA_DEBUG, log);
295#define LOGWRN(log) printonLog(CSMA_CA_WARN, log);
296#define LOGINFO(log) printonLog(CSMA_CA_INFO, log);
317 int txRTS(
int mac_dest);
322 int txCTS(
int mac_dest);
Definition uw-csma-ca.h:98
CsmaCa *csma_ca_timers_t timer_type
Definition uw-csma-ca.h:110
virtual void expire(Event *e)
Definition uw-csma-ca.cpp:166
CsmaCaTimer(CsmaCa *m, csma_ca_timers_t tt)
Definition uw-csma-ca.h:100
Definition uw-csma-ca.h:95
string logfile
Definition uw-csma-ca.h:396
int cts_wait_val
Definition uw-csma-ca.h:380
int max_queue_size
Definition uw-csma-ca.h:375
void extractDataPacket()
Definition uw-csma-ca.cpp:524
int cts_pkt_dropped
Definition uw-csma-ca.h:402
Packet * buildPacket(int mac_dest, csma_ca_pkt_type_t type, uint8_t tx_time)
Definition uw-csma-ca.cpp:628
virtual void state_Wait_ACK()
Definition uw-csma-ca.cpp:480
time_t getEpoch()
Definition uw-csma-ca.h:207
virtual int stateTxData()
Definition uw-csma-ca.cpp:456
CsmaCa()
Definition uw-csma-ca.cpp:130
csma_ca_states_t state
Definition uw-csma-ca.h:390
int n_rts_rx
Definition uw-csma-ca.h:399
int n_cts_rx
Definition uw-csma-ca.h:400
virtual int stateRxACK(Packet *ack)
Definition uw-csma-ca.cpp:321
int data_pkt_dropped
Definition uw-csma-ca.h:401
virtual void initializeLog()
Definition uw-csma-ca.cpp:228
int data_wait_val
Definition uw-csma-ca.h:381
void ack_timer_fired()
Definition uw-csma-ca.cpp:185
int txData()
Definition uw-csma-ca.cpp:587
void data_timer_fired()
Definition uw-csma-ca.cpp:217
virtual void Phy2MacStartRx(const Packet *p)
Definition uw-csma-ca.cpp:473
CsmaCaTimer ack_timer
Definition uw-csma-ca.h:289
std::queue< Packet * > data_q
Definition uw-csma-ca.h:388
virtual void state_Backoff(int tx_time)
Definition uw-csma-ca.cpp:463
string getLogFile()
Definition uw-csma-ca.h:216
int actual_mac_data_src
Definition uw-csma-ca.h:385
virtual int stateRxCTS(hdr_ca_CTS *cts, int mac_src, int mac_dst)
Definition uw-csma-ca.cpp:437
virtual void state_Idle()
Definition uw-csma-ca.cpp:427
void buildRTShdr(hdr_ca_RTS **rts, uint8_t tx_time)
Definition uw-csma-ca.cpp:616
void backoff_timer_fired()
Definition uw-csma-ca.cpp:194
void buildCTShdr(hdr_ca_CTS **cts, uint8_t tx_time)
Definition uw-csma-ca.cpp:622
void printonLog(csma_ca_log_level_t level, string log)
Definition uw-csma-ca.cpp:669
virtual void dropPacket(Packet *p, csma_ca_pkt_type_t type, char *reason)
Definition uw-csma-ca.cpp:538
virtual void state_Wait_CTS()
Definition uw-csma-ca.cpp:600
virtual int stateRxData(Packet *p)
Definition uw-csma-ca.cpp:352
int getQueueSize()
Definition uw-csma-ca.h:198
virtual void stateTxCTS()
Definition uw-csma-ca.cpp:416
int data_size
Definition uw-csma-ca.h:376
CsmaCaTimer backoff_timer
Definition uw-csma-ca.h:286
int txRTS(int mac_dest)
Definition uw-csma-ca.cpp:560
Packet * actual_data_packet
Definition uw-csma-ca.h:387
int ack_pkt_dropped
Definition uw-csma-ca.h:404
int backoff_max
Definition uw-csma-ca.h:379
virtual ~CsmaCa()
Definition uw-csma-ca.cpp:161
virtual int stateRxRTS(hdr_ca_RTS *rts, int mac_src, int mac_dst)
Definition uw-csma-ca.cpp:380
int actual_expected_tx_time
Definition uw-csma-ca.h:386
csma_ca_log_level_t getLogLevel()
Definition uw-csma-ca.h:189
virtual void stateTxAck(int mac_dst)
Definition uw-csma-ca.cpp:344
int computeTxTime()
Definition uw-csma-ca.h:348
int ack_wait_val
Definition uw-csma-ca.h:382
CsmaCaTimer data_timer
Definition uw-csma-ca.h:288
virtual void Mac2PhyStartTx(Packet *p)
Definition uw-csma-ca.cpp:241
csma_ca_log_level_t log_level
Definition uw-csma-ca.h:395
virtual int command(int argc, const char *const *argv)
Definition uw-csma-ca.cpp:74
virtual void state_Wait_Data()
Definition uw-csma-ca.cpp:608
int bitrate
Definition uw-csma-ca.h:377
int txCTS(int mac_dest)
Definition uw-csma-ca.cpp:573
virtual void Phy2MacEndRx(Packet *p)
Definition uw-csma-ca.cpp:247
virtual void Phy2MacEndTx(const Packet *p)
Definition uw-csma-ca.cpp:488
std::ofstream outLog
Definition uw-csma-ca.h:394
int backoff_delta
Definition uw-csma-ca.h:378
void cts_timer_fired()
Definition uw-csma-ca.cpp:205
csma_ca_states_t previous_state
Definition uw-csma-ca.h:391
CsmaCaTimer cts_timer
Definition uw-csma-ca.h:287
virtual void recvFromUpperLayers(Packet *p)
Definition uw-csma-ca.cpp:510
void updateState(csma_ca_states_t s)
Definition uw-csma-ca.h:179
ack_modes_t ack_mode
Definition uw-csma-ca.h:389
csma_ca_states_t getState()
Definition uw-csma-ca.h:170
int rts_pkt_dropped
Definition uw-csma-ca.h:403
Definition uw-csma-ca-hdrs.h:80
Definition uw-csma-ca-hdrs.h:52
Provides the headers of ctrl packets of uw-csma-ca module.
CSMA_CA_PKT_TYPE
Definition uw-csma-ca.h:80
@ CSMA_CA_RTS
Definition uw-csma-ca.h:80
@ CSMA_CA_DATA
Definition uw-csma-ca.h:80
@ CSMA_CA_CTS
Definition uw-csma-ca.h:80
@ CSMA_CA_ACK
Definition uw-csma-ca.h:80
CSMA_CA_TIMERS
Definition uw-csma-ca.h:57
@ CSMA_CA_DATA_TIMER
Definition uw-csma-ca.h:58
@ CSMA_CA_CTS_TIMER
Definition uw-csma-ca.h:60
@ CSMA_CA_ACK_TIMER
Definition uw-csma-ca.h:61
@ CSMA_CA_BACKOFF_TIMER
Definition uw-csma-ca.h:59
CSMA_CA_ACK_MODES
Definition uw-csma-ca.h:64
@ CSMA_CA_NO_ACK_MODE
Definition uw-csma-ca.h:64
@ CSMA_CA_ACK_MODE
Definition uw-csma-ca.h:64
enum CSMA_CA_PKT_TYPE csma_ca_pkt_type_t
Definition uw-csma-ca.h:82
enum log_level csma_ca_log_level_t
Definition uw-csma-ca.h:88
CSMA_CA_STATES
Definition uw-csma-ca.h:68
@ CSMA_CA_BACKOFF
Definition uw-csma-ca.h:70
@ CSMA_CA_WAIT_ACK
Definition uw-csma-ca.h:76
@ CSMA_CA_TX_RTS
Definition uw-csma-ca.h:71
@ CSMA_CA_TX_ACK
Definition uw-csma-ca.h:77
@ CSMA_CA_TX_DATA
Definition uw-csma-ca.h:73
@ CSMA_CA_IDLE
Definition uw-csma-ca.h:69
@ CSMA_CA_TX_CTS
Definition uw-csma-ca.h:72
@ CSMA_CA_WAIT_DATA
Definition uw-csma-ca.h:75
@ CSMA_CA_WAIT_CTS
Definition uw-csma-ca.h:74
enum CSMA_CA_TIMERS csma_ca_timers_t
log_level
Definition uw-csma-ca.h:86
@ CSMA_CA_ERROR
Definition uw-csma-ca.h:86
@ CSMA_CA_DEBUG
Definition uw-csma-ca.h:86
@ CSMA_CA_WARN
Definition uw-csma-ca.h:86
@ CSMA_CA_INFO
Definition uw-csma-ca.h:86
enum CSMA_CA_STATES csma_ca_states_t
Definition uw-csma-ca.h:84
enum CSMA_CA_ACK_MODES ack_modes_t
Definition uw-csma-ca.h:66
string log_level_string[]
Definition uw-csma-ca.h:90