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.

hi ,a question about that enddevice rejoin failure when permit join function is fasle.

Other Parts Discussed in Thread: Z-STACK

just like this question ,i fall across it too

http://e2e.ti.com/support/low_power_rf/f/158/t/153670.aspx

i just set 1 coordinator 3 routers and 20 enddevice .

and after all device join the network.and then  i power down the coordinator and router . the enddevice will resume to the network ,then failure.then they will run to rejoin mode .send the beacan reqest.

 

and then i power on all router and coordinator. and the permit join function is false (NLME_PermitJoiningRequest(0);    ),and i think rejoin mode need not this funtion.and so i find that part of these 20 enddevices(almost part ) can rejoin the network sucessfully. from the sniffer i see that after it send the beacon request then get the response then it send the rejoin request ,it is normal ..

but the other device can not rejoin .maybe 5 devices maybe less.they send the becon request forever  even these four routers send becon response to it .

but now if i turn on the permit join founction.on some routers .these failure rejoin enddevice will come back again.it is magical.but i think maybe the reson is much traffic signals when the router power on .so something is wrong .i do not know it is a bug on stack ro there are some methods to resovle it .

  • no anybody come across to this same quetion?

    and i research this question deeply

    and if a reflash device try to join a router .if the router or coordinator does not permit device to join (NLME_PermitJoiningRequest(0)).

    and the device will use 'nwk_getNwkDescList' to find the router list .and the return struct like this:

    typedef struct
    {
      uint16 panId;
      byte logicalChannel;
      byte routerCapacity;
      byte deviceCapacity;
      byte version;
      byte stackProfile;
      uint16 chosenRouter;
      uint8 chosenRouterLinkQuality;
      uint8 chosenRouterDepth;
      uint8 extendedPANID[Z_EXTADDR_LEN];
      byte updateId;
      void *nextDesc;
    } networkDesc_t;

    and

    pNwkDesc->deviceCapacity =0  so it mean there are not any router can join. yes it is right.

     

         else if ( ZSTACK_END_DEVICE_BUILD )
          {
            if ( !pNwkDesc->deviceCapacity )
            {
              continue;
            }

     

    but  if a device loss it's parent ,and then it resume failure .it will rejoin to the network.and it will discoery the network.then it will run the same process just like the "join mode"   it will use 'nwk_getNwkDescList'  too.(use "ZDApp_NwkDescListProcessing" first )

    and then i just see pNwkDesc->deviceCapacity =1(the router on the network is not permit join too)

    so i don't know how does the network deal with the "join mode "and the "rejoin mode"

    but i am sure that rejoin mode need not the "permit join " function from the specification.

    and the "pNwkDesc->deviceCapacity " just mean whether  there are rest position on the router's AssociatedDevList. and i guess it have no relationship about the "permit join " function.

    but i debug the "join mode " device ,and TI stack use this judgement to refuse the device to join:
          else if ( ZSTACK_END_DEVICE_BUILD )
          {
            if ( !pNwkDesc->deviceCapacity )
            {
              continue;
            }

    it is mean that if the router does not permit join.so the pNwkDesc->deviceCapacity will be false.so the new join device will join failure .but why when  "rejoin mode "device try to rejoin to the router ,why pNwkDesc->deviceCapacity is true,and rejoin mode device just run the same process with the join mode device .and just run "ZDApp_NwkDescListProcessing" first ,and then run 'nwk_getNwkDescList'  .

    and when many device (20) rejoin to a router together.and some device can sucessfully.and the rest will be failure . and these failure  device will get "pNwkDesc->deviceCapacity =0 " resault when they run the 'nwk_getNwkDescList'  .because i have no code of 'nwk_getNwkDescList'  .so i am very confuse it.

    if someone know about it ,pls help me.

  • Hi,

    I met the similar problem with Z-Stack 2.4.0.

    Did you find the way to solve this problem?

    Douglas

  • Dears,

    I have suffered from this problem since Zstack 2.2.2. After I migrate to Zstack 2.3.1 later and then to ZStack 2.5.0 now, this problem is still there. Just the same as describe as above. Don't any TI R&D have this problem and help to give any solution?