5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-mac-sap.h
1// Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
2//
3// SPDX-License-Identifier: GPL-2.0-only
4//
5// Author: Nicola Baldo <nbaldo@cttc.es>
6
7#ifndef NR_MAC_SAP_H
8#define NR_MAC_SAP_H
9
10#include "ns3/packet.h"
11
12namespace ns3
13{
14
23{
24 public:
25 virtual ~NrMacSapProvider() = default;
26
32 {
33 Ptr<Packet> pdu;
34 uint16_t rnti;
35 uint8_t lcid;
36 uint8_t layer;
38 uint8_t harqProcessId;
42 };
43
50 virtual void TransmitPdu(TransmitPduParameters params) = 0;
51
56 {
57 uint16_t rnti;
58 uint8_t lcid;
59 uint32_t txQueueSize;
60 uint16_t txQueueHolDelay;
61 uint32_t retxQueueSize;
63 uint16_t
65 bool expRbsTimer;
66 };
67
74};
75
84{
85 public:
86 virtual ~NrMacSapUser() = default;
87
93 {
104 uint8_t layer,
105 uint8_t harqId,
106 uint8_t ccId,
107 uint16_t rnti,
108 uint8_t lcId)
109 {
110 this->bytes = bytes;
111 this->layer = layer;
112 this->harqId = harqId;
113 this->componentCarrierId = ccId;
114 this->rnti = rnti;
115 this->lcid = lcId;
116 }
117
124
125 uint32_t bytes;
126 uint8_t layer;
127 uint8_t harqId;
129 uint16_t rnti;
130 uint8_t lcid;
131 };
132
140
147 virtual void NotifyHarqDeliveryFailure() = 0;
148
154 {
159 {
160 }
161
168 ReceivePduParameters(const Ptr<Packet>& p, uint16_t rnti, uint8_t lcid)
169 {
170 this->p = p;
171 this->rnti = rnti;
172 this->lcid = lcid;
173 }
174
175 Ptr<Packet> p;
176 uint16_t rnti;
177 uint8_t lcid;
178 };
179
185 virtual void ReceivePdu(ReceivePduParameters params) = 0;
186};
187
189template <class C>
191{
192 public:
199
200 // inherited from NrMacSapProvider
201 void TransmitPdu(TransmitPduParameters params) override;
203
204 private:
205 C* m_mac;
206};
207
208template <class C>
213
214template <class C>
215void
217{
218 m_mac->DoTransmitPdu(params);
219}
220
221template <class C>
222void
224{
225 m_mac->DoReportBufferStatus(params);
226}
227
228} // namespace ns3
229
230#endif // NR_MAC_SAP_H
GnbMacMemberNrMacSapProvider class.
Definition nr-mac-sap.h:191
void ReportBufferStatus(ReportBufferStatusParameters params) override
Definition nr-mac-sap.h:223
void TransmitPdu(TransmitPduParameters params) override
Definition nr-mac-sap.h:216
virtual void ReportBufferStatus(ReportBufferStatusParameters params)=0
virtual void TransmitPdu(TransmitPduParameters params)=0
virtual void NotifyTxOpportunity(TxOpportunityParameters params)=0
virtual void NotifyHarqDeliveryFailure()=0
virtual void ReceivePdu(ReceivePduParameters params)=0
ReceivePduParameters()
ReceivePduParameters default constructor (DEPRECATED)
Definition nr-mac-sap.h:158
ReceivePduParameters(const Ptr< Packet > &p, uint16_t rnti, uint8_t lcid)
ReceivePduParameters constructor.
Definition nr-mac-sap.h:168
TxOpportunityParameters(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t ccId, uint16_t rnti, uint8_t lcId)
TxOpportunityParameters constructor.
Definition nr-mac-sap.h:103
TxOpportunityParameters()
TxOpportunityParameters default constructor (DEPRECATED)
Definition nr-mac-sap.h:121