Frequently asked questions
Develop and deploy Rust SNMP agents with confidence
These answers summarize MIBGen 1.0 behavior and commercial terms. For implementation details, examples, and the complete configuration reference, use the MIBGen Developer User Guide. The applicable EULA, license certificate, order confirmation, and any written terms signed by iDeskCentric control if they differ from this summary.
Product, platform, and licensing
About MIBGen 1.0
What is MIBGen 1.0?
MIBGen is the Rust edition of iReasoning SNMP Agent Builder. It reads SMIv1 and SMIv2 MIB definitions and creates an immediately compilable Rust agent project with typed scalar and table models, provider interfaces, configuration, tests, and build support. Application developers connect the generated providers to their own data.
How is the Rust edition different from the Java edition?
The Java edition is the established JMX-based toolkit and includes AgentX workflows. MIBGen is a native Rust workflow that produces standalone Cargo projects with typed models, protected provider code, atomic publication, and integrated build-and-run controls. The editions are separate products; choose the one that matches your application language and architecture.
Which SNMP versions and security features are supported?
Generated agents support SNMPv1, SNMPv2c, and SNMPv3. SNMPv3 includes authoritative engine handling, USM users, and VACM access control. Available security algorithms include HMAC-MD5, HMAC-SHA, SHA-2 authentication, and DES, 3DES, and AES privacy, subject to the selected agent configuration.
Which platforms and development tools are required?
MIBGen is available for 64-bit Windows and Linux and for Apple silicon and Intel macOS. Development requires Rust 1.85 or newer, Cargo from the same toolchain, and the rustfmt component. The Rust edition does not require a JDK, JVM, JNI, or Java installation.
How do I obtain MIBGen?
Rust edition access is currently sales-assisted. Contact iReasoning to discuss your agent project, supported platform, license, and delivery package. No unsigned Rust download or public Rust pricing is published on this page.
What does the one-agent license cover?
One license covers one identified commercial or internal SNMP agent product or project for the licensed named user. Maintenance releases, updates, supported platform builds, configurations, and deployed instances of that same agent remain part of the licensed agent. A separate product, customer-specific agent, independent project, replacement agent, or agent serving a different primary business purpose requires a new license.
Are there runtime royalties or deployment limits?
There are no per-copy, per-device, per-instance, or other runtime royalties for authorized deployments of the licensed agent. You may deploy unlimited authorized copies or instances of that one agent. This does not authorize development of another agent and does not waive purchase, support, upgrade, tax, or separately negotiated fees.
Generation and incremental development
Working with MIBs and generated projects
What can I select from a MIB?
MIBGen can generate a complete conceptual table, an OID group or subtree, or an SMIv2 OBJECT-GROUP limited to the objects in its OBJECTS clause. A project may use multiple targets from one or more independent SMIv1 or SMIv2 entry MIBs.
Why is a MIB object or target not available for selection?
MIBGen does not offer individual scalars, notifications, compliance statements, inaccessible objects, ambiguous symbols, overlapping selections, or targets with unsupported index syntax. It also stops when required imports cannot be resolved. The Activity section reports the parser or selection diagnostic.
What does a generated project contain?
The generated Cargo project includes typed MIB schema, scalar and table models, OID and index encoding, provider skeletons, registration and validation, XML configuration, tests, build support, and integration hooks. It compiles and runs before application collectors are implemented; unfinished data is represented as absent rather than fabricated.
Which standard MIB providers are built in?
The runtime includes providers for MIB-II system and interfaces, address translation, IP, TCP, and UDP; IF-MIB ifXTable; IP-MIB ipAddressTable; Host Resources system, storage, device, partition, filesystem, software, and performance objects; and SNMPv3 USM and VACM management. MIBGen reuses these providers instead of generating a duplicate provider for the same OIDs.
What is the difference between Add and Synchronize?
Add Selected Targets introduces targets that are not already in the project. Synchronize Project regenerates schema-owned files for existing targets after a MIB revision. Check is read-only; Synchronize performs the update only after the revised schema and project pass validation.
Will Add or Synchronize overwrite my provider code?
No. Engineer-owned providers, application integration, project configuration, and provider tests are created once and preserved. Generator-owned schema files are tracked separately. If one of those generated files was edited manually, MIBGen stops instead of silently overwriting the change; restore the generated file and move custom logic into an engineer-owned file.
Can one project use multiple MIB files?
Yes. Add one or more independent entry MIBs. Imports are resolved beside each entry file, identical shared modules are deduplicated, and different files declaring the same module name are rejected as a version conflict.
Runtime, configuration, and support
Building and operating the agent
Is the generated agent a standalone Rust project?
Yes. The result is an independent Cargo project that can be built, tested, and run outside the MIBGen GUI using the compatible Rust agent developer kit. The agent uses its generated XML configuration and does not depend on Java, a JVM, or JNI.
How does an agent publish changing application data safely?
Providers validate and publish complete typed snapshots instead of exposing a table while it is being modified. Publication either succeeds as one consistent update or leaves the previous snapshot active. GET, GET-NEXT, and GET-BULK therefore traverse one globally ordered OID view, and removing a row means publishing a new snapshot without that row.
Are writable MIB objects implemented automatically?
Generated providers are operationally read-only by default, even when a MIB declares an object read-write or read-create. Safe writable support requires explicit transactional hooks to validate and prepare every assignment, commit atomically, undo partial commits, persist durable changes, and refresh row topology only after a successful transaction.
How is a generated agent configured?
MIBGen creates config/SnmpAgent.xml. It controls the listener, protocol
version, communities, USM users, VACM policy, MIB loading, and trap or INFORM
destinations. Numeric IPv4 and IPv6 bind addresses are supported. The Rust runtime
also retains many Java-style configuration names to make migration easier; unknown
compatibility attributes are generally retained and ignored.
What should I check when generation, build, run, or SNMP requests fail?
For generation, confirm that every imported module is beside its entry MIB and that selected targets are valid and non-overlapping. For Build or Run, wait for automatic toolchain validation, confirm the project manifest and generated files are valid, and build successfully before running. For SNMP timeouts, check the address, port, SNMP version, community or USM credentials, VACM permissions, process status, and host firewall. For an empty table, inspect Activity and confirm that its collector publishes rows with the expected indexes.
Where can I find detailed documentation or ask for help?
Read the comprehensive MIBGen 1.0 Developer User Guide for tutorials, provider rules, configuration, and troubleshooting. For licensing, access, platform, or project-specific questions, contact iReasoning.