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/wifi-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;
382 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.
void ForwardUp(Ptr< const Packet > packet, Mac48Address from, Mac48Address to)
Receive a packet from the lower layer and pass the packet up the stack.
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
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
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)
TxInfo(uint32_t channel, uint32_t prio=7, WifiMode rate=WifiMode(), WifiPreamble preamble=WIFI_PREAMBLE_LONG, uint32_t powerLevel=8)
Initializer.
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)
uint32_t channelNumber
channel number
bool IsAvailableChannel(uint32_t channelNumber) const
a polymophic address class
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 ~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.
Hold together all Wifi-related objects.
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< WifiPhy > GetPhy(void) const
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.
void AddPhy(Ptr< WifiPhy > phy)
Describes an IPv6 address.
bool StartVsa(const VsaInfo &vsaInfo)
Ipv4 addresses are stored in host order in this class.
Ptr< WifiMac > GetMac(void) const
TracedCallback< Address, Address > m_addressChange
virtual void AddLinkChangeCallback(Callback< void > callback)
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)
void CancelTx(uint32_t channelNumber, enum AcIndex ac)
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
WifiPreamble preamble
preamble