A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::AnimationInterface Class Reference

Interface to network animator. More...

#include "animation-interface.h"

+ Collaboration diagram for ns3::AnimationInterface:

Classes

class  AnimPacketInfo
 AnimPacketInfo class. More...
 
class  AnimXmlElement
 AnimXmlElement class. More...
 
struct  Ipv4RoutePathElement
 Ipv4RoutePathElement structure IPv4 route path element. More...
 
struct  Ipv4RouteTrackElement
 Ipv4RouteTrackElement structure IPv4 route track element. More...
 
struct  LinkPairCompare
 LinkPairCompare structure. More...
 
struct  LinkProperties
 LinkProperties structure link properties. More...
 
struct  NodeSize
 NodeSize structure node size. More...
 
struct  P2pLinkNodeIdPair
 P2pLinkNodeIdPair structure P2P link node id pair. More...
 
struct  Rgb
 RGB structure RGB structure. More...
 

Public Types

typedef void(* AnimWriteCallback) (const char *str)
 typedef for WriteCallBack used for listening to AnimationInterface write messages
 
enum  CounterType { UINT32_COUNTER , DOUBLE_COUNTER }
 Counter Types. More...
 

Public Member Functions

 AnimationInterface (const std::string filename)
 Constructor.
 
 ~AnimationInterface ()
 Destructor for the animator interface.
 
uint32_t AddNodeCounter (std::string counterName, CounterType counterType)
 Setup a node counter.
 
uint32_t AddResource (std::string resourcePath)
 Add a resource such as the path to an image file.
 
AnimationInterfaceAddSourceDestination (uint32_t fromNodeId, std::string destinationIpv4Address)
 Helper function to print the routing path from a source node to destination IP.
 
void EnableIpv4L3ProtocolCounters (Time startTime, Time stopTime, Time pollInterval=Seconds(1))
 Enable tracking of Ipv4 L3 Protocol Counters such as Tx, Rx, Drop.
 
AnimationInterfaceEnableIpv4RouteTracking (std::string fileName, Time startTime, Time stopTime, NodeContainer nc, Time pollInterval=Seconds(5))
 Enable tracking of the Ipv4 routing table for a set of Nodes.
 
AnimationInterfaceEnableIpv4RouteTracking (std::string fileName, Time startTime, Time stopTime, Time pollInterval=Seconds(5))
 Enable tracking of the Ipv4 routing table for all Nodes.
 
void EnablePacketMetadata (bool enable=true)
 Enable Packet metadata.
 
void EnableQueueCounters (Time startTime, Time stopTime, Time pollInterval=Seconds(1))
 Enable tracking of Queue Counters such as Enqueue, Dequeue, Queue Drops.
 
void EnableWifiMacCounters (Time startTime, Time stopTime, Time pollInterval=Seconds(1))
 Enable tracking of Wifi Mac Counters such as Tx, TxDrop, Rx, RxDrop.
 
void EnableWifiPhyCounters (Time startTime, Time stopTime, Time pollInterval=Seconds(1))
 Enable tracking of Wifi Phy Counters such as TxDrop, RxDrop.
 
double GetNodeEnergyFraction (Ptr< const Node > node) const
 Get node's energy fraction (This used only for testing)
 
uint64_t GetTracePktCount () const
 Get trace file packet count (This used only for testing)
 
bool IsStarted () const
 Is AnimationInterface started.
 
void ResetAnimWriteCallback ()
 Reset the write callback function.
 
void SetAnimWriteCallback (AnimWriteCallback cb)
 Set a callback function to listen to AnimationInterface write events.
 
void SetBackgroundImage (std::string fileName, double x, double y, double scaleX, double scaleY, double opacity)
 Helper function to set the background image.
 
void SetMaxPktsPerTraceFile (uint64_t maxPktsPerFile)
 Set Max packets per trace file.
 
void SetMobilityPollInterval (Time t)
 Set mobility poll interval:WARNING: setting a low interval can cause slowness.
 
void SetStartTime (Time t)
 Specify the time at which capture should start.
 
void SetStopTime (Time t)
 Specify the time at which capture should stop.
 
void SkipPacketTracing ()
 Do not trace packets.
 
void UpdateLinkDescription (Ptr< Node > fromNode, Ptr< Node > toNode, std::string linkDescription)
 Helper function to update the description for a link.
 
void UpdateLinkDescription (uint32_t fromNode, uint32_t toNode, std::string linkDescription)
 Helper function to update the description for a link.
 
void UpdateNodeColor (Ptr< Node > n, uint8_t r, uint8_t g, uint8_t b)
 Helper function to update the node color.
 
void UpdateNodeColor (uint32_t nodeId, uint8_t r, uint8_t g, uint8_t b)
 Helper function to update the node color.
 
void UpdateNodeCounter (uint32_t nodeCounterId, uint32_t nodeId, double counter)
 Helper function to update a node's counter referenced by the nodeCounterId.
 
void UpdateNodeDescription (Ptr< Node > n, std::string descr)
 Helper function to update the description for a given node.
 
void UpdateNodeDescription (uint32_t nodeId, std::string descr)
 Helper function to update the description for a given node.
 
void UpdateNodeImage (uint32_t nodeId, uint32_t resourceId)
 Helper function to update the image of a node.
 
void UpdateNodeSize (Ptr< Node > n, double width, double height)
 Helper function to update the size of a node.
 
void UpdateNodeSize (uint32_t nodeId, double width, double height)
 Helper function to update the size of a node.
 

Static Public Member Functions

static bool IsInitialized ()
 Check if AnimationInterface is initialized.
 
static void SetConstantPosition (Ptr< Node > n, double x, double y, double z=0)
 Helper function to set Constant Position for a given node.
 

Private Types

typedef std::map< uint64_t, AnimPacketInfoAnimUidPacketInfoMap
 AnimUidPacketInfoMap typedef.
 
typedef std::map< uint32_t, doubleEnergyFractionMap
 EnergyFractionMap typedef.
 
typedef std::vector< Ipv4RoutePathElementIpv4RoutePathElements
 Ipv4RoutePathElements typedef.
 
typedef std::map< P2pLinkNodeIdPair, LinkProperties, LinkPairCompareLinkPropertiesMap
 LinkPropertiesMap typedef.
 
typedef std::map< uint32_t, RgbNodeColorsMap
 NodeColorsMap typedef.
 
typedef std::map< uint32_t, uint64_t > NodeCounterMap64
 NodeCounterMap64 typedef.
 
typedef std::map< uint32_t, std::string > NodeDescriptionsMap
 NodeDescriptionsMap typedef.
 
typedef std::multimap< uint32_t, std::string > NodeIdIpv4Map
 NodeIdIpv4Map typedef.
 
typedef std::pair< uint32_t, std::string > NodeIdIpv4Pair
 NodeIdIpv4Pair typedef.
 
typedef std::multimap< uint32_t, std::string > NodeIdIpv6Map
 NodeIdIpv6Map typedef.
 
typedef std::pair< uint32_t, std::string > NodeIdIpv6Pair
 NodeIdIpv6Pair typedef.
 
enum  ProtocolType {
  UAN , LTE , WIFI , WIMAX ,
  CSMA , LRWPAN
}
 ProtocolType enumeration. More...
 

Private Member Functions

void AddByteTag (uint64_t animUid, Ptr< const Packet > p)
 Add byte tag function.
 
void AddPendingPacket (ProtocolType protocolType, uint64_t animUid, AnimPacketInfo pktInfo)
 Add pending packet function.
 
void AddToIpv4AddressNodeIdTable (std::string ipv4Address, uint32_t nodeId)
 Add to IPv4 address node ID table function.
 
void AddToIpv4AddressNodeIdTable (std::vector< std::string > ipv4Addresses, uint32_t nodeId)
 Add to IPv4 address node ID table function.
 
