Mac802_16 Class Reference

#include <mac-802_16.h>

Inheritance diagram for Mac802_16:

Mac802_16BS Mac802_16SS List of all members.

Public Member Functions

 Mac802_16 ()
virtual ~Mac802_16 ()
virtual void BsUcdHandler (Event *e)
virtual void BsSyncHandler (Event *e)
virtual void BsRngHandler (Event *e)
virtual void BsMapHandler (Event *e)
virtual void SSRngHandler (Event *e)
virtual void SSSndTimerHandler (Event *e)
virtual void SSReqTimerHandler (Event *e)
virtual void RecvFrame (Packet *p, int i)
virtual void BsSendHandler (Event *e)
virtual void BsSndTimerHandler (Event *e)
virtual void BsWindowTimerHandler (Event *e)
virtual void BsTokenHandler (Event *e)
int command (int argc, const char *const *argv)
void recvHandler (Event *e)
void sendHandler (Event *e)
void recv (Packet *p, Handler *h)
void configure_upstream ()
void set_bit (u_char *, int, int)
void dump_pkt (Packet *)
char ClassifyDataMgmt (Packet *)
int is_idle ()
int match (Packet *, struct flow_classifier)
int bit_on (u_char, int)
u_int32_t calculate_slots (double, double)
u_int32_t power (u_int32_t, u_int32_t)
double TX_Time (Packet *p, int)
Packet * AllocPkt (int)
void insert_alloclist (aptr &, u_int16_t, double, double, u_int16_t, u_int32_t)
int CanBeSent (aptr &, Packet *, u_int32_t)
int len_queue (plist)
int CanErtPSBeSent (aptr &, Packet *)

Public Attributes

TxPkt802_16Timer mhTxPkt_
RxPkt802_16Timer mhRxPkt_
upstream_channel upchannel
downstream_channel downchannel
char collision
u_int16_t bytes_pminislot
u_int32_t minislots_psec
double size_mslots
u_int16_t size_ureqgrant
u_int32_t avg_pkts
u_int32_t avg_bytes
u_int32_t num_pkts
double num_bytes
u_int32_t total_num_sent_pkts
double total_num_sent_bytes
u_int32_t total_num_mgt_pkts_US
u_int32_t total_num_rng_pkts_US
u_int32_t total_num_concat_pkts_US
u_int32_t total_num_frag_pkts_US
u_int32_t total_num_req_pkts_US
u_int32_t total_num_plaindata_pkts_US
u_int32_t total_num_concatdata_pkts_US
u_int32_t total_num_frames_US
u_int32_t total_num_BE_pkts_US
u_int32_t total_num_RTVBR_pkts_US
u_int32_t total_num_UGS_pkts_US
u_int32_t total_num_OTHER_pkts_US
u_int32_t total_num_rx_pkts
double total_num_rx_bytes
double total_num_BW_bytesUP
double total_num_BW_bytesDOWN
double total_num_appbytesUS
double total_num_appbytesDS
u_int32_t total_packets_dropped
double last_BWCalcTime
double last_rtime
u_int32_t avg_mgmtpkts
u_int32_t num_mgmtpkts
u_int32_t avg_mgmtbytes
u_int32_t num_mgmtbytes
double last_mmgmttime
MacState rx_state_
MacState tx_state_
int tx_active_

Static Public Attributes

static int lan_num
static Mac802_16BSbs_arr [NUM_802_16_LANS]

Friends

class TxPkt802_16Timer
class RxPkt802_16Timer

Detailed Description

Mac802_16 class


Constructor & Destructor Documentation

Mac802_16::Mac802_16 (  ) 

Constructor function

virtual Mac802_16::~Mac802_16 (  )  [inline, virtual]


Member Function Documentation

