14.2.3.2.5 Understanding table sizes
The stack keeps a set of buffer tables for various purposes. Configuration Server provides a parameter for the size of each table. Since the table are initialized statically these parameters are used to determine an amount of memory that has to be allocated during the compilation and therefore they are not configurable at run time. The tables of particular interest for the application include
- CS_NEIB_TABLE_SIZE
Stores information about directly accessible devices from the same network.
- CS_ROUTE_TABLE_SIZE
Stores next-hop addresses for routes towards certain remote nodes if such routes have already been established by route discovery. If the stack fails to find a route in this table it launches route discovery procedure employing the route discovery table.
- CS_ROUTE_DISCOVERY_TABLE_SIZE
Is used by route discovery procedures if the route towards a remote node, which should be reached by a data frame, has not yet found. If the route discovery will be performed frequently, for example, if the routing table size is small, consider whether the size of the route discovery table is enough.
- CS_APS_BINDING_TABLE_SIZE
Stores entries for binding links with remote nodes. Each entry contains source extended address and endpoint and destination extended address and endpoint.
- CS_ADDRESS_MAP_TABLE_SIZE
Contains pairs of corresponding short and extended addresses found out during network operation or by device discovery requests.
- CS_GROUP_TABLE_SIZE
Stores pairs of a group address and an endpoint. Each group address identifies a group to which the node is subscribed, an endpoint being the destination for data frames addressed to the groups.
The application developers should consider properly the sizes for the buffers for it can help reduce the amount of Flash memory consumed by the application.