void AddToIpv6AddressNodeIdTable (std::string ipv6Address, uint32_t nodeId)
 Add to IPv6 address node ID table function.
 
void AddToIpv6AddressNodeIdTable (std::vector< std::string > ipv6Addresses, uint32_t nodeId)
 Add to IPv6 address node ID table function.
 
void CheckMaxPktsPerTraceFile ()
 Check maximum packets per trace file function.
 
void ConnectCallbacks ()
 Connect callbacks function.
 
void ConnectLte ()
 Connect LTE function.
 
void ConnectLteEnb (Ptr< Node > n, Ptr< LteEnbNetDevice > nd, uint32_t devIndex)
 Connect LTE ENB function.
 
void ConnectLteUe (Ptr< Node > n, Ptr< LteUeNetDevice > nd, uint32_t devIndex)
 Connect LTE ue function.
 
std::string CounterTypeToString (CounterType counterType)
 Counter type to string function.
 
void CsmaMacRxTrace (std::string context, Ptr< const Packet > p)
 CSMA MAC receive trace function.
 
void CsmaPhyRxEndTrace (std::string context, Ptr< const Packet > p)
 CSMA Phy receive end trace function.
 
void CsmaPhyTxBeginTrace (std::string context, Ptr< const Packet > p)
 CSMA Phy transmit begin trace function.
 
void CsmaPhyTxEndTrace (std::string context, Ptr< const Packet > p)
 CSMA Phy transmit end trace function.
 
void DequeueTrace (std::string context, Ptr< const Packet >)
 Dequeue trace function.
 
void DevTxTrace (std::string context, Ptr< const Packet > p, Ptr< NetDevice > tx, Ptr< NetDevice > rx, Time txTime, Time rxTime)
 Device transmit trace function.
 
void EnqueueTrace (std::string context, Ptr< const Packet >)
 Enqueue trace function.
 
void GenericWirelessRxTrace (std::string context, Ptr< const Packet > p, ProtocolType protocolType)
 Generic wireless receive trace function.
 
void GenericWirelessTxTrace (std::string context, Ptr< const Packet > p, ProtocolType protocolType)
 Generic wireless transmit trace function.
 
uint64_t GetAnimUidFromPacket (Ptr< const Packet >)
 Get anim UID from packet function.
 
const std::vector< std::string > GetElementsFromContext (const std::string &context) const
 Get elements from context.
 
std::string GetIpv4Address (Ptr< NetDevice > nd)
 Get IPv4 address.
 
std::vector< std::string > GetIpv4Addresses (Ptr< NetDevice > nd)
 Get IPv4 addresses.
 
std::string GetIpv4RoutingTable (Ptr< Node > n)
 Get IPv4 routing table function.
 
std::string GetIpv6Address (Ptr< NetDevice > nd)
 Get IPv6 address.
 
std::vector< std::string > GetIpv6Addresses (Ptr< NetDevice > nd)
 Get IPv6 addresses.
 
std::string GetMacAddress (Ptr< NetDevice > nd)
 Get MAC address function.
 
std::vector< Ptr< Node > > GetMovedNodes ()
 Get moved nodes function.
 
std::string GetNetAnimVersion ()
 Get netanim version function.
 
Ptr< NetDeviceGetNetDeviceFromContext (std::string context)
 Get net device from context.
 
Ptr< NodeGetNodeFromContext (const std::string &context) const
 Get node from context.
 
std::string GetPacketMetadata (Ptr< const Packet > p)
 Get packet metadata function.
 
Vector GetPosition (Ptr< Node > n)
 Get position function.
 
void Ipv4DropTrace (std::string context, const Ipv4Header &ipv4Header, Ptr< const Packet > p, Ipv4L3Protocol::DropReason dropReason, Ptr< Ipv4 > ipv4, uint32_t interfaceIndex)
 IPv4 drop trace function.
 
void Ipv4RxTrace (std::string context, Ptr< const Packet > p, Ptr< Ipv4 > ipv4, uint32_t interfaceIndex)
 IPv4 receive trace function.
 
void Ipv4TxTrace (std::string context, Ptr< const Packet > p, Ptr< Ipv4 > ipv4, uint32_t interfaceIndex)
 IPv4 transmit trace function.
 
bool IsInTimeWindow ()
 Is in time window function.
 
bool IsPacketPending (uint64_t animUid, ProtocolType protocolType)
 Is packet pending function.
 
void LrWpanMacRxDropTrace (std::string context, Ptr< const Packet > p)
 LR-WPAN MAC receive drop trace function.
 
void LrWpanMacRxTrace (std::string context, Ptr< const Packet > p)
 LR-WPAN MAC receive trace function.
 
void LrWpanMacTxDropTrace (std::string context, Ptr< const Packet > p)
 LR-WPAN MAC transmit drop trace function.
 
void LrWpanMacTxTrace (std::string context, Ptr< const Packet > p)
 LR-WPAN MAC transmit trace function.
 
void LrWpanPhyRxBeginTrace (std::string context, Ptr< const Packet > p)
 LR-WPAN Phy receive begin trace function.
 
void LrWpanPhyTxBeginTrace (std::string context, Ptr< const Packet > p)
 LR-WPAN Phy receive begin trace function.
 
void LteRxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &m)
 LTE receive trace function.
 
void LteSpectrumPhyRxStart (std::string context, Ptr< const PacketBurst > pb)
 LTE Spectrum Phy receive start function.
 
void LteSpectrumPhyTxStart (std::string context, Ptr< const PacketBurst > pb)
 LTE Spectrum Phy transmit start function.
 
void LteTxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &m)
 LTE transmit trace function.
 
void MobilityAutoCheck ()
 Mobility auto check function.
 
void MobilityCourseChangeTrace (Ptr< const MobilityModel > mob)
 Mobility course change trace function.
 
bool NodeHasMoved (Ptr< Node > n, Vector newLocation)
 Node has moved function.
 
void OutputCsmaPacket (Ptr< const Packet > p, AnimPacketInfo &pktInfo)
 Output CSMA packet function.
 
void OutputWirelessPacketRxInfo (Ptr< const Packet > p, AnimPacketInfo &pktInfo, uint64_t animUid)
 Output wireless packet receive info.
 
void OutputWirelessPacketTxInfo (Ptr< const Packet > p, AnimPacketInfo &pktInfo, uint64_t animUid)
 Output wireless packet transmit info.
 
AnimUidPacketInfoMapProtocolTypeToPendingPackets (ProtocolType protocolType)
 Protocol type to pending packets function.
 
std::string ProtocolTypeToString (ProtocolType protocolType)
 Protocol type to string function.
 
void PurgePendingPackets (ProtocolType protocolType)
 Purge pending packets function.
 
void QueueDropTrace (std::string context, Ptr< const Packet >)
 Queue trace function.
 
void RecursiveIpv4RoutePathSearch (std::string from, std::string to, Ipv4RoutePathElements &rpElements)
 Recursive IPv4 route path search function.
 
void RemainingEnergyTrace (std::string context, double previousEnergy, double currentEnergy)
 Remaining energy trace function.
 
void SetOutputFile (const std::string &fn, bool routing=false)
 Set output file function.
 
void StartAnimation (bool restart=false)
 Start animation function.
 
void StopAnimation (bool onlyAnimation=false)
 Stop animation function.
 
void TrackIpv4L3ProtocolCounters ()
 Track IPv4 L3 protocol counters function.
 
void TrackIpv4Route ()
 Track IPv4 router function.
 
void TrackIpv4RoutePaths ()
 Track IPv4 route paths function.
 
void TrackQueueCounters ()
 Track queue counters function.
 
void TrackWifiMacCounters ()
 Track wifi MAC counters function.
 
void TrackWifiPhyCounters ()
 Track wifi phy counters function.
 
void UanPhyGenRxTrace (std::string context, Ptr< const Packet >)
 UAN Phy gen receive trace function.
 
void UanPhyGenTxTrace (std::string context, Ptr< const Packet >)
 UAN Phy gen transmit trace function.
 
