Skip to content

NCP host doesn't free used TID after factoryreset CLI command #3160

@bertoldi-silabs

Description

@bertoldi-silabs

Describe the bug Issuing the factoryreset CLI command repeatedly on a border router with an NCP secondary will eventually result in the CLI session losing responsiveness until the service is restarted.

To Reproduce Open up a CLI session to a border router with an NCP secondary using ot-ctl. Issue factoryreset 15 times, and then attempt to issue additional commands. The CLI spinel frame will fail to encode with an OT_ERROR_BUSY error.

  1. Git commit id - 05c8ae8
  2. IEEE 802.15.4 hardware platform - raspberry pi 4 + efr32 (SiLabs)
  3. Build steps - ./script/cmake-build -DOT_THREAD_VERSION=1.4
    -DOT_MULTIPAN_RCP=ON
    -DCPCD_SOURCE_DIR=
    -DOT_POSIX_RCP_HDLC_BUS=ON
    -DOT_POSIX_RCP_SPI_BUS=ON
    -DOT_POSIX_RCP_VENDOR_BUS=ON
    -DOT_POSIX_CONFIG_RCP_VENDOR_DEPS_PACKAGE=
    -DOT_POSIX_CONFIG_RCP_VENDOR_INTERFACE= <cpc_interface.cpp>
    -DOT_PLATFORM_CONFIG=openthread-core-silabs-posix-config.h
    -DOTBR_DHCP6_PD=ON
  4. Network topology - one node: respberry pi 4 + efr32 (SiLabs)

Expected behavior Repeatedly issuing the factoryreset CLI command should not cause CLI unresponsiveness. Alternately, the NCP resetting should free any used TIDs to reduce TID starvation in future spinel exchanges.

Additional context There are other scenarios in which a high amount of spinel traffic can cause TID starvation that leads to the CLI session being unresponsive. NetIF is an area of concern; however, details for this symptom are still being evaluated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions