Maximum value to be input to otLinkSetPollPeriod function as parameter

Hi,

Using windows 10 OS, and SES v5.40.

I am using nRF52833 device in my project along with nRF5_SDK_for_Thread_and Zigbee_v4.1.0_32ce5f8 SDK.

I am using openthread protocol and specifically otError otLinkSetPollPeriod( otInstance *aInstance, uint32_t aPollPeriod ) function to input the poll period.
Problem statement : the above said function is nothing but the communication poll period and i see from the documentation(https://openthread.io/reference/group/api-link-link) that it is a U32 variable which has max limit of 0x3FFFFFFF and min 10ms for its operation.
But if i run a test by inputting aPollPeriod to some higher value i can see that the value is somehow cutting down to 188s(approx. 3mins).
Ex : Test 1 : if i run with 60 sec(60000) as input i can see that the value of poll period is 60s(59999ms).
Ex : Test 2 : if i run with 200 sec(200000) as input i can see that the value of poll period is 188s(188676ms).
Ex : Test 2 : if i run with 350 sec(350000) as input i can see that the value of poll period is 188s(188676ms).

I am trying to test this with a inbuilt feature of our code that can measure the time and i have attached the debug information for further reference.

Questions:
1. what is the max value that can be input to this aPollPeriod (practically)?
2. Is 188s is the threshold for the pollperiod? 

Regards
Abhijith Desai

Parents
  • Hi,

    I can't see any limitations mentioned in the documentation, and I would expect longer periods to be supported (OpenThread specifically mentions longest poll period cap would be ~18.6 hours). Have you verified with a sniffer if the poll period is actually set to 188s, or if it is set to the requested value?

    How do you check the poll period? Note that the chip may wakeup more frequent, without actually sending packets on the radio, for instance to handle overflow event in RTC peripheral (which handles the wakeup events).

    Best regards,
    Jørgen

Reply
  • Hi,

    I can't see any limitations mentioned in the documentation, and I would expect longer periods to be supported (OpenThread specifically mentions longest poll period cap would be ~18.6 hours). Have you verified with a sniffer if the poll period is actually set to 188s, or if it is set to the requested value?

    How do you check the poll period? Note that the chip may wakeup more frequent, without actually sending packets on the radio, for instance to handle overflow event in RTC peripheral (which handles the wakeup events).

    Best regards,
    Jørgen

Children
  • Hi.

    Additionally, i used a get function otLinkGetPollPeriod(instance) where it returns the set opll period value.. and i just printed that value before going to sleep every time.

     It seems that this return function:

    During joining returns some default value 236000 

    Once joining is completed and poll period is executed is see it returns the value we have set(it doesnt set to 188s here).

    This makes clear that OT function has nothing to do with the set poll period value it works perfectly.

    Issue maybe something else i guess.. please give some clues to check further..

    During joining

    Once joining is completed

    Best Regards

    Abhijith Desai

Related