LtePdcpRxEntity.h Source File

Simu5G: LtePdcpRxEntity.h Source File
Simu5G
LtePdcpRxEntity.h
1//
2// Simu5G
3//
4// Copyright (C) 2012-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa)
5// Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa)
6//
7// This file is part of a software released under the license included in file
8// "license.pdf". Please read LICENSE and README files before using it.
9// The above files and the present reference are part of the software itself,
10// and cannot be removed from it.
11//
12
13#ifndef _LTE_LTEPDCPRXENTITY_H_
14#define _LTE_LTEPDCPRXENTITY_H_
15
16#include <inet/common/ModuleRefByPar.h>
17
18#include "simu5g/common/LteCommon.h"
19#include "simu5g/stack/pdcp/PdcpRxEntityBase.h"
20#include "simu5g/common/LteControlInfo.h"
21#include "simu5g/common/binder/Binder.h"
22
23namespace simu5g {
24
25class LtePdcpHeader;
26
27using namespace inet;
28
35{
36 static simsignal_t receivedPacketFromLowerLayerSignal_;
37 static simsignal_t pdcpSduReceivedSignal_;
38 static simsignal_t sentPacketToUpperLayerSignal_;
39
40 protected:
41 // Modules references
42 inet::ModuleRefByPar<Binder> binder_;
43
44 // Identifier for this node
45 MacNodeId nodeId_;
46
47 // whether headers are compressed
48 bool headerCompressionEnabled_;
49
50 // DRB ID for this connection
51 DrbId drbId_;
52
53 // handler for PDCP SDU
54 virtual void handlePdcpSdu(Packet *pkt, unsigned int sequenceNumber);
55
56 virtual void deliverSduToUpperLayer(inet::Packet *pkt);
57
58 virtual void decompressHeader(inet::Packet *pkt);
59
60 bool isCompressionEnabled() { return headerCompressionEnabled_; }
61
62 public:
63
64
65 void initialize(int stage) override;
66
67 // obtain the IP datagram from the PDCP PDU
68 void handlePacketFromLowerLayer(Packet *pkt) override;
69
70 /*
71 * @author Alessandro Noferi
72 *
73 * This method is used with NrPdcpRxEntity that has
74 * an SDU buffer. In particular, it is used when the
75 * RNI service requests the number of active users
76 * in UL, that also counts buffered UL data in PDCP.
77 */
78 bool isEmpty() const override { return true; }
79};
80
81} //namespace
82
83#endif
84
Entity for PDCP Layer.
Definition LtePdcpRxEntity.h:35
Abstract base class for all RX PDCP entities.
Definition PdcpRxEntityBase.h:29
Definition AlertReceiver.h:24