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.

Include IEEE source address in NWK header?

Other Parts Discussed in Thread: Z-STACK

Is there way to include IEEE source address in NWK header? There is no options in function

ZStatus_t APSDE_DataReq( APSDE_DataReq_t* req ) to do this. Also, I see other post on this forum but there is no answer.

http://e2e.ti.com/support/wireless_connectivity/f/158/t/182834.aspx

http://e2e.ti.com/support/wireless_connectivity/f/158/t/234048.aspx

http://e2e.ti.com/support/wireless_connectivity/f/158/t/38579.aspx

http://e2e.ti.com/support/wireless_connectivity/f/158/p/17716/485703.aspx

This feature is crucial for our project. We use your latest zstack. Please help me.

Best regards,

Aleksandar Majdak.

  • It is not possible to have it because this is not defined in Zigbee spec. If you need IEEE address Zigbee device, you should use ZDP_IEEEAddrReq API to request it.

  • Examining  "ZigBee Specification Document 053474r17" page 307. I found "General NWK Frame Format". There is field "Source IEEE address".

    Next picture show NWK header with included source IEEE address field sniffed from device with stack other than zstack.

    So, my question is: Can zstack do this and how?

    I can not find way to do this in exposed zstack code. This is very important to our project.

    Best regards,

    Aleksandar Majdak.

  • When network frame type is "Command", zstack include"Source IEEE address" in network header.

    How we can include "Source IEEE address" in network header when frame type is Data?

    Can somebody help us?

    Best regards,

    Aleksandar Majdak.

  • Yes, you are correct about the spec. After check Z-Stack, I find Z-Stack doesn't support send source and destination IEEE address in General NWK Frame Format. If you need IEEE address Zigbee device, you should use ZDP_IEEEAddrReq API to request it. Or, do you have specific reason that you must have source and destination IEEE address in General NWK Frame Format? 

  • We do not develop coordinators software. Coordinator use Ember stack. So coordinators software need Source IEEE address included in network header(frame type: data) for normal functionality.

    Is it big problem for zstack developers to realize this functionality?  We have invested a lot effort and money for hardware development and now our project is stucked and we can not continue develop without this functionality. Can you help us somehow, please?

    Best regards,

    Aleksandar Majdak.

  • I also have experiences on ember's coordinator but I don't hear the IEEE address in NWK frame is must. Can you show me why you need these IEEE address? If you have to enable it, it need to revise Z-Stack and I suggest you contact TI local representative. 

  • Software which using Ember coordinator need IEEE addresses for device identification. It is not problem when coordinator is parent of device, but if not there is a lot of problems.

    We will try contact TI. Thank you for your effort.

    Best regards,

    Aleksandar Majdak.

  • I think to issue ZDP_IEEEAddrReq from ZC for IEEE address of a device is the alternative.

  • We can not modify Ember coordinator software. We can not modify software that communicate with Ember coordinator. So, we can not issue ZDP_IEEEAddrReq from coordinator.

    We have protocol to communicate with coordinator and it is according to zigbee specification. Now, we have problem because Z-stack is not fully zigbee compliant.

    We will try to contact TI developer and ask them for help. Thank you again.

    Best regard,

    Aleksandar Majdak.

  • This doesn't mean Z-stack is not fully zigbee compliant because NWK frame can have or not have IEEE address according to spec. Anyway, I wish you havea good result contacting TI representative.

  • If your ZR or ZED can join Ember ZC, you may try APSME_LookupExtAddr() to get IEEE address.

    3.3.4.1 APSME_LookupExtAddr()


    This function will look up the extended (IEEE) address based on a network (short)
    address if the address is already in the Address Manager. It does NOT start a network
    (over-the-air) IEEE lookup.

    Prototype
    uint8 APSME_LookupExtAddr(uint16 nwkAddr, uint8* extAddr );

  • @felix shih Thank you for your effort but I am afraid you did not read previous discussion. That is not solution.

    Can TI Z-stack developers tells us when this problem will be solved?
    We really appreciate any help you can provide.


    Best regards,

    Aleksandar Majdak.

  • Our project is still stucked. We do not have any information about this problem. Can somebody help us?

    Best regards,

    Aleksandar Majdak.

  • Hi Aleksandar,

    As you quoted the frame format from the spec, the NWK header itself can have extended address. However, when to have extended addresses in the header is specified in the spec. For example, the NWK header of Route Record command is specified by the spec as following:

    3.4.5.2 NWK Header Fields
    The NWK header fields of the route record command frame shall be set as
    follows:
    • If the route record is being initiated as the result of a NLDE-DATA.request
    primitive from the next higher layer, the source address field shall be set to the
    16-bit network address of the originator of the frame. If the route record is
    being initiated as a result of the relaying of a data frame on behalf of one of the
    device’s end device children, the source address field shall contain the 16-bit
    network address of that end device child.
    The source IEEE address sub-field of the frame control field shall be set to 1
    and the source IEEE address field of the NWK header shall be present and shall
    contain the 64-bit IEEE address corresponding to the 16-bit network address
    contained in the source address field.
    • The destination address field in the NWK header shall be set to the 16-bit
    network address of the concentrator device that is the destination of the frame.
    The destination IEEE address sub-field of the frame control field shall be set to
    1, and the destination IEEE address field shall be set to the IEEE address of the
    concentrator device that is the destination of the frame, if this address is known.
    • The Source Route sub-field of the frame control field shall be set to 0.

    How to send APS packet using which function is also specified in the spec. To send a APS packet, we need to call NLDE-DATA.request as spec says. I would like you to read section 3.2.1.1(NLDE-DATA.request) of the spec. Long story short, NLDE-DATA.request takes only short address and there is no option to make the NWK layer to have extended address in the header.

    I'm sorry but we can't say that we will modify our stack in order to make it have interoperability with any specific stack vendor's proprietary feature.

    - Cetri

  • Hi Cetri,

    I agree with you that NLDE-DATA.request do not have parameter to include source IEEE address and providing parameter is not best way to achieve this functionality. And by zigbee specification putting source IEEE address in network frame of type data is not mandatory. But nowhere in zigbee specification stands that this function NLDE-DATA.request can not add source IEEE address in network frame header and it is depend on function developers. Maybe solution is to use compile flag in Z-stack so function NLDE-DATA.request can include/exclude source IEEE address in network frame of type data.

    I mentioned network frame of type command only for illustration purpose and the goal is to show Z-stack can easy add this functionality somehow.

    Also, I agree that this functionality is vendor's proprietary feature and modifying stack depends on many factors.

    Thank you for your effort.

    Best regards,

    Aleksandar Majdak.