Endpoints are logical extensions added to a single ZigBee radio which permits support for multiple applications, addressed by the Endpoint number.
Endpoint Number can be anyone between 1 and 240.
There are two special endpoints: 0 and 255. Endpoint 0 is used for the configuration and management of the entire Zigbee devide. Through this endpoint, the application can communicate with other layers of the Zigbee stack to initialize and configure them. Attached to endpoint 0 is the Zigbee device object (ZDO). Endpoint 255 is used to broadcast to all endpoints, while endpoints 241-254 are reserved for special functions.
Refer Chapter 4 "Application Framework" of the Software Reference Manual for ZigBee attached.
Endpoint simple descriptor example:
const zbSimpleDescriptor_t Endpoint9_simpleDescriptor = {
9, /* Endpoint number */
0x4, 0x1, /* Application profile ID */
0x0, 0x1, /* Application device ID */
0, /* Application version ID */
5, /* Number of input clusters */
(uint8_t *) Endpoint9_InputClusterList, /* Input cluster list */
0, /* Number of output clusters */
(uint8_t *) Endpoint9_OutputClusterList, /* Output cluster list */
};