A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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
55
virtual
void
TransmitPdcpPdu
(
TransmitPdcpPduParameters
params) = 0;
56
};
57
58
66
class
LteRlcSapUser
67
{
68
public
:
69
virtual
~LteRlcSapUser
();
70
76
virtual
void
ReceivePdcpPdu
(
Ptr<Packet>
p) = 0;
77
};
78
80
81
template
<
class
C>
82
class
LteRlcSpecificLteRlcSapProvider
:
public
LteRlcSapProvider
83
{
84
public
:
85
LteRlcSpecificLteRlcSapProvider
(C* rlc);
86
87
// Interface implemented from LteRlcSapProvider
88
virtual
void
TransmitPdcpPdu
(
TransmitPdcpPduParameters
params);
89
90
private
:
91
LteRlcSpecificLteRlcSapProvider
();
92
C*
m_rlc
;
93
};
94
95
template
<
class
C>
96
LteRlcSpecificLteRlcSapProvider<C>::LteRlcSpecificLteRlcSapProvider
(C* rlc)
97
: m_rlc (rlc)
98
{
99
}
100
101
template
<
class
C>
102
LteRlcSpecificLteRlcSapProvider<C>::LteRlcSpecificLteRlcSapProvider
()
103
{
104
}
105
106
template
<
class
C>
107
void
LteRlcSpecificLteRlcSapProvider<C>::TransmitPdcpPdu
(
TransmitPdcpPduParameters
params)
108
{
109
m_rlc->DoTransmitPdcpPdu (params.
pdcpPdu
);
110
}
111
113
114
template
<
class
C>
115
class
LteRlcSpecificLteRlcSapUser
:
public
LteRlcSapUser
116
{
117
public
:
118
LteRlcSpecificLteRlcSapUser
(C* pdcp);
119
120
// Interface implemented from LteRlcSapUser
121
virtual
void
ReceivePdcpPdu
(
Ptr<Packet>
p);
122
123
private
:
124
LteRlcSpecificLteRlcSapUser
();
125
C*
m_pdcp
;
126
};
127
128
template
<
class
C>
129
LteRlcSpecificLteRlcSapUser<C>::LteRlcSpecificLteRlcSapUser
(C* pdcp)
130
: m_pdcp (pdcp)
131
{
132
}
133
134
template
<
class
C>
135
LteRlcSpecificLteRlcSapUser<C>::LteRlcSpecificLteRlcSapUser
()
136
{
137
}
138
139
template
<
class
C>
140
void
LteRlcSpecificLteRlcSapUser<C>::ReceivePdcpPdu
(
Ptr<Packet>
p)
141
{
142
m_pdcp->DoReceivePdcpPdu (p);
143
}
144
145
146
}
// namespace ns3
147
148
#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:66
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
Definition:
lte-rlc-sap.h:115
ns3::LteRlcSpecificLteRlcSapProvider::TransmitPdcpPdu
virtual void TransmitPdcpPdu(TransmitPdcpPduParameters params)
Send a PDCP PDU to the RLC for transmission This method is to be called when upper PDCP entity has a ...
Definition:
lte-rlc-sap.h:107
ns3::LteRlcSpecificLteRlcSapUser::m_pdcp
C * m_pdcp
Definition:
lte-rlc-sap.h:125
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
Definition:
lte-rlc-sap.h:82
ns3::LteRlcSpecificLteRlcSapProvider::m_rlc
C * m_rlc
Definition:
lte-rlc-sap.h:92
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:102
ns3::LteRlcSapProvider::TransmitPdcpPduParameters::lcid
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition:
lte-rlc-sap.h:47
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:135
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:140
ns3::LteRlcSapUser::~LteRlcSapUser
virtual ~LteRlcSapUser()
Definition:
lte-rlc-sap.cc:29
ns3::LteRlcSapProvider::~LteRlcSapProvider
virtual ~LteRlcSapProvider()
Definition:
lte-rlc-sap.cc:25
src
lte
model
lte-rlc-sap.h
Generated on Sat Apr 19 2014 14:07:00 for ns-3 by
1.8.6