Vector UpdatePosition (Ptr< NetDevice > ndev)
 Update position function.
 
Vector UpdatePosition (Ptr< Node > n)
 Update position function.
 
Vector UpdatePosition (Ptr< Node > n, Vector v)
 Update position function.
 
void WifiMacRxDropTrace (std::string context, Ptr< const Packet > p)
 wifi MAC receive drop trace function
 
void WifiMacRxTrace (std::string context, Ptr< const Packet > p)
 wifi MAC receive trace function
 
void WifiMacTxDropTrace (std::string context, Ptr< const Packet > p)
 wifi MAC transmit drop trace function
 
void WifiMacTxTrace (std::string context, Ptr< const Packet > p)
 wifi MAC transmit trace function
 
void WifiPhyRxBeginTrace (std::string context, Ptr< const Packet > p, RxPowerWattPerChannelBand rxPowersW)
 wifi Phy receive begin trace function
 
void WifiPhyRxDropTrace (std::string context, Ptr< const Packet > p, WifiPhyRxfailureReason reason)
 wifi Phy receive drop trace function
 
void WifiPhyTxBeginTrace (std::string context, WifiConstPsduMap psduMap, WifiTxVector txVector, double txPowerW)
 wifi Phy transmit PSDU begin trace function
 
void WifiPhyTxDropTrace (std::string context, Ptr< const Packet > p)
 wifi Phy transmit drop trace function
 
void WimaxRxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &m)
 WIMax receive trace function.
 
void WimaxTxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &m)
 WIMax transmit trace function.
 
void WriteIpv4Addresses ()
 Write IPv4 Addresses function.
 
void WriteIpv6Addresses ()
 Write IPv6 Addresses function.
 
void WriteLinkProperties ()
 Write link properties function.
 
int WriteN (const char *data, uint32_t count, FILE *f)
 WriteN function.
 
int WriteN (const std::string &st, FILE *f)
 WriteN function.
 
void WriteNodeColors ()
 Write node colors function.
 
void WriteNodeEnergies ()
 Write node energies function.
 
void WriteNodes ()
 Write nodes function.
 
void WriteNodeSizes ()
 Write node sizes function.
 
void WriteNodeUpdate (uint32_t nodeId)
 Write node update function.
 
void WriteNonP2pLinkProperties (uint32_t id, std::string ipv4Address, std::string channelType)
 Write non P2P link properties function.
 
void WriteRoutePath (uint32_t nodeId, std::string destination, Ipv4RoutePathElements rpElements)
 Write route path function.
 
void WriteXmlAddNodeCounter (uint32_t counterId, std::string counterName, CounterType counterType)
 Write XML add node counter function.
 
void WriteXmlAddResource (uint32_t resourceId, std::string resourcePath)
 Write XML add resource function.
 
void WriteXmlAnim (bool routing=false)
 Write XML anim function.
 
void WriteXmlClose (std::string name, bool routing=false)
 Write XML close function.
 
void WriteXmlIpv4Addresses (uint32_t nodeId, std::vector< std::string > ipv4Addresses)
 Write XML Ipv4 addresses function.
 
void WriteXmlIpv6Addresses (uint32_t nodeId, std::vector< std::string > ipv6Addresses)
 Write XML Ipv6 addresses function.
 
void WriteXmlLink (uint32_t fromId, uint32_t toLp, uint32_t toId)
 Write XML link counter function.
 
void WriteXmlNode (uint32_t id, uint32_t sysId, double locX, double locY)
 Write XML node function.
 
void WriteXmlNonP2pLinkProperties (uint32_t id, std::string ipAddress, std::string channelType)
 Write XML non P2P link properties function.
 
void WriteXmlP (std::string pktType, uint32_t fId, double fbTx, double lbTx, uint32_t tId, double fbRx, double lbRx, std::string metaInfo="")
 Write XMLP function.
 
void WriteXmlP (uint64_t animUid, std::string pktType, uint32_t fId, double fbTx, double lbTx)
 Write XMLP function.
 
void WriteXmlPRef (uint64_t animUid, uint32_t fId, double fbTx, std::string metaInfo="")
 Write XMLP Ref function.
 
void WriteXmlRouting (uint32_t id, std::string routingInfo)
 Write XML routing function.
 
void WriteXmlRp (uint32_t nodeId, std::string destination, Ipv4RoutePathElements rpElements)
 Write XMLRP function.
 
void WriteXmlUpdateBackground (std::string fileName, double x, double y, double scaleX, double scaleY, double opacity)
 Write XML update background function.
 
void WriteXmlUpdateLink (uint32_t fromId, uint32_t toId, std::string linkDescription)
 Write XML update link counter function.
 
void WriteXmlUpdateNodeColor (uint32_t nodeId, uint8_t r, uint8_t g, uint8_t b)
 Write XML update node color function.
 
void WriteXmlUpdateNodeCounter (uint32_t counterId, uint32_t nodeId, double value)
 Write XML update node counter function.
 
void WriteXmlUpdateNodeDescription (uint32_t nodeId)
 Write XML update node description function.
 
void WriteXmlUpdateNodeImage (uint32_t nodeId, uint32_t resourceId)
 Write XML update node image function.
 
void WriteXmlUpdateNodePosition (uint32_t nodeId, double x, double y)
 Write XML update node position function.
 
void WriteXmlUpdateNodeSize (uint32_t nodeId, double width, double height)
 Write XML update node size function.
 

Private Attributes

uint64_t gAnimUid
 Packet unique identifier used by AnimationInterface.
 
uint64_t m_currentPktCount
 current packet count
 
bool m_enablePacketMetadata
 enable packet metadata
 
FILE * m_f
 File handle for output (0 if none)
 
Time m_ipv4L3ProtocolCountersPollInterval
 IPv4 L3 protocol counters poll interval.
 
Time m_ipv4L3ProtocolCountersStopTime
 IPv4 L3 protocol counters stop time.
 
uint32_t m_ipv4L3ProtocolDropCounterId
 IPv4 protocol drop counter ID.
 
uint32_t m_ipv4L3ProtocolRxCounterId
 IPv4 L3 protocol receive counter ID.
 
uint32_t m_ipv4L3ProtocolTxCounterId
 IPv4 L3 protocol transmit counter ID.
 
std::vector< Ipv4RouteTrackElementm_ipv4RouteTrackElements
 IPv route track elements.
 
std::map< std::string, uint32_tm_ipv4ToNodeIdMap
 IPv4 to node ID map.
 
std::map< std::string, uint32_tm_ipv6ToNodeIdMap
 IPv6 to node ID map.
 
LinkPropertiesMap m_linkProperties
 link properties
 
std::map< std::string, uint32_tm_macToNodeIdMap
 MAC to node ID map.
 
uint64_t m_maxPktsPerFile
 maximum packets per file
 
Time m_mobilityPollInterval
 mobility poll interval
 
NodeColorsMap m_nodeColors
 node colors
 
std::vector< std::string > m_nodeCounters
 node counters
 
NodeDescriptionsMap m_nodeDescriptions
 node description
 
EnergyFractionMap m_nodeEnergyFraction
 node energy fraction
 
NodeIdIpv4Map m_nodeIdIpv4Map
 node ID to IPv4 map
 
NodeIdIpv6Map m_nodeIdIpv6Map
 node ID to IPv6 map
 
NodeCounterMap64 m_nodeIpv4Drop
 node IPv4 drop
 
NodeCounterMap64 m_nodeIpv4Rx
 node IPv4 receive
 
NodeCounterMap64 m_nodeIpv4Tx
 node IPv4 transmit
 
std::map< uint32_t, Vector > m_nodeLocation
 node location
 
NodeCounterMap64 m_nodeLrWpanMacRx
 node LR-WPAN MAC receive
 
NodeCounterMap64 m_nodeLrWpanMacRxDrop
 node LR-WPAN MAC receive drop
 
