The network layer Network Table See Zigbee specification r22.1.0, 3.6.1.5. More...
#include "zigbee-nwk-tables.h"
Public Member Functions | |
NeighborTable () | |
The neighbor table constructor. | |
bool | AddEntry (Ptr< NeighborTableEntry > entry) |
Add an entry to the neighbor table. | |
void | Delete (Mac64Address extAddr) |
Delete the specified entry from the neighbor table. | |
void | Dispose () |
Dispose of the table and all its elements. | |
uint32_t | GetMaxTableSize () const |
Get the maximum size of the neighbor table. | |
bool | GetParent (Ptr< NeighborTableEntry > &entryFound) |
Look for this device Parent neighbor (A.K.A coordinator). | |
uint32_t | GetSize () |
Get the size of the neighbor table. | |
bool | LookUpEntry (Mac16Address nwkAddr, Ptr< NeighborTableEntry > &entryFound) |
Look and return and entry if exists in the neighbor table. | |
bool | LookUpEntry (Mac64Address extAddr, Ptr< NeighborTableEntry > &entryFound) |
Look and return and entry if exists in the neighbor table. | |
bool | LookUpForBestParent (uint64_t epid, Ptr< NeighborTableEntry > &entryFound) |
Perform a search for the best candidate parent based on some attributes. | |
void | Print (Ptr< OutputStreamWrapper > stream) const |
Print the neighbor table. | |
void | Purge () |
Remove old entries from the neighbor table. | |
void | SetMaxTableSize (uint32_t size) |
Set the maximum size of the neighbor table. | |
Private Member Functions | |
uint8_t | GetLinkCost (uint8_t lqi) const |
Get the link cost based on the link quality indicator (LQI) value. | |
Private Attributes | |
uint32_t | m_maxTableSize |
The maximum size of the neighbor table. | |
std::deque< Ptr< NeighborTableEntry > > | m_neighborTable |
The neighbor table object. | |
The network layer Network Table See Zigbee specification r22.1.0, 3.6.1.5.
Definition at line 1089 of file zigbee-nwk-tables.h.
ns3::zigbee::NeighborTable::NeighborTable | ( | ) |
The neighbor table constructor.
Definition at line 999 of file zigbee-nwk-tables.cc.
References m_maxTableSize.
bool ns3::zigbee::NeighborTable::AddEntry | ( | Ptr< NeighborTableEntry > | entry | ) |
Add an entry to the neighbor table.
entry | The entry to be added to the neighbor table. |
Definition at line 1005 of file zigbee-nwk-tables.cc.
References m_maxTableSize, and m_neighborTable.
Referenced by ns3::zigbee::ZigbeeNwk::MlmeAssociateIndication(), ns3::zigbee::ZigbeeNwk::MlmeBeaconNotifyIndication(), and ns3::zigbee::ZigbeeNwk::NlmeDirectJoinRequest().
void ns3::zigbee::NeighborTable::Delete | ( | Mac64Address | extAddr | ) |
Delete the specified entry from the neighbor table.
extAddr | The EUI-64 of the entry to be removed from the neighbor table |
Definition at line 1027 of file zigbee-nwk-tables.cc.
References m_neighborTable.
Referenced by ns3::zigbee::ZigbeeNwk::MlmeAssociateIndication().
void ns3::zigbee::NeighborTable::Dispose | ( | ) |
Dispose of the table and all its elements.
Definition at line 1205 of file zigbee-nwk-tables.cc.
References m_neighborTable.
Referenced by ns3::zigbee::ZigbeeNwk::DoDispose().
|
private |
Get the link cost based on the link quality indicator (LQI) value.
The calculation of the link cost is based on a non-linear mapping of the lqi. A link cost of 1 is the best possible value (equivalent to 255 LQI).
lqi | The link quality indicator value (0-255) |
Definition at line 1166 of file zigbee-nwk-tables.cc.
References NS_ASSERT_MSG.
Referenced by LookUpForBestParent().
uint32_t ns3::zigbee::NeighborTable::GetMaxTableSize | ( | ) | const |
Get the maximum size of the neighbor table.
Definition at line 1160 of file zigbee-nwk-tables.cc.
References m_maxTableSize.
bool ns3::zigbee::NeighborTable::GetParent | ( | Ptr< NeighborTableEntry > & | entryFound | ) |
Look for this device Parent neighbor (A.K.A coordinator).
entryFound | The returned entry if found in the neighbor table. |
Definition at line 1071 of file zigbee-nwk-tables.cc.
References m_neighborTable, ns3::zigbee::NBR_PARENT, and NS_LOG_FUNCTION.
Referenced by ns3::zigbee::ZigbeeNwk::NldeDataRequest().
uint32_t ns3::zigbee::NeighborTable::GetSize | ( | ) |
Get the size of the neighbor table.
Definition at line 1148 of file zigbee-nwk-tables.cc.
References m_neighborTable.
Referenced by ns3::zigbee::ZigbeeNwk::NlmeDirectJoinRequest().
bool ns3::zigbee::NeighborTable::LookUpEntry | ( | Mac16Address | nwkAddr, |
Ptr< NeighborTableEntry > & | entryFound ) |
Look and return and entry if exists in the neighbor table.
nwkAddr | The network address used to look for an element in the table. |
entryFound | The returned entry if found in the neighbor table. |
Definition at line 1035 of file zigbee-nwk-tables.cc.
References m_neighborTable, and NS_LOG_FUNCTION.
Referenced by ns3::zigbee::ZigbeeNwk::FindNextHop(), ns3::zigbee::ZigbeeNwk::FindRoute(), ns3::zigbee::ZigbeeNwk::McpsDataIndication(), ns3::zigbee::ZigbeeNwk::MlmeAssociateConfirm(), ns3::zigbee::ZigbeeNwk::MlmeAssociateIndication(), ns3::zigbee::ZigbeeNwk::MlmeBeaconNotifyIndication(), ns3::zigbee::ZigbeeNwk::MlmeOrphanIndication(), and ns3::zigbee::ZigbeeNwk::NlmeDirectJoinRequest().
bool ns3::zigbee::NeighborTable::LookUpEntry | ( | Mac64Address | extAddr, |
Ptr< NeighborTableEntry > & | entryFound ) |
Look and return and entry if exists in the neighbor table.
extAddr | The extended address (EUI-64) used to look for an element in the table. |
entryFound | The returned entry if found in the neighbor table. |
Definition at line 1053 of file zigbee-nwk-tables.cc.
References m_neighborTable, and NS_LOG_FUNCTION.
bool ns3::zigbee::NeighborTable::LookUpForBestParent | ( | uint64_t | epid, |
Ptr< NeighborTableEntry > & | entryFound ) |
Perform a search for the best candidate parent based on some attributes.
See Association Join process , Zigbee specification R21, Section 3.6.1.4.1
epid | The extended PAN id of the network in which we look for parent candidates. |
entryFound | The returned entry if found |
Definition at line 1088 of file zigbee-nwk-tables.cc.
References GetLinkCost(), m_neighborTable, ns3::zigbee::ZIGBEE_COORDINATOR, and ns3::zigbee::ZIGBEE_ROUTER.
Referenced by ns3::zigbee::ZigbeeNwk::NlmeJoinRequest().
void ns3::zigbee::NeighborTable::Print | ( | Ptr< OutputStreamWrapper > | stream | ) | const |
Print the neighbor table.
stream | The output stream where the table is printed |
Definition at line 1119 of file zigbee-nwk-tables.cc.
References m_neighborTable.
Referenced by ns3::zigbee::ZigbeeNwk::PrintNeighborTable().
void ns3::zigbee::NeighborTable::Purge | ( | ) |
Remove old entries from the neighbor table.
Definition at line 1019 of file zigbee-nwk-tables.cc.
References m_neighborTable, and ns3::Simulator::Now().
void ns3::zigbee::NeighborTable::SetMaxTableSize | ( | uint32_t | size | ) |
Set the maximum size of the neighbor table.
size | The size of the neighbor table. |
Definition at line 1154 of file zigbee-nwk-tables.cc.
References m_maxTableSize.
|
private |
The maximum size of the neighbor table.
Definition at line 1198 of file zigbee-nwk-tables.h.
Referenced by NeighborTable(), AddEntry(), GetMaxTableSize(), and SetMaxTableSize().
|
private |
The neighbor table object.
Definition at line 1197 of file zigbee-nwk-tables.h.
Referenced by AddEntry(), Delete(), Dispose(), GetParent(), GetSize(), LookUpEntry(), LookUpEntry(), LookUpForBestParent(), Print(), and Purge().