|
33 | 33 | #include "simu5g/stack/phy/LtePhyBase.h" |
34 | 34 | #include "simu5g/stack/rlc/packet/LteRlcPdu_m.h" |
35 | 35 | #include "simu5g/stack/rlc/packet/LteRlcPdu_m.h" |
| 36 | +#include "simu5g/stack/rlc/packet/LteRlcNewDataTag_m.h" |
36 | 37 | #include "simu5g/stack/packetFlowManager/PacketFlowManagerBase.h" |
37 | 38 | #include "simu5g/stack/rlc/um/LteRlcUm.h" |
38 | 39 | #include "simu5g/stack/pdcp/NrPdcpEnb.h" |
@@ -672,10 +673,11 @@ bool LteMacEnb::bufferizePacket(cPacket *cpkt) |
672 | 673 | LteMacBuffer *vqueue = connInfo.buffer; |
673 | 674 |
|
674 | 675 | // this packet is used to signal the arrival of new data in the RLC buffers |
675 | | - if (checkIfHeaderType<LteRlcPduNewData>(pkt)) { |
| 676 | + if (pkt->findTag<LteRlcNewDataTag>()) { |
676 | 677 | // update the virtual buffer for this connection |
677 | 678 | // build the virtual packet corresponding to this incoming packet |
678 | | - pkt->popAtFront<LteRlcPduNewData>(); |
| 679 | + // remove the tag since it's just a notification |
| 680 | + pkt->removeTag<LteRlcNewDataTag>(); |
679 | 681 | auto rlcSdu = pkt->peekAtFront<LteRlcSdu>(); |
680 | 682 | PacketInfo vpkt(rlcSdu->getLengthMainPacket(), pkt->getTimestamp()); |
681 | 683 | vqueue->pushBack(vpkt); |
@@ -719,7 +721,7 @@ void LteMacEnb::handleUpperMessage(cPacket *pktAux) |
719 | 721 | auto lteInfo = pkt->getTag<FlowControlInfo>(); |
720 | 722 | MacCid cid = MacCid(lteInfo->getDestId(), lteInfo->getLcid()); |
721 | 723 |
|
722 | | - bool isLteRlcPduNewData = checkIfHeaderType<LteRlcPduNewData>(pkt); |
| 724 | + bool isLteRlcPduNewData = (pkt->findTag<LteRlcNewDataTag>() != nullptr); |
723 | 725 |
|
724 | 726 | bool packetIsBuffered = bufferizePacket(pkt); // will buffer (or destroy if the queue is full) |
725 | 727 |
|
|
0 commit comments