14#include "ns3/pointer.h"
15#include "ns3/simulator.h"
33 uint8_t rreqRetryCount)
73 std::ostream* os = stream->GetStream();
74 std::ios oldState(
nullptr);
75 oldState.copyfmt(*os);
77 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
78 *os << std::setw(9) << static_cast<uint32_t>(
m_rreqId);
82 (*os).copyfmt(oldState);
102 if (entry->GetRreqId() == rreqId)
115 return entry->GetRreqId() == rreqId;
132 std::ostream* os = stream->GetStream();
133 std::ios oldState(
nullptr);
134 oldState.copyfmt(*os);
136 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
137 *os <<
"ZigBee RREQ retry table\n";
138 *os << std::setw(9) <<
"RREQ ID";
139 *os << std::setw(12) <<
"RREQ Count";
140 *os << std::setw(9) <<
"Pending" << std::endl;
144 entry->Print(stream);
146 *stream->GetStream() << std::endl;
253 std::ostream* os = stream->GetStream();
254 std::ios oldState(
nullptr);
255 oldState.copyfmt(*os);
257 std::ostringstream dst;
258 std::ostringstream nextHop;
263 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
264 *os << std::setw(16) << dst.str();
265 *os << std::setw(10) << nextHop.str();
270 *os << std::setw(21) <<
"ACTIVE";
273 *os << std::setw(21) <<
"DISCOVERY_UNDERWAY";
276 *os << std::setw(21) <<
"DISCOVERY_FAILED";
279 *os << std::setw(21) <<
"INACTIVE";
282 *os << std::setw(21) <<
"VALIDATION_UNDERWAY";
287 *os << std::setw(16) << (
m_manyToOne ?
"TRUE" :
"FALSE");
289 *os << std::setw(16) << (
m_groupId ?
"TRUE" :
"FALSE");
291 (*os).copyfmt(oldState);
347 auto it = std::find_if(
367 if (entry->GetDestination() == dstAddr)
379 std::ostream* os = stream->GetStream();
380 std::ios oldState(
nullptr);
381 oldState.copyfmt(*os);
383 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
384 *os <<
"ZigBee Routing table\n";
385 *os << std::setw(16) <<
"Destination";
386 *os << std::setw(10) <<
"Next hop";
387 *os << std::setw(21) <<
"Status";
388 *os << std::setw(16) <<
"No route cache";
389 *os << std::setw(16) <<
"Many-to-one";
390 *os << std::setw(16) <<
"Route record";
391 *os << std::setw(16) <<
"Group Id flag" << std::endl;
395 entry->Print(stream);
397 *stream->GetStream() << std::endl;
436 uint8_t residualCost,
518 std::ostream* os = stream->GetStream();
519 std::ios oldState(
nullptr);
520 oldState.copyfmt(*os);
522 std::ostringstream sourceAddr;
523 std::ostringstream senderAddr;
524 std::ostringstream expTime;
530 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
532 *os << std::setw(16) << sourceAddr.str();
533 *os << std::setw(16) << senderAddr.str();
534 *os << std::setw(16) << static_cast<uint32_t>(
m_forwardCost);
536 *os << std::setw(16) << expTime.str();
539 (*os).copyfmt(oldState);
576 if (entry->GetRreqId() ==
id && entry->GetSourceAddr() == src)
597 return (entry->GetRreqId() ==
id && entry->GetSourceAddr() == src);
606 std::ostream* os = stream->GetStream();
607 std::ios oldState(
nullptr);
608 oldState.copyfmt(*os);
610 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
611 *os <<
"ZigBee Route Discovery table\n";
612 *os << std::setw(10) <<
"RREQ ID";
613 *os << std::setw(16) <<
"Source Address";
614 *os << std::setw(16) <<
"Sender Address";
615 *os << std::setw(16) <<
"Forward Cost";
616 *os << std::setw(16) <<
"Residual Cost";
617 *os <<
"Expiration time" << std::endl;
621 entry->Print(stream);
623 *stream->GetStream() << std::endl;
644 uint16_t endDevConfig,
650 uint8_t outgoingCost,
653 uint8_t macInterfaceIndex)
934 std::ostream* os = stream->GetStream();
935 std::ios oldState(
nullptr);
936 oldState.copyfmt(*os);
938 std::ostringstream extAddr;
939 std::ostringstream nwkAddr;
940 std::ostringstream devTimeout;
946 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
947 *os << std::setw(25) << extAddr.str();
948 *os << std::setw(13) << nwkAddr.str();
949 *os << std::setw(16) << devTimeout.str();
953 *os << std::setw(16) <<
"PARENT";
956 *os << std::setw(16) <<
"CHILD";
959 *os << std::setw(16) <<
"SIBLING";
962 *os << std::setw(16) <<
"NONE";
965 *os << std::setw(16) <<
"PREVIOUS CHILD";
968 *os << std::setw(16) <<
"UNAUTH CHILD";
975 *os << std::setw(16) <<
"COORDINATOR";
978 *os << std::setw(16) <<
"ROUTER";
981 *os << std::setw(16) <<
"END DEVICE";
985 *os << std::setw(14) << static_cast<uint16_t>(
m_txFailure);
986 *os << std::setw(5) << static_cast<uint16_t>(
m_lqi);
988 *os << std::setw(8) << static_cast<uint16_t>(
m_age);
989 *os << std::setw(19) << std::hex <<
m_extPanId << std::dec;
992 (*os).copyfmt(oldState);
1030 return entry->GetExtAddr() == extAddr;
1042 if (entry->GetNwkAddr() == nwkAddr)
1060 if (entry->GetExtAddr() == extAddr)
1091 uint8_t currentLinkCost = 7;
1092 uint8_t prevLinkCost = 8;
1100 if ((epid == entry->GetExtPanId()) &&
1103 (entry->IsPotentialParent()) && (currentLinkCost <= 3))
1105 if (currentLinkCost < prevLinkCost)
1108 prevLinkCost = currentLinkCost;
1121 std::ostream* os = stream->GetStream();
1122 std::ios oldState(
nullptr);
1123 oldState.copyfmt(*os);
1125 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
1126 *os <<
"ZigBee Neighbor Table\n";
1127 *os << std::setw(25) <<
"IEEE Address";
1128 *os << std::setw(13) <<
"Nwk Address";
1129 *os << std::setw(16) <<
"Device Timeout";
1130 *os << std::setw(16) <<
"Relationship";
1131 *os << std::setw(16) <<
"Device type";
1132 *os << std::setw(14) <<
"Tx Failure";
1133 *os << std::setw(5) <<
"LQI";
1134 *os << std::setw(16) <<
"Outgoing Cost";
1135 *os << std::setw(8) <<
"Age";
1136 *os << std::setw(19) <<
"Ext PAN ID";
1137 *os << std::setw(11) <<
"Pot. Parent";
1142 entry->Print(stream);
1144 *stream->GetStream() << std::endl;
1168 NS_ASSERT_MSG(lqi <= 255,
"LQI does not have a valid range");
1176 else if (lqi >= 202)
1180 else if (lqi >= 154)
1184 else if (lqi >= 106)
1233 << extPanId <<
" | PAN Id: " << panId);
1238 if (panId != i->second)
1307 if (entry->GetSeqNum() == seq)
1337 std::ostream* os = stream->GetStream();
1338 std::ios oldState(
nullptr);
1339 oldState.copyfmt(*os);
1341 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
1342 *os <<
"ZigBee Routing table\n";
1343 *os << std::setw(16) <<
"SrcAddress";
1344 *os << std::setw(16) <<
"Seq. Num";
1345 *os << std::setw(16) <<
"Expiration";
1346 *os << std::setw(16) <<
"Count" << std::endl;
1350 entry->Print(stream);
1352 *stream->GetStream() << std::endl;
1426 std::ostream* os = stream->GetStream();
1427 std::ios oldState(
nullptr);
1428 oldState.copyfmt(*os);
1430 std::ostringstream sourceAddr;
1431 std::ostringstream seq;
1432 std::ostringstream expTime;
1433 std::ostringstream count;
1440 *os << std::resetiosflags(std::ios::adjustfield) << std::setiosflags(std::ios::left);
1441 *os << std::setw(16) << sourceAddr.str();
1443 *os << std::setw(16) << expTime.str();
1446 (*os).copyfmt(oldState);
An identifier for simulation events.
bool IsPending() const
This method is syntactic sugar for !IsExpired().
This class can contain 16 bit addresses.
Smart pointer class similar to boost::intrusive_ptr.
static Time Now()
Return the current simulation virtual time.
Simulation virtual time values and global simulation resolution.
TimeWithUnit As(const Unit unit=Time::AUTO) const
Attach a unit to a Time, to facilitate output in a specific unit.
Mac16Address GetSrcAddr() const
Get the source address of the BTR.
void SetSrcAddr(Mac16Address srcAddr)
Set the source address of the BTR.
uint8_t GetBcstRetryCount() const
Get the broadcast retry count value.
BroadcastTransactionRecord()
void SetSeqNum(uint8_t seq)
Set the sequence number of the BTR.
uint8_t m_sequenceNumber
The RREQ sequence number of the initiator's broadcast.
uint8_t m_broadcastRetryCount
The number of times this BCST has been retried.
uint8_t GetSeqNum() const
Get the sequence number of the BTR.
void SetBcstRetryCount(uint8_t count)
Set the Broadcast retry count object.
Time GetExpirationTime() const
Get the value of the expiration time in the BTR.
~BroadcastTransactionRecord()
void Print(Ptr< OutputStreamWrapper > stream) const
Print the values of the BTR.
Time m_expirationTime
An indicator of when the entry expires.
Mac16Address m_srcAddr
The 16-bit network address of the broadcast initiator.
void SetExpirationTime(Time exp)
Set the expiration time object.
BroadcastTransactionTable()
void Dispose()
Dispose of all broadcast transaction records (BTR) in the broadcast transaction table(BTT).
void Print(Ptr< OutputStreamWrapper > stream)
Print the broadcast transaction table (BTT)
uint32_t m_maxTableSize
The maximum size of the Broadcast Transaction table.
void Purge()
Purge expired entries from the broadcast transaction table (BTT).
void SetMaxTableSize(uint32_t size)
Set the maximum size of the broadcast transaction table (BTT)
std::deque< Ptr< BroadcastTransactionRecord > > m_broadcastTransactionTable
The list object representing the broadcast transaction table (BTT)
uint32_t GetMaxTableSize() const
Get the maximum size of the broadcast transaction table (BTT)
uint32_t GetSize()
Get the current Size of the broadcast transaction table (BTT).
bool AddEntry(Ptr< BroadcastTransactionRecord > entry)
Add a broadcast transaction record (BTR) to the broadcast transaction table(BTT).
bool LookUpEntry(uint8_t seq, Ptr< BroadcastTransactionRecord > &entryFound)
Look up for broadcast transaction record in the broadcast transaction table (BTT).
uint8_t GetRelationship() const
Get the relationship object.
void Print(Ptr< OutputStreamWrapper > stream) const
Print the values of the neighbor table entry.
uint64_t m_extPanId
The extendend PAN id (based on the Zigbee coordinator EUI-64 address)
uint8_t GetLogicalCh() const
Get the logical channel used by the the neighbor in this entry.
Time GetTimeoutCounter() const
Get the timeout counter object.
uint32_t GetMacUcstBytesTx() const
Get the number of unicast bytes transmitted to the neighbor registered in this entry.
void SetOutgoingCost(uint8_t cost)
Set the outgoing cost object.
Mac64Address m_extAddr
The IEEE EUI-64 bit address that is unique to every device.
uint8_t GetLqi() const
Get the LQI value from this device to an entry neighbor.
Time GetDevTimeout() const
Get the device timeout object.
uint8_t GetMacInterfaceIndex() const
Get the MAC Interface Index object.
uint32_t GetMacUcstBytesRx() const
Get the number of unicast bytes received to the neighbor registered in this entry.
uint8_t m_outgoingCost
The cost of the outgoing link as measured by the neighbor.
void SetNwkAddr(Mac16Address nwkAddr)
Set the entry registered Network address (MAC short address).
uint64_t GetExtPanId() const
Get the extended PAN identifier.
void SetMacUcstBytesRx(uint32_t rxBytes)
Set the number of unicast bytes received to the neighbor registered in this entry.
uint8_t m_lqi
The estimated link quality for RF transmissions from this device See Zigbee specification r22....
uint64_t m_incBeaconTimestamp
The time in symbols at which the last beacon frame was received from the neighbor.
void SetLqi(uint8_t lqi)
Set the Link quality indicator value from this device to an entry neighbor.
uint8_t m_bo
The beacon order of the device (See IEEE 802.15.4-2011)
uint8_t IsPotentialParent() const
Get the the value of the potential parent field.
uint8_t GetAge() const
Get the number of nwkLinkStatusPeriod intervals since the link status command was received.
void SetIncBeaconTimestamp(uint64_t timestamp)
Set the time in symbols at which the last beacon frame was received from the neighbor.
Mac16Address m_nwkAddr
The 16 bit network address of the neighboring device.
uint32_t m_macUcstBytesRx
The number of bytes received via MAC unicasts from this neighbor (Optional field).
Time m_timeoutCounter
Indicates the current time remaining in seconds, for the end device.
void SetRxOnWhenIdle(bool onWhenIdle)
Set the device is on when idle flag.
uint8_t m_depth
The tree depth of the neighbor device.
uint16_t m_endDevConfig
The end device configuration.
void SetBeaconOrder(uint8_t bo)
Set the value of the beacon order set in this neighbor.
void SetTimeoutCounter(Time counter)
Set the timeout counter object.
uint64_t m_beaconTxTimeOffset
The transmission time difference in symbols, between the neighbor's beacon and its parent beacon (Opt...
NwkDeviceType GetDeviceType() const
Get the device type of this neighbor device.
void SetLogicalCh(uint8_t channel)
Set the logical channel used by the the neighbor in this entry.
uint64_t GetBeaconTxTimeOffset() const
Get the transmission time difference in symbols, between the neighbor's beacon and its parent beacon.
bool m_rxOnWhenIdle
Indicates if the neighbor receiver is enabled during idle periods.
uint8_t m_logicalCh
The logical channel on which the network is operating.
void SetBeaconTxTimeOffset(uint64_t offset)
Set the transmission time difference in symbols, between the neighbor's beacon and its parent beacon.
void SetRelationship(Relationship relationship)
Set the relationship object.
Mac16Address GetNwkAddr() const
Get the entry registered Network address (MAC short address).
void SetPotentialParent(bool confirm)
Set the the value of the potential parent field.
Relationship m_relationship
Relationship between the neighbor and the current device.
Mac64Address GetExtAddr() const
Get the entry registered IEEE address (EUI-64 address).
bool m_keepaliveRx
This value indicates at least one keepalive has been received from the end device since the router ha...
uint8_t m_txFailure
A value indicating if previous transmissions to the device were successful or not.
void SetTxFailure(uint8_t failure)
Set the Tx Failure object.
void SetDeviceType(NwkDeviceType devType)
Set the device type of this neighbor device.
void SetEndDevConfig(uint16_t conf)
Set the end device configuration.
void SetDevTimeout(Time timeout)
Set the device timeout object.
bool IsRxOnWhenIdle() const
Return true is neighboring device is on when idle.
uint16_t GetEndDevConfig() const
Get the end device configuration object.
uint8_t GetDepth() const
The depth of the neighbor device.
uint8_t GetOutgoingCost() const
Get the outgoing cost object.
uint8_t GetTxFailure() const
Get the Tx Failure object.
bool m_potentialParent
An indication of whether the device has been ruled out as a potential parent.
void SetAge(uint8_t age)
Set the number of nwkLinkStatusPeriod intervals since the link status command was received.
uint8_t GetBeaconOrder() const
Get the value of the beacon order set in this neighbor.
uint32_t m_macUcstBytesTx
The number of bytes transmitted via MAC unicast to the neighbor (Optional field).
uint8_t m_macInterfaceIndex
This is an index into the MAC Interface Table indicating what interface the neighbor or child is boun...
Time m_devTimeout
This field indicates the timeout, in seconds, for the end device child.
void SetMacUcstBytesTx(uint32_t txBytes)
Set the number of unicast bytes transmitted to the neighbor registered in this entry.
void SetDepth(uint8_t depth)
Set the depth of the neighbor device.
uint8_t m_age
The number of nwkLinkStatusPeriod intervals since link status command was received.
uint64_t GetIncBeaconTimestamp() const
Get the time in symbols at which the last beacon frame was received from the neighbor.
NwkDeviceType m_deviceType
The type of neighbor device.
void SetExtPanId(uint64_t extPanId)
Set the extended PAN identifier.
bool GetParent(Ptr< NeighborTableEntry > &entryFound)
Look for this device Parent neighbor (A.K.A coordinator).
void Dispose()
Dispose of the table and all its elements.
void SetMaxTableSize(uint32_t size)
Set the maximum size of the neighbor table.
bool LookUpForBestParent(uint64_t epid, Ptr< NeighborTableEntry > &entryFound)
Perform a search for the best candidate parent based on some attributes.
NeighborTable()
The neighbor table constructor.
std::deque< Ptr< NeighborTableEntry > > m_neighborTable
The neighbor table object.
uint8_t GetLinkCost(uint8_t lqi) const
Get the link cost based on the link quality indicator (LQI) value.
bool AddEntry(Ptr< NeighborTableEntry > entry)
Add an entry to the neighbor table.
uint32_t m_maxTableSize
The maximum size of the neighbor table.
void Print(Ptr< OutputStreamWrapper > stream) const
Print the neighbor table.
void Purge()
Remove old entries from the neighbor table.
bool LookUpEntry(Mac16Address nwkAddr, Ptr< NeighborTableEntry > &entryFound)
Look and return and entry if exists in the neighbor table.
uint32_t GetSize()
Get the size of the neighbor table.
void Delete(Mac64Address extAddr)
Delete the specified entry from the neighbor table.
uint32_t GetMaxTableSize() const
Get the maximum size of the neighbor table.
std::map< uint64_t, uint16_t > m_panIdTable
The Map object that represents the table of PAN ids.
bool GetEntry(uint64_t extPanId, uint16_t &panId)
Get the 16 bit MAC PAN id based on the reference extended PAN id.
void AddEntry(uint64_t extPanId, uint16_t panId)
Add an entry to the PAN Id table.
PanIdTable()
The constructor of the PanIdTable.
void Dispose()
Dispose of the table and all its elements.
Time m_expirationTime
A time stamp indicating the expiration time.
void SetSenderAddr(Mac16Address sender)
Set the sender address of this entry.
void SetExpTime(Time exp)
Set the expiration time of the route discovery entry.
void Print(Ptr< OutputStreamWrapper > stream) const
Print the values of the route discovery table entry.
Mac16Address m_senderAddr
The 16-bit network address of the device that has sent the most recent lowest cost RREQ command frame...
uint8_t m_routeRequestId
The sequence number for a RREQ command frame that is incremented each time a device initiates a RREQ.
void SetResidualCost(uint8_t pathcost)
Set the resulting pathcost on a reception of a RREP previously requested.
uint8_t GetRreqId() const
Get the route request id (The sequence number used by the RREQ command frame).
Mac16Address m_sourceAddr
The 16-bit network address of the RREQ initiator.
Mac16Address GetSenderAddr() const
Get the sender address of the entry.
uint8_t GetResidualCost() const
Get the value of a residual cost (pathcost) updated by a RREP in this entry.
uint8_t m_residualCost
The accumulated path cost from the current device to the destination device.
~RouteDiscoveryTableEntry()
uint8_t m_forwardCost
The accumulated path cost from the source of the RREQ to the current device.
Mac16Address GetSourceAddr() const
Get the source address of the entry's RREQ initiator.
uint8_t GetForwardCost() const
Get the forward cost of this entry.
Time GetExpTime() const
Get the expiration time of this entry.
RouteDiscoveryTableEntry()
void SetForwardCost(uint8_t pathCost)
Set the forward cost of this entry.
std::deque< Ptr< RouteDiscoveryTableEntry > > m_routeDscTable
The route discovery table object.
RouteDiscoveryTable()
Constructor of route discovery table.
void Purge()
Purge old entries from the route discovery table.
void Dispose()
Dispose of the table and all its elements.
void Delete(uint8_t id, Mac16Address src)
Delete an entry from the route discovery table.
bool AddEntry(Ptr< RouteDiscoveryTableEntry > rt)
Add an entry to the route discovery table, in essence the contents of a RREQ command.
uint32_t m_maxTableSize
The maximum size of the route discovery table.
bool LookUpEntry(uint8_t id, Mac16Address src, Ptr< RouteDiscoveryTableEntry > &entryFound)
Look up for a route discovery table entry, the seareched entry must match the id and the src address ...
void Print(Ptr< OutputStreamWrapper > stream)
Print the contents of the route discovery table.
bool IsGroupIdPresent() const
Indicates if the Group Id flag is active.
bool m_noRouteCache
A flag indicating that the destination indicated by this address does not store source routes.
void SetNextHopAddr(Mac16Address nextHopAddr)
Set the value of the next hop address.
Mac16Address m_nextHopAddr
The 16 bit network address of the next hop on the way to the destination.
void SetLifeTime(Time lt)
Set the lifetime of the entry.
RouteStatus m_status
The status of the route.
bool m_manyToOne
A flag indicating that the destination is a concentrator that issued a many-to-one route request.
void SetStatus(RouteStatus status)
Set the status of the routing table entry.
bool m_routeRecordReq
A flag indicating that the route record command frame should be sent to the destination prior to the ...
Mac16Address GetNextHopAddr() const
Get the value of the next hop address.
bool m_groupId
A flag indicating that the destination address is a group id.
bool IsNoRouteCache() const
Indicates if the No Route Cache flag is active.
bool IsRouteRecordReq() const
Indicate if the route record request is active.
Time GetLifeTime() const
Get the value of the entry lifetime.
RouteStatus GetStatus() const
Get the status of the routing table entry.
Mac16Address m_destination
The 16 bit network address or group id of this route.
Mac16Address GetDestination() const
Get the entry destination nwkAddress(MAC 16-bit address)
bool IsManyToOne() const
Indicates if the Many-to-One flag is active.
void SetDestination(Mac16Address dst)
Set the entry destination nwkAddress (MAC 16-bit address)
void Print(Ptr< OutputStreamWrapper > stream) const
Print the values of the routing table entry.
Time m_lifeTime
Indicates the lifetime of the entry.
void DeleteExpiredEntry()
Delete the first occrurance of an expired entry (ROUTE_INACTIVE status)
uint32_t m_maxTableSize
The maximum size of the routing table;.
bool AddEntry(Ptr< RoutingTableEntry > rt)
Adds an entry to the routing table.
void Delete(Mac16Address dst)
Remove an entry from the routing table.
uint32_t GetMaxTableSize() const
Get the maximum size of the routing table.
void Print(Ptr< OutputStreamWrapper > stream) const
Print the Routing table.
uint32_t GetSize()
Get the size of the routing table.
bool LookUpEntry(Mac16Address dstAddr, Ptr< RoutingTableEntry > &entryFound)
Look for an specific entry in the routing table.
void IdentifyExpiredEntries()
Identify and mark entries as ROUTE_INACTIVE status for entries who have exceeded their lifetimes.
void SetMaxTableSize(uint32_t size)
Set the maximum size of the routing table.
RoutingTable()
The constructuctor of a Routing Table object.
void Purge()
Purge old entries from the routing table.
std::deque< Ptr< RoutingTableEntry > > m_routingTable
The object that represents the routing table.
void Dispose()
Dispose of the table and all its elements.
EventId m_rreqRetryEventId
The event id of the next RREQ retry callback.
EventId GetRreqEventId()
Get the RREQ id of the RREQ retry.
uint8_t m_rreqRetryCount
The number of RREQ retries.
void Print(Ptr< OutputStreamWrapper > stream) const
Print the values of the RREQ retry table entry.
uint8_t GetRreqId() const
Get the RREQ Id from the entry.
RreqRetryTableEntry(uint8_t rreqId, EventId rreqRetryEvent, uint8_t rreqRetryCount)
The constructor of the RREQ retry table entry.
void SetRreqEventId(EventId eventId)
Set the event id of the RREQ retry.
uint8_t m_rreqId
The RREQ ID.
void SetRreqRetryCount(uint8_t rreqRetryCount)
Set the RREQ retry count from the entry.
uint8_t GetRreqRetryCount() const
Get the RREQ retry count from the entry.
std::deque< Ptr< RreqRetryTableEntry > > m_rreqRetryTable
The Table containing RREQ Table entries.
void Print(Ptr< OutputStreamWrapper > stream) const
Print the neighbor table.
void Dispose()
Dispose of the table and all its elements.
bool LookUpEntry(uint8_t rreqId, Ptr< RreqRetryTableEntry > &entryFound)
Look up for an entry in the table.
void Delete(uint8_t rreqId)
Delete an entry from the table using the RREQ ID.
bool AddEntry(Ptr< RreqRetryTableEntry > entry)
Adds an entry to the table.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
NwkDeviceType
The network layer device type.
RouteStatus
Route record states.
Relationship
The relationship between the neighbor and the current device.
@ ZIGBEE_COORDINATOR
Zigbee coordinator.
@ ZIGBEE_ENDDEVICE
Zigbee end device.
@ ZIGBEE_ROUTER
Zigbee router.
@ ROUTE_VALIDATION_UNDERWAY
Route discovery validation underway.
@ ROUTE_ACTIVE
Route active.
@ ROUTE_INACTIVE
Route inactive.
@ ROUTE_DISCOVER_FAILED
Route discovery failed.
@ ROUTE_DISCOVERY_UNDERWAY
Route discovery underway.
@ NBR_UNAUTH_CHILD
Neighbor is an unauthenticated child.
@ NBR_PREV_CHILD
Neighbor was a previous child.
@ NBR_CHILD
Neighbor is the child.
@ NBR_SIBLING
Neighbor is the sibling.
@ NBR_PARENT
Neighbor is the parent.
@ NBR_NONE
No relationship.
Every class exported by the ns3 library is enclosed in the ns3 namespace.