class <Mac/802_11> Mac802_11 : public Mac

====================================================================== The actual 802

Inheritance:


Public Methods

inline int hdr_dst(char* hdr, int dst = -2)
inline int hdr_src(char* hdr, int src = -2)
inline int hdr_type(char* hdr, u_int16_t type = 0)
Mac802_11(PHY_MIB* p, MAC_MIB *m)
void recv(Packet *p, Handler *h)

Protected Fields

MAC_MIB* macmib_
PHY_MIB* phymib_

Protected Methods

void backoffHandler(void)
void deferHandler(void)
void navHandler(void)
void recvHandler(void)
void sendHandler(void)
void txHandler(void)

Private Fields

friend class BackoffTimer
Host* cache_
int cache_node_count_
u_int32_t cw_
Contention Window
friend class DeferTimer
double difs_
DCF Interframe Space
double eifs_
Extended Interframe Space
friend class IFTimer
NsObject* logtarget_
BackoffTimer mhBackoff_
backoff timer
DeferTimer mhDefer_
defer timer
IFTimer mhIF_
Mac Timers interface timer
NavTimer mhNav_
NAV timer
RxTimer mhRecv_
incoming packets
TxTimer mhSend_
outgoing packets
int min_frame_len_
double nav_
============================================================ Internal MAC State ============================================================ Network Allocation Vector
friend class NavTimer
double pifs_
PCF Interframe Space
Packet* pktCTRL_
outgoing non-RTS packet
Packet* pktRTS_
outgoing RTS packet
MacState rx_state_
incoming state (MAC_RECV or MAC_IDLE)
friend class RxTimer
double sifs_
Short Interface Space
u_int32_t slrc_
STA Long Retry Count
u_int32_t ssrc_
STA Short Retry Count
u_int16_t sta_seqno_
============================================================ Duplicate Detection state ============================================================ next seqno that I'll use
int tx_active_
transmitter is ACTIVE
double tx_difs_
double tx_pifs_
double tx_sifs_
MacState tx_state_
outgoint state
friend class TxTimer

Private Methods

void capture(Packet *p)
int check_pktCTRL()
int check_pktRTS()
int check_pktTx()
void collision(Packet *p)
int command(int argc, const char*const* argv)
void discard(Packet *p, const char* why)
void dump(char* fname)
inline void inc_cw()
inline int initialized()
inline int is_idle(void)
void mac_log(Packet *p)
void recv_timer(void)
Called by the timers
void recvACK(Packet *p)
void recvCTS(Packet *p)
void recvDATA(Packet *p)
void recvRTS(Packet *p)
Packet Reception Functions
void RetransmitDATA()
void RetransmitRTS()
inline void rst_cw()
void rx_resume(void)
void send(Packet *p, Handler *h)
Packet Transmission Functions
void send_timer(void)
void sendACK(int dst)
void sendCTS(int dst, double duration)
void sendDATA(Packet *p)
void sendRTS(int dst)
inline void set_nav(u_int16_t us)
void trace_pkt(Packet *p)
Debugging Functions
void tx_resume(void)
inline double TX_Time(Packet *p)
inline u_int16_t usec(double t)

Inherited from Mac:

Public Fields

Mac instvar mclass_

Public Methods

inline int addr()
inline double bandwidth()
Mac instproc classify-macs {peerinfo}
virtual void installTap(Tap *t)
virtual void resume(Packet* p = 0)
virtual void sendDown(Packet* p)
virtual void sendUp(Packet *p)
inline MacState state(int m)
inline MacState state()
inline double txtime(int bytes)
inline double txtime(Packet* p)

Protected Fields

double bandwidth_
Handler* callback_
Channel* channel_
double delay_
MacHandlerResume hRes_
MacHandlerSend hSend_
int index_
Event intr_
LL* ll_
Phy* netif_
int off_mac_
Packet* pktRx_
Packet* pktTx_
MacState state_
Tap* tap_

Inherited from BiConnector:

Public Methods

NsObject* downtarget()
virtual void drop(Packet* p)
inline NsObject* uptarget()

Protected Fields

NsObject* downtarget_
NsObject* drop_
NsObject* uptarget_

Protected Methods

virtual void drop(Packet* p, const char *s)

Inherited from NsObject:

Public Methods

virtual void debug(const char *fmt, ...)
virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer)
virtual void delay_bind_init_all()
int isdebug()

Protected Fields

int debug_
int off_cmn_
int off_flags_

Protected Methods

void handle(Event*)
virtual void reset()

Inherited from Handler:


Documentation

====================================================================== The actual 802.11 MAC class. ======================================================================
friend class DeferTimer

friend class BackoffTimer

friend class IFTimer

friend class NavTimer

friend class RxTimer

friend class TxTimer

Mac802_11(PHY_MIB* p, MAC_MIB *m)

void recv(Packet *p, Handler *h)

inline int hdr_dst(char* hdr, int dst = -2)

inline int hdr_src(char* hdr, int src = -2)

inline int hdr_type(char* hdr, u_int16_t type = 0)

void backoffHandler(void)

void deferHandler(void)

void navHandler(void)

void recvHandler(void)

void sendHandler(void)

void txHandler(void)

int command(int argc, const char*const* argv)

void recv_timer(void)
Called by the timers

void send_timer(void)

int check_pktCTRL()

int check_pktRTS()

int check_pktTx()

void send(Packet *p, Handler *h)
Packet Transmission Functions

void sendRTS(int dst)

void sendCTS(int dst, double duration)

void sendACK(int dst)

void sendDATA(Packet *p)

void RetransmitRTS()

void RetransmitDATA()

void recvRTS(Packet *p)
Packet Reception Functions

void recvCTS(Packet *p)

void recvACK(Packet *p)

void recvDATA(Packet *p)

void capture(Packet *p)

void collision(Packet *p)

void discard(Packet *p, const char* why)

void rx_resume(void)

void tx_resume(void)

inline int is_idle(void)

void trace_pkt(Packet *p)
Debugging Functions

void dump(char* fname)

inline int initialized()

void mac_log(Packet *p)

inline double TX_Time(Packet *p)

inline void inc_cw()

inline void rst_cw()

inline u_int16_t usec(double t)

inline void set_nav(u_int16_t us)

PHY_MIB* phymib_

MAC_MIB* macmib_

IFTimer mhIF_
Mac Timers interface timer

NavTimer mhNav_
NAV timer

RxTimer mhRecv_
incoming packets

TxTimer mhSend_
outgoing packets

DeferTimer mhDefer_
defer timer

BackoffTimer mhBackoff_
backoff timer

double nav_
============================================================ Internal MAC State ============================================================ Network Allocation Vector

MacState rx_state_
incoming state (MAC_RECV or MAC_IDLE)

MacState tx_state_
outgoint state

int tx_active_
transmitter is ACTIVE

Packet* pktRTS_
outgoing RTS packet

Packet* pktCTRL_
outgoing non-RTS packet

u_int32_t cw_
Contention Window

u_int32_t ssrc_
STA Short Retry Count

u_int32_t slrc_
STA Long Retry Count

double sifs_
Short Interface Space

double pifs_
PCF Interframe Space

double difs_
DCF Interframe Space

double eifs_
Extended Interframe Space

double tx_sifs_

double tx_pifs_

double tx_difs_

int min_frame_len_

NsObject* logtarget_

u_int16_t sta_seqno_
============================================================ Duplicate Detection state ============================================================ next seqno that I'll use

int cache_node_count_

Host* cache_


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

Adapted for the NS documentation page

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de