PacketFlowObserverEnb Class Reference

Simu5G: PacketFlowObserverEnb Class Reference
Simu5G
PacketFlowObserverEnb Class Reference

#include <PacketFlowObserverEnb.h>

Inheritance diagram for PacketFlowObserverEnb:
[legend]

Public Member Functions

void insertPdcpSdu (inet::Packet *pdcpPkt) override
void receivedPdcpSdu (inet::Packet *pdcpPkt) override
void insertRlcPdu (DrbKey drbKey, const LteRlcUmDataPdu *rlcPdu, RlcBurstStatus status) override
void macPduArrived (MacNodeId peerId, const LteMacPdu *macPdu) override
void ulMacPduArrived (MacNodeId nodeId, unsigned int grantId) override
void discardMacPdu (MacNodeId peerId, const LteMacPdu *macPdu) override
void discardRlcPdu (DrbKey drbKey, unsigned int rlcSno, bool fromMac=false) override
void grantSent (MacNodeId nodeId, unsigned int grantId) override
virtual void deleteUe (MacNodeId id)

Detailed Description

The eNB-specific version of PacketFlowObserver.

Member Function Documentation

◆ insertPdcpSdu()

void insertPdcpSdu ( inet::Packet * pdcpPkt)
overridevirtual

This method is called when a PDCP SDU enters the PDCP layer for downlink transmission. It records the PDCP sequence number and entry timestamp in the tracking data structures to enable delay measurement and packet flow monitoring. Used only by the eNodeB.

Implements PacketFlowObserverBase.

◆ receivedPdcpSdu()

void receivedPdcpSdu ( inet::Packet * pdcpPkt)
overridevirtual

This method is called when a PDCP SDU is received on the uplink. It tracks uplink data volume and packet loss rate statistics.

Implements PacketFlowObserverBase.

◆ insertRlcPdu()

void insertRlcPdu ( DrbKey drbKey,
const LteRlcUmDataPdu * rlcPdu,
RlcBurstStatus status )
overridevirtual

This method is called when an RLC PDU is created from PDCP SDUs for transmission. It records the mapping between the RLC PDU and its contained PDCP SDUs in the tracking data structures, along with burst status information for throughput measurement.

Implements PacketFlowObserverBase.

◆ macPduArrived()

void macPduArrived ( MacNodeId peerId,
const LteMacPdu * macPdu )
overridevirtual

This method is called when a downlink MAC PDU is successfully acknowledged by the UE. It processes the acknowledgment to determine if complete PDCP SDUs have been delivered, calculates packet delays, and updates statistics for downlink transmission.

Implements PacketFlowObserverBase.

◆ ulMacPduArrived()

void ulMacPduArrived ( MacNodeId nodeId,
unsigned int grantId )
overridevirtual

This method is called when an uplink MAC PDU is received from a UE at the eNodeB. It measures uplink packet delay by matching the received PDU with the corresponding grant that was previously sent to the UE (identified by grantId).

Reimplemented from PacketFlowObserverBase.

◆ discardMacPdu()

void discardMacPdu ( MacNodeId peerId,
const LteMacPdu * macPdu )
overridevirtual

This method is called after maxHarqTransmission of a MAC PDU ID has been reached. The PDCP, RLC sequence numbers referred to the MAC PDU are cleared from the data structures.

Implements PacketFlowObserverBase.

◆ discardRlcPdu()

void discardRlcPdu ( DrbKey drbKey,
unsigned int rlcSno,
bool fromMac = false )
overridevirtual

This method is used to keep track of all discarded RLC PDUs. If all RLC PDUs that compose a PDCP SDU have been discarded, the discarded counters are updated. The fromMac parameter is used when this method is called by discardMacPdu.

Implements PacketFlowObserverBase.

◆ grantSent()

void grantSent ( MacNodeId nodeId,
unsigned int grantId )
overridevirtual

This method is called when an uplink grant is sent to a UE. It records the grant transmission timestamp to enable uplink delay measurement when the corresponding MAC PDU is received.

Reimplemented from PacketFlowObserverBase.

◆ deleteUe()

virtual void deleteUe ( MacNodeId id)
virtual

Deletes all the DRB ID structures related to the UE. Called upon handover.