This file is indexed.

/usr/include/ns3.17/ns3/uan-net-device.h is in libns3-dev 3.17+dfsg-1build1.

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
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2009 University of Washington
 *
 * 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: Leonard Tracy <lentracy@gmail.com>
 */

#ifndef UAN_NET_DEVICE_H
#define UAN_NET_DEVICE_H

#include "ns3/net-device.h"
#include "ns3/pointer.h"
#include "ns3/traced-callback.h"
#include "uan-address.h"
#include <list>

namespace ns3 {

class UanChannel;
class UanPhy;
class UanMac;
class UanTransducer;

/**
 * \defgroup uan UAN Models
 * This section documents the API of the ns-3 UAN module. For a generic functional description, please refer to the ns-3 manual.
 */

/**
 * \ingroup uan
 * \class UanNetDevice
 *
 * \brief Net device for UAN models
 */
class UanNetDevice : public NetDevice
{
public:
  /**
   * \brief UanPhyList is defined as a standard template lib list of UanPhy objects
   */
  typedef std::list<Ptr<UanPhy> > UanPhyList;
  /**
   * \brief UanTransducerList is a standard template lib list of UanTransducer objects
   */
  typedef std::list<Ptr<UanTransducer> > UanTransducerList;

  static TypeId GetTypeId (void);

  UanNetDevice ();
  virtual ~UanNetDevice ();

  /**
   * \param mac Set MAC layer for this device
   */
  void SetMac (Ptr<UanMac> mac);

  /**
   * \param phy Set PHY layer for this device
   */
  void SetPhy (Ptr<UanPhy> phy);

  /**
   * \param channel The channel this device is attached to
   */
  void SetChannel (Ptr<UanChannel> channel);

  /**
   * \returns MAC this device is using
   */
  Ptr<UanMac> GetMac (void) const;

  /**
   * \returns PHY this device is using
   */
  Ptr<UanPhy> GetPhy (void) const;

  /**
   * \returns Transducer in net device
   */
  Ptr<UanTransducer> GetTransducer (void) const;
  /**
   * \param trans Transducer to use in this net device
   */
  void SetTransducer (Ptr<UanTransducer> trans);

  /**
   * Clears all pointer references
   */
  void Clear (void);

  void SetSleepMode (bool sleep);

  // Purely virtual functions from base class
  virtual void SetIfIndex (const uint32_t index);
  virtual uint32_t GetIfIndex (void) const;
  virtual Ptr<Channel> GetChannel (void) const;
  virtual Address GetAddress (void) const;
  virtual bool SetMtu (const uint16_t mtu);
  virtual uint16_t GetMtu (void) const;
  virtual bool IsLinkUp (void) const;
  virtual bool IsBroadcast (void) const;
  virtual Address GetBroadcast (void) const;
  virtual bool IsMulticast (void) const;
  virtual Address GetMulticast (Ipv4Address multicastGroup) const;
  virtual Address GetMulticast (Ipv6Address addr) const;
  virtual bool IsBridge (void) const;
  virtual bool IsPointToPoint (void) const;
  virtual bool Send (Ptr<Packet> packet, const Address& dest, uint16_t protocolNumber);
  virtual bool SendFrom (Ptr<Packet> packet, const Address& source, const Address& dest, uint16_t protocolNumber);
  virtual Ptr<Node> GetNode (void) const;
  virtual void SetNode (Ptr<Node> node);
  virtual bool NeedsArp (void) const;
  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
  virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
  virtual bool SupportsSendFrom (void) const;
  virtual void AddLinkChangeCallback (Callback<void> callback);
  virtual void SetAddress (Address address);
private:
  virtual void ForwardUp (Ptr<Packet> pkt, const UanAddress &src);
  Ptr<UanChannel> DoGetChannel (void) const;

  Ptr<UanTransducer> m_trans;
  Ptr<Node> m_node;
  Ptr<UanChannel> m_channel;
  Ptr<UanMac> m_mac;
  Ptr<UanPhy> m_phy;

  std::string m_name;
  uint32_t m_ifIndex;
  uint16_t m_mtu;
  bool m_linkup;
  TracedCallback<> m_linkChanges;
  ReceiveCallback m_forwardUp;

  TracedCallback<Ptr<const Packet>, UanAddress> m_rxLogger;
  TracedCallback<Ptr<const Packet>, UanAddress> m_txLogger;

  bool m_cleared;

protected:
  virtual void DoDispose ();
};

} // namespace ns3

#endif /* UAN_NET_DEVICE_H */