A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
lte-pdcp-sap.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Manuel Requena <manuel.requena@cttc.es>
7
*/
8
9
#ifndef LTE_PDCP_SAP_H
10
#define LTE_PDCP_SAP_H
11
12
#include "ns3/packet.h"
13
14
namespace
ns3
15
{
16
17
/**
18
* Service Access Point (SAP) offered by the PDCP entity to the RRC entity
19
* See 3GPP 36.323 Packet Data Convergence Protocol (PDCP) specification
20
*
21
* This is the PDCP SAP Provider
22
* (i.e. the part of the SAP that contains the PDCP methods called by the RRC)
23
*/
24
class
LtePdcpSapProvider
25
{
26
public
:
27
virtual
~LtePdcpSapProvider
();
28
29
/**
30
* Parameters for LtePdcpSapProvider::TransmitPdcpSdu
31
*/
32
struct
TransmitPdcpSduParameters
33
{
34
Ptr<Packet>
pdcpSdu
;
/**< the RRC PDU */
35
uint16_t
rnti
;
/**< the C-RNTI identifying the UE */
36
uint8_t
lcid
;
/**< the logical channel id corresponding to the sending RLC instance */
37
};
38
39
/**
40
* Send RRC PDU parameters to the PDCP for transmission
41
*
42
* This method is to be called when upper RRC entity has a
43
* RRC PDU ready to send
44
*
45
* @param params Parameters
46
*/
47
virtual
void
TransmitPdcpSdu
(
TransmitPdcpSduParameters
params) = 0;
48
};
49
50
/**
51
* Service Access Point (SAP) offered by the PDCP entity to the RRC entity
52
* See 3GPP 36.323 Packet Data Convergence Protocol (PDCP) specification
53
*
54
* This is the PDCP SAP User
55
* (i.e. the part of the SAP that contains the RRC methods called by the PDCP)
56
*/
57
class
LtePdcpSapUser
58
{
59
public
:
60
virtual
~LtePdcpSapUser
();
61
62
/**
63
* Parameters for LtePdcpSapUser::ReceivePdcpSdu
64
*/
65
struct
ReceivePdcpSduParameters
66
{
67
Ptr<Packet>
pdcpSdu
;
/**< the RRC PDU */
68
uint16_t
rnti
;
/**< the C-RNTI identifying the UE */
69
uint8_t
lcid
;
/**< the logical channel id corresponding to the sending RLC instance */
70
};
71
72
/**
73
* Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU
74
*
75
* @param params Parameters
76
*/
77
virtual
void
ReceivePdcpSdu
(
ReceivePdcpSduParameters
params) = 0;
78
};
79
80
/// LtePdcpSpecificLtePdcpSapProvider class
81
template
<
class
C>
82
class
LtePdcpSpecificLtePdcpSapProvider
:
public
LtePdcpSapProvider
83
{
84
public
:
85
/**
86
* Constructor
87
*
88
* @param pdcp PDCP
89
*/
90
LtePdcpSpecificLtePdcpSapProvider
(C* pdcp);
91
92
// Delete default constructor to avoid misuse
93
LtePdcpSpecificLtePdcpSapProvider
() =
delete
;
94
95
// Interface implemented from LtePdcpSapProvider
96
void
TransmitPdcpSdu
(
TransmitPdcpSduParameters
params)
override
;
97
98
private
:
99
C*
m_pdcp
;
///< the PDCP
100
};
101
102
template
<
class
C>
103
LtePdcpSpecificLtePdcpSapProvider<C>::LtePdcpSpecificLtePdcpSapProvider
(C* pdcp)
104
: m_pdcp(pdcp)
105
{
106
}
107
108
template
<
class
C>
109
void
110
LtePdcpSpecificLtePdcpSapProvider<C>::TransmitPdcpSdu
(
TransmitPdcpSduParameters
params)
111
{
112
m_pdcp->DoTransmitPdcpSdu(params);
113
}
114
115
/// LtePdcpSpecificLtePdcpSapUser class
116
template
<
class
C>
117
class
LtePdcpSpecificLtePdcpSapUser
:
public
LtePdcpSapUser
118
{
119
public
:
120
/**
121
* Constructor
122
*
123
* @param rrc RRC
124
*/
125
LtePdcpSpecificLtePdcpSapUser
(C* rrc);
126
127
// Delete default constructor to avoid misuse
128
LtePdcpSpecificLtePdcpSapUser
() =
delete
;
129
130
// Interface implemented from LtePdcpSapUser
131
void
ReceivePdcpSdu
(
ReceivePdcpSduParameters
params)
override
;
132
133
private
:
134
C*
m_rrc
;
///< RRC
135
};
136
137
template
<
class
C>
138
LtePdcpSpecificLtePdcpSapUser<C>::LtePdcpSpecificLtePdcpSapUser
(C* rrc)
139
: m_rrc(rrc)
140
{
141
}
142
143
template
<
class
C>
144
void
145
LtePdcpSpecificLtePdcpSapUser<C>::ReceivePdcpSdu
(
ReceivePdcpSduParameters
params)
146
{
147
m_rrc->DoReceivePdcpSdu(params);
148
}
149
150
}
// namespace ns3
151
152
#endif
// LTE_PDCP_SAP_H
ns3::LtePdcpSapProvider
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Definition
lte-pdcp-sap.h:25
ns3::LtePdcpSapProvider::TransmitPdcpSdu
virtual void TransmitPdcpSdu(TransmitPdcpSduParameters params)=0
Send RRC PDU parameters to the PDCP for transmission.
ns3::LtePdcpSapProvider::~LtePdcpSapProvider
virtual ~LtePdcpSapProvider()
Definition
lte-pdcp-sap.cc:14
ns3::LtePdcpSapUser
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Definition
lte-pdcp-sap.h:58
ns3::LtePdcpSapUser::ReceivePdcpSdu
virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params)=0
Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU.
ns3::LtePdcpSapUser::~LtePdcpSapUser
virtual ~LtePdcpSapUser()
Definition
lte-pdcp-sap.cc:18
ns3::LtePdcpSpecificLtePdcpSapProvider
LtePdcpSpecificLtePdcpSapProvider class.
Definition
lte-pdcp-sap.h:83
ns3::LtePdcpSpecificLtePdcpSapProvider::TransmitPdcpSdu
void TransmitPdcpSdu(TransmitPdcpSduParameters params) override
Send RRC PDU parameters to the PDCP for transmission.
Definition
lte-pdcp-sap.h:110
ns3::LtePdcpSpecificLtePdcpSapProvider::m_pdcp
C * m_pdcp
the PDCP
Definition
lte-pdcp-sap.h:99
ns3::LtePdcpSpecificLtePdcpSapProvider::LtePdcpSpecificLtePdcpSapProvider
LtePdcpSpecificLtePdcpSapProvider()=delete
ns3::LtePdcpSpecificLtePdcpSapUser
LtePdcpSpecificLtePdcpSapUser class.
Definition
lte-pdcp-sap.h:118
ns3::LtePdcpSpecificLtePdcpSapUser::m_rrc
C * m_rrc
RRC.
Definition
lte-pdcp-sap.h:134
ns3::LtePdcpSpecificLtePdcpSapUser::LtePdcpSpecificLtePdcpSapUser
LtePdcpSpecificLtePdcpSapUser()=delete
ns3::LtePdcpSpecificLtePdcpSapUser::ReceivePdcpSdu
void ReceivePdcpSdu(ReceivePdcpSduParameters params) override
Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU.
Definition
lte-pdcp-sap.h:145
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
mpi-test-fixtures.h:37
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LtePdcpSapProvider::TransmitPdcpSduParameters
Parameters for LtePdcpSapProvider::TransmitPdcpSdu.
Definition
lte-pdcp-sap.h:33
ns3::LtePdcpSapProvider::TransmitPdcpSduParameters::lcid
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition
lte-pdcp-sap.h:36
ns3::LtePdcpSapProvider::TransmitPdcpSduParameters::pdcpSdu
Ptr< Packet > pdcpSdu
the RRC PDU
Definition
lte-pdcp-sap.h:34
ns3::LtePdcpSapProvider::TransmitPdcpSduParameters::rnti
uint16_t rnti
the C-RNTI identifying the UE
Definition
lte-pdcp-sap.h:35
ns3::LtePdcpSapUser::ReceivePdcpSduParameters
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Definition
lte-pdcp-sap.h:66
ns3::LtePdcpSapUser::ReceivePdcpSduParameters::pdcpSdu
Ptr< Packet > pdcpSdu
the RRC PDU
Definition
lte-pdcp-sap.h:67
ns3::LtePdcpSapUser::ReceivePdcpSduParameters::lcid
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition
lte-pdcp-sap.h:69
ns3::LtePdcpSapUser::ReceivePdcpSduParameters::rnti
uint16_t rnti
the C-RNTI identifying the UE
Definition
lte-pdcp-sap.h:68
src
lte
model
lte-pdcp-sap.h
Generated on Mon Dec 2 2024 09:20:43 for ns-3 by
1.11.0