A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
src
lte
model
lte-rlc-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: Manuel Requena <manuel.requena@cttc.es>
19
*/
20
21
#ifndef LTE_RLC_SAP_H
22
#define LTE_RLC_SAP_H
23
24
#include "ns3/packet.h"
25
26
namespace
ns3
{
27
35
class
LteRlcSapProvider
36
{
37
public
:
38
virtual
~LteRlcSapProvider
();
39
43
struct
TransmitPdcpPduParameters
44
{
45
Ptr<Packet>
pdcpPdu
;
46
uint16_t
rnti
;
47
uint8_t
lcid
;
48
};
49
56
virtual
void
TransmitPdcpPdu
(
TransmitPdcpPduParameters
params) = 0;
57
};
58
59
67
class
LteRlcSapUser
68
{
69
public
:
70
virtual
~LteRlcSapUser
();
71
77
virtual
void
ReceivePdcpPdu
(
Ptr<Packet>
p) = 0;
78
};
79
80
82
template
<
class
C>
83
class
LteRlcSpecificLteRlcSapProvider
:
public
LteRlcSapProvider
84
{
85
public
:
91
LteRlcSpecificLteRlcSapProvider
(C* rlc);
92
97
virtual
void
TransmitPdcpPdu
(
TransmitPdcpPduParameters
params);
98
99
private
:
100
LteRlcSpecificLteRlcSapProvider
();
101
C*
m_rlc
;
102
};
103
104
template
<
class
C>
105
LteRlcSpecificLteRlcSapProvider<C>::LteRlcSpecificLteRlcSapProvider
(C* rlc)
106
: m_rlc (rlc)
107
{
108
}
109
110
template
<
class
C>
111
LteRlcSpecificLteRlcSapProvider<C>::LteRlcSpecificLteRlcSapProvider
()
112
{
113
}
114
115
template
<
class
C>
116
void
LteRlcSpecificLteRlcSapProvider<C>::TransmitPdcpPdu
(
TransmitPdcpPduParameters
params)
117
{
118
m_rlc->DoTransmitPdcpPdu (params.
pdcpPdu
);
119
}
120
121
123
template
<
class
C>
124
class
LteRlcSpecificLteRlcSapUser
:
public
LteRlcSapUser
125
{
126
public
:
132
LteRlcSpecificLteRlcSapUser
(C* pdcp);
133
134
// Interface implemented from LteRlcSapUser
135
virtual
void
ReceivePdcpPdu
(
Ptr<Packet>
p);
136
137
private
:
138
LteRlcSpecificLteRlcSapUser
();
139
C*
m_pdcp
;
140
};
141
142
template
<
class
C>
143
LteRlcSpecificLteRlcSapUser<C>::LteRlcSpecificLteRlcSapUser
(C* pdcp)
144
: m_pdcp (pdcp)
145
{
146
}
147
148
template
<
class
C>
149
LteRlcSpecificLteRlcSapUser<C>::LteRlcSpecificLteRlcSapUser
()
150
{
151
}
152
153
template
<
class
C>
154
void
LteRlcSpecificLteRlcSapUser<C>::ReceivePdcpPdu
(
Ptr<Packet>
p)
155
{
156
m_pdcp->DoReceivePdcpPdu (p);
157
}
158
159
160
}
// namespace ns3
161
162
#endif // LTE_RLC_SAP_H
ns3::LteRlcSapUser
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36...
Definition:
lte-rlc-sap.h:67
ns3::LteRlcSapProvider::TransmitPdcpPduParameters::pdcpPdu
Ptr< Packet > pdcpPdu
the PDCP PDU
Definition:
lte-rlc-sap.h:45
ns3::Ptr< Packet >
ns3::LteRlcSapProvider
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36...
Definition:
lte-rlc-sap.h:35
ns3::LteRlcSpecificLteRlcSapUser
LteRlcSpecificLteRlcSapUser class.
Definition:
lte-rlc-sap.h:124
ns3::LteRlcSpecificLteRlcSapProvider::TransmitPdcpPdu
virtual void TransmitPdcpPdu(TransmitPdcpPduParameters params)
Interface implemented from LteRlcSapProvider.
Definition:
lte-rlc-sap.h:116
ns3::LteRlcSpecificLteRlcSapUser::m_pdcp
C * m_pdcp
the PDCP
Definition:
lte-rlc-sap.h:139
ns3::LteRlcSapProvider::TransmitPdcpPdu
virtual void TransmitPdcpPdu(TransmitPdcpPduParameters params)=0
Send a PDCP PDU to the RLC for transmission This method is to be called when upper PDCP entity has a ...
ns3::LteRlcSpecificLteRlcSapProvider
LteRlcSpecificLteRlcSapProvider.
Definition:
lte-rlc-sap.h:83
ns3::LteRlcSpecificLteRlcSapProvider::m_rlc
C * m_rlc
the RLC
Definition:
lte-rlc-sap.h:101
ns3::LteRlcSapUser::ReceivePdcpPdu
virtual void ReceivePdcpPdu(Ptr< Packet > p)=0
Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU...
ns3::LteRlcSpecificLteRlcSapProvider::LteRlcSpecificLteRlcSapProvider
LteRlcSpecificLteRlcSapProvider()
Definition:
lte-rlc-sap.h:111
ns3::LteRlcSapProvider::TransmitPdcpPduParameters::lcid
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition:
lte-rlc-sap.h:47
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteRlcSapProvider::TransmitPdcpPduParameters
Parameters for LteRlcSapProvider::TransmitPdcpPdu.
Definition:
lte-rlc-sap.h:43
ns3::LteRlcSapProvider::TransmitPdcpPduParameters::rnti
uint16_t rnti
the C-RNTI identifying the UE
Definition:
lte-rlc-sap.h:46
ns3::LteRlcSpecificLteRlcSapUser::LteRlcSpecificLteRlcSapUser
LteRlcSpecificLteRlcSapUser()
Definition:
lte-rlc-sap.h:149
ns3::LteRlcSpecificLteRlcSapUser::ReceivePdcpPdu
virtual void ReceivePdcpPdu(Ptr< Packet > p)
Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU...
Definition:
lte-rlc-sap.h:154
ns3::LteRlcSapUser::~LteRlcSapUser
virtual ~LteRlcSapUser()
Definition:
lte-rlc-sap.cc:29
ns3::LteRlcSapProvider::~LteRlcSapProvider
virtual ~LteRlcSapProvider()
Definition:
lte-rlc-sap.cc:25
Generated on Wed Nov 7 2018 10:02:01 for ns-3 by
1.8.14