This file is indexed.

/usr/include/ns3.26/ns3/packet-socket-address.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
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2007 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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
 */
#ifndef PACKET_SOCKET_ADDRESS_H
#define PACKET_SOCKET_ADDRESS_H

#include "ns3/ptr.h"
#include "ns3/address.h"
#include "mac48-address.h"
#include "mac64-address.h"
#include "ns3/net-device.h"

namespace ns3 {

class NetDevice;

/**
 * \ingroup address
 *
 * \brief an address for a packet socket
 */
class PacketSocketAddress
{
public:
  PacketSocketAddress ();

  /**
   * \brief Set the protocol
   * \param protocol the protocol
   */
  void SetProtocol (uint16_t protocol);

  /**
   * \brief Set the address to match all the outgoing NetDevice
   */
  void SetAllDevices (void);

  /**
   * \brief Set the address to match only a specified NetDevice
   * \param device the NetDevice index
   */
  void SetSingleDevice (uint32_t device);

  /**
   * \brief Set the destination address
   * \param address the destination address
   */
  void SetPhysicalAddress (const Address address);

  /**
   * \brief Get the protocol
   * \return the protocol
   */
  uint16_t GetProtocol (void) const;

  /**
   * \brief Get the device this address is bound to
   * \return the device index
   */
  uint32_t GetSingleDevice (void) const;

  /**
   * \brief Checks if the address is bound to a specified NetDevice
   * \return true if the address is bound to a NetDevice
   */
  bool IsSingleDevice (void) const;

  /**
   * \brief Get the destination address
   * \returns The destination address
   */
  Address GetPhysicalAddress (void) const;

  /**
   * \returns a new Address instance
   *
   * Convert an instance of this class to a polymorphic Address instance.
   */
  operator Address () const;

  /**
   * \param address a polymorphic address
   * \returns an Address
   * Convert a polymorphic address to an Mac48Address instance.
   * The conversion performs a type check.
   */
  static PacketSocketAddress ConvertFrom (const Address &address);

  /**
   * \param address address to test
   * \returns true if the address matches, false otherwise.
   */
  static bool IsMatchingType (const Address &address);
private:

  /**
   * \brief Return the Type of address.
   * \return type of address
   */
  static uint8_t GetType (void);

  /**
   * \brief Convert an instance of this class to a polymorphic Address instance.
   * \returns a new Address instance
   */
  Address ConvertTo (void) const;

  uint16_t m_protocol;    //!< Protocol
  bool m_isSingleDevice;  //!< True if directed to a specific outgoing NetDevice
  uint32_t m_device;      //!< Outgoing NetDevice index
  Address m_address;      //!< Destination address
};


} // namespace ns3

#endif /* PACKET_SOCKET_ADDRESS_H */