A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-ue-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_UE_PHY_SAP_H
10#define LTE_UE_PHY_SAP_H
11
12#include <ns3/packet.h>
13
14namespace ns3
15{
16
17class LteControlMessage;
18
19/**
20 * Service Access Point (SAP) offered by the UE-PHY to the UE-MAC
21 *
22 * This is the PHY SAP Provider, i.e., the part of the SAP that contains
23 * the PHY methods called by the MAC
24 */
26{
27 public:
28 virtual ~LteUePhySapProvider();
29
30 /**
31 * \brief Send the MAC PDU to the channel
32 *
33 * \param p the MAC PDU to send
34 */
35 virtual void SendMacPdu(Ptr<Packet> p) = 0;
36
37 /**
38 * \brief Send SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel
39 *
40 * \param msg the Ideal Control Message to send
41 */
43
44 /**
45 * \brief Send a preamble on the PRACH
46 *
47 * \param prachId the ID of the preamble
48 * \param raRnti the RA RNTI
49 */
50 virtual void SendRachPreamble(uint32_t prachId, uint32_t raRnti) = 0;
51
52 /**
53 * \brief Notify PHY about the successful RRC connection
54 * establishment.
55 */
56 virtual void NotifyConnectionSuccessful() = 0;
57};
58
59/**
60 * Service Access Point (SAP) offered by the PHY to the MAC
61 *
62 * This is the PHY SAP User, i.e., the part of the SAP that contains the MAC
63 * methods called by the PHY
64 */
66{
67 public:
68 virtual ~LteUePhySapUser();
69
70 /**
71 * \brief Receive Phy Pdu function.
72 *
73 * It is called by the Phy to notify the MAC of the reception of a new PHY-PDU
74 *
75 * \param p
76 */
77 virtual void ReceivePhyPdu(Ptr<Packet> p) = 0;
78
79 /**
80 * \brief Trigger the start from a new frame (input from Phy layer)
81 *
82 * \param frameNo frame number
83 * \param subframeNo subframe number
84 */
85 virtual void SubframeIndication(uint32_t frameNo, uint32_t subframeNo) = 0;
86
87 /**
88 * \brief Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control
89 * channel
90 *
91 * \param msg the Ideal Control Message to receive
92 */
94};
95
96} // namespace ns3
97
98#endif // LTE_UE_PHY_SAP_H
Service Access Point (SAP) offered by the UE-PHY to the UE-MAC.
virtual void SendLteControlMessage(Ptr< LteControlMessage > msg)=0
Send SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
virtual void SendRachPreamble(uint32_t prachId, uint32_t raRnti)=0
Send a preamble on the PRACH.
virtual void NotifyConnectionSuccessful()=0
Notify PHY about the successful RRC connection establishment.
virtual void SendMacPdu(Ptr< Packet > p)=0
Send the MAC PDU to the channel.
Service Access Point (SAP) offered by the PHY to the MAC.
virtual void ReceivePhyPdu(Ptr< Packet > p)=0
Receive Phy Pdu function.
virtual void SubframeIndication(uint32_t frameNo, uint32_t subframeNo)=0
Trigger the start from a new frame (input from Phy layer)
virtual void ReceiveLteControlMessage(Ptr< LteControlMessage > msg)=0
Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
Smart pointer class similar to boost::intrusive_ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.