Now I have make my z-stack optimizing on ZDO layer into lib feils.It not only support white.
download here
http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/158/8037.zdo.7z
1.The right way to make a whitelist.Add ZDO-Enhanced layer into z-stack,that defined whitelist
system.The whitelist check joining device's IEEE-address during MAC-associating.
2.New event in ZDO_CB_FUNs "ZDO_JOIN_DENIED_CBID" that is registered by ZDO_RegisterForZdoCB like other
events such as "ZDO_NWK_DISCOVERY_CNF_CBID","ZDO_BEACON_NOTIFY_IND_CBID".This event is to notify a new
un-joined device attempts to join into this WPAN network but is denied.
3.When a new device is denied by a FFD(Coordination or Routers),this FFD will broadcast the denying's
message to all FFD(using NWK-address 0xFFFC) with new ZDO cluster-ID "ZDE_Join_Denied"(0x0040).So when a
FFD had registered "ZDO_JOIN_DENIED_CBID" ,it will knows what new-device being denied by which FFD
(itself or other FFD).
4.Coordination or Routers can input items into the whitelist of themselves or of other FFD's. ZDO
cluster-ID "ZDE_Join_Accept_req"(0x0041) is used to input an item into other FFD's whitelist and
Response cluster-ID "ZDE_Join_Accept_rsp"(0x8041) will be acknowledged.By this way,it can makes sure
whether a Router supports "whitelist".Send a "Empty IEEE Address"(8-byte 0x00) to a Router and receive
"ZDE_Join_Accept_rsp" later,if the status of "ZDE_Join_Accept_rsp" is not "ZDP_SUCCESS" the Router not
support whitelist.
5.A new device would join into any WPAN,it would scan its default channels.One or more WPANs was scanned
and made as a queue.The new device will attempt to join every WPAN until one can be joined
successfully.So when a new device was denied by a WPAN (have not input whitelist) it will continue to
join next WPAN.
6.ZDO_STATE_CHANGE message carries endPoint number.so there are more than one epDesc can be registered
in one OSAL task.