NrRlcAmRxEntity.h Source File

Simu5G: NrRlcAmRxEntity.h Source File
Simu5G
NrRlcAmRxEntity.h
1//
2// Simu5G
3//
4// Authors: Esteban Egea Lopez (Universidad Politecnica de Cartagena), Andras Varga (OpenSim Ltd)
5//
6// This file is part of a software released under the license included in file
7// "license.pdf". Please read LICENSE and README files before using it.
8// The above files and the present reference are part of the software itself,
9// and cannot be removed from it.
10//
11
12#ifndef _SIMU5G_NRRLCAMRXENTITY_H_
13#define _SIMU5G_NRRLCAMRXENTITY_H_
14
15#include <set>
16#include <string>
17
18#include <inet/common/packet/Packet.h>
19
20#include "simu5g/stack/rlc/am/RlcAmRxEntityBase.h"
21#include "simu5g/stack/rlc/am/RlcSduSlidingWindowReceptionBuffer.h"
22
23namespace simu5g {
24
25using namespace omnetpp;
26
27class RlcMux;
28
36{
37 std::string nameEntity_;
38 RlcSduSlidingWindowReceptionBuffer *rxBuffer_ = nullptr;
39 std::set<unsigned int> passedUpSdus_;
40 omnetpp::cMessage *tReassemblyTimer_ = nullptr;
41 omnetpp::simtime_t tReassembly_;
42 omnetpp::cMessage *tStatusProhibitTimer_ = nullptr;
43 omnetpp::simtime_t tStatusProhibit_;
44 unsigned int rxNextStatusTrigger_ = 0;
45 unsigned int amWindowSize_ = 0;
46 bool statusReportPending_ = false;
47
48 public:
49 ~NrRlcAmRxEntity() override;
50
51 void enque(inet::Packet *pkt) override;
52 void handleMessage(cMessage *msg) override;
53
54 protected:
55
56 void initMode() override;
57
58 private:
59
60 virtual void passUpNr(int seqNum);
61 virtual void sendStatusReportNr();
62 virtual void routeControlToTxEntityNr(inet::Packet *pkt);
63 virtual void bufferControlViaTxEntityNr(inet::Packet *pkt);
64};
65
66} //namespace
67
68#endif
NR (TS 38.322) RLC AM receiving entity.
Definition NrRlcAmRxEntity.h:36
Common shell of the RLC AM receiving entity.
Definition RlcAmRxEntityBase.h:42
Lower-layer RLC packet dispatcher.
Definition RlcMux.h:37
Definition AlertReceiver.h:24