Two complementary fixes: - IdleState: skip root-level parent paths (Device., InternetGatewayDevice.) when building the GPN queue. Params like Device.RootDataModelVersion have Device. as parent but sending GPN on Device. with NextLevel=0 returns the entire TR-181 tree in one response (potentially several MB). These root-level params are classified via deeper subtree GPN or catalog. - task_queue: use NextLevel=1 for root paths (1 segment) as a safety net, NextLevel=0 for deeper paths to get all leaves of that subtree.