20 #ifndef WAVE_NET_DEVICE_H 21 #define WAVE_NET_DEVICE_H 25 #include "ns3/packet.h" 26 #include "ns3/traced-callback.h" 27 #include "ns3/mac48-address.h" 28 #include "ns3/net-device.h" 39 class ChannelScheduler;
184 std::map<uint32_t, Ptr<OcbWifiMac> >
GetMacs (
void)
const;
197 std::vector<Ptr<WifiPhy> >
GetPhys (
void)
const;
241 bool StopSch (uint32_t channelNumber);
252 bool StopVsa (uint32_t channelNumber);
331 virtual void SetIfIndex (
const uint32_t index);
336 virtual bool SetMtu (
const uint16_t mtu);
337 virtual uint16_t
GetMtu (
void)
const;
384 typedef std::map<uint32_t, Ptr<OcbWifiMac> >::const_iterator
MacEntitiesI;
bool StopVsa(uint32_t channelNumber)
uint32_t m_ifIndex
IF index.
static const uint16_t IPv4_PROT_NUMBER
IP v4 Protocol number.
virtual bool IsPointToPoint(void) const
Return true if the net device is on a point-to-point link.
virtual Address GetBroadcast(void) const
bool StartSch(const SchInfo &schInfo)
void SetWaveVsaCallback(WaveVsaCallback vsaCallback)
WifiMode dataRate
data rate
virtual bool IsMulticast(void) const
virtual Address GetMulticast(Ipv4Address multicastGroup) const
Make and return a MAC multicast address using the provided multicast group.
uint32_t priority
priority
WifiMode dataRate
data rate
Callback< bool, Ptr< const Packet >, const Address &, uint32_t, uint32_t > WaveVsaCallback
Ptr< ChannelCoordinator > m_channelCoordinator
the channel coordinator
Forward calls to a chain of Callback.
virtual bool SupportsSendFrom(void) const
bool SendX(Ptr< Packet > packet, const Address &dest, uint32_t protocol, const TxInfo &txInfo)
virtual bool SendFrom(Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
std::map< uint32_t, Ptr< OcbWifiMac > >::const_iterator MacEntitiesI
MacEntities iterator typedef.
virtual bool NeedsArp(void) const
This class holds together multiple, ns3::WifiPhy, and ns3::OcbWifiMac (including ns3::WifiRemoteStati...
Ptr< ChannelScheduler > GetChannelScheduler(void) const
virtual void SetAddress(Address address)
Set the address of this interface.
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
virtual bool IsBridge(void) const
Return true if the net device is acting as a bridge.
uint32_t txPowerLevel
transmit power level
virtual void SetReceiveCallback(NetDevice::ReceiveCallback cb)
void ForwardUp(Ptr< Packet > packet, Mac48Address from, Mac48Address to)
Receive a packet from the lower layer and pass the packet up the stack.
uint32_t channelNumber
channel number
bool IsAvailableChannel(uint32_t channelNumber) const
a polymophic address class
Ptr< Node > m_node
the node
Ptr< WifiPhy > GetPhy(uint32_t index) const
static const uint16_t IPv6_PROT_NUMBER
IP v6 Protocol number.
virtual Address GetAddress(void) const
WifiPreamble
The type of preamble to be used by an IEEE 802.11 transmission.
std::map< uint32_t, Ptr< OcbWifiMac > > GetMacs(void) const
std::map< uint32_t, Ptr< OcbWifiMac > > MacEntities
MacEntities typedef.
bool DeleteTxProfile(uint32_t channelNumber)
Ptr< ChannelManager > m_channelManager
the channel manager
virtual Ptr< Node > GetNode(void) const
virtual ~WaveNetDevice(void)
void SetChannelScheduler(Ptr< ChannelScheduler > channelScheduler)
Ptr< ChannelScheduler > m_channelScheduler
the channel scheduler
void SetChannelManager(Ptr< ChannelManager > channelManager)
void ChangeAddress(Address newAddress)
TxProfile(void)
Initializer.
WifiPreamble preamble
preamble
uint32_t channelNumber
channel number
NetDevice::ReceiveCallback m_forwardUp
forward up receive callback
Ptr< VsaManager > GetVsaManager(void) const
virtual void DoDispose(void)
Destructor implementation.
Ptr< VsaManager > m_vsaManager
the VSA manager
virtual bool IsBroadcast(void) const
virtual uint32_t GetIfIndex(void) const
virtual bool IsLinkUp(void) const
uint32_t txPowerLevel
transmit power level
virtual void SetIfIndex(const uint32_t index)
bool StopSch(uint32_t channelNumber)
TxProfile * m_txProfile
transmit profile
Ptr< ChannelCoordinator > GetChannelCoordinator(void) const
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual void DoInitialize(void)
Initialize() implementation.
virtual Ptr< Channel > GetChannel(void) const
static const uint16_t MAX_MSDU_SIZE
This value conforms to the 802.11 specification.
Ptr< OcbWifiMac > GetMac(uint32_t channelNumber) const
void AddPhy(Ptr< WifiPhy > phy)
TxInfo(uint32_t channel, uint32_t prio=7, WifiMode rate=WifiMode(), WifiPreamble preamble=WIFI_PREAMBLE_NONE, uint32_t powerLevel=8)
Initializer.
Describes an IPv6 address.
bool StartVsa(const VsaInfo &vsaInfo)
Ipv4 addresses are stored in host order in this class.
TracedCallback< Address, Address > m_addressChange
virtual void AddLinkChangeCallback(Callback< void > callback)
Network layer to device interface.
static TypeId GetTypeId(void)
Get the type ID.
TxProfile(uint32_t channel, bool adapt=true, uint32_t powerLevel=4)
Initializer.
void SetVsaManager(Ptr< VsaManager > vsaManager)
NetDevice::PromiscReceiveCallback m_promiscRx
promiscious receive callback
PhyEntities m_phyEntities
Phy entities.
std::vector< Ptr< WifiPhy > >::const_iterator PhyEntitiesI
PhyEntities iterator typedef.
virtual void SetPromiscReceiveCallback(PromiscReceiveCallback cb)
std::vector< Ptr< WifiPhy > > PhyEntities
PhyEntities typedef.
void AddMac(uint32_t channelNumber, Ptr< OcbWifiMac > mac)
virtual bool SetMtu(const uint16_t mtu)
std::vector< Ptr< WifiPhy > > GetPhys(void) const
MacEntities m_macEntities
MAC entities.
Ptr< ChannelManager > GetChannelManager(void) const
void SetChannelCoordinator(Ptr< ChannelCoordinator > channelCoordinator)
a unique identifier for an interface.
virtual uint16_t GetMtu(void) const
bool RegisterTxProfile(const TxProfile &txprofile)
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
void CancelTx(uint32_t channelNumber, enum AcIndex ac)
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
WifiPreamble preamble
preamble
virtual void SetNode(Ptr< Node > node)