5G-LENA
nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-pdcp-sap.h
1
// Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
2
//
3
// SPDX-License-Identifier: GPL-2.0-only
4
//
5
// Author: Manuel Requena <manuel.requena@cttc.es>
6
7
#ifndef NR_PDCP_SAP_H
8
#define NR_PDCP_SAP_H
9
10
#include "ns3/packet.h"
11
12
namespace
ns3
13
{
14
22
class
NrPdcpSapProvider
23
{
24
public
:
25
virtual
~NrPdcpSapProvider
() =
default
;
26
30
struct
TransmitPdcpSduParameters
31
{
32
Ptr<Packet>
pdcpSdu
;
33
uint16_t
rnti
;
34
uint8_t
lcid
;
35
};
36
45
virtual
void
TransmitPdcpSdu
(
TransmitPdcpSduParameters
params) = 0;
46
};
47
55
class
NrPdcpSapUser
56
{
57
public
:
58
virtual
~NrPdcpSapUser
() =
default
;
59
63
struct
ReceivePdcpSduParameters
64
{
65
Ptr<Packet>
pdcpSdu
;
66
uint16_t
rnti
;
67
uint8_t
lcid
;
68
};
69
75
virtual
void
ReceivePdcpSdu
(
ReceivePdcpSduParameters
params) = 0;
76
};
77
79
template
<
class
C>
80
class
NrPdcpSpecificNrPdcpSapProvider
:
public
NrPdcpSapProvider
81
{
82
public
:
88
NrPdcpSpecificNrPdcpSapProvider
(C* pdcp);
89
90
// Delete default constructor to avoid misuse
91
NrPdcpSpecificNrPdcpSapProvider
() =
delete
;
92
93
// Interface implemented from NrPdcpSapProvider
94
void
TransmitPdcpSdu
(
TransmitPdcpSduParameters
params)
override
;
95
96
private
:
97
C* m_pdcp;
98
};
99
100
template
<
class
C>
101
NrPdcpSpecificNrPdcpSapProvider<C>::NrPdcpSpecificNrPdcpSapProvider
(C* pdcp)
102
: m_pdcp(pdcp)
103
{
104
}
105
106
template
<
class
C>
107
void
108
NrPdcpSpecificNrPdcpSapProvider<C>::TransmitPdcpSdu
(
TransmitPdcpSduParameters
params)
109
{
110
m_pdcp->DoTransmitPdcpSdu(params);
111
}
112
114
template
<
class
C>
115
class
NrPdcpSpecificNrPdcpSapUser
:
public
NrPdcpSapUser
116
{
117
public
:
123
NrPdcpSpecificNrPdcpSapUser
(C* rrc);
124
125
// Delete default constructor to avoid misuse
126
NrPdcpSpecificNrPdcpSapUser
() =
delete
;
127
128
// Interface implemented from NrPdcpSapUser
129
void
ReceivePdcpSdu
(
ReceivePdcpSduParameters
params)
override
;
130
131
private
:
132
C* m_rrc;
133
};
134
135
template
<
class
C>
136
NrPdcpSpecificNrPdcpSapUser<C>::NrPdcpSpecificNrPdcpSapUser
(C* rrc)
137
: m_rrc(rrc)
138
{
139
}
140
141
template
<
class
C>
142
void
143
NrPdcpSpecificNrPdcpSapUser<C>::ReceivePdcpSdu
(
ReceivePdcpSduParameters
params)
144
{
145
m_rrc->DoReceivePdcpSdu(params);
146
}
147
148
}
// namespace ns3
149
150
#endif
// NR_PDCP_SAP_H
ns3::NrPdcpSapProvider
Definition
nr-pdcp-sap.h:23
ns3::NrPdcpSapProvider::TransmitPdcpSdu
virtual void TransmitPdcpSdu(TransmitPdcpSduParameters params)=0
ns3::NrPdcpSapUser
Definition
nr-pdcp-sap.h:56
ns3::NrPdcpSapUser::ReceivePdcpSdu
virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params)=0
ns3::NrPdcpSpecificNrPdcpSapProvider
NrPdcpSpecificNrPdcpSapProvider class.
Definition
nr-pdcp-sap.h:81
ns3::NrPdcpSpecificNrPdcpSapProvider::TransmitPdcpSdu
void TransmitPdcpSdu(TransmitPdcpSduParameters params) override
Definition
nr-pdcp-sap.h:108
ns3::NrPdcpSpecificNrPdcpSapUser
NrPdcpSpecificNrPdcpSapUser class.
Definition
nr-pdcp-sap.h:116
ns3::NrPdcpSpecificNrPdcpSapUser::ReceivePdcpSdu
void ReceivePdcpSdu(ReceivePdcpSduParameters params) override
Definition
nr-pdcp-sap.h:143
ns3::NrPdcpSapProvider::TransmitPdcpSduParameters
Definition
nr-pdcp-sap.h:31
ns3::NrPdcpSapProvider::TransmitPdcpSduParameters::rnti
uint16_t rnti
Definition
nr-pdcp-sap.h:33
ns3::NrPdcpSapProvider::TransmitPdcpSduParameters::pdcpSdu
Ptr< Packet > pdcpSdu
Definition
nr-pdcp-sap.h:32
ns3::NrPdcpSapProvider::TransmitPdcpSduParameters::lcid
uint8_t lcid
Definition
nr-pdcp-sap.h:34
ns3::NrPdcpSapUser::ReceivePdcpSduParameters
Definition
nr-pdcp-sap.h:64
ns3::NrPdcpSapUser::ReceivePdcpSduParameters::lcid
uint8_t lcid
Definition
nr-pdcp-sap.h:67
ns3::NrPdcpSapUser::ReceivePdcpSduParameters::rnti
uint16_t rnti
Definition
nr-pdcp-sap.h:66
ns3::NrPdcpSapUser::ReceivePdcpSduParameters::pdcpSdu
Ptr< Packet > pdcpSdu
Definition
nr-pdcp-sap.h:65
model
nr-pdcp-sap.h
Generated on Thu Mar 13 2025 19:23:49 for 5G-LENA by
1.9.8