/usr/include/ns3/uan-net-device.h is in libns3-dev 3.13+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 | /* -*- 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 */
|