23#include "ns3/callback.h" 
   24#include "ns3/channel.h" 
   26#include "ns3/ipv4-header.h" 
   27#include "ns3/ipv6-header.h" 
   28#include "ns3/llc-snap-header.h" 
   30#include "ns3/packet-burst.h" 
   31#include "ns3/packet.h" 
   32#include "ns3/pointer.h" 
   33#include "ns3/simulator.h" 
   34#include "ns3/trace-source-accessor.h" 
   35#include "ns3/uinteger.h" 
   36#include <ns3/ipv4-l3-protocol.h> 
   37#include <ns3/ipv6-l3-protocol.h> 
   55        TypeId(
"ns3::LteNetDevice")
 
   59                          "The MAC-level Maximum Transmission Unit",
 
   62                          MakeUintegerChecker<uint16_t>());
 
  133                       uint16_t protocolNumber)
 
  273    if (p->PeekHeader(ipv4Header) != 0)
 
  278    else if (p->PeekHeader(ipv6Header) != 0)
 
  285        NS_ABORT_MSG(
"LteNetDevice::Receive - Unknown IP type...");
 
a polymophic address class
 
Ipv4 addresses are stored in host order in this class.
 
static const uint16_t PROT_NUMBER
Protocol number (0x0800)
 
Describes an IPv6 address.
 
static const uint16_t PROT_NUMBER
The protocol number for IPv6 (0x86DD).
 
void SetAddress(Address address) override
Set the address of this interface.
 
Ptr< Channel > GetChannel() const override
 
bool SupportsSendFrom() const override
 
bool NeedsArp() const override
 
void SetReceiveCallback(NetDevice::ReceiveCallback cb) override
 
void AddLinkChangeCallback(Callback< void > callback) override
 
Address GetMulticast(Ipv4Address addr) const override
Make and return a MAC multicast address using the provided multicast group.
 
bool IsMulticast() const override
 
void Receive(Ptr< Packet > p)
receive a packet from the lower layers in order to forward it to the upper layers
 
Address GetBroadcast() const override
 
bool IsBroadcast() const override
 
NetDevice::ReceiveCallback m_rxCallback
receive callback
 
static TypeId GetTypeId()
Get the type ID.
 
Address GetAddress() const override
 
void SetPromiscReceiveCallback(PromiscReceiveCallback cb) override
 
bool SendFrom(Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber) override
 
void SetIfIndex(const uint32_t index) override
 
TracedCallback m_linkChangeCallbacks
link change callback
 
uint16_t GetMtu() const override
 
void SetNode(Ptr< Node > node) override
 
Mac64Address m_address
MAC address - only relevant for UEs.
 
bool IsPointToPoint() const override
Return true if the net device is on a point-to-point link.
 
Ptr< Node > GetNode() const override
 
uint32_t GetIfIndex() const override
 
uint32_t m_ifIndex
interface index
 
bool IsLinkUp() const override
 
Ptr< Node > m_node
the node
 
bool IsBridge() const override
Return true if the net device is acting as a bridge.
 
void DoDispose() override
Destructor implementation.
 
bool SetMtu(const uint16_t mtu) override
 
static Mac48Address GetMulticast(Ipv4Address address)
 
static Mac48Address GetBroadcast()
 
static Mac64Address ConvertFrom(const Address &address)
 
Network layer to device interface.
 
virtual void DoDispose()
Destructor implementation.
 
Smart pointer class similar to boost::intrusive_ptr.
 
void ConnectWithoutContext(const CallbackBase &callback)
Append a Callback to the chain (without a context).
 
a unique identifier for an interface.
 
TypeId SetParent(TypeId tid)
Set the parent TypeId.
 
Hold an unsigned integer type.
 
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
 
#define NS_ABORT_MSG(msg)
Unconditional abnormal program termination with a message.
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
 
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
 
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
 
Every class exported by the ns3 library is enclosed in the ns3 namespace.