A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
lte-rlc-tm.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011,2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Manuel Requena <manuel.requena@cttc.es>
18
* Nicola Baldo <nbaldo@cttc.es>
19
*/
20
21
#ifndef LTE_RLC_TM_H
22
#define LTE_RLC_TM_H
23
24
#include "
lte-rlc.h
"
25
26
#include <ns3/event-id.h>
27
28
#include <map>
29
30
namespace
ns3
31
{
32
40
class
LteRlcTm
:
public
LteRlc
41
{
42
public
:
43
LteRlcTm
();
44
~LteRlcTm
()
override
;
49
static
TypeId
GetTypeId
();
50
void
DoDispose
()
override
;
51
57
void
DoTransmitPdcpPdu
(
Ptr<Packet>
p)
override
;
58
64
void
DoNotifyTxOpportunity
(
LteMacSapUser::TxOpportunityParameters
txOpParams)
override
;
68
void
DoNotifyHarqDeliveryFailure
()
override
;
69
void
DoReceivePdu
(
LteMacSapUser::ReceivePduParameters
rxPduParams)
override
;
70
71
private
:
73
void
ExpireRbsTimer
();
75
void
DoReportBufferStatus
();
76
77
private
:
81
struct
TxPdu
82
{
88
TxPdu
(
const
Ptr<Packet>
& pdu,
const
Time
& time)
89
:
m_pdu
(pdu),
90
m_waitingSince
(time)
91
{
92
}
93
94
TxPdu
() =
delete
;
95
96
Ptr<Packet>
m_pdu
;
97
Time
m_waitingSince
;
98
};
99
100
std::vector<TxPdu>
m_txBuffer
;
101
102
uint32_t
m_maxTxBufferSize
;
103
uint32_t
m_txBufferSize
;
104
105
EventId
m_rbsTimer
;
106
};
107
108
}
// namespace ns3
109
110
#endif
// LTE_RLC_TM_H
ns3::EventId
An identifier for simulation events.
Definition:
event-id.h:55
ns3::LteRlc
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE,...
Definition:
lte-rlc.h:49
ns3::LteRlcTm
LTE RLC Transparent Mode (TM), see 3GPP TS 36.322.
Definition:
lte-rlc-tm.h:41
ns3::LteRlcTm::DoReceivePdu
void DoReceivePdu(LteMacSapUser::ReceivePduParameters rxPduParams) override
Receive PDU function.
Definition:
lte-rlc-tm.cc:161
ns3::LteRlcTm::DoReportBufferStatus
void DoReportBufferStatus()
Report buffer status.
Definition:
lte-rlc-tm.cc:176
ns3::LteRlcTm::DoNotifyTxOpportunity
void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters txOpParams) override
MAC SAP.
Definition:
lte-rlc-tm.cc:106
ns3::LteRlcTm::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition:
lte-rlc-tm.cc:46
ns3::LteRlcTm::~LteRlcTm
~LteRlcTm() override
Definition:
lte-rlc-tm.cc:40
ns3::LteRlcTm::m_txBuffer
std::vector< TxPdu > m_txBuffer
Transmission buffer.
Definition:
lte-rlc-tm.h:100
ns3::LteRlcTm::ExpireRbsTimer
void ExpireRbsTimer()
Expire RBS timer function.
Definition:
lte-rlc-tm.cc:202
ns3::LteRlcTm::m_txBufferSize
uint32_t m_txBufferSize
transmit buffer size
Definition:
lte-rlc-tm.h:103
ns3::LteRlcTm::m_rbsTimer
EventId m_rbsTimer
RBS timer.
Definition:
lte-rlc-tm.h:105
ns3::LteRlcTm::LteRlcTm
LteRlcTm()
Definition:
lte-rlc-tm.cc:33
ns3::LteRlcTm::DoNotifyHarqDeliveryFailure
void DoNotifyHarqDeliveryFailure() override
Notify HARQ deliver failure.
Definition:
lte-rlc-tm.cc:155
ns3::LteRlcTm::DoTransmitPdcpPdu
void DoTransmitPdcpPdu(Ptr< Packet > p) override
RLC SAP.
Definition:
lte-rlc-tm.cc:75
ns3::LteRlcTm::m_maxTxBufferSize
uint32_t m_maxTxBufferSize
maximum transmit buffer size
Definition:
lte-rlc-tm.h:102
ns3::LteRlcTm::DoDispose
void DoDispose() override
Destructor implementation.
Definition:
lte-rlc-tm.cc:61
ns3::Ptr< Packet >
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition:
nstime.h:105
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
lte-rlc.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteMacSapUser::ReceivePduParameters
Parameters for LteMacSapUser::ReceivePdu.
Definition:
lte-mac-sap.h:166
ns3::LteMacSapUser::TxOpportunityParameters
Parameters for LteMacSapUser::NotifyTxOpportunity.
Definition:
lte-mac-sap.h:105
ns3::LteRlcTm::TxPdu
Store an incoming (from layer above us) PDU, waiting to transmit it.
Definition:
lte-rlc-tm.h:82
ns3::LteRlcTm::TxPdu::TxPdu
TxPdu()=delete
ns3::LteRlcTm::TxPdu::m_pdu
Ptr< Packet > m_pdu
PDU.
Definition:
lte-rlc-tm.h:96
ns3::LteRlcTm::TxPdu::TxPdu
TxPdu(const Ptr< Packet > &pdu, const Time &time)
TxPdu default constructor.
Definition:
lte-rlc-tm.h:88
ns3::LteRlcTm::TxPdu::m_waitingSince
Time m_waitingSince
Layer arrival time.
Definition:
lte-rlc-tm.h:97
src
lte
model
lte-rlc-tm.h
Generated on Sun Mar 3 2024 17:11:02 for ns-3 by
1.9.1