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
12namespace ns3
13{
14
23{
24 public:
25 virtual ~NrPdcpSapProvider() = default;
26
31 {
32 Ptr<Packet> pdcpSdu;
33 uint16_t rnti;
34 uint8_t lcid;
35 };
36
46};
47
56{
57 public:
58 virtual ~NrPdcpSapUser() = default;
59
64 {
65 Ptr<Packet> pdcpSdu;
66 uint16_t rnti;
67 uint8_t lcid;
68 };
69
75 virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params) = 0;
76};
77
79template <class C>
81{
82 public:
89
90 // Delete default constructor to avoid misuse
92
93 // Interface implemented from NrPdcpSapProvider
94 void TransmitPdcpSdu(TransmitPdcpSduParameters params) override;
95
96 private:
97 C* m_pdcp;
98};
99
100template <class C>
105
106template <class C>
107void
109{
110 m_pdcp->DoTransmitPdcpSdu(params);
111}
112
114template <class C>
116{
117 public:
124
125 // Delete default constructor to avoid misuse
127
128 // Interface implemented from NrPdcpSapUser
129 void ReceivePdcpSdu(ReceivePdcpSduParameters params) override;
130
131 private:
132 C* m_rrc;
133};
134
135template <class C>
140
141template <class C>
142void
144{
145 m_rrc->DoReceivePdcpSdu(params);
146}
147
148} // namespace ns3
149
150#endif // NR_PDCP_SAP_H
virtual void TransmitPdcpSdu(TransmitPdcpSduParameters params)=0
virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params)=0
NrPdcpSpecificNrPdcpSapProvider class.
Definition nr-pdcp-sap.h:81
void TransmitPdcpSdu(TransmitPdcpSduParameters params) override
NrPdcpSpecificNrPdcpSapUser class.
void ReceivePdcpSdu(ReceivePdcpSduParameters params) override