NodeCounterMap64 m_nodeLrWpanMacTx
 node LR-WPAN MAC transmit
 
NodeCounterMap64 m_nodeLrWpanMacTxDrop
 node LR-WPAN MAC transmit drop
 
NodeCounterMap64 m_nodeQueueDequeue
 node queue dequeue
 
NodeCounterMap64 m_nodeQueueDrop
 node queue drop
 
NodeCounterMap64 m_nodeQueueEnqueue
 node queue enqueue
 
std::map< uint32_t, NodeSizem_nodeSizes
 node sizes
 
NodeCounterMap64 m_nodeWifiMacRx
 node wifi MAC receive
 
NodeCounterMap64 m_nodeWifiMacRxDrop
 node wifi MAC receive drop
 
NodeCounterMap64 m_nodeWifiMacTx
 node wifi MAC transmit
 
NodeCounterMap64 m_nodeWifiMacTxDrop
 node wifi MAC transmit drop
 
NodeCounterMap64 m_nodeWifiPhyRxDrop
 node wifi Phy receive drop
 
NodeCounterMap64 m_nodeWifiPhyTxDrop
 node wifi Phy transmit drop
 
std::string m_originalFileName
 original file name
 
std::string m_outputFileName
 output file name
 
AnimUidPacketInfoMap m_pendingCsmaPackets
 pending CSMA packets
 
AnimUidPacketInfoMap m_pendingLrWpanPackets
 pending LR-WPAN packets
 
AnimUidPacketInfoMap m_pendingLtePackets
 pending LTE packets
 
AnimUidPacketInfoMap m_pendingUanPackets
 pending UAN packets
 
AnimUidPacketInfoMap m_pendingWifiPackets
 pending wifi packets
 
AnimUidPacketInfoMap m_pendingWimaxPackets
 pending wimax packets
 
Time m_queueCountersPollInterval
 queue counters poll interval
 
Time m_queueCountersStopTime
 queue counters stop time
 
uint32_t m_queueDequeueCounterId
 queue dequeue counter ID
 
uint32_t m_queueDropCounterId
 queue drop counter ID
 
uint32_t m_queueEnqueueCounterId
 queue enqueue counter ID
 
uint32_t m_remainingEnergyCounterId
 remaining energy counter ID
 
std::vector< std::string > m_resources
 resources
 
FILE * m_routingF
 File handle for routing table output (0 if None);.
 
std::string m_routingFileName
 routing file name
 
NodeContainer m_routingNc
 routing node container
 
Time m_routingPollInterval
 routing poll interval
 
Time m_routingStopTime
 routing stop time
 
bool m_started
 started
 
Time m_startTime
 start time
 
Time m_stopTime
 stop time
 
bool m_trackPackets
 track packets
 
Time m_wifiMacCountersPollInterval
 wifi MAC counters poll interval
 
Time m_wifiMacCountersStopTime
 wifi MAC counters stop time
 
uint32_t m_wifiMacRxCounterId
 wifi MAC receive counter ID
 
uint32_t m_wifiMacRxDropCounterId
 wifi MAC receive drop counter ID
 
uint32_t m_wifiMacTxCounterId
 wifi MAC transmit counter ID
 
uint32_t m_wifiMacTxDropCounterId
 wifi MAC transmit drop counter ID
 
Time m_wifiPhyCountersPollInterval
 wifi Phy counters poll interval
 
Time m_wifiPhyCountersStopTime
 wifi Phy counters stop time
 
uint32_t m_wifiPhyRxDropCounterId
 wifi Phy receive drop counter ID
 
uint32_t m_wifiPhyTxDropCounterId
 wifi Phy transmit drop counter ID
 
AnimWriteCallback m_writeCallback
 write callback
 

Static Private Attributes

static RectangleuserBoundary
 user boundary
 

Detailed Description

Interface to network animator.

Provides functions that facilitate communications with an external or internal network animator.

Definition at line 87 of file animation-interface.h.

Member Typedef Documentation

◆ AnimUidPacketInfoMap

AnimUidPacketInfoMap typedef.

Definition at line 562 of file animation-interface.h.

◆ AnimWriteCallback

typedef void(* ns3::AnimationInterface::AnimWriteCallback) (const char *str)

typedef for WriteCallBack used for listening to AnimationInterface write messages

Definition at line 111 of file animation-interface.h.

◆ EnergyFractionMap

EnergyFractionMap typedef.

Definition at line 563 of file animation-interface.h.

◆ Ipv4RoutePathElements

Ipv4RoutePathElements typedef.

Definition at line 565 of file animation-interface.h.

◆ LinkPropertiesMap

LinkPropertiesMap typedef.

Definition at line 558 of file animation-interface.h.

◆ NodeColorsMap

NodeColorsMap typedef.

Definition at line 560 of file animation-interface.h.

◆ NodeCounterMap64

typedef std::map<uint32_t, uint64_t> ns3::AnimationInterface::NodeCounterMap64
private

NodeCounterMap64 typedef.

Definition at line 572 of file animation-interface.h.

◆ NodeDescriptionsMap

typedef std::map<uint32_t, std::string> ns3::AnimationInterface::NodeDescriptionsMap
private

NodeDescriptionsMap typedef.

Definition at line 559 of file animation-interface.h.

◆ NodeIdIpv4Map

typedef std::multimap<uint32_t, std::string> ns3::AnimationInterface::NodeIdIpv4Map
private

NodeIdIpv4Map typedef.

Definition at line 566 of file animation-interface.h.

◆ NodeIdIpv4Pair

typedef std::pair<uint32_t, std::string> ns3::AnimationInterface::NodeIdIpv4Pair
private

NodeIdIpv4Pair typedef.

Definition at line 568 of file animation-interface.h.

◆ NodeIdIpv6Map

typedef std::multimap<uint32_t, std::string> ns3::AnimationInterface::NodeIdIpv6Map
private

NodeIdIpv6Map typedef.

Definition at line 567 of file animation-interface.h.

◆ NodeIdIpv6Pair

typedef std::pair<uint32_t, std::string> ns3::AnimationInterface::NodeIdIpv6Pair
private

NodeIdIpv6Pair typedef.

Definition at line 569 of file animation-interface.h.

Member Enumeration Documentation

◆ CounterType

Counter Types.

Enumerator
UINT32_COUNTER 
DOUBLE_COUNTER 

Definition at line 100 of file animation-interface.h.

◆ ProtocolType

ProtocolType enumeration.

Enumerator
UAN 
LTE 
WIFI 
WIMAX 
CSMA 
LRWPAN 

Definition at line 540 of file animation-interface.h.

Constructor & Destructor Documentation

◆ AnimationInterface()

ns3::AnimationInterface::AnimationInterface ( const std::string  filename)

Constructor.

Parameters
filenameThe Filename for the trace file used by the Animator

Definition at line 77 of file animation-interface.cc.

References ns3::initialized, and StartAnimation().

+ Here is the call graph for this function:

◆ ~AnimationInterface()

ns3::AnimationInterface::~AnimationInterface ( )

Destructor for the animator interface.

Definition at line 121 of file animation-interface.cc.

References StopAnimation().

+ Here is the call graph for this function:

Member Function Documentation

◆ AddByteTag()

void ns3::AnimationInterface::AddByteTag ( uint64_t  animUid,
Ptr< const Packet p 
)
private

Add byte tag function.

Parameters
animUidthe UID
pthe packet

Definition at line 667 of file animation-interface.cc.

References ns3::AnimByteTag::Set().

Referenced by CsmaPhyTxBeginTrace(), GenericWirelessTxTrace(), LrWpanPhyTxBeginTrace(), LteSpectrumPhyTxStart(), and WifiPhyTxBeginTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddNodeCounter()

uint32_t ns3::AnimationInterface::AddNodeCounter ( std::string  counterName,
CounterType  counterType 
)

