• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Low Power RF & Wireless Connectivity » Low Power RF ZigBee® Software & IEEE 802.15.4 Forum » Broadcast NwkAddrReq not resolved by ZC
Share
Low Power RF & Wireless Connectivity
  • Forums
  • Announcements
  • Files
  • E2E Wiki
Options
  • Subscribe via RSS

Broadcast NwkAddrReq not resolved by ZC

Broadcast NwkAddrReq not resolved by ZC

This question is answered
Mathias LOUISET
Posted by Mathias LOUISET
on Apr 17 2012 11:43 AM
Prodigy110 points
Hi all,
I am developing Zigbee gateway using ARM+ZNP. 
I use a CC2531 that runs the ZStack 2.5.0 as a coordinator. My application uses ZNP to "drive" the ZC. This application does not register any callback function for NwkAddrReq or
NwkAddrRsp.
In the network there are also a ZED and a ZR.
The ZED broadcasts (FFFF) a NwkAddrReq with the IEEE addr of the coordinator (single request type). It does it because it needs to send attribute reports to the ZC; but it lost the route to the ZC (I unplugged the ZC volontarily for few minutes).
Surprisingly the coordinator re-transmits the request, but does not answer it...

Does anyone have any idea why the coordinator does not respond to this request ?

I guess I miss something with my configuration... but no matter what I change to my configuration or compilation options, the ZC does not reply...

Thanks,
BR
Mathias
Z-Stack
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Mathias LOUISET
    Posted by Mathias LOUISET
    on Apr 18 2012 05:20 AM
    Prodigy110 points

    Hi,

    I've done some more tests: I've substituted the ZR (netvox) by a CC2531 that runs the ZStack 2.5.0 as a router. When this router sends a NwkAddrReq with the IEEE addr of the coordinator (broadcast as well, FFFD (I was wrong in my first post)) the ZC reply.

    But when the ZED (netvox) sends the same request, the ZC does not reply.

    I used sniffer to analyze OTA messages content, I didn't see any significant differences between the 2 NwkAddrReq.

    Any suggestion will be helpful at this point.

    Thanks,

    BR

    Mathias

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Mathias LOUISET
    Posted by Mathias LOUISET
    on Apr 19 2012 08:34 AM
    Prodigy110 points

    Hi,

    my last tests seems to indicate that this is a "basic" ZigBee routing problem:

    Indeed when the ZED's parent is the ZR (at initial state I mean), the ZC replies to the NwkAddrReq.

    So it seems that the ZED is still known in the ZC's route cache table after migration. and even hours after the migration happened, the ZC does not reply, just as if it waits for a DataReq from the ZED to respond.

    Is there a way to force route cache update from the application layers ?

    Thanks

    BR

    Mathias

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Mathias LOUISET
    Posted by Mathias LOUISET
    on Apr 23 2012 09:30 AM
    Prodigy110 points

    Hi

    In order to go deeper into my investiguations, I tried to do the following experimentation: 

    I use the ZStack 2.5.1, 

    the application "HomeAutomation/SwitchApp" provided with the ZStack 2.5.1 and add NV_RESTORE and NV_INIT in the f8wCnfig.cfg file.

    I have compiled it as a Coordinator and have downloaded it on a CC2530EM.

     

    I first associate a End Device to the coordinator, and secondly a router (so that the ZED is associated directly to the ZC, and not the ZR)

    Then I switch off the coordinator (to simulate a node failure) and the ZED get associated to the ZR.

    Then I restart the ZC, it restarts sending its periodic "Link Status" and the ZR can successfully communicate with the ZC.

    But when the ZED sends a request that the ZC should respond (broadcast NWKAddrReq with the IEEE address of the ZC), it does not. In fact the ZC first broadcasts the NWKAddrReq as it has to, but does not send any NWKAddrRsp (my supposition is that it waits for a DataReq from the ZED before sending it).

    Finally when I switch off the router, the ZED rejoin to the coordinator, and it works fine.

     

    From my understanding and from what I read on this forum, this should work (?)

    When the ZED migration is caused by moving the ZC away from the ZED, it works well: the ZC first broadcasts the NWKAddrReq and then sends a NWKAddrRsp.

    I also tried to set ZCD_NV_ROUTER_OFF_ASSOC_CLEANUP to TRUE, as it is suggested in ZStack developer's guide, and the route gets effectively restored when sending unicast request, but still fails with broadcast NwkAddrReq...

     

    Is this a normal behavior ?

    Is it a known bug with broadcast requests ?

    Do I need to add another compilation option to make it work ?

     

    Thanks

    BR

    Mathias

     

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Cetri
    Posted by Cetri
    on Apr 23 2012 11:35 AM
    Intellectual2640 points

    Hi Mathias,

    The problem comes from the situation that the ZC misses the device announce from the new parent of the ZED while it is powered off. Z-Stack 2.5.1 includes the fix for this problem.

    Can you please set zgRouterOffAssocCleanup to TRUE in zGlobals.c on your ZC/ZRs and give it a try?

    - Cetri

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Mathias LOUISET
    Posted by Mathias LOUISET
    on Apr 23 2012 12:42 PM
    Prodigy110 points

    Hi Cetri,

    thank you very much for your quick answer,

    I tested what you've proposed, and this doesn't work for the Broadcast NwkAddrReq (the ZC still broadcast the request, but does no send any NwkAddrRsp).

    But it works with unicast request (I tried with a IEEEAddrReq sent from the ZED to the ZC); and then the Broadcast NwkAddrReq works (as route from ZC to ZED is restored).

    In fact my root problem is that the ZED (a NetVox temperature sensor I have to work with) sends periodic report attribute to the ZC, and when I switch off the ZC and the ZED gets associated to the ZR, it starts sending broadcast NwkAddrReq with the bound IEEE address (the ZC in my case). If the ZC replies to the NWKAddrReq the ZED restarts sending report attribute.

    I read in another post someone that tried to repair the route by sending a DeviceAnnce as soon as the ZC rejoins. Do you think it can help ?

    Mathias

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Cetri
    Posted by Cetri
    on Apr 23 2012 14:42 PM
    Verified Answer
    Verified by Mathias LOUISET
    Intellectual2640 points

    Hi Mathias,

    We will work on the broadcast case and get back to you. In the meantime, can you try with using device announce method as you mentioned? It should work.

    - Cetri

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Mathias LOUISET
    Posted by Mathias LOUISET
    on Apr 24 2012 08:49 AM
    Prodigy110 points

    Hi, 

    Cetri, my idea of broadcasting a DeviceAnnce was to force update of routing tables on the ZED. I did this test and of course it cannot work as far as by definition the ZED does not receive the DeviceAnnce (not RxOnWhenIdle device type…). At least it gave me the opportunity to understand some details on broadcast mechanisms that I hadn’t got yet.

    I also tried to send NWKAddrReq from the ZC for all IEEE address that I know in my application. Even if the ZR responds, this didn’t refresh the neighbor associated device list.

    My last attempt was a completely different approach, I tried to send a unicast MgmtLeaveReq to each node known in my application (the ZR and the ZED), I can see the outgoing MgmtLeaveReq message to the ZR, but of course not the one to the ZED. And it didn't lead to clean up this table entry, as the ZC continues not to reply to the NwkAddrReq.

    So for now I have no other solution. Does anyone have another idea to workaround this issue ?

    Thanks,

    BR

    Mathias

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Cetri
    Posted by Cetri
    on Apr 24 2012 12:18 PM
    Intellectual2640 points

    Hi Mathias,

    Device announce needs to be sent from the ZED or the new parent of the ZED in your case so that the association table in the former parent is updated properly.

    How about sending device announce from the ZED before it broadcast NWKAddrReq?

    - Cetri

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Mathias LOUISET
    Posted by Mathias LOUISET
    on Apr 25 2012 04:46 AM
    Prodigy110 points

    Hi Cetri,

    For sure it should have solve many issues but unfortunately I cannot change the behavior of the ZEDs or the ZRs (we are only developping the coordinator, and using end devices and routers from our today provider NetVox). 

    I've had a new idea, looking at the thread of discussion "Help to remove child device from coordinator association list!!!"

    what if I remove every RFD from AssociatedDevList at ZStack start ? doing something like this, for instance in osal_start_znp:

     for ( _nodeCounter = 0; _nodeCounter < NWK_MAX_DEVICES; _nodeCounter++ )
    {
    if ( (AssociatedDevList[_nodeCounter].nodeRelation == CHILD_RFD_RX_IDLE) ||
    (AssociatedDevList[_nodeCounter].nodeRelation == CHILD_RFD) )
    {
    // set up device info
    addrEntry.user = ADDRMGR_USER_DEFAULT;
    addrEntry.index = AssociatedDevList[_nodeCounter].addrIdx;
    AddrMgrEntryGet( &addrEntry );

    // Remove...
    AssocRemove( addrEntry.extAddr );
    }
    }
    // and save changes on NV
    AssocWriteNV();

    Ideally I would have preferred removing each RFD in the callback function associated to NwkAddrReq (zdpProcessAddrReq ?) but I'm not sure that this function is really invoked in my case, maybe due to the fact that this is a broadcast message ??

    Doing this way may fit more specifically to my case, and may have less side effects ?

    Mathias

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Mathias LOUISET
    Posted by Mathias LOUISET
    on May 16 2012 04:44 AM
    Prodigy110 points

    Hi,
    The solution I've proposed on Apr 25 gives a partial workaround to my problem: RFDs send report attribute to the coordinator, and reports are forwarded to the ZNP layer.
    But if RFDs don't migrate to routers while the coordinator is stopped, the coordinator (which remains the peer in this case) is no more able to reach these nodes ("0xCD" status code in AF_DATA_CONFIRM message). So this is not acceptable...
    Even if the RFD sends a DeviceAnnce, the situation is not restored: the coordinator receives the DeviceAnnce, it broadcasts it, and sends a RouteReq with the short address of the RFD node.
    Of course the better solution would be to have a corrective patch (if any?) on broadcast messages. But I have to find a workaround in the meanwhile.
    Does anyone have any suggestion ?
    thx
    BR
    Mathias

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use