About regarding the Long Poll interval setting

Hi nordic 

I am using the nRF54L10 and Nordic Zigbee Add-on version 1.3.0

I have probably been raising questions about polling for quite some time,
but I have not received an appropriate answer. Also, for the purpose of organizing the information,
I would like to ask again about the current situation.
The main code is as follows.

void ws_zigbee_init(void)
{
    init_mac_and_install_code();
    ws_zigbee_print_information();

    set_tx_power();

    zigbee_erase_persistent_storage(false);

    //zb_set_ed_timeout(ED_AGING_TIMEOUT_64MIN);
    /* KRKNWK-20726 */
    //zb_set_keepalive_timeout(ZB_MILLISECONDS_TO_BEACON_INTERVAL(5*60*1000));
    zb_set_keepalive_mode(ED_KEEPALIVE_DISABLED);

    zigbee_configure_sleepy_behavior(true);

    app_clusters_attr_init();
    ias_zigbee_fota_init(ota_evt_handler);

    ZB_AF_REGISTER_DEVICE_CTX(&ias_zone_ctx);

    ZB_ZCL_REGISTER_DEVICE_CB(zcl_device_cb);
    ZB_AF_SET_IDENTIFY_NOTIFICATION_HANDLER(ZB_HA_IAS_ZONE_ENDPOINT, identify_cb);
    zb_zcl_shading_system_register_cb(ZB_HA_IAS_ZONE_ENDPOINT, shading_system_general_cb);
    zb_zcl_ias_zone_register_cb(ZB_HA_IAS_ZONE_ENDPOINT, send_notify_cb ,NULL);

    LOG_INF("IAS Zone windows sensor Start");

    /* Power off unused sections of RAM to lower device power consumption. */
    if (IS_ENABLED(CONFIG_RAM_POWER_DOWN_LIBRARY)) {
        power_down_unused_ram();
    }

    k_work_init_delayable(&delayed_work, ws_zigbee_auto_start_rejoin);

    zigbee_enable();
}

This is a part of zboss_signal_handler.

        case ZB_BDB_SIGNAL_DEVICE_REBOOT:
            ZB_ERROR_CHECK(zigbee_default_signal_handler(bufid));
            LOG_ERR("long poll %d ",dev_ctx.poll_ctrl_attr.long_poll_interval);
            zb_zdo_pim_set_long_poll_interval(ZB_QUARTERECONDS_TO_MSEC(dev_ctx.poll_ctrl_attr.long_poll_interval));
            ZB_TRANSCEIVER_SET_RX_ON_OFF(zb_get_rx_on_when_idle());
        break;

        case ZB_BDB_SIGNAL_TC_REJOIN_DONE:
            ZB_ERROR_CHECK(zigbee_default_signal_handler(bufid));
            LOG_ERR("long poll %d ",dev_ctx.poll_ctrl_attr.long_poll_interval);
            zb_zdo_pim_set_long_poll_interval(ZB_QUARTERECONDS_TO_MSEC(dev_ctx.poll_ctrl_attr.long_poll_interval));
            ZB_TRANSCEIVER_SET_RX_ON_OFF(zb_get_rx_on_when_idle());
        break;

        case ZB_BDB_SIGNAL_STEERING:
            ZB_ERROR_CHECK(zigbee_default_signal_handler(bufid));
            LOG_ERR("long poll %d ",dev_ctx.poll_ctrl_attr.long_poll_interval);
            zb_zdo_pim_set_long_poll_interval(ZB_QUARTERECONDS_TO_MSEC(dev_ctx.poll_ctrl_attr.long_poll_interval));
            ZB_TRANSCEIVER_SET_RX_ON_OFF(zb_get_rx_on_when_idle());
        break;
            
            

dev_ctx.poll_ctrl_attr.long_poll_interval = 240;
n other words, it is 60 seconds.

However, when I look at the MAC Data Request packets in Wireshark, they appear at intervals of approximately 10.21 seconds.

If I configure the value to less than 10 seconds,

it seems to operate according to the configured interval.

However, why are the MAC Data Request packets not occurring at 60-second intervals when the Long Poll Interval is configured to 60 seconds?

Related