This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

What is the principle and mechanism of z-stack Binding Send? How many target can one Device send at same moment by Binding Send.

Other Parts Discussed in Thread: Z-STACK

For example, zigbee device can reporting attribute value to reporting target that has set binding.The maximum of binding target is limited by binding-table size “NWK_MAX_BINDING_ENTRIES”. But once I set “NWK_MAX_BINDING_ENTRIES” more large, and the zigbee device binding more target, will it lose to send message to some one target? If NWK_MAX_BINDING_ENTRIES is more than Z-stack send Buffer?

Where is Z-stack's Binding Send Buffer?NWK Buffer or MAC Buffer(MAC_CFG_TX_DATA_MAX)

  • The logic is to pick destination one by one from binding table to send message so the message shouldn't be lost.
  • It means that when "AF_DataRequest" is called with binding send mode, the z-stack 's core system will pick the right destination in binding table and send message to it. But When will the z-stack 's core send to next destination in binding table? Will it wait for the last destination's confirm message?What confirm? APS confirm or NWK confirm or MAC data confirm?
    Otherwise, is it putting the sending-packet into sending-buffer for every one destination. In this way, it will cost a lot of buffer resource.
  • If I remember it correctly, it will only wait MAC ack.
  • Is MAC send buffer limited by MAC_CFG_TX_DATA_MAX? I also remember, since versions of z-stack for zigbee pro, the indirect sending never needs MAC buffers to pre-buffer the indirect message. Is the principle of Binding sending equivalent successively call "AF_DataRequest"? If it is like this, z-stack will allocate buffer for every bind target as "nwkDB_t" type.
  • I am not sure about this part and hope can help to explain this.
  • It is belived that the quantity of binding sending target in once sending depend on the size of send buffer. Some testing proves that "AF_DataRequest" only offer 5 packet-buffer, is it means the size of binding table should not more than 5?

  • Hi Aries Lord,

    The reports are triggered by events on the stack and each report message is sent separately from the others even if all reports are sent at the same time each one of those will trigger an event to be sent.

    Regards,

    Jose Alvarez

  • I know reports are triggered by events,I also know that the device can only report its attribute value to binding target in it binding table. But how many target can be reported to in once events triggering? I guess that all binding target with right binding cluster in binding table will be reported to.But if the binding target is more than sending buffer, what will happen?

  • Supposedly, Jose mentioned the reports are triggered by events on the stack which means different binding entries would be sent with different event.
  • Hi Aries Lord,

    Since the reports are triggered on the APS layer that messages will be pass to the network layer and then to the MAC layer to be sent. You don't need to care about the buffer because in case of the MAC buffer is full because any of the messages that need to be sent will be stored in the network layer until the MAC is available to send them and no messages will be lost because the MAC is busy sending stuff.

    I hope this helps.

    Regads,

    Jose Alvarez