A Discrete-Event Network Simulator
API
lte-mac-sap.h
Go to the documentation of this file.
1/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation;
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * Author: Nicola Baldo <nbaldo@cttc.es>
19 */
20
21#ifndef LTE_MAC_SAP_H
22#define LTE_MAC_SAP_H
23
24#include <ns3/packet.h>
25
26namespace ns3 {
27
28
29
37{
38public:
39 virtual ~LteMacSapProvider ();
40
46 {
48 uint16_t rnti;
49 uint8_t lcid;
50 uint8_t layer;
51 uint8_t harqProcessId;
53 };
54
61 virtual void TransmitPdu (TransmitPduParameters params) = 0;
62
63
68 {
69 uint16_t rnti;
70 uint8_t lcid;
72 uint16_t txQueueHolDelay;
75 uint16_t statusPduSize;
76 };
77
84
85
86};
87
88
96{
97public:
98 virtual ~LteMacSapUser ();
104 {
115 uint8_t ccId, uint16_t rnti, uint8_t lcId)
116 {
117 this->bytes = bytes;
118 this->layer = layer;
119 this->harqId = harqId;
120 this->componentCarrierId = ccId;
121 this->rnti = rnti;
122 this->lcid = lcId;
123 }
128
130 uint8_t layer;
131 uint8_t harqId;
133 uint16_t rnti;
134 uint8_t lcid;
135 };
143
150 virtual void NotifyHarqDeliveryFailure () = 0;
151
157 {
162
169 ReceivePduParameters (const Ptr<Packet> &p, uint16_t rnti, uint8_t lcid)
170 {
171 this->p = p;
172 this->rnti = rnti;
173 this->lcid = lcid;
174 }
176 uint16_t rnti;
177 uint8_t lcid;
178 };
184 virtual void ReceivePdu (ReceivePduParameters params) = 0;
185
186};
187
189template <class C>
191{
192public:
199
200 // inherited from LteMacSapProvider
201 virtual void TransmitPdu (TransmitPduParameters params);
203
204private:
205 C* m_mac;
206};
207
208
209template <class C>
211 : m_mac (mac)
212{
213}
214
215template <class C>
217{
218 m_mac->DoTransmitPdu (params);
219}
220
221template <class C>
223{
224 m_mac->DoReportBufferStatus (params);
225}
226
227
228} // namespace ns3
229
230
231#endif // LTE_MAC_SAP_H
EnbMacMemberLteMacSapProvider class.
Definition: lte-mac-sap.h:191
virtual void TransmitPdu(TransmitPduParameters params)
send an RLC PDU to the MAC for transmission.
Definition: lte-mac-sap.h:216
EnbMacMemberLteMacSapProvider(C *mac)
Constructor.
Definition: lte-mac-sap.h:210
virtual void ReportBufferStatus(ReportBufferStatusParameters params)
Report the RLC buffer status to the MAC.
Definition: lte-mac-sap.h:222
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:37
virtual void TransmitPdu(TransmitPduParameters params)=0
send an RLC PDU to the MAC for transmission.
virtual void ReportBufferStatus(ReportBufferStatusParameters params)=0
Report the RLC buffer status to the MAC.
virtual ~LteMacSapProvider()
Definition: lte-mac-sap.cc:28
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:96
virtual void NotifyTxOpportunity(TxOpportunityParameters params)=0
Called by the MAC to notify the RLC that the scheduler granted a transmission opportunity to this RLC...
virtual ~LteMacSapUser()
Definition: lte-mac-sap.cc:32
virtual void NotifyHarqDeliveryFailure()=0
Called by the MAC to notify the RLC that an HARQ process related to this RLC instance has failed.
virtual void ReceivePdu(ReceivePduParameters params)=0
Called by the MAC to notify the RLC of the reception of a new PDU.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
mac
Definition: third.py:96
Parameters for LteMacSapProvider::ReportBufferStatus.
Definition: lte-mac-sap.h:68
uint32_t txQueueSize
the current size of the RLC transmission queue
Definition: lte-mac-sap.h:71
uint16_t retxQueueHolDelay
the Head Of Line delay of the retransmission queue
Definition: lte-mac-sap.h:74
uint16_t txQueueHolDelay
the Head Of Line delay of the transmission queue
Definition: lte-mac-sap.h:72
uint32_t retxQueueSize
the current size of the RLC retransmission queue in bytes
Definition: lte-mac-sap.h:73
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition: lte-mac-sap.h:70
uint16_t rnti
the C-RNTI identifying the UE
Definition: lte-mac-sap.h:69
uint16_t statusPduSize
the current size of the pending STATUS RLC PDU message in bytes
Definition: lte-mac-sap.h:75
Parameters for LteMacSapProvider::TransmitPdu.
Definition: lte-mac-sap.h:46
uint16_t rnti
the C-RNTI identifying the UE
Definition: lte-mac-sap.h:48
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition: lte-mac-sap.h:49
uint8_t componentCarrierId
the component carrier id corresponding to the sending Mac istance
Definition: lte-mac-sap.h:52
uint8_t harqProcessId
the HARQ process id that was passed by the MAC in the call to NotifyTxOpportunity that generated this...
Definition: lte-mac-sap.h:51
uint8_t layer
the layer value that was passed by the MAC in the call to NotifyTxOpportunity that generated this PDU
Definition: lte-mac-sap.h:50
Parameters for LteMacSapUser::ReceivePdu.
Definition: lte-mac-sap.h:157
Ptr< Packet > p
the RLC PDU to be received
Definition: lte-mac-sap.h:175
uint8_t lcid
the logical channel id
Definition: lte-mac-sap.h:177
ReceivePduParameters()
ReceivePduParameters default constructor (DEPRECATED)
Definition: lte-mac-sap.h:161
uint16_t rnti
the C-RNTI identifying the UE
Definition: lte-mac-sap.h:176
ReceivePduParameters(const Ptr< Packet > &p, uint16_t rnti, uint8_t lcid)
ReceivePduParameters constructor.
Definition: lte-mac-sap.h:169
Parameters for LteMacSapUser::NotifyTxOpportunity.
Definition: lte-mac-sap.h:104
uint16_t rnti
the C-RNTI identifying the UE
Definition: lte-mac-sap.h:133
uint32_t bytes
the number of bytes to transmit
Definition: lte-mac-sap.h:129
uint8_t componentCarrierId
the component carrier id
Definition: lte-mac-sap.h:132
uint8_t layer
the layer of transmission (MIMO)
Definition: lte-mac-sap.h:130
TxOpportunityParameters(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t ccId, uint16_t rnti, uint8_t lcId)
TxOpportunityParameters constructor.
Definition: lte-mac-sap.h:114
uint8_t lcid
the logical channel id
Definition: lte-mac-sap.h:134
TxOpportunityParameters()
TxOpportunityParameters default constructor (DEPRECATED)
Definition: lte-mac-sap.h:127