A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-enb-phy-sap.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Marco Miozzo <mmiozzo@cttc.es>
7 */
8
9#ifndef LTE_ENB_PHY_SAP_H
10#define LTE_ENB_PHY_SAP_H
11
12#include "ff-mac-common.h"
13#include "ff-mac-sched-sap.h"
14
15#include <ns3/packet.h>
16
17namespace ns3
18{
19
20class LteControlMessage;
21
22/**
23 * Service Access Point (SAP) offered by the eNB-PHY to the eNB-MAC
24 *
25 * This is the PHY SAP Provider, i.e., the part of the SAP that contains
26 * the PHY methods called by the MAC
27 */
29{
30 public:
31 virtual ~LteEnbPhySapProvider();
32
33 /**
34 * \brief Send the MAC PDU to the channel
35 * \param p the MAC PDU to send
36 */
37 virtual void SendMacPdu(Ptr<Packet> p) = 0;
38
39 /**
40 * \brief Send SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel
41 * \param msg the Ideal Control Message to send
42 */
44
45 /**
46 * \brief Get the delay from MAC to Channel expressed in TTIs
47 * \returns MAC channel TTI delay
48 */
49 virtual uint8_t GetMacChTtiDelay() = 0;
50};
51
52/**
53 * Service Access Point (SAP) offered by the eNB-PHY to the eNB-MAC
54 *
55 * This is the MAC SAP User, i.e., the part of the SAP that contains the MAC
56 * methods called by the PHY
57 */
59{
60 public:
61 virtual ~LteEnbPhySapUser();
62
63 /**
64 * Called by the Phy to notify the MAC of the reception of a new PHY-PDU
65 *
66 * \param p
67 */
68 virtual void ReceivePhyPdu(Ptr<Packet> p) = 0;
69
70 /**
71 * \brief Trigger the start from a new frame (input from Phy layer)
72 * \param frameNo frame number
73 * \param subframeNo subframe number
74 */
75 virtual void SubframeIndication(uint32_t frameNo, uint32_t subframeNo) = 0;
76
77 /**
78 * \brief Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control
79 * channel
80 * \param msg the Ideal Control Message to receive
81 */
83
84 /**
85 * notify the reception of a RACH preamble on the PRACH
86 *
87 * \param prachId the ID of the preamble
88 */
89 virtual void ReceiveRachPreamble(uint32_t prachId) = 0;
90
91 /**
92 * \brief Returns to MAC level the UL-CQI evaluated
93 * \param ulcqi the UL-CQI (see FF MAC API 4.3.29)
94 */
96
97 /**
98 * Notify the HARQ on the UL transmission status
99 *
100 * \param params
101 */
103
104 /**
105 * Notify the HARQ on the DL transmission status
106 *
107 * \param params
108 */
110};
111
112} // namespace ns3
113
114#endif // LTE_ENB_PHY_SAP_H
Service Access Point (SAP) offered by the eNB-PHY to the eNB-MAC.
virtual void SendLteControlMessage(Ptr< LteControlMessage > msg)=0
Send SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
virtual uint8_t GetMacChTtiDelay()=0
Get the delay from MAC to Channel expressed in TTIs.
virtual void SendMacPdu(Ptr< Packet > p)=0
Send the MAC PDU to the channel.
Service Access Point (SAP) offered by the eNB-PHY to the eNB-MAC.
virtual void ReceivePhyPdu(Ptr< Packet > p)=0
Called by the Phy to notify the MAC of the reception of a new PHY-PDU.
virtual void UlCqiReport(FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqi)=0
Returns to MAC level the UL-CQI evaluated.
virtual void UlInfoListElementHarqFeedback(UlInfoListElement_s params)=0
Notify the HARQ on the UL transmission status.
virtual void ReceiveLteControlMessage(Ptr< LteControlMessage > msg)=0
Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
virtual void ReceiveRachPreamble(uint32_t prachId)=0
notify the reception of a RACH preamble on the PRACH
virtual void SubframeIndication(uint32_t frameNo, uint32_t subframeNo)=0
Trigger the start from a new frame (input from Phy layer)
virtual void DlInfoListElementHarqFeedback(DlInfoListElement_s params)=0
Notify the HARQ on the DL transmission status.
Smart pointer class similar to boost::intrusive_ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
See section 4.3.23 dlInfoListElement.
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
See section 4.3.12 ulInfoListElement.