Package: simu5g.stack.mac
ILteMac
module interfaceInterface for the Medium Access Control (MAC) layer of the LTE Stack.
The LteMac module interface provides the definition for the MAC layer in the LTE protocol stack. The MAC layer sends and receives MAC Service Data Units (SDUs) from the Radio Link Control (RLC) layer and sends and receives MAC Protocol Data Units (PDUs) to the physical layer. The MAC layer is responsible for scheduling MAC PDUs from different logical connections into the available bandwidth in both uplink and downlink directions. Dynamic allocation of Resource Blocks (RBs) is carried out by the eNodeB on a Transmission Time Interval (TTI) basis, which occurs every 1 millisecond, and is assisted by User Equipment's Channel Status Information (CSI) to perform link adaptation, as well as Buffer Status Reports (BSRs, for uplink connections only). A Random Access procedure (RACH) is used by unscheduled UEs to request uplink resources. Scheduling policies are defined separately by dedicated C++ classes. The MAC layer also provides Hybrid Automatic Repeat reQuest (H-ARQ) functionalities, enabling feedback reporting and retransmission of incorrectly received MAC PDUs. Semi-persistent Scheduling (SPS), power control, and Discontinuous Reception (DRX) are not implemented.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
| Name | Type | Description |
|---|---|---|
| LteMacBase | compound module |
Base module for the Medium Access Control (MAC) layer of the LTE protocol stack. |
| LteMacEnb | compound module |
Extends the LteMacBase module by providing specific MAC functions on the eNodeB side. Specifically, it initializes and manages the scheduling classes responsible for resource allocation operations in both uplink and downlink directions, while also supporting Carrier Aggregation (CA). It manages the Random Access procedure (RAC) and the reception of Buffer Status Reports (BSRs) from UEs, as well as the transmission of scheduling grants to UEs allocated within the uplink bandwidth. For downlink connections, it notifies the Radio Link Control (RLC) layer when it is ready to receive MAC Service Data Units (SDUs) to build MAC Protocol Data Units (PDUs) and transmit them to the physical layer. |
| LteMacEnbD2D | compound module |
Extends LTE MAC functionalities at the eNodeB side to support device-to-device (D2D) communications. Specifically, it enhances resource allocation procedures to enable direct communication between User Equipments (UEs), i.e., it allocates resources for D2D transmissions. Network-assisted D2D is only implemented (out-of-coverage D2D is not supported). |
| LteMacUe | compound module |
Extends the LteMacBase module by providing specific MAC functions at the User Equipment (UE) side. For uplink connections, this module manages the initiation of the Random Access procedure (RAC) and the sending of Buffer Status Reports (BSRs) to the eNodeBs. Once it receives an uplink scheduling grant from the eNodeB, it is responsible for managing the local connections' scheduler and constructing MAC Protocol Data Units (PDUs) to be transmitted to the physical layer. |
| LteMacUeD2D | compound module |
Extends LTE MAC functionalities at the User Equipment side to support device-to-device (D2D) communications. Specifically, it customizes LteMacUe functionalities to support the transmission and reception of MAC Protocol Data Units (PDUs), Channel Status Information (CSI), and Buffer Status Reports (BSRs) over a D2D link. It supports D2D multicast transmission to nearby UEs belonging to a given multicast group. |
| NrMacGnb | compound module |
Provides functionalities for the Medium Access Control (MAC) of the New Radio (NR) protocol stack at the gNodeB (gNB) side. In particular, it extends the LteMacEnb module by initializing the NR version of the uplink scheduler and using, by default, the NR version of the Adaptive Modulation and Coding (AMC) module. |
| NrMacGnbD2D | compound module |
NR-gNB MAC with D2D support. Extends NrMacGnb with the device-to-device (D2D) deltas: it enhances resource allocation procedures to enable direct communication between UEs (network-assisted D2D). It is the NR counterpart of LteMacEnbD2D. |
| NrMacUe | compound module |
Provides functionalities for the Medium Access Control (MAC) of the New Radio (NR) protocol stack at the User Equipment (UE) side. In particular, it extends the LteMacUe module by redefining functions to support different numerology parameterizations. |
| NrMacUeD2D | compound module |
NR-UE MAC with D2D support. Extends NrMacUe with the device-to-device (D2D) deltas: it customizes the numerology-aware MAC to support the transmission and reception of MAC PDUs, CSI, and BSRs over a D2D link, including one-to-many D2D multicast transmission. It is the NR counterpart of LteMacUeD2D. |
Used in compound modules
| Name | Type | Description |
|---|---|---|
| LteNicBase | compound module |
The LteNicBase module serves as the foundational building block for LTE networking in Simu5G. It integrates protocols for LTE communication, including PDCP, RLC, MAC, and PHY layers. This base module allows higher-level modules, such as User Equipment (UE) and eNodeB (evolved Node B), to configure and utilize these layers according to their specific requirements. |
| NrNicUe | compound module |
Defines a User Equipment (UE) network interface card that supports both LTE and NR (New Radio) technologies. It extends the LteNicUe module by adding additional submodules and parameters to support NR-specific functionalities. D2D support is added by the NrNicUeD2D subtype. |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/mac |
Source code
// // Interface for the Medium Access Control (MAC) layer of the LTE Stack. // // The LteMac module interface provides the definition for the MAC layer in the LTE protocol stack. // The MAC layer sends and receives MAC Service Data Units (SDUs) from the Radio Link Control (RLC) // layer and sends and receives MAC Protocol Data Units (PDUs) to the physical layer. The MAC layer // is responsible for scheduling MAC PDUs from different logical connections into the available // bandwidth in both uplink and downlink directions. // Dynamic allocation of Resource Blocks (RBs) is carried out by the eNodeB on a Transmission Time // Interval (TTI) basis, which occurs every 1 millisecond, and is assisted by User Equipment's Channel // Status Information (CSI) to perform link adaptation, as well as Buffer Status Reports (BSRs, for // uplink connections only). A Random Access procedure (RACH) is used by unscheduled UEs to // request uplink resources. Scheduling policies are defined separately by dedicated C++ classes. // The MAC layer also provides Hybrid Automatic Repeat reQuest (H-ARQ) functionalities, enabling // feedback reporting and retransmission of incorrectly received MAC PDUs. // Semi-persistent Scheduling (SPS), power control, and Discontinuous Reception (DRX) are not // implemented. // moduleinterface ILteMac { parameters: @display("i=block/mac"); gates: input upperLayerIn; // From RLC output upperLayerOut; // To RLC input phyIn; // From PHY output phyOut; // To PHY }File: src/simu5g/stack/mac/ILteMac.ned