5G-LENA nr-v4.0
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-pdcp.h
1// Copyright (c) 2011-2012 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_H
8#define NR_PDCP_H
9
10#include "nr-pdcp-sap.h"
11#include "nr-rlc-sap.h"
12
13#include "ns3/object.h"
14#include "ns3/trace-source-accessor.h"
15#include "ns3/traced-value.h"
16
17namespace ns3
18{
19
23class NrPdcp : public Object // SimpleRefCount<NrPdcp>
24{
29
30 public:
31 NrPdcp();
32 ~NrPdcp() override;
37 static TypeId GetTypeId();
38 void DoDispose() override;
39
45 void SetRnti(uint16_t rnti);
46
52 void SetLcId(uint8_t lcId);
53
60
67
74
81
83 static const uint16_t MAX_PDCP_SN = 4096;
84
88 struct Status
89 {
90 uint16_t txSn;
91 uint16_t rxSn;
92 };
93
98 Status GetStatus() const;
99
105 void SetStatus(Status s);
106
115 typedef void (*PduTxTracedCallback)(uint16_t rnti, uint8_t lcid, uint32_t size);
116
126 typedef void (*PduRxTracedCallback)(const uint16_t rnti,
127 const uint8_t lcid,
128 const uint32_t size,
129 const uint64_t delay);
130
131 protected:
138
141
147 virtual void DoReceivePdu(Ptr<Packet> p);
148
151
152 uint16_t m_rnti;
153 uint8_t m_lcid;
154
159 TracedCallback<uint16_t, uint8_t, uint32_t> m_txPdu;
164 TracedCallback<uint16_t, uint8_t, uint32_t, uint64_t> m_rxPdu;
165
166 private:
170 uint16_t m_txSequenceNumber;
174 uint16_t m_rxSequenceNumber;
175
179 static const uint16_t m_maxPdcpSn = 4095;
180};
181
182} // namespace ns3
183
184#endif // NR_PDCP_H
void SetNrRlcSapProvider(NrRlcSapProvider *s)
Definition nr-pdcp.cc:131
NrRlcSapProvider * m_rlcSapProvider
RLC SAP provider.
Definition nr-pdcp.h:150
void(* PduTxTracedCallback)(uint16_t rnti, uint8_t lcid, uint32_t size)
Definition nr-pdcp.h:115
NrRlcSapUser * GetNrRlcSapUser()
Definition nr-pdcp.cc:138
void SetNrPdcpSapUser(NrPdcpSapUser *s)
Definition nr-pdcp.cc:117
TracedCallback< uint16_t, uint8_t, uint32_t, uint64_t > m_rxPdu
Definition nr-pdcp.h:164
NrPdcpSapUser * m_pdcpSapUser
PDCP SAP user.
Definition nr-pdcp.h:139
void SetRnti(uint16_t rnti)
Definition nr-pdcp.cc:103
static TypeId GetTypeId()
Get the type ID.
Definition nr-pdcp.cc:78
Status GetStatus() const
Definition nr-pdcp.cc:145
void(* PduRxTracedCallback)(const uint16_t rnti, const uint8_t lcid, const uint32_t size, const uint64_t delay)
Definition nr-pdcp.h:126
virtual void DoTransmitPdcpSdu(NrPdcpSapProvider::TransmitPdcpSduParameters params)
Definition nr-pdcp.cc:163
NrRlcSapUser * m_rlcSapUser
RLC SAP user.
Definition nr-pdcp.h:149
void SetLcId(uint8_t lcId)
Definition nr-pdcp.cc:110
uint8_t m_lcid
LCID.
Definition nr-pdcp.h:153
NrPdcpSapProvider * m_pdcpSapProvider
PDCP SAP provider.
Definition nr-pdcp.h:140
TracedCallback< uint16_t, uint8_t, uint32_t > m_txPdu
Definition nr-pdcp.h:159
uint16_t m_rnti
RNTI.
Definition nr-pdcp.h:152
virtual void DoReceivePdu(Ptr< Packet > p)
Definition nr-pdcp.cc:196
void SetStatus(Status s)
Definition nr-pdcp.cc:154
static const uint16_t MAX_PDCP_SN
maximum PDCP SN
Definition nr-pdcp.h:83
friend class NrPdcpSpecificNrRlcSapUser
allow NrPdcpSpecificNrRlcSapUser class friend access
Definition nr-pdcp.h:26
NrPdcpSapProvider * GetNrPdcpSapProvider()
Definition nr-pdcp.cc:124
NrPdcpSpecificNrPdcpSapProvider class.
Definition nr-pdcp-sap.h:81
uint16_t rxSn
RX sequence number.
Definition nr-pdcp.h:91
uint16_t txSn
TX sequence number.
Definition nr-pdcp.h:90