This file is indexed.

/usr/include/ns3.27/ns3/flame-rtable.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
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2009 IITP RAS
 *
 * 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: Kirill Andreev <andreev@iitp.ru>
 */

#ifndef FLAME_RTABLE_H
#define FLAME_RTABLE_H

#include <map>
#include "ns3/nstime.h"
#include "ns3/object.h"
#include "ns3/mac48-address.h"

namespace ns3 {
namespace flame {
/**
 * \ingroup flame
 *
 * \brief Routing table for FLAME
 */
class FlameRtable : public Object
{
public:
  /// Means all interfaces
  const static uint32_t INTERFACE_ANY = 0xffffffff;
  /// Maximum (the best?) path cost
  const static uint32_t MAX_COST = 0xff;

  /// Route lookup result, return type of LookupXXX methods
  struct LookupResult
  {
    Mac48Address retransmitter; ///< retransmitter
    uint32_t ifIndex; ///< IF index
    uint8_t  cost; ///< cost
    uint16_t seqnum; ///< sequence number
    /**
     * Constructor
     *
     * \param r retransmitter MAC address
     * \param i interfce index
     * \param c cost
     * \param s sequence number
     */
    LookupResult (Mac48Address r = Mac48Address::GetBroadcast (),
                  uint32_t i = INTERFACE_ANY,
                  uint8_t  c = MAX_COST,
                  uint16_t s = 0)
      : retransmitter (r),
        ifIndex (i),
        cost (c),
        seqnum (s)
    {
    }
    /**
     * \returns True for valid route
     */
    bool IsValid () const;
    /**
     * Compare route lookup results, used by tests
     *
     * \param o the object to compare
     * \returns true if equal
     */
    bool operator== (const LookupResult & o) const;
  };
public:
  /**
   * \brief Get the type ID.
   * \return the object TypeId
   */
  static TypeId GetTypeId ();
  FlameRtable ();
  ~FlameRtable ();
  void DoDispose ();

  /**
   * Add path
   *
   * \param destination the destination address
   * \param retransmitter the retransmitter address
   * \param interface the interface
   * \param cost the cost
   * \param seqnum the sequence number
   */
  void AddPath (
    const Mac48Address destination,
    const Mac48Address retransmitter,
    const uint32_t interface,
    const uint8_t cost,
    const uint16_t seqnum
    );
  /**
   * \brief Lookup path to destination
   * \param destination
   * \return Broadcast if not found
   */
  LookupResult Lookup (Mac48Address destination);
private:
  /**
   * assignment operator
   *
   * \param table the flame table to assign
   * \returns the assigned value
   */
  FlameRtable& operator= (const FlameRtable & table);
  /// type conversion operator
  FlameRtable (const FlameRtable &);

  /// Routing table entry
  struct Route
  {
    Mac48Address retransmitter; ///< retransmitter
    uint32_t interface; ///< interface
    uint32_t cost; ///< cost
    Time whenExpire; ///< expire when?
    uint32_t seqnum; ///< sequence number
  };
  /// Lifetime parameter
  Time m_lifetime;
  /// List of routes
  std::map<Mac48Address, Route>  m_routes;
};

} // namespace flame
} // namespace ns3
#endif /* FLAME_PROTOCOL_H */