/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 */
|