virtual void Mac802_16::BsUcdHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::BsSyncHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::BsRngHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::BsMapHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::SSRngHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::SSSndTimerHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::SSReqTimerHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::RecvFrame ( Packet *  p,
int  i 
) [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::BsSendHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

virtual void Mac802_16::BsSndTimerHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS.

virtual void Mac802_16::BsWindowTimerHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS.

virtual void Mac802_16::BsTokenHandler ( Event *  e  )  [inline, virtual]

Reimplemented in Mac802_16BS, and Mac802_16SS.

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

Reimplemented in Mac802_16BS, and Mac802_16SS.

void Mac802_16::recvHandler ( Event *  e  ) 

void Mac802_16::sendHandler ( Event *  e  ) 

void Mac802_16::recv ( Packet *  p,
Handler *  h 
)

To handle incoming packet.

void Mac802_16::configure_upstream (  ) 

To configure the mini-slot parameters

void Mac802_16::set_bit ( u_char *  ,
int  ,
int   
)

void Mac802_16::dump_pkt ( Packet *   ) 

char Mac802_16::ClassifyDataMgmt ( Packet *  p  ) 

This returns a 0 if this frame contains data

else it returns a 1 in which case it contains a MAC specific header (i.e., request)

int Mac802_16::is_idle (  ) 

Test if the channel is idle.

int Mac802_16::match ( Packet *  ,
struct  flow_classifier 
)

int Mac802_16::bit_on ( u_char  ,
int   
)

u_int32_t Mac802_16::calculate_slots ( double  stime,
double  etime 
)

Parameters:
stime starting time for the map
etime ending time
Returns:
the number of slots in the map.

u_int32_t Mac802_16::power ( u_int32_t  bs,
u_int32_t  in 
)

Calculate bs raised to in

double Mac802_16::TX_Time ( Packet *  p,
int   
)

Packet * Mac802_16::AllocPkt ( int   ) 

void Mac802_16::insert_alloclist ( aptr ,
u_int16_t  ,
double  ,
double  ,
u_int16_t  ,
u_int32_t   
)

int Mac802_16::CanBeSent ( aptr ,
Packet *  ,
u_int32_t   
)

int Mac802_16::len_queue ( plist   ) 

int Mac802_16::CanErtPSBeSent ( aptr alloc_list,
Packet *  p 
)

Check if there is a grant for the ertPS service and if this grant is greater than the packet size.

Parameters:
p,: The frame that already has been adjusted for all headers
Returns:
0: If there is no grant for ertPS service; 1: If there is a grant, but it is lesser than the packet size; 2: If there is a grant greater or equal to the packet size;


Friends And Related Function Documentation

friend class TxPkt802_16Timer [friend]

friend class RxPkt802_16Timer [friend]


Member Data Documentation

TxPkt802_16Timer Mac802_16::mhTxPkt_

RxPkt802_16Timer Mac802_16::mhRxPkt_

struct upstream_channel Mac802_16::upchannel

struct downstream_channel Mac802_16::downchannel

char Mac802_16::collision

u_int16_t Mac802_16::bytes_pminislot

u_int32_t Mac802_16::minislots_psec

double Mac802_16::size_mslots

u_int16_t Mac802_16::size_ureqgrant

u_int32_t Mac802_16::avg_pkts

u_int32_t Mac802_16::avg_bytes

u_int32_t Mac802_16::num_pkts

double Mac802_16::num_bytes

u_int32_t Mac802_16::total_num_sent_pkts

double Mac802_16::total_num_sent_bytes

u_int32_t Mac802_16::total_num_mgt_pkts_US

u_int32_t Mac802_16::total_num_rng_pkts_US

u_int32_t Mac802_16::total_num_concat_pkts_US

u_int32_t Mac802_16::total_num_frag_pkts_US

u_int32_t Mac802_16::total_num_req_pkts_US

u_int32_t Mac802_16::total_num_plaindata_pkts_US

u_int32_t Mac802_16::total_num_concatdata_pkts_US

u_int32_t Mac802_16::total_num_frames_US

u_int32_t Mac802_16::total_num_BE_pkts_US

u_int32_t Mac802_16::total_num_RTVBR_pkts_US

u_int32_t Mac802_16::total_num_UGS_pkts_US

u_int32_t Mac802_16::total_num_OTHER_pkts_US

u_int32_t Mac802_16::total_num_rx_pkts

double Mac802_16::total_num_rx_bytes

double Mac802_16::total_num_BW_bytesUP

double Mac802_16::total_num_BW_bytesDOWN

double Mac802_16::total_num_appbytesUS

double Mac802_16::total_num_appbytesDS

u_int32_t Mac802_16::total_packets_dropped

double Mac802_16::last_BWCalcTime

double Mac802_16::last_rtime

u_int32_t Mac802_16::avg_mgmtpkts

u_int32_t Mac802_16::num_mgmtpkts

u_int32_t Mac802_16::avg_mgmtbytes

u_int32_t Mac802_16::num_mgmtbytes

double Mac802_16::last_mmgmttime

int Mac802_16::lan_num [static]

Mac802_16BS * Mac802_16::bs_arr [static]

MacState Mac802_16::rx_state_

MacState Mac802_16::tx_state_

int Mac802_16::tx_active_


The documentation for this class was generated from the following files:
Generated on Fri Feb 8 16:42:36 2008 for WiMAX by  doxygen 1.5.1