This file is indexed.

/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 */