/usr/include/ns3.27/ns3/ofdm-downlink-frame-prefix.h is in libns3-dev 3.27+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 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2007,2008 INRIA
*
* 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: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
*/
#ifndef DL_FRAME_PREFIX_IE_H
#define DL_FRAME_PREFIX_IE_H
#include <stdint.h>
#include "ns3/header.h"
namespace ns3 {
/**
* \ingroup wimax
* \brief This class implements the DL Frame Prefix IE as described by IEEE-802.16 standard
* \brief The DL Frame Prefix IE is contained in DLFP (Downlink Frame Prefix) in OFDM PHY
*/
class DlFramePrefixIe
{
public:
DlFramePrefixIe ();
~DlFramePrefixIe ();
/**
* Set rate ID field
* \param rateId the rate ID
*/
void SetRateId (uint8_t rateId);
/**
* Set DIUC field
* \param diuc the DIUC
*/
void SetDiuc (uint8_t diuc);
/**
* Set preamble present field
* \param preamblePresent the preambel present
*/
void SetPreamblePresent (uint8_t preamblePresent);
/**
* Set length field
* \param length the length
*/
void SetLength (uint16_t length);
/**
* Set start time field
* \param startTime the start time
*/
void SetStartTime (uint16_t startTime);
/**
* Get rate ID field
* \returns the rate ID
*/
uint8_t GetRateId (void) const;
/**
* Get DIUC field
* \returns the DIUC
*/
uint8_t GetDiuc (void) const;
/**
* Get preamble present field
* \returns the preamble present
*/
uint8_t GetPreamblePresent (void) const;
/**
* Get length field
* \returns the length
*/
uint16_t GetLength (void) const;
/**
* Get start time field
* \returns the start time
*/
uint16_t GetStartTime (void) const;
/**
* Get size field
* \returns the size
*/
uint16_t GetSize (void) const;
/**
* Write item function
* \param start the iterator
* \returns the updated iterator
*/
Buffer::Iterator Write (Buffer::Iterator start) const;
/**
* Read item function
* \param start the iterator
* \returns the updated iterator
*/
Buffer::Iterator Read (Buffer::Iterator start);
private:
uint8_t m_rateId; ///< rate ID
uint8_t m_diuc; ///< DIUC
uint8_t m_preamblePresent; ///< preamble present
uint16_t m_length; ///< length
uint16_t m_startTime; ///< start time
// shall actually contain m_startTime if DIUC is 0. see Table 225, page 452
};
} // namespace ns3
#endif /* DL_FRAME_PREFIX_IE_H */
#ifndef OFDM_DOWNLINK_FRAME_PREFIX_H
#define OFDM_DOWNLINK_FRAME_PREFIX_H
#include <stdint.h>
#include "ns3/header.h"
#include "ns3/mac48-address.h"
namespace ns3 {
/**
* OfdmDownlinkFramePrefix
*/
class OfdmDownlinkFramePrefix : public Header
{
public:
OfdmDownlinkFramePrefix ();
~OfdmDownlinkFramePrefix ();
/**
* Register this type.
* \return The TypeId.
*/
static TypeId GetTypeId (void);
/**
* Set base station ID field
* \param baseStationId the base station ID
*/
void SetBaseStationId (Mac48Address baseStationId);
/**
* Set frame number field
* \param frameNumber the frame number
*/
void SetFrameNumber (uint32_t frameNumber);
/**
* Set configuration change count field
* \param configurationChangeCount the configuration change count
*/
void SetConfigurationChangeCount (uint8_t configurationChangeCount);
/**
* Add DL frame prefix element field
* \param dlFramePrefixElement the DL frane prefix element
*/
void AddDlFramePrefixElement (DlFramePrefixIe dlFramePrefixElement);
/**
* Set HCS field
* \param hcs the HCS
*/
void SetHcs (uint8_t hcs);
/**
* Get base station ID field
* \returns the base station ID
*/
Mac48Address GetBaseStationId (void) const;
/**
* Get frame number field
* \returns the frame number
*/
uint32_t GetFrameNumber (void) const;
/**
* Get configuration change count field
* \returns the configuration change count
*/
uint8_t GetConfigurationChangeCount (void) const;
/**
* Get DL frame prefix elements
* \returns the DL frame prefix elements
*/
std::vector<DlFramePrefixIe> GetDlFramePrefixElements (void) const;
/**
* Get HCS field
* \returns the HCS
*/
uint8_t GetHcs (void) const;
/**
* Get name field
* \returns the name
*/
std::string GetName (void) const;
void Print (std::ostream &os) const;
uint32_t GetSerializedSize (void) const;
void Serialize (Buffer::Iterator start) const;
uint32_t Deserialize (Buffer::Iterator start);
private:
Mac48Address m_baseStationId; ///< base station ID
uint32_t m_frameNumber; ///< shall actually be only 4 LSB of the same field in OFDM DCD Channel Encodings
uint8_t m_configurationChangeCount; ///< shall actually be only 4 LSB of the same field in DCD
std::vector<DlFramePrefixIe> m_dlFramePrefixElements; ///< vector of dl frame prefix elements
uint8_t m_hcs; ///< Header Check Sequence
};
} // namespace ns3
#endif /* OFDM_DOWNLINK_FRAME_PREFIX_H */
|