Table configuration guidelines
This section provides guidelines on configuring various tables used by the ZigBee PRO stack. These tables can be configured through ZigBee network parameters in the ZPS Configuration Editor. The tables are sized, by default, to support a network of up to 250 nodes. The table sizes can be increased to support more nodes, but this will be at the expense of RAM and/or Flash usage.
The tables and their configuration are individually described in the sections below, which reference to the ZigBee network parameters used to configure the table sizes (the network parameters are detailed in Chapter 12).
Neighbor table
The Neighbor table on a routing node (Router or Coordinator) holds information about the node’s immediate neighbors:
The first entry in the table contains information about the node’s parent.
Part of the table holds information about child nodes which have joined the network through the local device.
The rest of the table holds information about nodes which are neither children nor the parent (these ‘other’ nodes are only relevant to Mesh networks).
The Neighbor table size is, by default, set to 26 - this is the minimum size required for a ZigBee-Compliant Platform. The table size may be increased through the parameter Active Neighbor Table Sizeto reflect the density of the network. However, increasing the table size uses more RAM. Increasing the Neighbor table size beyond 26 also results in an extra link status packet since one of these packets can accommodate a maximum of 26 neighbors. Thus it doubles the traffic for these periodic packets.
The first two parts of the Neighbor table, for the device’s parent and children, form a sub-table that is persisted in Flash. This sub-table must not occupy more than two-thirds of the Neighbor table. Since this sub-table contains child entries, the size of the sub-table determines the number of children that the device is allowed to have - the maximum number of children is one less than the sub-table size.
The default size for the sub-table is 5, allowing up to 4 child nodes, but the size can be changed through the parameter Child Table Size (which corresponds to the total number of sub-table entries including the parent’s entry, not just the child entries).
Note: Increasing the sub-table size uses more Flash for persisted data.
Parent topic:Table configuration guidelines
Address Map table
The Address Map table on a node is used to keep a record of the address-pairs of network nodes with which the local node needs to communicate directly - that is, the IEEE/MAC address and network address of each of these nodes. In fact, an Address Map table entry only contains an index to an entry in the MAC Address table, where the actual addresses of the node are stored (see MAC Address table). The population of these tables is done as the result of device announcement messages.
The default size of the Address Map table is 10, but the size can be changed through the parameter Address Map Table Size. The Address Map table is fully persisted in Flash. Therefore, increasing the size of this table will impact both RAM and Flash usage.
Parent topic:Table configuration guidelines
MAC Address table
The MAC Address table on a node is used to store the address-pairs of other network nodes - that is, the IEEE/MAC address and network address of each of these nodes. The entries in the MAC Address table are referenced from entries of both the Neighbor table and Address Map table. Therefore, the MAC Address table should be sized according to the combined sizes of the Neighbor table and Address Map table.
The default size of the MAC Address table is 36, but the size can be changed through the parameter Maximum Number of Nodes. The MAC Address table is fully persisted in Flash. Therefore, increasing the size of this table impacts both RAM and Flash usage.
Parent topic:Table configuration guidelines
Routing table
A Routing table is held by the Coordinator and Router nodes to store routing information to other nodes in the network.
The default size of the Routing table is 70, which should be sufficient for most applications, but the size can be changed through the parameter Routing Table Size. The table size should be increased if routing bottlenecks are observed. The Coordinator needs to store routes to all the nodes in the network if it is required to communicate with every node. In this case, the Routing table size should be increased to the size of the network.
The Routing table is not persisted. Therefore, any increase only affects the RAM usage.
Parent topic:Table configuration guidelines
Broadcast Transaction table
The Broadcast Transaction table is used for the origination, processing and passive acknowledgment of broadcast transmissions. The minimum required size of this table for a ZigBee-Compliant Platform is 9. However, an application that produces a large number of broadcasts may need a larger table. The size of the table can be set through the parameter Broadcast Transaction Table Size.
Parent topic:Table configuration guidelines
Route Discovery table
The Route Discovery table is used to hold temporary details of a route discovery transaction. The table size dictates how many individual route discoveries can occur on the local node at a given time. The default size of the Route Discovery table is 2, but the size can be changed through the parameter Route Discovery Table Size. The default value severely restricts the number route discoveries and hence broadcasts on the network. Increasing the table size also requires increases in the Routing table and Broadcast Transaction table sizes.
The Route Discovery table is not persisted. Therefore, any increase only affects the RAM usage.
Parent topic:Table configuration guidelines
Discovery table
A Discovery table is held by the Router and End Device nodes to store the results of a channel scan when searching for a network to join. The default size of the Discovery table is 8, but the size can be changed through the parameter Discovery Neighbor Table Size.
Parent topic:Table configuration guidelines
Route Record table
The Route Record table is only relevant to a device, which will be the concentrator in a network, if many-to-one routing is implemented. This table replaces the Routing table in the node.
The size of the Route Record table can be set through the parameter Route Record Table Size.
In the concentrator node, this table size should be set to the size of the network. Since this table then replaces the Routing table in the node, the Routing table size should be set to 1 (see Appendix B.5.4).
In all other network nodes, the size of the Route Record table should be set to 1.
Parent topic:Table configuration guidelines
Parent topic:Appendix B: Application design notes