SnmpKit.SnmpSim.MIB.SharedProfiles (snmpkit v0.6.3)
Memory-efficient shared OID profiles using ETS tables. Reduces memory from 1GB to ~10MB for 10K devices by sharing profile data.
Summary
Functions
Returns a specification to start this module under a supervisor.
Clear all profiles (useful for testing).
Compare OIDs lexicographically (useful for testing).
Get all OIDs for a device type.
Get multiple OIDs for GETBULK operations.
Get memory usage statistics for the shared profiles.
Get the next OID in lexicographic order for GETNEXT operations.
Get a value for a specific OID with device-specific state applied.
Initialize shared profiles for device types.
List all available device type profiles.
Load a MIB-based profile for a device type.
Load a walk file-based profile with enhanced behaviors.
Start the shared profiles manager.
Store profile data directly (useful for testing).
Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
Clear all profiles (useful for testing).
Compare OIDs lexicographically (useful for testing).
Get all OIDs for a device type.
Get multiple OIDs for GETBULK operations.
Get memory usage statistics for the shared profiles.
Get the next OID in lexicographic order for GETNEXT operations.
Get a value for a specific OID with device-specific state applied.
Examples
value = SnmpKit.SnmpSim.MIB.SharedProfiles.get_oid_value(
:cable_modem,
"1.3.6.1.2.1.2.2.1.10.1",
%{device_id: "cm_001", uptime: 3600}
)
Initialize shared profiles for device types.
Examples
:ok = SnmpKit.SnmpSim.MIB.SharedProfiles.init_profiles()
List all available device type profiles.
Load a MIB-based profile for a device type.
Examples
:ok = SnmpKit.SnmpSim.MIB.SharedProfiles.load_mib_profile(
:cable_modem,
["DOCS-CABLE-DEVICE-MIB", "IF-MIB"]
)
Load a walk file-based profile with enhanced behaviors.
Examples
:ok = SnmpKit.SnmpSim.MIB.SharedProfiles.load_walk_profile(
:cable_modem,
"priv/walks/cable_modem.walk",
behaviors: [:realistic_counters, :daily_patterns]
)
Start the shared profiles manager.
Store profile data directly (useful for testing).