This file is indexed.

/usr/include/ns3.27/ns3/ss-service-flow-manager.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
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2009 INRIA, UDcast
 *
 * 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
 *
 *  Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
 */

#ifndef SS_SERVICE_FLOW_MANAGER_H
#define SS_SERVICE_FLOW_MANAGER_H

#include <stdint.h>
#include "ns3/event-id.h"
#include "mac-messages.h"
#include "ns3/buffer.h"
#include "service-flow-manager.h"
#include "ss-net-device.h"

namespace ns3 {

class Packet;
class ServiceFlow;
class WimaxNetDevice;
class WimaxConnection;
class SubscriberStationNetDevice;

/**
 * \ingroup wimax
 * \brief SsServiceFlowManager class 
 */
class SsServiceFlowManager : public ServiceFlowManager
{
public:
  /// Confirmation code enumeration
  enum ConfirmationCode // as per Table 384 (not all codes implemented)
  {
    CONFIRMATION_CODE_SUCCESS,
    CONFIRMATION_CODE_REJECT
  };
  /**
   * \brief creates a service flow manager and attaches it to a device
   * \param  device the device to which the service flow manager will be attached
   */
  /**
   * Constructor
   *
   * \param device subscriber station device
   */
  SsServiceFlowManager (Ptr<SubscriberStationNetDevice> device);
  ~SsServiceFlowManager (void);
  void DoDispose (void);

  /**
   * Register this type.
   * \return The TypeId.
   */
  static TypeId GetTypeId (void);
  
  /**
   * \brief add a service flow to the list
   * \param serviceFlow the service flow to add
   */
  void AddServiceFlow (ServiceFlow *serviceFlow);
  /**
   * \brief add a service flow to the list
   * \param serviceFlow the service flow to add
   */
  void AddServiceFlow (ServiceFlow serviceFlow);
  /**
   * \brief sets the maximum retries on DSA request message
   * \param maxDsaReqRetries the maximum retries on DSA request message
   */
  void SetMaxDsaReqRetries (uint8_t maxDsaReqRetries);
  /**
   * \return the maximum retries on DSA request message
   */
  uint8_t GetMaxDsaReqRetries (void) const;

  /**
   * Get DSA response timeout event
   * \returns the DSA response timeout event
   */
  EventId GetDsaRspTimeoutEvent (void) const;
  /**
   * Get DSA ack timeout event
   * \returns the DSA ack timeput event
   */
  EventId GetDsaAckTimeoutEvent (void) const;

  /// Initiate service flows
  void InitiateServiceFlows (void);

  /**
   * Create DSA request
   * \param serviceFlow the service flow
   * \returns the DSA request
   */
  DsaReq CreateDsaReq (const ServiceFlow *serviceFlow);

  /**
   * Create DSA ack
   * \returns the packet
   */
  Ptr<Packet> CreateDsaAck (void);

  /**
   * Schedule DSA response
   * \param serviceFlow the service flow
   */
  void ScheduleDsaReq (const ServiceFlow *serviceFlow);

  /**
   * Process DSA response
   * \param dsaRsp the DSA response
   */
  void ProcessDsaRsp (const DsaRsp &dsaRsp);


private:
  Ptr<SubscriberStationNetDevice> m_device; ///< the device

  uint8_t m_maxDsaReqRetries; ///< maximum DSA request retries

  EventId m_dsaRspTimeoutEvent; ///< DSA response timeout event
  EventId m_dsaAckTimeoutEvent; ///< DSA ack timeout event

  DsaReq m_dsaReq; ///< DSA request
  DsaAck m_dsaAck; ///< DSA ack

  uint16_t m_currentTransactionId; ///< current transaction ID
  uint16_t m_transactionIdIndex; ///< transaction ID index
  uint8_t m_dsaReqRetries; ///< DSA request retries

  // pointer to the service flow currently being configured
  ServiceFlow *m_pendingServiceFlow; ///< pending service flow


};

} // namespace ns3

#endif /* SS_SERVICE_FLOW_MANAGER_H */