Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes

ns3::flame::FlameProtocol Class Reference
[FLAME]

FLAME routing protocol. More...

#include <flame-protocol.h>

Inheritance diagram for ns3::flame::FlameProtocol:
Inheritance graph
[legend]
Collaboration diagram for ns3::flame::FlameProtocol:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void DoDispose ()
bool RequestRoute (uint32_t sourceIface, const Mac48Address source, const Mac48Address destination, Ptr< const Packet > packet, uint16_t protocolType, RouteReplyCallback routeReply)
 Route request, inherited from MeshL2RoutingProtocol.
bool RemoveRoutingStuff (uint32_t fromIface, const Mac48Address source, const Mac48Address destination, Ptr< Packet > packet, uint16_t &protocolType)
 Cleanup flame headers!
bool Install (Ptr< MeshPointDevice >)
 Install FLAME on given mesh point.
void Report (std::ostream &) const
 Statistics.

Static Public Member Functions

static TypeId GetTypeId ()
 Never forget to support NS3 object model.

Private Member Functions

bool HandleDataFrame (uint16_t seqno, Mac48Address source, const FlameHeader flameHdr, Mac48Address receiver, uint32_t fromIface)
 Handles a packet: adds a routing information and drops packets by TTL or Seqno.

Private Attributes

uint8_t m_maxCost
 Max Cost value (or TTL, because cost is actually hopcount).
uint16_t m_myLastSeqno
 Sequence number:
Ptr< FlameRtablem_rtable
 Routing table:
Broadcast timers:

Time m_broadcastInterval
Time m_lastBroadcast
Statistics:

Statistics m_stats

Static Private Attributes

static const uint16_t FLAME_PROTOCOL = 0x4040
 LLC protocol number reserved by flame.

Information about MeshPointDeviceaddress, plugins



typedef std::map< uint32_t,
Ptr< FlameProtocolMac > > 
FlamePluginMap
FlamePluginMap m_interfaces
Mac48Address m_address

Detailed Description

FLAME routing protocol.


Member Function Documentation

void ns3::flame::FlameProtocol::DoDispose (  )  [virtual]

This method is called by Object::Dispose or by the object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

Reimplemented from ns3::Object.

static TypeId ns3::flame::FlameProtocol::GetTypeId ( void   )  [static]

Never forget to support NS3 object model.

This method returns the TypeId associated to ns3::MeshL2RoutingProtocol.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::MeshPointDevice/RoutingProtocol

No Attributes defined for this type.
No TraceSources defined for this type.

Reimplemented from ns3::MeshL2RoutingProtocol.

bool ns3::flame::FlameProtocol::HandleDataFrame ( uint16_t  seqno,
Mac48Address  source,
const FlameHeader  flameHdr,
Mac48Address  receiver,
uint32_t  fromIface 
) [private]

Handles a packet: adds a routing information and drops packets by TTL or Seqno.

Returns:
true if packet shall be dropped
bool ns3::flame::FlameProtocol::Install ( Ptr< MeshPointDevice  ) 

Install FLAME on given mesh point.

Installing protocol cause installing its interface MAC plugins.

Also MP aggregates all installed protocols, FLAME protocol can be accessed via MeshPointDevice::GetObject<flame::FlameProtocol>();


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