A Discrete-Event Network Simulator
API
ns3::flame::FlameProtocolMac Class Reference

Interface MAC plugin FLAME routing protocol. More...

#include "flame-protocol-mac.h"

+ Inheritance diagram for ns3::flame::FlameProtocolMac:
+ Collaboration diagram for ns3::flame::FlameProtocolMac:

Classes

struct  Statistics
 

Public Member Functions

 FlameProtocolMac (Ptr< FlameProtocol >)
 
 ~FlameProtocolMac ()
 
int64_t AssignStreams (int64_t stream)
 AssignStreams is empty, because this model doesn't use random variables. More...
 
uint16_t GetChannelId () const
 
bool Receive (Ptr< Packet > packet, const WifiMacHeader &header)
 Process received frame. More...
 
void Report (std::ostream &) const
 Report statistics. More...
 
void ResetStats ()
 
void SetParent (Ptr< MeshWifiInterfaceMac > parent)
 Each plugin must be installed on interface to work. More...
 
void UpdateBeacon (MeshWifiBeacon &beacon) const
 Update beacon is empty, because HWMP does not know anything about beacons. More...
 
bool UpdateOutcomingFrame (Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to)
 Update frame before it will be forwarded down. More...
 
- Public Member Functions inherited from ns3::MeshWifiInterfaceMacPlugin
virtual ~MeshWifiInterfaceMacPlugin ()
 This is for subclasses. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< MeshWifiInterfaceMacPlugin >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 

Private Attributes

Ptr< MeshWifiInterfaceMacm_parent
 
Ptr< FlameProtocolm_protocol
 
Statistics:
Statistics m_stats
 

Additional Inherited Members

- Static Public Member Functions inherited from ns3::SimpleRefCount< MeshWifiInterfaceMacPlugin >
static void Cleanup (void)
 Noop. More...
 

Detailed Description

Interface MAC plugin FLAME routing protocol.

Definition at line 34 of file flame-protocol-mac.h.

Constructor & Destructor Documentation

ns3::flame::FlameProtocolMac::FlameProtocolMac ( Ptr< FlameProtocol protocol)

Definition at line 32 of file flame-protocol-mac.cc.

ns3::flame::FlameProtocolMac::~FlameProtocolMac ( )

Definition at line 36 of file flame-protocol-mac.cc.

References m_parent, and m_protocol.

Member Function Documentation

int64_t ns3::flame::FlameProtocolMac::AssignStreams ( int64_t  stream)
inlinevirtual

AssignStreams is empty, because this model doesn't use random variables.

Implements ns3::MeshWifiInterfaceMacPlugin.

Definition at line 47 of file flame-protocol-mac.h.

uint16_t ns3::flame::FlameProtocolMac::GetChannelId ( ) const

Definition at line 99 of file flame-protocol-mac.cc.

References m_parent.

void ns3::flame::FlameProtocolMac::Report ( std::ostream &  os) const

Report statistics.

Definition at line 119 of file flame-protocol-mac.cc.

References m_parent, m_stats, and ns3::flame::FlameProtocolMac::Statistics::Print().

+ Here is the call graph for this function:

void ns3::flame::FlameProtocolMac::ResetStats ( )

Definition at line 128 of file flame-protocol-mac.cc.

References m_stats.

void ns3::flame::FlameProtocolMac::SetParent ( Ptr< MeshWifiInterfaceMac parent)
virtual

Each plugin must be installed on interface to work.

Implements ns3::MeshWifiInterfaceMacPlugin.

Definition at line 42 of file flame-protocol-mac.cc.

References m_parent.

void ns3::flame::FlameProtocolMac::UpdateBeacon ( MeshWifiBeacon beacon) const
inlinevirtual

Update beacon is empty, because HWMP does not know anything about beacons.

Implements ns3::MeshWifiInterfaceMacPlugin.

Definition at line 45 of file flame-protocol-mac.h.

bool ns3::flame::FlameProtocolMac::UpdateOutcomingFrame ( Ptr< Packet packet,
WifiMacHeader header,
Mac48Address  from,
Mac48Address  to 
)
virtual

Update frame before it will be forwarded down.

Returns
false if (and only if) frame should be dropped
Todo:
define when MAC call this, preconditions & postconditions

Implements ns3::MeshWifiInterfaceMacPlugin.

Definition at line 74 of file flame-protocol-mac.cc.

References ns3::Mac48Address::GetBroadcast(), ns3::Packet::GetSize(), ns3::WifiMacHeader::IsData(), m_stats, NS_FATAL_ERROR, ns3::flame::FlameTag::receiver, ns3::Packet::RemovePacketTag(), ns3::WifiMacHeader::SetAddr1(), ns3::flame::FlameProtocolMac::Statistics::txBroadcast, ns3::flame::FlameProtocolMac::Statistics::txBytes, and ns3::flame::FlameProtocolMac::Statistics::txUnicast.

+ Here is the call graph for this function:

Member Data Documentation

Ptr<MeshWifiInterfaceMac> ns3::flame::FlameProtocolMac::m_parent
private

Definition at line 58 of file flame-protocol-mac.h.

Referenced by GetChannelId(), Report(), SetParent(), and ~FlameProtocolMac().

Ptr<FlameProtocol> ns3::flame::FlameProtocolMac::m_protocol
private

Definition at line 57 of file flame-protocol-mac.h.

Referenced by ~FlameProtocolMac().

Statistics ns3::flame::FlameProtocolMac::m_stats
private

Definition at line 73 of file flame-protocol-mac.h.

Referenced by Receive(), Report(), ResetStats(), and UpdateOutcomingFrame().


The documentation for this class was generated from the following files: