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;
64 : channelNumber (
CCH),
71 : channelNumber (channel),
74 txPowerLevel (powerLevel)
99 : channelNumber (
SCH1),
103 dataRate =
WifiMode (
"OfdmRate6MbpsBW10MHz");
105 TxProfile (uint32_t channel,
bool adapt =
true, uint32_t powerLevel = 4)
106 : channelNumber (channel),
108 txPowerLevel (powerLevel)
110 dataRate =
WifiMode (
"OfdmRate6MbpsBW10MHz");
148 std::map<uint32_t, Ptr<OcbWifiMac> >
GetMacs (
void)
const;
161 std::vector<Ptr<WifiPhy> >
GetPhys (
void)
const;
205 bool StopSch (uint32_t channelNumber);
216 bool StopVsa (uint32_t channelNumber);
292 virtual bool Send (
Ptr<Packet> packet,
const Address& dest, uint16_t protocolNumber);
295 virtual void SetIfIndex (
const uint32_t index);
300 virtual bool SetMtu (
const uint16_t mtu);
301 virtual uint16_t
GetMtu (
void)
const;
315 virtual bool SendFrom (
Ptr<Packet> packet,
const Address& source,
const Address& dest, uint16_t protocolNumber);
344 typedef std::map<uint32_t, Ptr<OcbWifiMac> >::const_iterator
MacEntitiesI;
virtual Address GetAddress(void) const
Ptr< WifiPhy > GetPhy(uint32_t index) const
bool StopVsa(uint32_t channelNumber)
static const uint16_t IPv4_PROT_NUMBER
bool StartSch(const SchInfo &schInfo)
void SetWaveVsaCallback(WaveVsaCallback vsaCallback)
Callback< bool, Ptr< const Packet >, const Address &, uint32_t, uint32_t > WaveVsaCallback
Ptr< ChannelCoordinator > m_channelCoordinator
Forward calls to a chain of Callback.
bool SendX(Ptr< Packet > packet, const Address &dest, uint32_t protocol, const TxInfo &txInfo)
virtual bool SupportsSendFrom(void) const
virtual bool SendFrom(Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
std::map< uint32_t, Ptr< OcbWifiMac > >::const_iterator MacEntitiesI
This class holds together multiple, ns3::WifiPhy, and ns3::OcbWifiMac (including ns3::WifiRemoteStati...
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...
Ptr< VsaManager > GetVsaManager(void) const
virtual bool NeedsArp(void) const
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.
a polymophic address class
Ptr< ChannelCoordinator > GetChannelCoordinator(void) const
static const uint16_t IPv6_PROT_NUMBER
std::map< uint32_t, Ptr< OcbWifiMac > > MacEntities
bool DeleteTxProfile(uint32_t channelNumber)
Ptr< ChannelManager > m_channelManager
virtual ~WaveNetDevice(void)
void SetChannelScheduler(Ptr< ChannelScheduler > channelScheduler)
Ptr< ChannelScheduler > m_channelScheduler
void SetChannelManager(Ptr< ChannelManager > channelManager)
void ChangeAddress(Address newAddress)
NetDevice::ReceiveCallback m_forwardUp
virtual void DoDispose(void)
Destructor implementation.
virtual Address GetMulticast(Ipv4Address multicastGroup) const
Make and return a MAC multicast address using the provided multicast group.
Ptr< VsaManager > m_vsaManager
virtual void SetIfIndex(const uint32_t index)
bool StopSch(uint32_t channelNumber)
virtual uint16_t GetMtu(void) const
bool IsAvailableChannel(uint32_t channelNumber) const
std::map< uint32_t, Ptr< OcbWifiMac > > GetMacs(void) const
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual void DoInitialize(void)
Initialize() implementation.
Ptr< OcbWifiMac > GetMac(uint32_t channelNumber) const
virtual Address GetBroadcast(void) const
static const uint16_t MAX_MSDU_SIZE
virtual bool IsMulticast(void) const
virtual Ptr< Channel > GetChannel(void) const
Ptr< ChannelManager > GetChannelManager(void) const
TxInfo(uint32_t channel, uint32_t prio=7, WifiMode rate=WifiMode(), uint32_t powerLevel=8)
virtual bool IsBroadcast(void) const
std::vector< Ptr< WifiPhy > > GetPhys(void) const
void AddPhy(Ptr< WifiPhy > phy)
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 Ptr< Node > GetNode(void) const
virtual void AddLinkChangeCallback(Callback< void > callback)
Network layer to device interface.
static TypeId GetTypeId(void)
TxProfile(uint32_t channel, bool adapt=true, uint32_t powerLevel=4)
void SetVsaManager(Ptr< VsaManager > vsaManager)
NetDevice::PromiscReceiveCallback m_promiscRx
PhyEntities m_phyEntities
std::vector< Ptr< WifiPhy > >::const_iterator PhyEntitiesI
virtual void SetPromiscReceiveCallback(PromiscReceiveCallback cb)
std::vector< Ptr< WifiPhy > > PhyEntities
void AddMac(uint32_t channelNumber, Ptr< OcbWifiMac > mac)
virtual bool IsPointToPoint(void) const
Return true if the net device is on a point-to-point link.
virtual bool SetMtu(const uint16_t mtu)
MacEntities m_macEntities
virtual bool IsBridge(void) const
Return true if the net device is acting as a bridge.
void SetChannelCoordinator(Ptr< ChannelCoordinator > channelCoordinator)
Ptr< ChannelScheduler > GetChannelScheduler(void) const
virtual uint32_t GetIfIndex(void) const
virtual bool IsLinkUp(void) const
a unique identifier for an interface.
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)
virtual void SetNode(Ptr< Node > node)