39#ifndef UW_ALOHA_Q_NODE_H
40#define UW_ALOHA_Q_NODE_H
55#define UW_ALOHAQ_STATUS_MY_SLOT 1
56#define UW_ALOHAQ_STATUS_NOT_MY_SLOT 2
85 virtual void expire(Event *e);
148 virtual void start(
double delay);
188 virtual void initPkt(Packet *p);
199 virtual int command(
int argc,
const char *
const *argv);
Definition uw-aloha-q-node.h:66
UwAlohaQTimer(UwAloha_Q_NODE *m)
Definition uw-aloha-q-node.h:73
virtual void expire(Event *e)
Definition uw-aloha-q-node.cpp:78
Definition uw-aloha-q-node.h:93
UWALOHAQ_BACKOFF_STATUS
Definition uw-aloha-q-node.h:211
@ ADD_BACKOFF
Definition uw-aloha-q-node.h:211
@ HALT
Definition uw-aloha-q-node.h:211
UWALOHAQ_ACK_STATUS
Definition uw-aloha-q-node.h:207
@ ACK_RECEIVED
Definition uw-aloha-q-node.h:207
@ ACK_NOT_RECEIVED
Definition uw-aloha-q-node.h:207
virtual void initPkt(Packet *p)
Definition uw-aloha-q-node.cpp:367
UWALOHAQ_PKT_TYPE
Definition uw-aloha-q-node.h:118
@ UWALOHAQ_DATA_PKT
Definition uw-aloha-q-node.h:120
@ UWALOHAQ_ACK_PKT
Definition uw-aloha-q-node.h:119
virtual int recvSyncClMsg(ClMessage *m)
Definition uw-aloha-q-node.cpp:533
double start_time
Definition uw-aloha-q-node.h:219
int tot_slots
Definition uw-aloha-q-node.h:225
virtual void stateRxAck(Packet *p)
Definition uw-aloha-q-node.cpp:345
double slot_duration
Definition uw-aloha-q-node.h:217
virtual int getLayerIdFromTag(const std::string &tag)
Definition uw-aloha-q-node.cpp:149
virtual int command(int argc, const char *const *argv)
Definition uw-aloha-q-node.cpp:470
virtual void Phy2MacStartRx(const Packet *p)
Definition uw-aloha-q-node.cpp:284
virtual void handleTimerExpiration()
Definition uw-aloha-q-node.cpp:386
virtual void rxPacketNotForMe(Packet *p)
Definition uw-aloha-q-node.cpp:376
virtual void updateQ_table(int ack_received)
Definition uw-aloha-q-node.cpp:202
int max_queue_size
Definition uw-aloha-q-node.h:233
int data_phy_id
Definition uw-aloha-q-node.h:244
virtual ~UwAloha_Q_NODE()=default
UWALOHAQ_STATUS transceiver_status
Definition uw-aloha-q-node.h:220
int my_curr_slot
Definition uw-aloha-q-node.h:243
int max_packet_per_slot
Definition uw-aloha-q-node.h:228
int slot_status
Definition uw-aloha-q-node.h:216
std::string phy_data_tag
Definition uw-aloha-q-node.h:247
virtual void recvFromUpperLayers(Packet *p) override
Definition uw-aloha-q-node.cpp:218
int packet_sent_curr_frame
Definition uw-aloha-q-node.h:231
virtual void Phy2MacEndTx(const Packet *p)
Definition uw-aloha-q-node.cpp:273
bool enable
Definition uw-aloha-q-node.h:235
int debug_
Definition uw-aloha-q-node.h:237
virtual void txData()
Definition uw-aloha-q-node.cpp:230
int decide_backoff
Definition uw-aloha-q-node.h:245
UWALOHAQ_BACKOFF_MODE backoff_mode
Definition uw-aloha-q-node.h:223
UWALOHAQ_STATUS
Definition uw-aloha-q-node.h:203
@ IDLE
Definition uw-aloha-q-node.h:203
@ WAIT_ACK
Definition uw-aloha-q-node.h:203
@ RECEIVING
Definition uw-aloha-q-node.h:203
@ TRANSMITTING
Definition uw-aloha-q-node.h:203
std::deque< Packet * > buffer
Definition uw-aloha-q-node.h:241
UWALOHAQ_ACK_STATUS ack_status
Definition uw-aloha-q-node.h:221
int sea_trial_
Definition uw-aloha-q-node.h:239
virtual int findMySlot()
Definition uw-aloha-q-node.cpp:176
virtual void Phy2MacEndRx(Packet *p)
Definition uw-aloha-q-node.cpp:295
UwAlohaQTimer alohaq_timer
Definition uw-aloha-q-node.h:215
virtual void stop()
Definition uw-aloha-q-node.cpp:462
std::vector< double > Q_table
Definition uw-aloha-q-node.h:218
virtual void start(double delay)
Definition uw-aloha-q-node.cpp:445
virtual int decide_if_backoff(int slot)
Definition uw-aloha-q-node.cpp:164
int HDR_size
Definition uw-aloha-q-node.h:227
UWALOHAQ_BACKOFF_STATUS backoff_status
Definition uw-aloha-q-node.h:222
UwAloha_Q_NODE()
Definition uw-aloha-q-node.cpp:83
int curr_slot
Definition uw-aloha-q-node.h:242
UWALOHAQ_BACKOFF_MODE
Definition uw-aloha-q-node.h:213
@ B2
Definition uw-aloha-q-node.h:213
@ B1
Definition uw-aloha-q-node.h:213
int packet_sent_curr_slot_
Definition uw-aloha-q-node.h:229
double guard_time
Definition uw-aloha-q-node.h:224
packet_t PT_MMAC_ACK
Definition initlib.cpp:44