Skip to content

feat(transport): parameterize buffer limits and pool capacities with Kconfig - #112

Merged
ShahazadAbdulla merged 6 commits into
masterfrom
fix/transport-buffer-kconfig
Oct 21, 2026
Merged

ShahazadAbdulla merged 6 commits into
masterfrom
fix/transport-buffer-kconfig

Conversation

@EnejiOhieku

Copy link
Copy Markdown
Contributor

This PR replaces hardcoded magic constant buffer sizes and static pool capacities across zenbedded_transport/src/zenoh_transport.c with configurable Zephyr Kconfig symbols defined in zenbedded_transport/Kconfig`.

Is this a user-facing behavior change?

No breaking changes. All default Kconfig values match the existing constants.

Did you use Generative AI?

Yes, Gemini.

…with Kconfig

- Replace hardcoded buffer sizes and pool counts in zenoh_transport.c with Kconfig options:
  - CONFIG_ZENBEDDED_MAX_NODE_NAME_LEN (default 64)
  - CONFIG_ZENBEDDED_MAX_TOPIC_NAME_LEN (default 64, sizes mangled_topic in pub/sub)
  - CONFIG_ZENBEDDED_MAX_KEYEXPR_LEN (default 512)
  - CONFIG_ZENBEDDED_MAX_LOCATOR_LEN (default 128)
  - CONFIG_ZENBEDDED_MAX_PUBLISHERS (default 10)
  - CONFIG_ZENBEDDED_MAX_SUBSCRIBERS (default 10)
  - CONFIG_ZENBEDDED_TIER1_MAX_RX_BUFFER_SIZE (default 1024)
  - CONFIG_ZENBEDDED_TIER2_MAX_RX_BUFFER_SIZE (default 64)
- Add defensive #ifndef preprocessor fallbacks in zenoh_transport.c
- Ensure explicit null termination on current_node_name in zenbedded_transport_init
@ShahazadAbdulla

Copy link
Copy Markdown
Member

Reviewing it.

@ShahazadAbdulla ShahazadAbdulla left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rest all looks good to me.

Comment thread zenbedded_transport/src/zenoh_transport.c Outdated
Comment thread zenbedded_transport/src/zenoh_transport.c Outdated

@kpochwala kpochwala left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally approve, however I think the default values and their help comments could be tweaked.

Comment thread zenbedded_transport/Kconfig
Comment thread zenbedded_transport/Kconfig Outdated
Comment thread zenbedded_transport/Kconfig Outdated
Comment thread zenbedded_transport/Kconfig
Comment thread zenbedded_transport/Kconfig Outdated
Comment thread zenbedded_transport/Kconfig Outdated
…ime heuristics and parameterize type length

- Remove manual ZENBEDDED_MAX_KEYEXPR_LEN Kconfig knob
- Add CONFIG_ZENBEDDED_MAX_TYPE_NAME_LEN (default 64) under ZENBEDDED_TIER_1
- Calculate exact compile-time key expression buffer sizes for Tier 1 and Tier 2
- Bound node liveliness, topic key expressions, and entity liveliness tokens
- Update snprintf calls to use sizeof(buffer) for bounds safety
- Adjust locator length default to 32 and pub/sub pool ranges to 0..64
- Add static specifier to rx_buf in internal_sub_handler
@ShahazadAbdulla
ShahazadAbdulla merged commit 52fb673 into master Oct 21, 2026
3 checks passed
@ShahazadAbdulla

Copy link
Copy Markdown
Member

Thank you, this PR is ready to merge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants