author | mmiozzo |
Mon, 08 Oct 2012 17:18:22 +0200 | |
changeset 9351 | 6e074e67a1ad |
parent 8726 | f6f0e2531457 |
child 9451 | 116fd6ad4640 |
permissions | -rw-r--r-- |
7886 | 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 |
||
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
22 |
#include "ns3/log.h" |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
23 |
#include "ns3/simulator.h" |
7886 | 24 |
|
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
25 |
#include "ns3/lte-rlc.h" |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
26 |
#include "ns3/lte-rlc-tag.h" |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
27 |
// #include "lte-mac-sap.h" |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
28 |
#include "ns3/lte-rlc-sap.h" |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
29 |
// #include "ff-mac-sched-sap.h" |
7886 | 30 |
|
31 |
NS_LOG_COMPONENT_DEFINE ("LteRlc"); |
|
32 |
||
33 |
namespace ns3 { |
|
34 |
||
35 |
||
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
36 |
|
7886 | 37 |
/////////////////////////////////////// |
38 |
||
39 |
class LteRlcSpecificLteMacSapUser : public LteMacSapUser |
|
40 |
{ |
|
41 |
public: |
|
42 |
LteRlcSpecificLteMacSapUser (LteRlc* rlc); |
|
43 |
||
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
44 |
// Interface implemented from LteMacSapUser |
9351
6e074e67a1ad
HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents:
8726
diff
changeset
|
45 |
virtual void NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId); |
7886 | 46 |
virtual void NotifyHarqDeliveryFailure (); |
47 |
virtual void ReceivePdu (Ptr<Packet> p); |
|
48 |
||
49 |
private: |
|
50 |
LteRlcSpecificLteMacSapUser (); |
|
51 |
LteRlc* m_rlc; |
|
52 |
}; |
|
53 |
||
54 |
LteRlcSpecificLteMacSapUser::LteRlcSpecificLteMacSapUser (LteRlc* rlc) |
|
55 |
: m_rlc (rlc) |
|
56 |
{ |
|
57 |
} |
|
58 |
||
59 |
LteRlcSpecificLteMacSapUser::LteRlcSpecificLteMacSapUser () |
|
60 |
{ |
|
61 |
} |
|
62 |
||
63 |
void |
|
9351
6e074e67a1ad
HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents:
8726
diff
changeset
|
64 |
LteRlcSpecificLteMacSapUser::NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) |
7886 | 65 |
{ |
9351
6e074e67a1ad
HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents:
8726
diff
changeset
|
66 |
m_rlc->DoNotifyTxOpportunity (bytes, layer, harqId); |
7886 | 67 |
} |
68 |
||
69 |
void |
|
70 |
LteRlcSpecificLteMacSapUser::NotifyHarqDeliveryFailure () |
|
71 |
{ |
|
72 |
m_rlc->DoNotifyHarqDeliveryFailure (); |
|
73 |
} |
|
74 |
||
75 |
void |
|
76 |
LteRlcSpecificLteMacSapUser::ReceivePdu (Ptr<Packet> p) |
|
77 |
{ |
|
78 |
m_rlc->DoReceivePdu (p); |
|
79 |
} |
|
80 |
||
81 |
||
82 |
/////////////////////////////////////// |
|
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
83 |
|
7905
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
84 |
NS_OBJECT_ENSURE_REGISTERED (LteRlc); |
7886 | 85 |
|
86 |
LteRlc::LteRlc () |
|
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
87 |
: m_rlcSapUser (0), |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
88 |
m_macSapProvider (0), |
7886 | 89 |
m_rnti (0), |
90 |
m_lcid (0) |
|
91 |
{ |
|
92 |
NS_LOG_FUNCTION (this); |
|
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
93 |
m_rlcSapProvider = new LteRlcSpecificLteRlcSapProvider<LteRlc> (this); |
7886 | 94 |
m_macSapUser = new LteRlcSpecificLteMacSapUser (this); |
95 |
} |
|
96 |
||
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
97 |
TypeId LteRlc::GetTypeId (void) |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
98 |
{ |
7905
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
99 |
static TypeId tid = TypeId ("ns3::LteRlc") |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
100 |
.SetParent<Object> () |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
101 |
.AddTraceSource ("TxPDU", |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
102 |
"PDU transmission notified to the MAC.", |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
103 |
MakeTraceSourceAccessor (&LteRlc::m_txPdu)) |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
104 |
.AddTraceSource ("RxPDU", |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
105 |
"PDU received.", |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
106 |
MakeTraceSourceAccessor (&LteRlc::m_rxPdu)) |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
107 |
; |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
108 |
return tid; |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
109 |
} |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
110 |
|
7886 | 111 |
void |
8374
5a07200122a6
coding style and rnti issue
Manuel Requena <manuel.requena@cttc.es>
parents:
8364
diff
changeset
|
112 |
LteRlc::SetRnti (uint16_t rnti) |
7886 | 113 |
{ |
8374
5a07200122a6
coding style and rnti issue
Manuel Requena <manuel.requena@cttc.es>
parents:
8364
diff
changeset
|
114 |
NS_LOG_FUNCTION (this << (uint32_t) rnti); |
7886 | 115 |
m_rnti = rnti; |
116 |
} |
|
117 |
||
118 |
void |
|
119 |
LteRlc::SetLcId (uint8_t lcId) |
|
120 |
{ |
|
121 |
NS_LOG_FUNCTION (this << (uint32_t) lcId); |
|
122 |
m_lcid = lcId; |
|
123 |
} |
|
124 |
||
125 |
LteRlc::~LteRlc () |
|
126 |
{ |
|
127 |
NS_LOG_FUNCTION (this); |
|
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
128 |
delete (m_rlcSapProvider); |
7886 | 129 |
delete (m_macSapUser); |
130 |
} |
|
131 |
||
132 |
void |
|
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
133 |
LteRlc::SetLteRlcSapUser (LteRlcSapUser * s) |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
134 |
{ |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
135 |
NS_LOG_FUNCTION (this << s); |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
136 |
m_rlcSapUser = s; |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
137 |
} |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
138 |
|
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
139 |
LteRlcSapProvider* |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
140 |
LteRlc::GetLteRlcSapProvider () |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
141 |
{ |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
142 |
NS_LOG_FUNCTION (this); |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
143 |
return m_rlcSapProvider; |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
144 |
} |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
145 |
|
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
146 |
void |
7886 | 147 |
LteRlc::SetLteMacSapProvider (LteMacSapProvider * s) |
148 |
{ |
|
149 |
NS_LOG_FUNCTION (this << s); |
|
150 |
m_macSapProvider = s; |
|
151 |
} |
|
152 |
||
153 |
LteMacSapUser* |
|
154 |
LteRlc::GetLteMacSapUser () |
|
155 |
{ |
|
156 |
NS_LOG_FUNCTION (this); |
|
157 |
return m_macSapUser; |
|
158 |
} |
|
159 |
||
160 |
||
161 |
||
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
162 |
//////////////////////////////////////// |
7886 | 163 |
|
7905
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
164 |
NS_OBJECT_ENSURE_REGISTERED (LteRlcSm); |
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
165 |
|
8090
bb044038a72a
LteRlc: Remove debug code
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8034
diff
changeset
|
166 |
LteRlcSm::LteRlcSm () |
7886 | 167 |
{ |
7905
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
168 |
|
7886 | 169 |
NS_LOG_FUNCTION (this); |
170 |
Simulator::ScheduleNow (&LteRlcSm::Start, this); |
|
171 |
} |
|
172 |
||
173 |
LteRlcSm::~LteRlcSm () |
|
174 |
{ |
|
8090
bb044038a72a
LteRlc: Remove debug code
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8034
diff
changeset
|
175 |
|
7886 | 176 |
} |
177 |
||
7905
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
178 |
TypeId |
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
179 |
LteRlcSm::GetTypeId (void) |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
180 |
{ |
7905
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
181 |
static TypeId tid = TypeId ("ns3::LteRlcSm") |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
182 |
.SetParent<LteRlc> () |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
183 |
.AddConstructor<LteRlcSm> () |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
184 |
; |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
185 |
return tid; |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
186 |
} |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
187 |
|
7886 | 188 |
void |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
189 |
LteRlcSm::DoTransmitPdcpPdu (Ptr<Packet> p) |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
190 |
{ |
8392
d4fcab8ee39a
fixed connection of RLC traces
Nicola Baldo <nbaldo@cttc.es>
parents:
8374
diff
changeset
|
191 |
NS_LOG_FUNCTION (this << p); |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
192 |
} |
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
193 |
|
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
194 |
void |
7886 | 195 |
LteRlcSm::DoReceivePdu (Ptr<Packet> p) |
196 |
{ |
|
8392
d4fcab8ee39a
fixed connection of RLC traces
Nicola Baldo <nbaldo@cttc.es>
parents:
8374
diff
changeset
|
197 |
NS_LOG_FUNCTION (this << p); |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
198 |
// RLC Performance evaluation |
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
199 |
RlcTag rlcTag; |
7905
80557b09aa7f
Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents:
7901
diff
changeset
|
200 |
Time delay; |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
201 |
if (p->FindFirstMatchingByteTag(rlcTag)) |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
202 |
{ |
8374
5a07200122a6
coding style and rnti issue
Manuel Requena <manuel.requena@cttc.es>
parents:
8364
diff
changeset
|
203 |
delay = Simulator::Now() - rlcTag.GetSenderTimestamp (); |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
204 |
} |
8600
c46da3ab9bf5
proper use of log macros in lte-rlc.cc
Nicola Baldo <nbaldo@cttc.es>
parents:
8425
diff
changeset
|
205 |
NS_LOG_LOGIC (" RNTI=" << m_rnti |
c46da3ab9bf5
proper use of log macros in lte-rlc.cc
Nicola Baldo <nbaldo@cttc.es>
parents:
8425
diff
changeset
|
206 |
<< " LCID=" << (uint32_t) m_lcid |
c46da3ab9bf5
proper use of log macros in lte-rlc.cc
Nicola Baldo <nbaldo@cttc.es>
parents:
8425
diff
changeset
|
207 |
<< " size=" << p->GetSize () |
c46da3ab9bf5
proper use of log macros in lte-rlc.cc
Nicola Baldo <nbaldo@cttc.es>
parents:
8425
diff
changeset
|
208 |
<< " delay=" << delay.GetNanoSeconds ()); |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
209 |
m_rxPdu(m_rnti, m_lcid, p->GetSize (), delay.GetNanoSeconds () ); |
7886 | 210 |
} |
211 |
||
212 |
void |
|
9351
6e074e67a1ad
HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents:
8726
diff
changeset
|
213 |
LteRlcSm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) |
7886 | 214 |
{ |
8392
d4fcab8ee39a
fixed connection of RLC traces
Nicola Baldo <nbaldo@cttc.es>
parents:
8374
diff
changeset
|
215 |
NS_LOG_FUNCTION (this << bytes); |
7886 | 216 |
LteMacSapProvider::TransmitPduParameters params; |
217 |
params.pdu = Create<Packet> (bytes); |
|
218 |
params.rnti = m_rnti; |
|
219 |
params.lcid = m_lcid; |
|
8714
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8425
diff
changeset
|
220 |
params.layer = layer; |
9351
6e074e67a1ad
HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents:
8726
diff
changeset
|
221 |
params.harqProcessId = harqId; |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
222 |
|
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
223 |
// RLC Performance evaluation |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
224 |
RlcTag tag (Simulator::Now()); |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
225 |
params.pdu->AddByteTag (tag); |
8600
c46da3ab9bf5
proper use of log macros in lte-rlc.cc
Nicola Baldo <nbaldo@cttc.es>
parents:
8425
diff
changeset
|
226 |
NS_LOG_LOGIC (" RNTI=" << m_rnti |
c46da3ab9bf5
proper use of log macros in lte-rlc.cc
Nicola Baldo <nbaldo@cttc.es>
parents:
8425
diff
changeset
|
227 |
<< " LCID=" << (uint32_t) m_lcid |
c46da3ab9bf5
proper use of log macros in lte-rlc.cc
Nicola Baldo <nbaldo@cttc.es>
parents:
8425
diff
changeset
|
228 |
<< " size=" << bytes); |
8364
0d7da39de404
Add new RLC interfaces to the generic RLC entity
Manuel Requena <manuel.requena@cttc.es>
parents:
8148
diff
changeset
|
229 |
m_txPdu(m_rnti, m_lcid, bytes); |
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7886
diff
changeset
|
230 |
|
7886 | 231 |
m_macSapProvider->TransmitPdu (params); |
8425
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
232 |
ReportBufferStatus (); |
7886 | 233 |
} |
234 |
||
235 |
void |
|
236 |
LteRlcSm::DoNotifyHarqDeliveryFailure () |
|
237 |
{ |
|
238 |
NS_LOG_FUNCTION (this); |
|
239 |
} |
|
240 |
||
241 |
void |
|
242 |
LteRlcSm::Start () |
|
243 |
{ |
|
244 |
NS_LOG_FUNCTION (this); |
|
8425
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
245 |
ReportBufferStatus (); |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
246 |
} |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
247 |
|
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
248 |
void |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
249 |
LteRlcSm::ReportBufferStatus () |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
250 |
{ |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
251 |
NS_LOG_FUNCTION (this); |
7886 | 252 |
LteMacSapProvider::ReportBufferStatusParameters p; |
253 |
p.rnti = m_rnti; |
|
254 |
p.lcid = m_lcid; |
|
8425
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
255 |
p.txQueueSize = 80000; |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
256 |
p.txQueueHolDelay = 10; |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
257 |
p.retxQueueSize = 0; |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
258 |
p.retxQueueHolDelay = 0; |
1c3cdeda035c
make RlcSm send repeated buffer status reports
Nicola Baldo <nbaldo@cttc.es>
parents:
8392
diff
changeset
|
259 |
p.statusPduSize = 0; |
7886 | 260 |
m_macSapProvider->ReportBufferStatus (p); |
261 |
} |
|
262 |
||
263 |
||
264 |
||
265 |
||
266 |
////////////////////////////////////////// |
|
267 |
||
268 |
// LteRlcTm::~LteRlcTm () |
|
269 |
// { |
|
270 |
// } |
|
271 |
||
272 |
////////////////////////////////////////// |
|
273 |
||
274 |
// LteRlcUm::~LteRlcUm () |
|
275 |
// { |
|
276 |
// } |
|
277 |
||
278 |
////////////////////////////////////////// |
|
279 |
||
280 |
// LteRlcAm::~LteRlcAm () |
|
281 |
// { |
|
282 |
// } |
|
283 |
||
284 |
||
285 |
} // namespace ns3 |