Setup a node counter.

Parameters
counterNameA string to identify the counter
counterTypeThe type of the counter, such as uint32, double etc
Returns
The id of the counter to be used as a reference for future

Definition at line 268 of file animation-interface.cc.

References m_nodeCounters, and WriteXmlAddNodeCounter().

Referenced by EnableIpv4L3ProtocolCounters(), EnableQueueCounters(), EnableWifiMacCounters(), EnableWifiPhyCounters(), and WriteNodeEnergies().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddPendingPacket()

void ns3::AnimationInterface::AddPendingPacket ( ProtocolType  protocolType,
uint64_t  animUid,
AnimPacketInfo  pktInfo 
)
private

Add pending packet function.

Parameters
protocolTypethe protocol type
animUidthe UID
pktInfothe packet info

Definition at line 1302 of file animation-interface.cc.

References NS_ASSERT, and ProtocolTypeToPendingPackets().

Referenced by CsmaPhyTxBeginTrace(), CsmaPhyTxEndTrace(), GenericWirelessTxTrace(), LrWpanPhyTxBeginTrace(), LteSpectrumPhyTxStart(), WifiPhyRxBeginTrace(), and WifiPhyTxBeginTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddResource()

uint32_t ns3::AnimationInterface::AddResource ( std::string  resourcePath)

Add a resource such as the path to an image file.

Parameters
resourcePathAbsolute Path to an image/resource
Returns
a number identifying the resource

Definition at line 277 of file animation-interface.cc.

References m_resources, and WriteXmlAddResource().

+ Here is the call graph for this function:

◆ AddSourceDestination()

AnimationInterface & ns3::AnimationInterface::AddSourceDestination ( uint32_t  fromNodeId,
std::string  destinationIpv4Address 
)

Helper function to print the routing path from a source node to destination IP.

Parameters
fromNodeIdThe source node
destinationIpv4AddressThe destination Ipv4 Address
Returns
reference to this AnimationInterface object

Definition at line 242 of file animation-interface.cc.

References m_ipv4RouteTrackElements.

◆ AddToIpv4AddressNodeIdTable() [1/2]

void ns3::AnimationInterface::AddToIpv4AddressNodeIdTable ( std::string  ipv4Address,
uint32_t  nodeId 
)
private

Add to IPv4 address node ID table function.

Parameters
ipv4Addressthe IPv4 address
nodeIdthe node ID

Definition at line 1496 of file animation-interface.cc.

References m_ipv4ToNodeIdMap, and m_nodeIdIpv4Map.

Referenced by AddToIpv4AddressNodeIdTable(), and WriteLinkProperties().

+ Here is the caller graph for this function:

◆ AddToIpv4AddressNodeIdTable() [2/2]

void ns3::AnimationInterface::AddToIpv4AddressNodeIdTable ( std::vector< std::string >  ipv4Addresses,
uint32_t  nodeId 
)
private

Add to IPv4 address node ID table function.

Parameters
ipv4Addressesthe list of IPv4 addresses
nodeIdthe node ID

Definition at line 1503 of file animation-interface.cc.

References AddToIpv4AddressNodeIdTable().

+ Here is the call graph for this function:

◆ AddToIpv6AddressNodeIdTable() [1/2]

void ns3::AnimationInterface::AddToIpv6AddressNodeIdTable ( std::string  ipv6Address,
uint32_t  nodeId 
)
private

Add to IPv6 address node ID table function.

Parameters
ipv6Addressthe IPv6 address
nodeIdthe node ID

Definition at line 1515 of file animation-interface.cc.

References m_ipv6ToNodeIdMap, and m_nodeIdIpv6Map.

Referenced by AddToIpv6AddressNodeIdTable(), and WriteLinkProperties().

+ Here is the caller graph for this function:

◆ AddToIpv6AddressNodeIdTable() [2/2]

void ns3::AnimationInterface::AddToIpv6AddressNodeIdTable ( std::vector< std::string >  ipv6Addresses,
uint32_t  nodeId 
)
private

Add to IPv6 address node ID table function.

Parameters
ipv6Addressesthe list of IPv6 addresses
nodeIdthe node ID

Definition at line 1522 of file animation-interface.cc.

References AddToIpv6AddressNodeIdTable().

+ Here is the call graph for this function:

◆ CheckMaxPktsPerTraceFile()

void ns3::AnimationInterface::CheckMaxPktsPerTraceFile ( )
private

Check maximum packets per trace file function.

Definition at line 2122 of file animation-interface.cc.

References m_currentPktCount, m_maxPktsPerFile, NS_LOG_UNCOND, and StopAnimation().

Referenced by DevTxTrace(), OutputCsmaPacket(), OutputWirelessPacketRxInfo(), and OutputWirelessPacketTxInfo().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConnectCallbacks()

◆ ConnectLte()

void ns3::AnimationInterface::ConnectLte ( )
private

Connect LTE function.

Definition at line 1593 of file animation-interface.cc.

References ns3::NodeList::Begin(), ConnectLteEnb(), ConnectLteUe(), ns3::NodeList::End(), and NS_ASSERT.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConnectLteEnb()

void ns3::AnimationInterface::ConnectLteEnb ( Ptr< Node n,
Ptr< LteEnbNetDevice nd,
uint32_t  devIndex 
)
private

Connect LTE ENB function.

Parameters
nthe node
ndthe device
devIndexthe device index

Definition at line 1535 of file animation-interface.cc.

References LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), and ns3::MakeCallback().

Referenced by ConnectLte().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConnectLteUe()

void ns3::AnimationInterface::ConnectLteUe ( Ptr< Node n,
Ptr< LteUeNetDevice nd,
uint32_t  devIndex 
)
private

Connect LTE ue function.

Parameters
nthe node
ndthe device
devIndexthe device index

Definition at line 1564 of file animation-interface.cc.

References LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), and ns3::MakeCallback().

Referenced by ConnectLte().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CounterTypeToString()

std::string ns3::AnimationInterface::CounterTypeToString ( CounterType  counterType)
private

Counter type to string function.

Parameters
counterTypethe counter type
Returns
the string

Definition at line 1416 of file animation-interface.cc.

References DOUBLE_COUNTER, and UINT32_COUNTER.

Referenced by WriteXmlAddNodeCounter().

+ Here is the caller graph for this function:

◆ CsmaMacRxTrace()

void ns3::AnimationInterface::CsmaMacRxTrace ( std::string  context,
Ptr< const Packet p 
)
private

CSMA MAC receive trace function.

Parameters
contextthe context
pthe packet
Todo:
NS_ASSERT (CsmaPacketIsPending (AnimUid) == true);

Definition at line 1234 of file animation-interface.cc.

References CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, CSMA, GetAnimUidFromPacket(), GetNetDeviceFromContext(), IsPacketPending(), m_pendingCsmaPackets, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, and OutputCsmaPacket().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CsmaPhyRxEndTrace()

void ns3::AnimationInterface::CsmaPhyRxEndTrace ( std::string  context,
Ptr< const Packet p 
)
private

CSMA Phy receive end trace function.

Parameters
contextthe context
pthe packet
Todo:
NS_ASSERT (CsmaPacketIsPending (AnimUid) == true);

Definition at line 1212 of file animation-interface.cc.

References CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, CSMA, GetAnimUidFromPacket(), GetNetDeviceFromContext(), IsPacketPending(), m_pendingCsmaPackets, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, OutputCsmaPacket(), ns3::AnimationInterface::AnimPacketInfo::ProcessRxBegin(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CsmaPhyTxBeginTrace()

void ns3::AnimationInterface::CsmaPhyTxBeginTrace ( std::string  context,
Ptr< const Packet p 
)
private

CSMA Phy transmit begin trace function.

Parameters
contextthe context
pthe packet

Definition at line 1173 of file animation-interface.cc.

References AddByteTag(), AddPendingPacket(), CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, CSMA, gAnimUid, GetNetDeviceFromContext(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CsmaPhyTxEndTrace()

void ns3::AnimationInterface::CsmaPhyTxEndTrace ( std::string  context,
Ptr< const Packet p 
)
private

CSMA Phy transmit end trace function.

Parameters
contextthe context
pthe packet
Todo:
NS_ASSERT (IsPacketPending (AnimUid) == true);

Definition at line 1189 of file animation-interface.cc.

References AddPendingPacket(), CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, CSMA, GetAnimUidFromPacket(), GetNetDeviceFromContext(), ns3::Time::GetSeconds(), IsPacketPending(), ns3::AnimationInterface::AnimPacketInfo::m_lbTx, m_pendingCsmaPackets, ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DequeueTrace()

void ns3::AnimationInterface::DequeueTrace ( std::string  context,
Ptr< const Packet p 
)
private

Dequeue trace function.

Parameters
contextthe context
pthe packet

Definition at line 809 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeQueueDequeue.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DevTxTrace()

void ns3::AnimationInterface::DevTxTrace ( std::string  context,
Ptr< const Packet p,
Ptr< NetDevice tx,
Ptr< NetDevice rx,
Time  txTime,
Time  rxTime 
)
private

Device transmit trace function.

Parameters
contextthe context
pthe packet
txthe transmit device
rxthe receive device
txTimethe transmit time
rxTimethe receive time

Definition at line 823 of file animation-interface.cc.

References CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, CheckMaxPktsPerTraceFile(), GetPacketMetadata(), ns3::Time::GetSeconds(), m_enablePacketMetadata, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, and WriteXmlP().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableIpv4L3ProtocolCounters()

void ns3::AnimationInterface::EnableIpv4L3ProtocolCounters ( Time  startTime,
Time  stopTime,
Time  pollInterval = Seconds(1) 
)

Enable tracking of Ipv4 L3 Protocol Counters such as Tx, Rx, Drop.

Parameters
startTimeStart Time for capturing values
stopTimeStop Time for capturing values
pollIntervalThe periodic interval at which the counters are written to the trace file Default: 1s

Definition at line 196 of file animation-interface.cc.

References AddNodeCounter(), ns3::NodeList::Begin(), DOUBLE_COUNTER, ns3::NodeList::End(), m_ipv4L3ProtocolCountersPollInterval, m_ipv4L3ProtocolCountersStopTime, m_ipv4L3ProtocolDropCounterId, m_ipv4L3ProtocolRxCounterId, m_ipv4L3ProtocolTxCounterId, m_nodeIpv4Drop, m_nodeIpv4Rx, m_nodeIpv4Tx, ns3::Simulator::Schedule(), stopTime, TrackIpv4L3ProtocolCounters(), and UpdateNodeCounter().

+ Here is the call graph for this function:

◆ EnableIpv4RouteTracking() [1/2]

AnimationInterface & ns3::AnimationInterface::EnableIpv4RouteTracking ( std::string  fileName,
Time  startTime,
Time  stopTime,
NodeContainer  nc,
Time  pollInterval = Seconds(5) 
)

Enable tracking of the Ipv4 routing table for a set of Nodes.

Parameters
fileNameTrace file for storing routing table information
startTimeStart time for capture
stopTimeEnd time for capture
ncA NodeContainer containing nodes for which Routing table has to be tracked
pollIntervalThe periodic interval at which routing table information is polled Default: 5s
Returns
reference to this AnimationInterface object

Definition at line 231 of file animation-interface.cc.

References EnableIpv4RouteTracking(), m_routingNc, and stopTime.

+ Here is the call graph for this function:

◆ EnableIpv4RouteTracking() [2/2]

AnimationInterface & ns3::AnimationInterface::EnableIpv4RouteTracking ( std::string  fileName,
Time  startTime,
Time  stopTime,
Time  pollInterval = Seconds(5) 
)

Enable tracking of the Ipv4 routing table for all Nodes.

Parameters
fileNameTrace file for storing routing table information
startTimeStart time for capture
stopTimeEnd time for capture
pollIntervalThe periodic interval at which routing table information is polled Default: 5s
Returns
reference to this AnimationInterface object

Definition at line 217 of file animation-interface.cc.

References m_routingPollInterval, m_routingStopTime, ns3::Simulator::Schedule(), SetOutputFile(), stopTime, TrackIpv4Route(), and WriteXmlAnim().

Referenced by EnableIpv4RouteTracking().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnablePacketMetadata()

void ns3::AnimationInterface::EnablePacketMetadata ( bool  enable = true)

Enable Packet metadata.

Parameters
enableif true enables writing the packet metadata to the XML trace file if false disables writing the packet metadata

Definition at line 286 of file animation-interface.cc.

References ns3::Packet::EnablePrinting(), and m_enablePacketMetadata.

+ Here is the call graph for this function:

◆ EnableQueueCounters()

void ns3::AnimationInterface::EnableQueueCounters ( Time  startTime,
Time  stopTime,
Time  pollInterval = Seconds(1) 
)

Enable tracking of Queue Counters such as Enqueue, Dequeue, Queue Drops.

Parameters
startTimeStart Time for capturing values
stopTimeStop Time for capturing values
pollIntervalThe periodic interval at which the counters are written to the trace file Default: 1s

Definition at line 175 of file animation-interface.cc.

References AddNodeCounter(), ns3::NodeList::Begin(), DOUBLE_COUNTER, ns3::NodeList::End(), m_nodeQueueDequeue, m_nodeQueueDrop, m_nodeQueueEnqueue, m_queueCountersPollInterval, m_queueCountersStopTime, m_queueDequeueCounterId, m_queueDropCounterId, m_queueEnqueueCounterId, ns3::Simulator::Schedule(), stopTime, TrackQueueCounters(), and UpdateNodeCounter().

+ Here is the call graph for this function:

◆ EnableWifiMacCounters()

void ns3::AnimationInterface::EnableWifiMacCounters ( Time  startTime,
Time  stopTime,
Time  pollInterval = Seconds(1) 
)

Enable tracking of Wifi Mac Counters such as Tx, TxDrop, Rx, RxDrop.

Parameters
startTimeStart Time for capturing values
stopTimeStop Time for capturing values
pollIntervalThe periodic interval at which the counters are written to the trace file Default: 1s

Definition at line 151 of file animation-interface.cc.

References AddNodeCounter(), ns3::NodeList::Begin(), DOUBLE_COUNTER, ns3::NodeList::End(), m_nodeWifiMacRx, m_nodeWifiMacRxDrop, m_nodeWifiMacTx, m_nodeWifiMacTxDrop, m_wifiMacCountersPollInterval, m_wifiMacCountersStopTime, m_wifiMacRxCounterId, m_wifiMacRxDropCounterId, m_wifiMacTxCounterId, m_wifiMacTxDropCounterId, ns3::Simulator::Schedule(), stopTime, TrackWifiMacCounters(), and UpdateNodeCounter().

+ Here is the call graph for this function:

◆ EnableWifiPhyCounters()

void ns3::AnimationInterface::EnableWifiPhyCounters ( Time  startTime,
Time  stopTime,
Time  pollInterval = Seconds(1) 
)

Enable tracking of Wifi Phy Counters such as TxDrop, RxDrop.

Parameters
startTimeStart Time for capturing values
stopTimeStop Time for capturing values
pollIntervalThe periodic interval at which the counters are written to the trace file Default: 1s

Definition at line 133 of file animation-interface.cc.

References AddNodeCounter(), ns3::NodeList::Begin(), DOUBLE_COUNTER, ns3::NodeList::End(), m_nodeWifiPhyRxDrop, m_nodeWifiPhyTxDrop, m_wifiPhyCountersPollInterval, m_wifiPhyCountersStopTime, m_wifiPhyRxDropCounterId, m_wifiPhyTxDropCounterId, ns3::Simulator::Schedule(), stopTime, TrackWifiPhyCounters(), and UpdateNodeCounter().

+ Here is the call graph for this function:

◆ EnqueueTrace()

void ns3::AnimationInterface::EnqueueTrace ( std::string  context,
Ptr< const Packet p 
)
private

Enqueue trace function.

Parameters
contextthe context
pthe packet

Definition at line 802 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeQueueEnqueue.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GenericWirelessRxTrace()

void ns3::AnimationInterface::GenericWirelessRxTrace ( std::string  context,
Ptr< const Packet p,
ProtocolType  protocolType 
)
private

Generic wireless receive trace function.

Parameters
contextthe context
pthe packet
protocolTypethe protocol type

Definition at line 884 of file animation-interface.cc.

References CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, GetAnimUidFromPacket(), GetNetDeviceFromContext(), IsPacketPending(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacketRxInfo(), ProtocolTypeToPendingPackets(), ProtocolTypeToString(), and UpdatePosition().

Referenced by LteRxTrace(), UanPhyGenRxTrace(), and WimaxRxTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GenericWirelessTxTrace()

void ns3::AnimationInterface::GenericWirelessTxTrace ( std::string  context,
Ptr< const Packet p,
ProtocolType  protocolType 
)
private

Generic wireless transmit trace function.

Parameters
contextthe context
pthe packet
protocolTypethe protocol type

Definition at line 851 of file animation-interface.cc.

References AddByteTag(), AddPendingPacket(), CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, gAnimUid, GetNetDeviceFromContext(), m_macToNodeIdMap, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, OutputWirelessPacketTxInfo(), ProtocolTypeToPendingPackets(), ProtocolTypeToString(), and UpdatePosition().

Referenced by LteTxTrace(), UanPhyGenTxTrace(), and WimaxTxTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetAnimUidFromPacket()

uint64_t ns3::AnimationInterface::GetAnimUidFromPacket ( Ptr< const Packet p)
private

Get anim UID from packet function.

Parameters
pthe packet
Returns
the UID

Definition at line 641 of file animation-interface.cc.

References ns3::AnimByteTag::Get(), ns3::AnimByteTag::GetInstanceTypeId(), ns3::ByteTagIterator::Item::GetTag(), ns3::ByteTagIterator::Item::GetTypeId(), ns3::ByteTagIterator::HasNext(), and ns3::ByteTagIterator::Next().

Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), CsmaPhyTxEndTrace(), GenericWirelessRxTrace(), LrWpanPhyRxBeginTrace(), LteSpectrumPhyRxStart(), and WifiPhyRxBeginTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetElementsFromContext()

const std::vector< std::string > ns3::AnimationInterface::GetElementsFromContext ( const std::string &  context) const
private

Get elements from context.

Parameters
contextthe context string
Returns
the elements

Definition at line 598 of file animation-interface.cc.

Referenced by GetNetDeviceFromContext(), and GetNodeFromContext().

+ Here is the caller graph for this function:

◆ GetIpv4Address()

std::string ns3::AnimationInterface::GetIpv4Address ( Ptr< NetDevice nd)
private

Get IPv4 address.

Parameters
ndthe device
Returns
the IPv4 address

Definition at line 1785 of file animation-interface.cc.

References ns3::Ipv4InterfaceAddress::GetLocal(), ns3::NodeList::GetNode(), ns3::Object::GetObject(), and NS_LOG_WARN.

Referenced by WriteLinkProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetIpv4Addresses()

std::vector< std::string > ns3::AnimationInterface::GetIpv4Addresses ( Ptr< NetDevice nd)
private

Get IPv4 addresses.

Parameters
ndthe device
Returns
the IPv4 address list

Definition at line 1842 of file animation-interface.cc.

References ns3::Ipv4InterfaceAddress::GetLocal(), ns3::NodeList::GetNode(), ns3::Object::GetObject(), and NS_LOG_WARN.

Referenced by WriteLinkProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetIpv4RoutingTable()

std::string ns3::AnimationInterface::GetIpv4RoutingTable ( Ptr< Node n)
private

Get IPv4 routing table function.

Parameters
nthe node
Returns
the IPv4 routing table

Definition at line 2323 of file animation-interface.cc.

References NS_ASSERT, and NS_LOG_WARN.

Referenced by TrackIpv4Route().

+ Here is the caller graph for this function:

◆ GetIpv6Address()

std::string ns3::AnimationInterface::GetIpv6Address ( Ptr< NetDevice nd)
private

Get IPv6 address.

Parameters
ndthe device
Returns
the IPv6 address

Definition at line 1806 of file animation-interface.cc.

References ns3::Ipv6InterfaceAddress::GetAddress(), ns3::NodeList::GetNode(), ns3::Object::GetObject(), ns3::Ipv6Address::IsLinkLocal(), and NS_LOG_WARN.

Referenced by WriteLinkProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetIpv6Addresses()

std::vector< std::string > ns3::AnimationInterface::GetIpv6Addresses ( Ptr< NetDevice nd)
private

Get IPv6 addresses.

Parameters
ndthe device
Returns
the IPv6 address list

Definition at line 1868 of file animation-interface.cc.

References ns3::Ipv6InterfaceAddress::GetAddress(), ns3::NodeList::GetNode(), ns3::Object::GetObject(), and NS_LOG_WARN.

Referenced by WriteLinkProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetMacAddress()

std::string ns3::AnimationInterface::GetMacAddress ( Ptr< NetDevice nd)
private

Get MAC address function.

Parameters
ndthe device
Returns
the MAC address

Definition at line 1776 of file animation-interface.cc.

Referenced by WriteLinkProperties().

+ Here is the caller graph for this function:

◆ GetMovedNodes()

std::vector< Ptr< Node > > ns3::AnimationInterface::GetMovedNodes ( )
private

Get moved nodes function.

Returns
the list of moved nodes

Definition at line 501 of file animation-interface.cc.

References ns3::NodeList::Begin(), ns3::NodeList::End(), GetPosition(), NodeHasMoved(), NS_ASSERT, and UpdatePosition().

Referenced by MobilityAutoCheck().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNetAnimVersion()

std::string ns3::AnimationInterface::GetNetAnimVersion ( )
private

Get netanim version function.

Returns
the net anim version string

Definition at line 2135 of file animation-interface.cc.

References NETANIM_VERSION.

Referenced by WriteXmlAnim().

+ Here is the caller graph for this function:

◆ GetNetDeviceFromContext()

Ptr< NetDevice > ns3::AnimationInterface::GetNetDeviceFromContext ( std::string  context)
private

Get net device from context.

Parameters
contextthe context string
Returns
the device

Definition at line 628 of file animation-interface.cc.

References GetElementsFromContext(), and GetNodeFromContext().

Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), CsmaPhyTxBeginTrace(), CsmaPhyTxEndTrace(), GenericWirelessRxTrace(), GenericWirelessTxTrace(), LrWpanPhyRxBeginTrace(), LrWpanPhyTxBeginTrace(), LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), WifiPhyRxBeginTrace(), and WifiPhyTxBeginTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNodeEnergyFraction()

