We have some questions during our 250 ZigBee nodes test. We have a long term test about one month using one coordinator and 250 routers.
Our ZigBee module is CC2538+CC2592.
Test environment:
We do the test in our office, and use 5 test racks. There are 50pcs in each test rack, and the distance between racks is less than 30 meters.
Figure1. The deployment of coordinator and test racks
Figure2. The deployment of ZigBee nodes on the test rack
Test scenario:
- 1*Coordinator and 250*Routers.
- Coordinator sends a data request to each router one by one, and the procedure continuously during our test period.
- Each router sends a data request to coordinator every 15 minutes.
- Coordinator sends a heart-beat broadcast message to routers every 3 minutes, if a router didn’t receive the heart-beat from coordinator in 15 minutes, the router reboot.
Parameters setting:
We use TI Z-Stack v2.6.2.
Coordinator |
Router |
INT_HEAP_LEN=4096 |
MAX_NEIGHBOR_ENTRIES=48 |
NWK_MAX_DEVICE_LIST=20 |
NWK_MAX_DEVICE_LIST=20 |
CONCENTRATOR_ENABLE=1 |
ZMAC_MAX_DATA_IND=5 |
CONCENTRATOR_DISCOVERY_TIME=120 |
ROUTE_EXPIRY_TIME=30 |
MAX_RTG_SRC_ENTRIES=255 |
MAX_RTG_ENTRIES=40 |
CONCENTRATOR_ROUTE_CACHE=1 |
NWK_LINK_STATUS_PERIOD=60 |
SRC_RTG_EXPIRY_TIME=2 |
|
MTO_RREQ_LIMIT_TIME=5000 |
|
ZMAC_MAX_DATA_IND=5 |
|
ROUTE_EXPIRY_TIME=30 |
|
MAX_RTG_ENTRIES=64 |
|
NWK_LINK_STATUS_PERIOD=60 |
Questions:
We use many-to-one routing scheme and have sufficient memory (MAX_RTG_SRC_ENTRIES=255) to store the path back to all the nodes, and we often find the AODV route discovery from coordinator and route record command from routers in sniffer.
- How does the coordinator select the path when it has a data request or send back APS_ACK to a router?
- In Z-Stack, there are two tables that are rtgTable[] and rtgSrcTable[] in coordinator. The path from AODV is stored in rtgTable[] and the path from route record command is stored in rtgSrcTable[], is it correct?
- In routers, there is only rtgTable[] used to store the destination address and the address of next hot regardless if using AODV routing scheme or MTO routing scheme, is it correct?
- Are rtgTable[] and rtgSrcTable[] used in coordinator at the same time when MTO routing scheme is used? Which one has the high priority for path selection? Additionally, how do we optimize the two table size?
- In ZigBee specification description, the route record required field will set to TRUE if the routing table entry is new, or if no route cache flag is set to TRUE, or if the next hop field changed. Because we didn’t move the nodes, we think the network is stable and the path from coordinator to routers or the routers to coordinator didn’t change frequently, but we often find the route record command, why?
- There is no any MTO route discovery (CONCENTRATOR_DISCOVERY_TIME=120) from coordinator in 26th day, no any route record command from all routers and many network status error (many-to-one failure 0x0C), it let all data requests fail to arrive in the destination, why?