38 unsigned int snFieldLength_ = 12;
41 inet::Packet *sdu =
nullptr;
42 int currentOffset = 0;
43 ~SduInfo() {
delete sdu; }
45 std::list<SduInfo *> sduBuffer_;
46 RlcSduSlidingWindowTransmissionBuffer *txBuffer_ =
nullptr;
47 RlcRetransmissionBuffer *rtxBuffer_ =
nullptr;
48 std::list<omnetpp::cPacket *> controlBuffer_;
49 std::string nameEntity_;
51 unsigned int amWindowSize_ = 0;
52 unsigned int pduWithoutPoll_ = 0;
53 unsigned int byteWithoutPoll_ = 0;
54 unsigned int pollPdu_ = 0;
55 unsigned int pollByte_ = 0;
56 unsigned int pollSn_ = 0;
57 bool pollPending_ =
false;
58 omnetpp::cMessage *tPollRetransmitTimer_ =
nullptr;
59 omnetpp::simtime_t tPollRetransmit_;
60 omnetpp::simtime_t lastSduSample_;
61 unsigned int sduSampleBytes_ = 0;
62 unsigned int receivedSdus_ = 0;
67 void enque(Packet *sdu)
override;
68 void sendPdus(
int size)
override;
69 void bufferControlPdu(cPacket *pkt)
override;
70 void handleControlPacket(cPacket *pkt)
override;
73 virtual void processControlPacket(inet::Packet *pkt);
74 virtual void bufferControlPduInternal(inet::Packet *pkt);
75 unsigned int getPendingDataVolume()
const override;
76 unsigned int snFieldLength()
const override {
return snFieldLength_; }
80 void initialize(
int stage)
override;
81 void handleMessage(cMessage *msg)
override;
85 virtual bool sendRetransmission(
int pduSize);
86 virtual void reportBufferStatus();
87 virtual bool checkPolling();
89 virtual void sendPduToMac(inet::Packet *pkt);
90 virtual void sendNewDataNotificationNr(inet::Packet *pkt);