5G-LENA
nr-v4.0
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-rlc-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_RLC_SAP_H
8
#define NR_RLC_SAP_H
9
10
#include "ns3/packet.h"
11
12
namespace
ns3
13
{
14
22
class
NrRlcSapProvider
23
{
24
public
:
25
virtual
~NrRlcSapProvider
() =
default
;
26
30
struct
TransmitPdcpPduParameters
31
{
32
Ptr<Packet>
pdcpPdu
;
33
uint16_t
rnti
;
34
uint8_t
lcid
;
35
};
36
43
virtual
void
TransmitPdcpPdu
(
TransmitPdcpPduParameters
params) = 0;
44
};
45
53
class
NrRlcSapUser
54
{
55
public
:
56
virtual
~NrRlcSapUser
() =
default
;
57
63
virtual
void
ReceivePdcpPdu
(Ptr<Packet> p) = 0;
64
};
65
67
template
<
class
C>
68
class
NrRlcSpecificNrRlcSapProvider
:
public
NrRlcSapProvider
69
{
70
public
:
76
NrRlcSpecificNrRlcSapProvider
(C* rlc);
77
78
// Delete default constructor to avoid misuse
79
NrRlcSpecificNrRlcSapProvider
() =
delete
;
80
85
void
TransmitPdcpPdu
(
TransmitPdcpPduParameters
params)
override
;
86
87
private
:
88
C* m_rlc;
89
};
90
91
template
<
class
C>
92
NrRlcSpecificNrRlcSapProvider<C>::NrRlcSpecificNrRlcSapProvider
(C* rlc)
93
: m_rlc(rlc)
94
{
95
}
96
97
template
<
class
C>
98
void
99
NrRlcSpecificNrRlcSapProvider<C>::TransmitPdcpPdu
(
TransmitPdcpPduParameters
params)
100
{
101
m_rlc->DoTransmitPdcpPdu(params.
pdcpPdu
);
102
}
103
105
template
<
class
C>
106
class
NrRlcSpecificNrRlcSapUser
:
public
NrRlcSapUser
107
{
108
public
:
114
NrRlcSpecificNrRlcSapUser
(C* pdcp);
115
116
// Delete default constructor to avoid misuse
117
NrRlcSpecificNrRlcSapUser
() =
delete
;
118
119
// Interface implemented from NrRlcSapUser
120
void
ReceivePdcpPdu
(Ptr<Packet> p)
override
;
121
122
private
:
123
C* m_pdcp;
124
};
125
126
template
<
class
C>
127
NrRlcSpecificNrRlcSapUser<C>::NrRlcSpecificNrRlcSapUser
(C* pdcp)
128
: m_pdcp(pdcp)
129
{
130
}
131
132
template
<
class
C>
133
void
134
NrRlcSpecificNrRlcSapUser<C>::ReceivePdcpPdu
(Ptr<Packet> p)
135
{
136
m_pdcp->DoReceivePdcpPdu(p);
137
}
138
139
}
// namespace ns3
140
141
#endif
// NR_RLC_SAP_H
ns3::NrRlcSapProvider
Definition
nr-rlc-sap.h:23
ns3::NrRlcSapProvider::TransmitPdcpPdu
virtual void TransmitPdcpPdu(TransmitPdcpPduParameters params)=0
ns3::NrRlcSapUser
Definition
nr-rlc-sap.h:54
ns3::NrRlcSapUser::ReceivePdcpPdu
virtual void ReceivePdcpPdu(Ptr< Packet > p)=0
ns3::NrRlcSpecificNrRlcSapProvider
NrRlcSpecificNrRlcSapProvider.
Definition
nr-rlc-sap.h:69
ns3::NrRlcSpecificNrRlcSapProvider::TransmitPdcpPdu
void TransmitPdcpPdu(TransmitPdcpPduParameters params) override
Definition
nr-rlc-sap.h:99
ns3::NrRlcSpecificNrRlcSapUser
NrRlcSpecificNrRlcSapUser class.
Definition
nr-rlc-sap.h:107
ns3::NrRlcSpecificNrRlcSapUser::ReceivePdcpPdu
void ReceivePdcpPdu(Ptr< Packet > p) override
Definition
nr-rlc-sap.h:134
ns3::NrRlcSapProvider::TransmitPdcpPduParameters
Definition
nr-rlc-sap.h:31
ns3::NrRlcSapProvider::TransmitPdcpPduParameters::pdcpPdu
Ptr< Packet > pdcpPdu
Definition
nr-rlc-sap.h:32
ns3::NrRlcSapProvider::TransmitPdcpPduParameters::rnti
uint16_t rnti
Definition
nr-rlc-sap.h:33
ns3::NrRlcSapProvider::TransmitPdcpPduParameters::lcid
uint8_t lcid
Definition
nr-rlc-sap.h:34
model
nr-rlc-sap.h
Generated on Thu May 15 2025 15:27:31 for 5G-LENA by
1.9.8