/usr/include/ns3.26/ns3/lte-ue-cmac-sap.h is in libns3-dev 3.26+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation;
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Author: Nicola Baldo <nbaldo@cttc.es>
*/
#ifndef LTE_UE_CMAC_SAP_H
#define LTE_UE_CMAC_SAP_H
#include <ns3/packet.h>
#include <ns3/ff-mac-common.h>
#include <ns3/eps-bearer.h>
#include <ns3/lte-common.h>
namespace ns3 {
class LteMacSapUser;
/**
* Service Access Point (SAP) offered by the UE MAC to the UE RRC
*
* This is the MAC SAP Provider, i.e., the part of the SAP that contains the MAC methods called by the RRC
*/
class LteUeCmacSapProvider
{
public:
virtual ~LteUeCmacSapProvider ();
struct RachConfig
{
uint8_t numberOfRaPreambles;
uint8_t preambleTransMax;
uint8_t raResponseWindowSize;
};
virtual void ConfigureRach (RachConfig rc) = 0;
/**
* tell the MAC to start a contention-based random access procedure,
* e.g., to perform RRC connection establishment
*
*/
virtual void StartContentionBasedRandomAccessProcedure () = 0;
/**
* tell the MAC to start a non-contention-based random access
* procedure, e.g., as a consequence of handover
*
* \param rnti
* \param rapId Random Access Preamble Identifier
* \param prachMask
*/
virtual void StartNonContentionBasedRandomAccessProcedure (uint16_t rnti, uint8_t rapId, uint8_t prachMask) = 0;
struct LogicalChannelConfig
{
uint8_t priority;
uint16_t prioritizedBitRateKbps;
uint16_t bucketSizeDurationMs;
uint8_t logicalChannelGroup;
};
/**
* add a new Logical Channel (LC)
*
* \param lcId the ID of the LC
* \param lcConfig the LC configuration provided by the RRC
* \param msu the corresponding LteMacSapUser
*/
virtual void AddLc (uint8_t lcId, LogicalChannelConfig lcConfig, LteMacSapUser* msu) = 0;
/**
* remove an existing LC
*
* \param lcId
*/
virtual void RemoveLc (uint8_t lcId) = 0;
/**
* reset the MAC
*
*/
virtual void Reset () = 0;
};
/**
* Service Access Point (SAP) offered by the UE MAC to the UE RRC
*
* This is the MAC SAP User, i.e., the part of the SAP that contains the RRC methods called by the MAC
*/
class LteUeCmacSapUser
{
public:
virtual ~LteUeCmacSapUser ();
/**
*
*
* \param rnti the T-C-RNTI, which will eventually become the C-RNTI after contention resolution
*/
virtual void SetTemporaryCellRnti (uint16_t rnti) = 0;
/**
* Notify the RRC that the MAC Random Access procedure completed successfully
*
*/
virtual void NotifyRandomAccessSuccessful () = 0;
/**
* Notify the RRC that the MAC Random Access procedure failed
*
*/
virtual void NotifyRandomAccessFailed () = 0;
};
} // namespace ns3
#endif // LTE_UE_CMAC_SAP_H
|