#include <mac-802_16.h>
Inheritance diagram for Mac802_16BS:
Public Member Functions | |
int | register_to_bs (int macaddr, u_int16_t priority, u_char def_up, u_char def_dn, struct upstream_sflow *UpEntry, u_char UpSize, struct downstream_sflow *DownEntry, u_char DownSize) |
int | compare_priority (priority_array_p A, priority_array_p B) |
Mac802_16BS () | |
~Mac802_16BS () | |
Public Attributes | |
ss_record * | SSRecord |
u_int16_t | CurrIndexSSTable |
Protected Member Functions | |
int | command (int argc, const char *const *argv) |
Private Member Functions | |
void | SSRngHandler (Event *e) |
void | SSSndTimerHandler (Event *e) |
void | SSReqTimerHandler (Event *e) |
void | UnlockQueue () |
void | BsMapHandler (Event *e) |
This is called when a MAP is to be sent. | |
void | BsSyncHandler (Event *e) |
void | BsUcdHandler (Event *e) |
void | BsRngHandler (Event *e) |
void | BsWindowTimerHandler (Event *e) |
void | RateControl (Packet *, int, int, int) |
double | getupdatedtokens (int, int) |
void | BsTokenHandler (Event *) |
void | insert_tokenlist (double, int, int) |
void | sendUp (Packet *p) |
void | sendDown (Packet *p) |
void | RecvFrame (Packet *, int) |
void | PassDownstream (Packet *) |
void | HandleInData (Packet *, int, int) |
void | HandleInMgmt (Packet *) |
void | HandleFrag (Packet *) |
void | HandleConcat (Packet *, int, int) |
void | ReleaseJobs () |
void | fill_job (struct job *, char, char, double, u_int32_t, double, double, u_int16_t) |
void | InsertJob (struct job *, int) |
void | HandleReq (u_int16_t, int, int, bool) |
void | tune_parameters () |
void | alloc_bw () |
void | delete_joblist (int) |
void | PhUnsupress (Packet *, int, int) |
void | ApplyPhs (Packet *, int, int) |
void | MakeAperiodicAlloc (struct job *, mapptr, int) |
void | AllocMemSSrecord () |
void | MakePeriodicAllocation (int, mapptr, double) |
void | ReOrder (mapptr) |
void | MarkOtherSlots (mapptr, u_int32_t, int) |
void | jobdrop (mapptr) |
void | MarkGrantPending (u_int32_t *, double) |
void | SendMap () |
u_int32_t | MarkUnusedSlots (u_int32_t) |
void | find_flowindex (u_int16_t, int *, int *) |
void | SendFrame (Packet *, int) |
void | BsSendHandler (Event *) |
void | dump_stats () |
void | ParseExtHdr (Packet *) |
void | dumpUGSJITTER (char *) |
void | UpdateJitter (int, u_int16_t, double) |
int | find_size_map () |
int | NumContSlots (mapptr *) |
int | ChkQoSJobs (double, double) |
int | classify (Packet *, char, int *) |
int | insert_mapjob (int, jptr, u_int32_t *, int) |
int | insert_mapjob (struct job *, u_int32_t *) |
int | find_ss (int) |
u_int32_t | MarkOtherAlloc (u_int32_t) |
u_int32_t | FillMap (int, int, int, int, int) |
mapptr | find_best_hole (u_int32_t) |
mapptr | find_next (mapptr) |
mapptr | find_prv (mapptr) |
mapptr | TryAlloc (double, u_int32_t) |
double | determine_deadline (char, int, int) |
double | FitMap (mapptr, double) |
double | CalculateAckTime () |
void | print_job_list (int) |
void | print_map_list () |
void | print_short_map_list (Packet *Pkt) |
This method dumps all IE's associated with the map. | |
void | delete_maplist () |
void | dumpBWBS (char *fileName) |
void | dumpFinalBSStats (char *fileName, int DSBW, int USBW) |
void | dumpFinalSIDStats (int cindex, int findex, char *fileName, int DSBW) |
void | dumpFinalDSSIDS (char *fileName, int DSBW) |
void | dump802_16QueueStats (char *fileName, int channelBW) |
void | dump802_16UtilStats (char *fileName, int channelDSBW, int channelUSBW) |
void | insert_pkt_at_Head (Packet *, int, int) |
int | len_mgmtqueue () |
Packet * | deque_pkt () |
int | packetTrace (Packet *p, int direction) |
void | HandleOutData (Packet *, int, int) |
int | down_idle (int, int, EventType, Packet *) |
int | down_decision (int, int, EventType, Packet *) |
int | down_tosend (int, int, EventType, Packet *) |
int | down_waitformap (int, int, EventType, Packet *) |
void | UpdateAllocationTable (int, int) |
void | UpdateJitter (int, int) |
bool | insert_pkt (Packet *, int, int) |
double | timer_expiration (int, int, Packet *) |
Packet * | deque_pkt (int, int) |
void | insert_mgmtpkt (Packet *, int, int) |
void | insert_sndlist (double, int, int) |
void | BsSndTimerHandler (Event *e) |
void | alloc_ul_bw (double, double, u_int32_t) |
void | alloc_dl_bw (double, double, u_int32_t) |
void | checkDeadline (double, double, u_int32_t &) |
void | checkMinimumBW (u_int32_t &, priority_array_p &, int &) |
void | MakeAllocation (jptr, int, mapptr, char, int) |
int | CanBeSent (aptr &, Packet *) |
Private Attributes | |
double | window_ |
Map802_16Timer | mhMap_ |
BsRng802_16Timer | mhRng_ |
BsUcd802_16Timer | mhUcd_ |
BsSync802_16Timer | mhSync_ |
BsTxPkt802_16Timer | mhBsTxPkt_ |
BsServiceFlowSendTimer | mhBsSend_ |
BsUplinkSchedWindowTimer | mhWdw_ |
BsToken802_16Timer | mhToken_ |
tkptr | TokenList |
bs_conf_param | Conf_Table_ |
u_int16_t | SizeSSTable |
bs_statistics | SSStatistics_ |
job * | job_list [8] |
mapptr | mptr |
bs_sptr | BsSndList |
double | map_stime |
double | omap_stime |
double | map_etime |
double | omap_etime |
double | map_acktime |
double | AckTime |
double | max_slots_pmap |
double | next_map |
int | numIE |
int | map_lookahead |
int | MAP_LOOKAHEAD |
int | max_burst_slots |
int | rem_overhead |
int | MapPropDelay |
int | size_rtqueue |
int | avg_szrtqueue |
double | last_mrqtime |
int | size_bfqueue |
int | avg_szbfqueue |
double | last_mbfqtime |
int | num_bfreq |
int | avg_bfreq |
double | last_mbfreq |
int | num_rtreq |
int | avg_rtreq |
double | last_mrtreq |
double | last_dmptime |
u_int32_t | num_dgrant |
u_int32_t | num_contention |
u_int32_t | num_req |
u_int32_t | num_gpend |
u_int32_t | avg_dgrant |
u_int32_t | avg_contention |
u_int32_t | avg_req |
u_int32_t | avg_gpend |
u_int32_t | dropped_tokenq |
u_int32_t | dropped_dsq |
double | proportion |
u_char | contention_thrhold |
u_char | network_status |
u_int32_t | rtpoll_ddlinemiss |
u_int32_t | beffort_ddlinemiss |
int32_t | num_rtslots |
int32_t | num_nrtslots |
int32_t | num_befslots |
u_int32_t | num_adjust_slots |
Event | intr |
Event | uintr |
Event | sintr |
Event | rintr |
Event | rxintr_ |
Event | wintr |
qlist | txq_ |
int | qnp_ |
int | qnb_ |
int | max_qnp_ |
int | max_qnb_ |
int | min_qnp_ |
int | min_qnb_ |
int | queue_total_bytes_in |
int | queue_total_bytes_out |
double | util_total_bytes_US |
double | util_total_bytes_DS |
int | util_total_pkts_US |
int | util_total_pkts_DS |
double | util_bytes_US |
double | util_bytes_DS |
int | qlim_ |
double | lastDumpTime |
double | lastUtilDumpTime |
int(Mac802_16BS::* | DOWNswitch [DOWNSTATES])(int, int, EventType, Packet *) |
Static Private Attributes | |
static int | next_flowid |
Friends | |
class | Map802_16Timer |
class | BsUcd802_16Timer |
class | BsRng802_16Timer |
class | BsSync802_16Timer |
class | BsTxPkt802_16Timer |
class | BsServiceFlowSendTimer |
class | BsToken802_16Timer |
Mac802_16BS::Mac802_16BS | ( | ) |
Constructor
Mac802_16BS::~Mac802_16BS | ( | ) | [inline] |
int Mac802_16BS::register_to_bs | ( | int | macaddr, | |
u_int16_t | priority, | |||
u_char | def_up, | |||
u_char | def_dn, | |||
struct upstream_sflow * | UpEntry, | |||
u_char | UpSize, | |||
struct downstream_sflow * | DownEntry, | |||
u_char | DownSize | |||
) |
int Mac802_16BS::compare_priority | ( | priority_array_p | A, | |
priority_array_p | B | |||
) |
int Mac802_16BS::command | ( | int | argc, | |
const char *const * | argv | |||
) | [protected] |
Reimplemented from Mac802_16.
void Mac802_16BS::SSRngHandler | ( | Event * | e | ) | [inline, private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::SSSndTimerHandler | ( | Event * | e | ) | [inline, private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::SSReqTimerHandler | ( | Event * | e | ) | [inline, private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::UnlockQueue | ( | ) | [inline, private] |
void Mac802_16BS::BsMapHandler | ( | Event * | e | ) | [private, virtual] |
This is called when a MAP is to be sent.
This is called when a MAP is to be sent.
Figure
out the start/stop times for this MAP Call
calculate_slots to make sure the MAP does not go > 4096 slots in the future (this would violate 802_16). Call
alloc_bw() to assign slots Figure
out when to reset the bs 802_16 timer for the next MAPe | timer event |
Reimplemented from Mac802_16.
void Mac802_16BS::BsSyncHandler | ( | Event * | e | ) | [private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::BsUcdHandler | ( | Event * | e | ) | [private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::BsRngHandler | ( | Event * | e | ) | [private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::BsWindowTimerHandler | ( | Event * | e | ) | [private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::RateControl | ( | Packet * | p, | |
int | cindex, | |||
int | findex, | |||
int | type | |||
) | [private] |
The type filed is used to indicate whether packet was picked from IFQ queue or not..If yes, then unlock the IFQ
double Mac802_16BS::getupdatedtokens | ( | int | , | |
int | ||||
) | [private] |
void Mac802_16BS::BsTokenHandler | ( | Event * | ) | [private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::insert_tokenlist | ( | double | , | |
int | , | |||
int | ||||
) | [private] |
void Mac802_16BS::sendUp | ( | Packet * | p | ) | [private] |
Packet coming up from PHY layer...
void Mac802_16BS::sendDown | ( | Packet * | p | ) | [private] |
Send packet down to the physical layer...only packets passed by upper layers will be sent by this function..No Management messages..
void Mac802_16BS::RecvFrame | ( | Packet * | p, | |
int | concat_flag | |||
) | [private, virtual] |
Called from the recvHandler when a frame has arrived on the upstream channel.
Needed to make sure we increment byte stats only once as this routine is reentered if the frame is concatonated static int RecvFrameEntered = 0; This routine will invoke HandleInData or HandleInMgmt ....
p | A packet that already has been adjusted for all headers | |
concat_flag | true if we are being reentered due to a concatonated frame. In this case, we've already counted the packet, but we need to count the size. |
Reimplemented from Mac802_16.
void Mac802_16BS::PassDownstream | ( | Packet * | p | ) | [private] |
A simple ethernet PDU is carried in the 802_16 payload.. No Fragmentation or Concatenation
void Mac802_16BS::HandleInData | ( | Packet * | p, | |
int | cindex, | |||
int | findex | |||
) | [private] |
overHeadBitsStripped is 1 if the packet already has had the OH bits taken off (This occurs when multiple frames are concatonated)
void Mac802_16BS::HandleInMgmt | ( | Packet * | p | ) | [private] |
This routine receives a Mgt message of the following types:
case
2: request header case
3: Fragmentation frame header case
26: Concatenation frame header case
1: RNG msg
p | the packet |
void Mac802_16BS::HandleFrag | ( | Packet * | p | ) | [private] |
p | The frame containing a fragment |
void Mac802_16BS::HandleConcat | ( | Packet * | , | |
int | , | |||
int | ||||
) | [private] |
void Mac802_16BS::ReleaseJobs | ( | ) | [private] |
Function called during the starting of simulation to release all the UGS jobs & VBR unicast req jobs
void Mac802_16BS::fill_job | ( | struct job * | node, | |
char | sclass, | |||
char | type, | |||
double | period, | |||
u_int32_t | size, | |||
double | release, | |||
double | deadline, | |||
u_int16_t | flow_id | |||
) | [private] |
node | job queue element (i.e., a job) |
void Mac802_16BS::InsertJob | ( | struct job * | node, | |
int | index | |||
) | [private] |
a job (bw request or periodic grant) in the job_list
void Mac802_16BS::HandleReq | ( | u_int16_t | req, | |
int | cindex, | |||
int | findex, | |||
bool | aggregate | |||
) | [private] |
Is called when there has been a request for bw from a SS. The routine creates a new job entry (node)
void Mac802_16BS::tune_parameters | ( | ) | [private] |
void Mac802_16BS::alloc_bw | ( | ) | [private] |
This is called when a MAP is to be sent. It allocates the bw.
void Mac802_16BS::delete_joblist | ( | int | ) | [private] |
void Mac802_16BS::PhUnsupress | ( | Packet * | , | |
int | , | |||
int | ||||
) | [private] |
void Mac802_16BS::ApplyPhs | ( | Packet * | , | |
int | , | |||
int | ||||
) | [private] |
void Mac802_16BS::AllocMemSSrecord | ( | ) | [private] |
void Mac802_16BS::MakePeriodicAllocation | ( | int | , | |
mapptr | , | |||
double | ||||
) | [private] |
void Mac802_16BS::ReOrder | ( | mapptr | ) | [private] |
void Mac802_16BS::MarkOtherSlots | ( | mapptr | t, | |
u_int32_t | num, | |||
int | jk | |||
) | [private] |
This method marks the cr and mgt slots in the map. jk will be used as sid for distinguishing between various slots. a 0 says its mgt , a 1 says it CR.
t | The map | |
num | Number of slots. | |
jk | Indicates if mgt or CR slots (value 0 and 1 respectively) |
void Mac802_16BS::jobdrop | ( | mapptr | ) | [private] |
void Mac802_16BS::MarkGrantPending | ( | u_int32_t * | , | |
double | ||||
) | [private] |
void Mac802_16BS::SendMap | ( | ) | [private] |
This method creates the MAP message, creates the packet that contains the message and sends it.
u_int32_t Mac802_16BS::MarkUnusedSlots | ( | u_int32_t | num_slots | ) | [private] |
This method fills unused slots of the current map as unused. Or, if FILLWITHCONTOPS is defined, it fills with CR slots. The global mptr points to the current map.
num_slots | Number of unused slots in the map |
void Mac802_16BS::find_flowindex | ( | u_int16_t | , | |
int * | , | |||
int * | ||||
) | [private] |
void Mac802_16BS::SendFrame | ( | Packet * | p, | |
int | type | |||
) | [private] |
All frames that are to be sent over the DS channel will be sent down through this method.
void Mac802_16BS::BsSendHandler | ( | Event * | ) | [private, virtual] |
Reimplemented from Mac802_16.
void Mac802_16BS::dump_stats | ( | ) | [private] |
void Mac802_16BS::ParseExtHdr | ( | Packet * | ) | [private] |
void Mac802_16BS::dumpUGSJITTER | ( | char * | outputFile | ) | [private] |
This is called periodically (as of 3/26/05 it is piggybacked off the dumpBWBS mechanism). It computes a jitter statistic based on stats gathered since the last time this method was called. Each time a UGS allocation is made, the jitter is updated. This running total of jitter is simply the difference between the scheduled allocation time (based on the UGS grant interval) and the actual.
void Mac802_16BS::UpdateJitter | ( | int | ugs, | |
u_int16_t | flow_id, | |||
double | t | |||
) | [private] |
Called when the BS has allocated BW for this job in the next map.
flow_id | The flow or job to look at | |
t | The allocated time (j->alloc_stime) of the job |
int Mac802_16BS::find_size_map | ( | ) | [private] |
Calculate the size of MAP, all the IEs plus data-grant pending sizes..
int Mac802_16BS::NumContSlots | ( | mapptr * | ) | [private] |
int Mac802_16BS::ChkQoSJobs | ( | double | , | |
double | ||||
) | [private] |
int Mac802_16BS::classify | ( | Packet * | p, | |
char | dir, | |||
int * | find | |||
) | [private] |
Examines the packet and matches it to a flow in the SSRecord. The dir param determines if the upstream or downstream flow are looked at.
p | The packet | |
dir | DOWNSTREAM or UPSTREAM | |
find | This ptr variable is set with the index of the flow table entry. |
int Mac802_16BS::insert_mapjob | ( | int | , | |
jptr | , | |||
u_int32_t * | , | |||
int | ||||
) | [private] |
int Mac802_16BS::insert_mapjob | ( | struct job * | , | |
u_int32_t * | ||||
) | [private] |
int Mac802_16BS::find_ss | ( | int | t | ) | [private] |
Given the mac address parameter, this routine searches the SS table to return the SSRecord table index of the correct SS.
u_int32_t Mac802_16BS::MarkOtherAlloc | ( | u_int32_t | num_slots | ) | [private] |
This function will mark contention-slots and SM slots in map list
num_slots | Number of slots in the map |
u_int32_t Mac802_16BS::FillMap | ( | int | i, | |
int | ugs, | |||
int | rt_poll, | |||
int | nrt_poll, | |||
int | be | |||
) | [private] |
This is called when a MAP is to be sent. The mptr contains the start of the map.
mapptr Mac802_16BS::find_best_hole | ( | u_int32_t | n | ) | [private] |
This function returns a pointer to the map node where the best hole begins
n | The number of slots that we need to allocate |
mapptr Mac802_16BS::TryAlloc | ( | double | , | |
u_int32_t | ||||
) | [private] |
double Mac802_16BS::determine_deadline | ( | char | , | |
int | , | |||
int | ||||
) | [private] |
double Mac802_16BS::FitMap | ( | mapptr | j, | |
double | t | |||
) | [private] |
Try to fit job 'j' starting at 't'. Keep on trying till you reach the end of the MAP..
double Mac802_16BS::CalculateAckTime | ( | ) | [private] |
void Mac802_16BS::print_job_list | ( | int | i | ) | [private] |
Prints to stdout the contents of the desired job queue:
i | Indicates which job list to print |
void Mac802_16BS::print_map_list | ( | ) | [private] |
void Mac802_16BS::print_short_map_list | ( | Packet * | p | ) | [private] |
This method dumps all IE's associated with the map.
This method dumps all IE's associated with the map. The format: each MAP will begin with a code of 0 and have zero or more codes of 1,2,3.
p | The packet that contains the map message |
void Mac802_16BS::delete_maplist | ( | ) | [private] |
void Mac802_16BS::dumpBWBS | ( | char * | fileName | ) | [private] |
void Mac802_16BS::dumpFinalBSStats | ( | char * | fileName, | |
int | DSBW, | |||
int | USBW | |||
) | [private] |
void Mac802_16BS::dumpFinalSIDStats | ( | int | cindex, | |
int | findex, | |||
char * | fileName, | |||
int | DSBW | |||
) | [private] |
void Mac802_16BS::dumpFinalDSSIDS | ( | char * | fileName, | |
int | DSBW | |||
) | [private] |
void Mac802_16BS::dump802_16QueueStats | ( | char * | outputFile, | |
int | channelBW | |||
) | [private] |
Called periodically by a TCL script to monitor the queue in the DS direction. This method also computes the utilization of the DS channel for each iteration.
void Mac802_16BS::dump802_16UtilStats | ( | char * | outputFile, | |
int | DSBW, | |||
int | USBW | |||
) | [private] |
Called periodically by a TCL script to monitor the queue in the DS direction.
void Mac802_16BS::insert_pkt_at_Head | ( | Packet * | p, | |
int | cindex, | |||
int | findex | |||
) | [private] |
This method inserts the packet in the downstream Tx queue. It inserts at the head of the queue. If the Q is full, the packet at the tail is removed.
p | ptr to the frame | |
cindex | Holds the SSRecord table index associated with the SS that is the target. | |
findex | Holds the flow record entry index. |
int Mac802_16BS::len_mgmtqueue | ( | ) | [private] |
Packet * Mac802_16BS::deque_pkt | ( | ) | [private] |
int Mac802_16BS::packetTrace | ( | Packet * | p, | |
int | direction | |||
) | [private] |
p | A 802_16 frame | |
direction | direction is 0 when sent DS and 1 when arrival at US |
void Mac802_16BS::HandleOutData | ( | Packet * | p, | |
int | cindex, | |||
int | findex | |||
) | [private] |
Packet enters the BS for respective flow from this function
int Mac802_16BS::down_idle | ( | int | cindex, | |
int | findex, | |||
EventType | e, | |||
Packet * | p | |||
) | [private] |
tbindex | denotes the service-flow entry on which packet has been mapped |
int Mac802_16BS::down_decision | ( | int | , | |
int | , | |||
EventType | , | |||
Packet * | ||||
) | [private] |
int Mac802_16BS::down_tosend | ( | int | , | |
int | , | |||
EventType | , | |||
Packet * | ||||
) | [private] |
int Mac802_16BS::down_waitformap | ( | int | cindex, | |
int | findex, | |||
EventType | e, | |||
Packet * | p | |||
) | [private] |
This is called when certain events occur while a downstream flow is waiting for a MAP.
void Mac802_16BS::UpdateAllocationTable | ( | int | cindex, | |
int | findex | |||
) | [private] |
This function updates the allocation table for a service-flow when a MAP is received
void Mac802_16BS::UpdateJitter | ( | int | cindex, | |
int | findex | |||
) | [private] |
This is called whenever a MAP is received by a UGS flow. The statistic adds all error (scheduled allocation time from actual). Then the dumpUGSJitter method periodically obtains the mean jitter = runningJitter / samples
bool Mac802_16BS::insert_pkt | ( | Packet * | , | |
int | , | |||
int | ||||
) | [private] |
double Mac802_16BS::timer_expiration | ( | int | , | |
int | , | |||
Packet * | ||||
) | [private] |
Packet * Mac802_16BS::deque_pkt | ( | int | , | |
int | ||||
) | [private] |
void Mac802_16BS::insert_mgmtpkt | ( | Packet * | p, | |
int | cindex, | |||
int | findex | |||
) | [private] |
This method inserts the packet in the downstream Tx queue. It drops the packet if it's full.
p | ptr to the frame | |
cindex | Holds the SSRecord table index associated with the SS that is the target. | |
findex | Holds the flow record entry index. |
void Mac802_16BS::insert_sndlist | ( | double | , | |
int | , | |||
int | ||||
) | [private] |
void Mac802_16BS::BsSndTimerHandler | ( | Event * | e | ) | [private, virtual] |
Send timer to data packets from QoS scheduling services
Reimplemented from Mac802_16.
void Mac802_16BS::alloc_ul_bw | ( | double | map_stime, | |
double | map_etime, | |||
u_int32_t | num_slots | |||
) | [private] |
This is called when a MAP is to be sent. It allocates bw to the UL subframe.
void Mac802_16BS::alloc_dl_bw | ( | double | map_stime, | |
double | map_etime, | |||
u_int32_t | num_slots | |||
) | [private] |
This is called when a MAP is to be sent. It allocates bw to the DL subframe.
void Mac802_16BS::checkDeadline | ( | double | map_stime, | |
double | subframe_duration, | |||
u_int32_t & | num_slots | |||
) | [private] |
check which rtPS requests must be sent in the next frame in order to satisfy the maximum latency request.
void Mac802_16BS::checkMinimumBW | ( | u_int32_t & | num_slots, | |
priority_array_p & | pri_array, | |||
int & | size | |||
) | [private] |
Assign priority values for the requests in the intermetiate queue to decide wich ones will be scheduled. The priority computation considers the min_bw request, backlogged BW and granted BW in order to provide the min_bw request of each flow. The higher priority requests will be inserted in the high queue.
Allocate the array. Warning. You should deallocate this array after using it.
int Mac802_16BS::CanBeSent | ( | aptr & | alloc_list, | |
Packet * | p | |||
) | [private] |
p | The frame that already has been adjusted for all headers |
friend class Map802_16Timer [friend] |
friend class BsUcd802_16Timer [friend] |
friend class BsRng802_16Timer [friend] |
friend class BsSync802_16Timer [friend] |
friend class BsTxPkt802_16Timer [friend] |
friend class BsServiceFlowSendTimer [friend] |
friend class BsToken802_16Timer [friend] |
struct ss_record* Mac802_16BS::SSRecord |
u_int16_t Mac802_16BS::CurrIndexSSTable |
double Mac802_16BS::window_ [private] |
Map802_16Timer Mac802_16BS::mhMap_ [private] |
BsRng802_16Timer Mac802_16BS::mhRng_ [private] |
BsUcd802_16Timer Mac802_16BS::mhUcd_ [private] |
BsSync802_16Timer Mac802_16BS::mhSync_ [private] |
BsTxPkt802_16Timer Mac802_16BS::mhBsTxPkt_ [private] |
BsServiceFlowSendTimer Mac802_16BS::mhBsSend_ [private] |
BsUplinkSchedWindowTimer Mac802_16BS::mhWdw_ [private] |
BsToken802_16Timer Mac802_16BS::mhToken_ [private] |
tkptr Mac802_16BS::TokenList [private] |
struct bs_conf_param Mac802_16BS::Conf_Table_ [private] |
u_int16_t Mac802_16BS::SizeSSTable [private] |
struct bs_statistics Mac802_16BS::SSStatistics_ [private] |
struct job* Mac802_16BS::job_list[8] [private] |
mapptr Mac802_16BS::mptr [private] |
bs_sptr Mac802_16BS::BsSndList [private] |
double Mac802_16BS::map_stime [private] |
double Mac802_16BS::omap_stime [private] |
double Mac802_16BS::map_etime [private] |
double Mac802_16BS::omap_etime [private] |
double Mac802_16BS::map_acktime [private] |
double Mac802_16BS::AckTime [private] |
double Mac802_16BS::max_slots_pmap [private] |
double Mac802_16BS::next_map [private] |
int Mac802_16BS::numIE [private] |
int Mac802_16BS::map_lookahead [private] |
int Mac802_16BS::MAP_LOOKAHEAD [private] |
int Mac802_16BS::max_burst_slots [private] |
int Mac802_16BS::rem_overhead [private] |
int Mac802_16BS::MapPropDelay [private] |
int Mac802_16BS::size_rtqueue [private] |
int Mac802_16BS::avg_szrtqueue [private] |
double Mac802_16BS::last_mrqtime [private] |
int Mac802_16BS::size_bfqueue [private] |
int Mac802_16BS::avg_szbfqueue [private] |
double Mac802_16BS::last_mbfqtime [private] |
int Mac802_16BS::num_bfreq [private] |
int Mac802_16BS::avg_bfreq [private] |
double Mac802_16BS::last_mbfreq [private] |
int Mac802_16BS::num_rtreq [private] |
int Mac802_16BS::avg_rtreq [private] |
double Mac802_16BS::last_mrtreq [private] |
double Mac802_16BS::last_dmptime [private] |
u_int32_t Mac802_16BS::num_dgrant [private] |
u_int32_t Mac802_16BS::num_contention [private] |
u_int32_t Mac802_16BS::num_req [private] |
u_int32_t Mac802_16BS::num_gpend [private] |
u_int32_t Mac802_16BS::avg_dgrant [private] |
u_int32_t Mac802_16BS::avg_contention [private] |
u_int32_t Mac802_16BS::avg_req [private] |
u_int32_t Mac802_16BS::avg_gpend [private] |
u_int32_t Mac802_16BS::dropped_tokenq [private] |
u_int32_t Mac802_16BS::dropped_dsq [private] |
double Mac802_16BS::proportion [private] |
u_char Mac802_16BS::contention_thrhold [private] |
u_char Mac802_16BS::network_status [private] |
u_int32_t Mac802_16BS::rtpoll_ddlinemiss [private] |
u_int32_t Mac802_16BS::beffort_ddlinemiss [private] |
int32_t Mac802_16BS::num_rtslots [private] |
int32_t Mac802_16BS::num_nrtslots [private] |
int32_t Mac802_16BS::num_befslots [private] |
u_int32_t Mac802_16BS::num_adjust_slots [private] |
Event Mac802_16BS::intr [private] |
Event Mac802_16BS::uintr [private] |
Event Mac802_16BS::sintr [private] |
Event Mac802_16BS::rintr [private] |
Event Mac802_16BS::rxintr_ [private] |
Event Mac802_16BS::wintr [private] |
int Mac802_16BS::next_flowid [static, private] |
qlist Mac802_16BS::txq_ [private] |
int Mac802_16BS::qnp_ [private] |
int Mac802_16BS::qnb_ [private] |
int Mac802_16BS::max_qnp_ [private] |
int Mac802_16BS::max_qnb_ [private] |
int Mac802_16BS::min_qnp_ [private] |
int Mac802_16BS::min_qnb_ [private] |
int Mac802_16BS::queue_total_bytes_in [private] |
int Mac802_16BS::queue_total_bytes_out [private] |
double Mac802_16BS::util_total_bytes_US [private] |
double Mac802_16BS::util_total_bytes_DS [private] |
int Mac802_16BS::util_total_pkts_US [private] |
int Mac802_16BS::util_total_pkts_DS [private] |
double Mac802_16BS::util_bytes_US [private] |
double Mac802_16BS::util_bytes_DS [private] |
int Mac802_16BS::qlim_ [private] |
double Mac802_16BS::lastDumpTime [private] |
double Mac802_16BS::lastUtilDumpTime [private] |
int(Mac802_16BS::* Mac802_16BS::DOWNswitch[DOWNSTATES])(int, int, EventType, Packet *) [private] |