double ns3::AnimationInterface::GetNodeEnergyFraction ( Ptr< const Node node) const

Get node's energy fraction (This used only for testing)

Parameters
node
Returns
current node's remaining energy (between [0, 1])

Definition at line 442 of file animation-interface.cc.

References m_nodeEnergyFraction, and NS_ASSERT.

Referenced by AnimationRemainingEnergyTestCase::CheckLogic().

+ Here is the caller graph for this function:

◆ GetNodeFromContext()

Ptr< Node > ns3::AnimationInterface::GetNodeFromContext ( const std::string &  context) const
private

◆ GetPacketMetadata()

std::string ns3::AnimationInterface::GetPacketMetadata ( Ptr< const Packet p)
private

Get packet metadata function.

Parameters
pthe packet
Returns
the meta data

Definition at line 1436 of file animation-interface.cc.

Referenced by DevTxTrace(), OutputCsmaPacket(), and OutputWirelessPacketTxInfo().

+ Here is the caller graph for this function:

◆ GetPosition()

Vector ns3::AnimationInterface::GetPosition ( Ptr< Node n)
private

Get position function.

Parameters
nthe node
Returns
the position vector

Definition at line 1766 of file animation-interface.cc.

References m_nodeLocation, and NS_FATAL_ERROR.

Referenced by GetMovedNodes(), MobilityAutoCheck(), MobilityCourseChangeTrace(), and NodeHasMoved().

