5.2 MAC Association

Every node in a Zigbee network has its own unique 64-bit IEEE MAC address. When a node joins the network for the first time, the end device/router initiates the MAC association procedure, after which, it obtains a 16-bit network (short) address from the parent. For further communication in the network, this short address is used to reduce frame overhead. Use a configuration parameter, IEEE MAC address to set the value of the 64-bit MAC address of the node during compilation. The following conditions prevail:
  • Setting IEEE MAC address for testing – Any random 64-bit value can be set at compile time in application configuration files or at run-time before calling the Application Programming Interface (API) to start the network request via ZDP.
  • Setting IEEE MAC address during production – Commercial use of the Zigbee products requires the purchase of a block of IEEE/MAC addresses from IEEE. In this case, IEEE MAC address can be set to zero during compile-time.
When a node starts up, it does network discovery by performing an active scan over the channels specified in the list of channels configured at the Zigbee stack parameter configuration files or at application level. The node sends the Beacon Request (see packet #1) (see the following figure). After receiving a Beacon Request frame, the routers and coordinators already present in the network automatically respond with a beacon frame. The joining node filters a potential parent based on the settings in the beacon packet received.
Figure 5-2. Node Joins Network via MAC Association using IEEE Address 0xdeeb1ULL
The beacon from the coordinator/router contains the Association Permit sub field. It is set to True if the device accepts the association to the Personal Area Network (PAN). A joining node cannot associate to the device if this sub-field is set to False. The PERMIT DURATION parameter in the Zigbee application controls the joining of devices into the network by setting a finite permit duration.
Figure 5-3. assocPermit Sub-Field in the Beacon Frame

For example, the following figure illustrates the parsed beacon payload that contains information based on which joining node chooses a potential parent.

The beacon payload provides information on the Zigbee stack profile used in the network (Stack Profile: ZigBee PRO = 0x2), network protocol version (nwkcProtocolVersion, 0x02). The Router Capacity, End Device Capacity and Device Depth limits the acceptance of children by a parent node. For more details, refer to the Zigbee Specification Revision 22 1.0 (05-3474-22).
Figure 5-4. Beacon Payload
The following figure illustrates a joining device indicating its capability information in the MAC Association Request it sends to its potential parent.
Figure 5-5. Capability Information in a MAC Association Request