9#include "nr-control-messages.h"
10#include "nr-mac-sched-sap.h"
11#include "nr-phy-mac-common.h"
13#include <ns3/packet-burst.h>
18class NrControlMessage;
Representation of a beam id.
SAP interface between the gNB PHY and the gNB MAC.
virtual void ReceiveControlMessage(Ptr< NrControlMessage > msg)=0
Receive SendNrControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
virtual void SlotUlIndication(const SfnSf &sfn, LteNrTddSlotType slotType)=0
Trigger MAC layer to generate an UL slot for the SfnSf indicated.
virtual void ReceivePhyPdu(Ptr< Packet > p)=0
Notify the MAC of the reception of a new PHY-PDU.
virtual void UlCqiReport(NrMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqi)=0
Returns to MAC level the UL-CQI evaluated.
virtual void BeamChangeReport(BeamId beamId, uint8_t rnti)=0
Called by the PHY to notify MAC that beam has changed. Not in any standard.
virtual void UlHarqFeedback(UlHarqInfo params)=0
Notify the HARQ on the UL transmission status.
virtual void SetCurrentSfn(const SfnSf &sfn)=0
Set the current Sfn. The state machine has advanced by one slot.
virtual uint32_t GetNumRbPerRbg() const =0
PHY requests information from MAC. While MAC normally act as user of PHY services,...
virtual uint8_t GetDlCtrlSymbols() const =0
Retrieve the DL CTRL symbols.
virtual void ReceiveRachPreamble(uint32_t raId)=0
Notify the reception of a RACH preamble on the PRACH.
virtual void SlotDlIndication(const SfnSf &sfn, LteNrTddSlotType slotType)=0
Trigger MAC layer to generate a DL slot for the SfnSf indicated.
virtual std::shared_ptr< DciInfoElementTdma > GetUlCtrlDci() const =0
Retrieve a dci for a UL CTRL allocation.
virtual ~NrGnbPhySapUser()=default
~NrGnbPhySapUser
virtual std::shared_ptr< DciInfoElementTdma > GetDlCtrlDci() const =0
Retrieve a dci for a DL CTRL allocation.
SAP interface between the MAC and the PHY.
virtual Time GetSlotPeriod() const =0
Retrieve the slot period.
virtual BeamId GetBeamId(uint8_t rnti) const =0
Get the beam ID from the RNTI specified. Not in any standard.
virtual void SendMacPdu(const Ptr< Packet > &p, const SfnSf &sfn, uint8_t symStart, uint16_t rnti)=0
Send a Mac PDU.
virtual uint16_t GetCellId() const =0
Retrieve the cell id.
virtual Ptr< const SpectrumModel > GetSpectrumModel()=0
Retrieve the spectrum model used by the PHY layer.
virtual uint32_t GetRbNum() const =0
Retrieve the number of resource blocks.
virtual void SendControlMessage(Ptr< NrControlMessage > msg)=0
Send a control message.
virtual void NotifyConnectionSuccessful()=0
Notify PHY about the successful RRC connection establishment.
virtual uint32_t GetSymbolsPerSlot() const =0
Retrieve the number of symbols in one slot.
virtual void SetSlotAllocInfo(const SlotAllocInfo &slotAllocInfo)=0
Set a SlotAllocInfo inside the PHY allocations.
virtual ~NrPhySapProvider()=default
~NrPhySapProvider
virtual uint16_t GetBwpId() const =0
Retrieve the bandwidth part id.
virtual void SendRachPreamble(uint8_t PreambleId, uint8_t Rnti)=0
Send the RACH preamble.
SAP interface between the UE PHY and the UE MAC.
virtual ~NrUePhySapUser()
~NrUePhySapUser
virtual uint8_t GetNumHarqProcess() const =0
Retrieve the number of HARQ processes configured.
virtual void ReceiveControlMessage(Ptr< NrControlMessage > msg)=0
Receive SendNrControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
virtual void ReceivePhyPdu(Ptr< Packet > p)=0
Notify the MAC of the reception of a new PHY-PDU.
virtual void SlotIndication(SfnSf s)=0
Trigger the indication of a new slot for the MAC.
LteNrTddSlotType
Available TDD slot types. Ordering is important.
The SchedUlCqiInfoReqParameters struct.
The SlotAllocInfo struct.
A struct that contains info for the UL HARQ.