+ Here is the caller graph for this function:

◆ GetTracePktCount()

uint64_t ns3::AnimationInterface::GetTracePktCount ( ) const

Get trace file packet count (This used only for testing)

Returns
Number of packets recorded in the current trace file

Definition at line 1444 of file animation-interface.cc.

References m_currentPktCount.

Referenced by AnimationInterfaceTestCase::CheckLogic().

+ Here is the caller graph for this function:

◆ Ipv4DropTrace()

void ns3::AnimationInterface::Ipv4DropTrace ( std::string  context,
const Ipv4Header ipv4Header,
Ptr< const Packet p,
Ipv4L3Protocol::DropReason  dropReason,
Ptr< Ipv4 ipv4,
uint32_t  interfaceIndex 
)
private

IPv4 drop trace function.

Parameters
contextthe context
ipv4Headerthe IPv4 header
pthe packet
dropReasonthe reason for the drop
ipv4the IP
interfaceIndexthe interface index

Definition at line 790 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeIpv4Drop.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Ipv4RxTrace()

void ns3::AnimationInterface::Ipv4RxTrace ( std::string  context,
Ptr< const Packet p,
Ptr< Ipv4 ipv4,
uint32_t  interfaceIndex 
)
private

IPv4 receive trace function.

Parameters
contextthe context
pthe packet
ipv4the IP
interfaceIndexthe interface index

Definition at line 780 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeIpv4Rx.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Ipv4TxTrace()

void ns3::AnimationInterface::Ipv4TxTrace ( std::string  context,
Ptr< const Packet p,
Ptr< Ipv4 ipv4,
uint32_t  interfaceIndex 
)
private

IPv4 transmit trace function.

Parameters
contextthe context
pthe packet
ipv4the IP
interfaceIndexthe interface index

Definition at line 770 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeIpv4Tx.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsInitialized()

bool ns3::AnimationInterface::IsInitialized ( )
static

Check if AnimationInterface is initialized.

Returns
true if AnimationInterface was already initialized

Definition at line 296 of file animation-interface.cc.

References ns3::initialized.

◆ IsInTimeWindow()

bool ns3::AnimationInterface::IsInTimeWindow ( )
private

Is in time window function.

Returns
true if in the time window

Definition at line 2083 of file animation-interface.cc.

References m_startTime, m_stopTime, and ns3::Simulator::Now().

+ Here is the call graph for this function:

◆ IsPacketPending()

bool ns3::AnimationInterface::IsPacketPending ( uint64_t  animUid,
AnimationInterface::ProtocolType  protocolType 
)
private

Is packet pending function.

Parameters
animUidthe UID
protocolTypethe protocol type
Returns
true if a packet is pending

Definition at line 1312 of file animation-interface.cc.

References NS_ASSERT, and ProtocolTypeToPendingPackets().

Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), CsmaPhyTxEndTrace(), GenericWirelessRxTrace(), LrWpanPhyRxBeginTrace(), LteSpectrumPhyRxStart(), and WifiPhyRxBeginTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsStarted()

bool ns3::AnimationInterface::IsStarted ( ) const

Is AnimationInterface started.

Returns
true if AnimationInterface was started

Definition at line 302 of file animation-interface.cc.

References m_started.

◆ LrWpanMacRxDropTrace()

void ns3::AnimationInterface::LrWpanMacRxDropTrace ( std::string  context,
Ptr< const Packet p 
)
private

LR-WPAN MAC receive drop trace function.

Parameters
contextthe context
pthe packet

Definition at line 763 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeLrWpanMacRxDrop.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LrWpanMacRxTrace()

void ns3::AnimationInterface::LrWpanMacRxTrace ( std::string  context,
Ptr< const Packet p 
)
private

LR-WPAN MAC receive trace function.

Parameters
contextthe context
pthe packet

Definition at line 756 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeLrWpanMacRx.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LrWpanMacTxDropTrace()

void ns3::AnimationInterface::LrWpanMacTxDropTrace ( std::string  context,
Ptr< const Packet p 
)
private

LR-WPAN MAC transmit drop trace function.

Parameters
contextthe context
pthe packet

Definition at line 749 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeLrWpanMacTxDrop.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LrWpanMacTxTrace()

void ns3::AnimationInterface::LrWpanMacTxTrace ( std::string  context,
Ptr< const Packet p 
)
private

LR-WPAN MAC transmit trace function.

Parameters
contextthe context
pthe packet

Definition at line 742 of file animation-interface.cc.

References GetNodeFromContext(), and m_nodeLrWpanMacTx.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LrWpanPhyRxBeginTrace()

void ns3::AnimationInterface::LrWpanPhyRxBeginTrace ( std::string  context,
Ptr< const Packet p 
)
private

LR-WPAN Phy receive begin trace function.

Parameters
contextthe context
pthe packet

Definition at line 1057 of file animation-interface.cc.

References CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, GetAnimUidFromPacket(), GetNetDeviceFromContext(), IsPacketPending(), LRWPAN, m_pendingLrWpanPackets, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacketRxInfo(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LrWpanPhyTxBeginTrace()

void ns3::AnimationInterface::LrWpanPhyTxBeginTrace ( std::string  context,
Ptr< const Packet p 
)
private

LR-WPAN Phy receive begin trace function.

Parameters
contextthe context
pthe packet

Definition at line 1006 of file animation-interface.cc.

References AddByteTag(), AddPendingPacket(), CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, gAnimUid, GetNetDeviceFromContext(), ns3::LrWpanMacHeader::GetSrcAddrMode(), LRWPAN, m_macToNodeIdMap, m_pendingLrWpanPackets, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacketTxInfo(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LteRxTrace()

void ns3::AnimationInterface::LteRxTrace ( std::string  context,
Ptr< const Packet p,
const Mac48Address m 
)
private

LTE receive trace function.

Parameters
contextthe context
pthe packet
mthe MAC address

Definition at line 1106 of file animation-interface.cc.

References GenericWirelessRxTrace(), LTE, and NS_LOG_FUNCTION.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LteSpectrumPhyRxStart()

void ns3::AnimationInterface::LteSpectrumPhyRxStart ( std::string  context,
Ptr< const PacketBurst pb 
)
private

LTE Spectrum Phy receive start function.

Parameters
contextthe context
pbthe packet burst

Definition at line 1141 of file animation-interface.cc.

References CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, gAnimUid, GetAnimUidFromPacket(), GetNetDeviceFromContext(), IsPacketPending(), LTE, m_pendingLtePackets, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacketRxInfo(), ns3::AnimationInterface::AnimPacketInfo::ProcessRxBegin(), and UpdatePosition().

Referenced by ConnectLteEnb(), and ConnectLteUe().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LteSpectrumPhyTxStart()

void ns3::AnimationInterface::LteSpectrumPhyTxStart ( std::string  context,
Ptr< const PacketBurst pb 
)
private

LTE Spectrum Phy transmit start function.

Parameters
contextthe context
pbthe packet burst

Definition at line 1113 of file animation-interface.cc.

References AddByteTag(), AddPendingPacket(), CHECK_STARTED_INTIMEWINDOW_TRACKPACKETS, gAnimUid, GetNetDeviceFromContext(), LTE, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacketTxInfo(), and UpdatePosition().

Referenced by ConnectLteEnb(), and ConnectLteUe().

+ Here is the call graph for this function: