UmtsMacModule Class Reference

Inheritance diagram for UmtsMacModule:

Inheritance graph
[legend]
Collaboration diagram for UmtsMacModule:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 UmtsMacModule ()
 ~UmtsMacModule ()
void recv (Packet *p)
int command (int argc, const char *const *argv)
virtual void schedule (Packet *p)
virtual void transmit ()

Protected Attributes

int src_rlc_id_
int dst_rlc_id_
int me_code_id_
double slot_duration_
int TTI_PDUs_
 duration of a slot within a TTI
double TTI_
 number of slots in a TTI_
double interleaving_
 TTI duration.
std::queue< Packet * > Q
UmtsMacTimer tx_timer
 MAC queue used for packet scheduling.
Event tx_event
 Timer used to schedule transmissions.
double initslotoffset_

Detailed Description

Definition at line 58 of file mac-module.h.


Member Function Documentation

void UmtsMacModule::recv ( Packet *  p  )  [virtual]

Abstract method which has to be filled with the ad-hoc operations that the module has to do to the packet received

Parameters:
p pointer to the packet will be received
See also:
SAP, ChSAP

Implements Module.

Definition at line 112 of file mac-module.cc.

References hdr_umtsphy::data, DOWN, Module::drop(), dst_rlc_id_, hdr_rlc::dst_rlc_id_, schedule(), Module::sendUp(), src_rlc_id_, and UP.

Here is the call graph for this function:

int UmtsMacModule::command ( int  argc,
const char *const *  argv 
) [virtual]

TCL command interpreter. It implements the following OTcl methods:

Moreover it inherits all the OTcl method of PlugIn

Parameters:
argc number of arguments in argv
argv array of strings which are the comand parameters (Note that argv[0] is the name of the object)
Returns:
TCL_OK or TCL_ERROR whether the command has been dispatched succesfully or no
See also:
PlugIn

Reimplemented from Module.

Definition at line 69 of file mac-module.cc.

References Module::command(), initslotoffset_, slot_duration_, tx_event, and tx_timer.

Here is the call graph for this function:

void UmtsMacModule::schedule ( Packet *  p  )  [virtual]

This MAC implementation supposes the RLC layer sends no more than the amount of data which the MAC layer can transmit

Definition at line 167 of file mac-module.cc.

References Q, and TTI_PDUs_.

Referenced by recv().


Member Data Documentation

int UmtsMacModule::dst_rlc_id_ [protected]

id of the RLC connected above this MAC (if this MAC is at a BS, the upper RLC entity might be in the RNC and connected to this MAC by means of the Iub interface)

Definition at line 77 of file mac-module.h.

Referenced by recv(), transmit(), and UmtsMacModule().

int UmtsMacModule::me_code_id_ [protected]

the id of the other RLC instance connected to the RLC above this MAC

Definition at line 79 of file mac-module.h.

Referenced by transmit(), and UmtsMacModule().

double UmtsMacModule::slot_duration_ [protected]

corresponding to dst_rlc_id. Note that it is used only in the core network to determine which is the destination. It is not de facto used at Mobile Equipments since all base station attempt to receive all incoming transmissions anyway.

Definition at line 87 of file mac-module.h.

Referenced by command(), transmit(), and UmtsMacModule().

std::queue<Packet*> UmtsMacModule::Q [protected]

interleaving duration. In practice, delay between MAC and PHY

Definition at line 94 of file mac-module.h.

Referenced by schedule(), and transmit().

double UmtsMacModule::initslotoffset_ [protected]

Almost unused, it is only required by the interface... maybe using a NULL pointer instead?

Definition at line 102 of file mac-module.h.

Referenced by command(), and UmtsMacModule().


The documentation for this class was generated from the following files:
Generated on Wed Nov 26 15:52:37 2008 for NS-MIRACLE library by  doxygen 1.5.2