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
12namespace ns3
13{
14
23{
24 public:
25 virtual ~NrRlcSapProvider() = default;
26
31 {
32 Ptr<Packet> pdcpPdu;
33 uint16_t rnti;
34 uint8_t lcid;
35 };
36
44};
45
54{
55 public:
56 virtual ~NrRlcSapUser() = default;
57
63 virtual void ReceivePdcpPdu(Ptr<Packet> p) = 0;
64};
65
67template <class C>
69{
70 public:
77
78 // Delete default constructor to avoid misuse
80
85 void TransmitPdcpPdu(TransmitPdcpPduParameters params) override;
86
87 private:
88 C* m_rlc;
89};
90
91template <class C>
96
97template <class C>
98void
100{
101 m_rlc->DoTransmitPdcpPdu(params.pdcpPdu);
102}
103
105template <class C>
107{
108 public:
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
126template <class C>
131
132template <class C>
133void
135{
136 m_pdcp->DoReceivePdcpPdu(p);
137}
138
139} // namespace ns3
140
141#endif // NR_RLC_SAP_H
virtual void TransmitPdcpPdu(TransmitPdcpPduParameters params)=0
virtual void ReceivePdcpPdu(Ptr< Packet > p)=0
NrRlcSpecificNrRlcSapProvider.
Definition nr-rlc-sap.h:69
void TransmitPdcpPdu(TransmitPdcpPduParameters params) override
Definition nr-rlc-sap.h:99
NrRlcSpecificNrRlcSapUser class.
Definition nr-rlc-sap.h:107
void ReceivePdcpPdu(Ptr< Packet > p) override
Definition nr-rlc-sap.h:134