Skip to content

Conversation

@gmaiyani-crest
Copy link

@gmaiyani-crest gmaiyani-crest commented Oct 24, 2025

Description

Adding support of python v3.13 and migrating from pysnmplib to lextudio's pysnmp v7.1.8

  • Replaced pysnmplib with lextudio’s pysmp v7.1.8
  • Replaced pysnmp-pyasn1 to lextudio's pyasn1
  • Replaced pysnmp-pysmi to lextudio's pysmi
  • Included pysnmpcrypto (maintained by lextudio's) for stronger crypto algorithms with pysnmp v6+
  • Made SC4SNMP compatible with Python 3.13
  • Updated SNMP walk implementation from bulkCmd to custom multi_bulk_walk_cmd
  • Introduced deploymentUser in values.yaml to make the sc4snmp entirely compatible with lextudio's pysnmp.
  • Added DEPLOYMENT_USER variable for Docker Compose deployment.
  • Introduces multi_bulk_walk_cmd to walk multiple OID trees simultaneously with lexicographic mode control per varbind.

Notes

Added custom multi_bulk_walk_cmd function for Multi-Varbind SNMP Walking.

Why?

  • bulk_walk_cmd supports only a single varbind at a time and already includes lexicographic mode handling.
    However, to achieve the same behavior for multiple varbinds (from different OID subtrees), each varbind must be walked separately in sequence.
  • Current bulk_cmd of lextuido's pysnmp does not support lexicographic option as a result we can not use bulk_cmd of lextudio's pysnmp for the same purpose.
  • The new custom multi_bulk_walk_cmd addresses this by allowing multiple varbinds to be walked in parallel within a single session, maintaining lexicographic consistency while significantly reducing network roundtrips and improving overall efficiency as compare to previous bulkCmd.
  • Feature request PR for adding multi_bulk_walk_cmd at Lextudio — raised here: [PR-LINK]

Key Changes

  • Added multi_bulk_walk_cmd function for parallel walking of multiple OID subtrees
  • Implemented lexicographic mode control for each varbind
  • Restored etingof's bulkCmd multi-varbind with lexicographic capability with modern async/await patterns
  • Implemented precise maxRows handling that counts actual OIDs (not iterations) with automatic truncation
  • Added per-varbind completion tracking for independent state management

Type of change

Please delete options that are not relevant.

  • Dependency update
  • New feature
  • Refactor/improvement
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

Checklist

  • My commit message is conventional
  • I have run pre-commit on all files before creating the PR
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have checked my code and corrected any misspellings

@github-actions
Copy link
Contributor

github-actions bot commented Oct 24, 2025

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@gmaiyani-crest gmaiyani-crest changed the base branch from main to develop October 24, 2025 09:03
@gmaiyani-crest gmaiyani-crest force-pushed the feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.0 branch 2 times, most recently from 92dcd10 to c94195a Compare October 24, 2025 09:32
…lextudio's pysnmp v7.1.0

- Replaced pysnmplib with lextudio's pysmp v7.1.0
- Moved from pysnmp-pyasn1 to lextudio's pyasn1
- Moved from pysnmp-pysmi to lextudio's pysmi
- Included pysnmpcrypto (maintained by lextudio's) for stronger crypto algorithms to used with pysnmp v6+
- Updated SNMP walk implementation from bulkCmd to bulkWalkCmd
- Added concurrency support for bulkWalkCmd-based SNMP requests
- Made SC4SNMP compatible with Python 3.13
- Updated SNMP walk implementation from bulkCmd to bulkWalkCmd
- Added concurrency support for bulkWalkCmd-based SNMP requests
- Introduced deploymentUser in values.yaml
- Added DEPLOYMENT_USER env variable for Docker Compose deployment [run-int-tests]
@gmaiyani-crest gmaiyani-crest force-pushed the feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.0 branch from c94195a to cde346d Compare October 24, 2025 11:55
@gmaiyani-crest gmaiyani-crest marked this pull request as ready for review October 24, 2025 11:57
@gmaiyani-crest gmaiyani-crest changed the title feat: migrate pysnmplib to lextudio pysnmp v7.1.0 feat: replaced pysnmplib with lextudio's pysnmp v7.1.0 Oct 24, 2025
@gmaiyani-crest gmaiyani-crest self-assigned this Oct 24, 2025
@gmaiyani-crest gmaiyani-crest changed the base branch from develop to feat/support-of-python-3.13-and-replaced-pysnmplib-to-lextudio-pysnmp October 27, 2025 07:44
Copy link
Contributor

@omrozowicz-splunk omrozowicz-splunk left a comment

Choose a reason for hiding this comment

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

Looks good, please check my comments ☺️ Are we on more or less the same level of unit tests coverage as before?

@gmaiyani-crest
Copy link
Author

Looks good, please check my comments ☺️ Are we on more or less the same level of unit tests coverage as before?

Yes, the coverage is the same as before.

@gmaiyani-crest gmaiyani-crest force-pushed the feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.0 branch from d2f4532 to 4f14498 Compare October 27, 2025 12:17
@gmaiyani-crest gmaiyani-crest force-pushed the feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.0 branch from dc112b6 to eaaa62e Compare October 28, 2025 13:08
@gmaiyani-crest gmaiyani-crest changed the title feat: replaced pysnmplib with lextudio's pysnmp v7.1.0 feat: replaced pysnmplib with lextudio's pysnmp v7.1.8 Oct 30, 2025
@gmaiyani-crest gmaiyani-crest force-pushed the feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.0 branch from 62784f2 to dcd181c Compare November 10, 2025 09:06
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