src/lte/model/lte-ue-phy-sap.h
author Manuel Requena <manuel.requena@cttc.es>
Tue, 26 Mar 2013 10:41:49 +0100
changeset 10019 6efd95740e39
parent 9460 0674e66ee483
permissions -rw-r--r--
Add automatic triger of the HO based on the RSRQ measures
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     2
/*
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     3
 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     4
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     7
 * published by the Free Software Foundation;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     8
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    12
 * GNU General Public License for more details.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    13
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    17
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    18
 * Author: Marco Miozzo <mmiozzo@cttc.es>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    19
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    20
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    21
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    22
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    23
#ifndef LTE_UE_PHY_SAP_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    24
#define LTE_UE_PHY_SAP_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    25
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    26
#include <ns3/packet.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    27
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    28
namespace ns3 {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    29
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
    30
class LteControlMessage;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    31
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    32
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    33
* Service Access Point (SAP) offered by the UE-PHY to the UE-MAC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    34
*
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    35
* This is the PHY SAP Provider, i.e., the part of the SAP that contains
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    36
* the PHY methods called by the MAC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    37
*/
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    38
class LteUePhySapProvider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    39
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    40
public:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    41
  virtual ~LteUePhySapProvider ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    43
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    44
  * \brief Send the MAC PDU to the channel
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    45
  * \param p the MAC PDU to send
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    46
  * \return true if
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    47
  */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    48
  virtual void SendMacPdu (Ptr<Packet> p) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    49
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    50
  /**
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
    51
  * \brief Send SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    52
  * \param msg the Ideal Control Message to send
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    53
  */
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
    54
  virtual void SendLteControlMessage (Ptr<LteControlMessage> msg) = 0;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    55
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    56
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    57
   * send a preamble on the PRACH
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    58
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    59
   * \param prachId the ID of the preamble
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    60
   */
9460
0674e66ee483 Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9406
diff changeset
    61
  virtual void SendRachPreamble (uint32_t prachId, uint32_t raRnti) = 0;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    62
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    63
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    64
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    65
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    66
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    67
* Service Access Point (SAP) offered by the PHY to the MAC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    68
*
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
    69
* This is the PHY SAP User, i.e., the part of the SAP that contains the MAC
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    70
* methods called by the PHY
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    71
*/
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    72
class LteUePhySapUser
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    73
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    74
public:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    75
  virtual ~LteUePhySapUser ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    76
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    77
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    78
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    79
  * Called by the Phy to notify the MAC of the reception of a new PHY-PDU
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    80
  *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    81
  * \param p
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    82
  */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    83
  virtual void ReceivePhyPdu (Ptr<Packet> p) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    84
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    85
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    86
  * \brief Trigger the start from a new frame (input from Phy layer)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    87
  * \param frameNo frame number
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    88
  * \param subframeNo subframe number
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    89
  */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    90
  virtual void SubframeIndication (uint32_t frameNo, uint32_t subframeNo) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    91
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    92
  /**
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
    93
  * \brief Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    94
  * \param msg the Ideal Control Message to receive
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    95
  */
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
    96
  virtual void ReceiveLteControlMessage (Ptr<LteControlMessage> msg) = 0;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    97
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    98
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    99
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   100
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   101
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   102
} // namespace ns3
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   103
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   104
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   105
#endif // LTE_UE_PHY_SAP_H