12#include "ns3/callback.h"
13#include "ns3/channel.h"
15#include "ns3/ipv4-header.h"
16#include "ns3/ipv6-header.h"
17#include "ns3/llc-snap-header.h"
19#include "ns3/packet-burst.h"
20#include "ns3/packet.h"
21#include "ns3/pointer.h"
22#include "ns3/simulator.h"
23#include "ns3/trace-source-accessor.h"
24#include "ns3/uinteger.h"
25#include <ns3/ipv4-l3-protocol.h>
26#include <ns3/ipv6-l3-protocol.h>
44 TypeId(
"ns3::LteNetDevice")
48 "The MAC-level Maximum Transmission Unit",
122 uint16_t protocolNumber)
262 if (p->PeekHeader(ipv4Header) != 0)
267 else if (p->PeekHeader(ipv6Header) != 0)
274 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.
#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.
Ptr< const AttributeChecker > MakeUintegerChecker()
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)