SNMP Simulator Changelog

What's new in SNMP Simulator 0.2.3

Jun 10, 2013
  • Simulator now supports a list of interfaces to listen on through the --agent-endpoint*-list= family of options. It's intended for simulation a very large pool of devices.
  • Introducing new command-line utility "datafile.py" designed to manage data files. Features include: merging, splitting, sorting, de-duplicating, conversion between data file formats.
  • Automatic log file rotation feature implemented.
  • A number of improvement to the mib2dev.py tool:
  • Columnar objects for table indices are now automatically populated from index values
  • Tables are can now be populated with arbitrary number of rows
  • Hex values can now be given at the prompt using the 0x syntax
  • Default automatic value ranges for integers are now much smaller to increase a chance of automatic selection.
  • Values ranges can now be set for each SNMP type separately.
  • When generating values, make N probes choosing random values for better automation
  • Produced values are sorted and de-duplicated.
  • Fix to OID range checking when specified at the command-line.
  • Help messages made more readable and complete.
  • Data file search code fixed (not to crash Simulator in corner cases) and simplified.
  • Variable conflict fixed that broke --v2c-arch option operations.
  • Fix to OIDs ordering in --v2c-arch GETBULK responder.
  • Fix subprocess variation module to work with old Python(s).
  • Source code linted and improved.

New in SNMP Simulator 0.2.2 (Jun 10, 2013)

  • Multiple USM user entries with potentially different auth&priv settings can now be configured to snmpsimd.py.
  • Centralized logging facility added. Logging into syslog or file is now supported.
  • Simulator process daemonization and privileges drop implemented.
  • More logging added into snmpsimd.py, snmprec.py and variation modules to ease the understanding of their operation.
  • The --quiet flag of snmprec.py now deprecated in favor of "null" logging method.
  • Variation modules execution environment extended to provide contexts for three scopes: record, agent and module. This simplifies modules implementation in terms of storing and managing state/configuration information on per-OID/per-Agent and global basis.
  • The snmprec.py tool now supports DNS names in c/l target parameter.
  • New 'cumulative' flag added to the numeric.py variation module.
  • The multiplex module improved to allow .snmprec file selection via SNMP SET.
  • Fatal exceptions are now fully logged.
  • Type checking is now performed on SET operation at writecache module.
  • Fix to community names '/'-normalization at transport address based variation logic. It appeared broken on Windows only since 0.2.1.
  • Fix to snmprec.py behaviour on missing variation module directory.
  • Fix to .snmpwalk grammar parser to support Network Address type tag.
  • Fix to multiplex.py module to let its multiple instances working independently (each for a subtree).
  • Multiple fixes and re-work of the numeric.py module
  • Fix to snmprec.py tool to write snmprec data to stderr in binary mode.
  • Fix to OID search in a .snmprec in case of a subtree configured on the last line of .snmprec file.
  • Fix to line separator character used in file logger -- now it's platform-dependent.

New in SNMP Simulator 0.2.1 (Apr 8, 2013)

  • WARNING: this release brings some backward incompatibilities in
  • variation modules names and options
  • snmpsimd.py community names (in Windows platform)
  • stock variation modules installation location
  • License updated to vanilla BSD 2-Clause
  • Variation modules can now participate in .snmprec production what can be used for capturing additional information about SNMP Agent being snapshotted in .snmprec files.
  • The following changes have been made to the system:
  • the snmprec.py tool can be passed variation module name.
  • variation modules can now define the 'record' callable which will be given a chance to influence snmprec record being written.
  • existing 'process' callable in variation modules renamed into 'variate' for clarity.
  • variation modules' init() and shutdown() methods accept **context, 'mode' parameter being passed indicating current operation mode.
  • variation modules running in recording mode can communicate to the upper levels that they either won't produce any data on the current invocation or request another round of SNMP Agent walk.
  • Variation modules options now take shape of a key-value pairs. This might break backward compatibility with 0.2.0!
  • The counter.py and gauge.py variation modules merged into a single numeric.py module which also supports INTEGER&TIMETICKS values as well as recording feature.
  • The involatilecache.py and volatilecache.py modules merged into a single writecache.py module which also supports SET value verification against per-OID access list.
  • The error.py variation module extended to support variation based on SET value.
  • The delay.py variation module extended to support variation based on SET value and time of date.
  • Recording functionality added to the delay.py and numeric.py modules.
  • The new "multiplex" variation module added to be able to record and replay a sequence of .snmprec files ordered by time.
  • SNMP GETBULK operation is now supported by snmprec.py.
  • Redesign of grammar objects -- the new concept is that they are only responsible for basic record layout, fields normalization. and SNMP types resolution. However complex field formatting (such as grammar-specific tag modifiers) is now up to higher-level
  • 'Record' objects.
  • Simulator-generated community names now uses '/' as path separator regardless of the platform. This allows for unified Simulator view in terms of community and context names across the platforms.
  • Snapshot files recording now works under Python3.
  • Install data and variation modules into package root to make easy_install work again. Search thesee directories at runtime as a last resort - prefer system or home locations as it is more natural to keep changing data there.
  • Simulator is now more tolerant to duplicate variation modules (just ignores recently found) and catches duplicate data files (also ignores more recent).
  • On Windows, search both data and variation modules into %PROGRAMFILES%

New in SNMP Simulator 0.2.0 (Mar 13, 2013)

  • Major overhaul aimed at adding value variation features to the Simulator core:
  • data files may now hold not only terminal OIDs but also OID subtrees
  • pluggable value variation modules interfaces and basic modules added
  • write support added through the use of appropriate variation modules
  • SQL backend for keeping and modifying SNMP snapshots added in form of a value variation module
  • subprocess execution variation module added what could be used
  • for external process invocation on SNMP request to Simulator
  • SNMP Notification Originator variation module added what could be used for sending SNMP TRAP/INFORM messages to SNMP entities on SNMP requests to Simulator
  • SNMP snapshots now being called 'data files' rather than 'device files' which is a legacy term.
  • Data files and variation modules are now installed into platform-specific directories.
  • Data files and variation modules are now looked up at several, platform-specific, locations including $HOME/.snmpsim
  • Simulator data files indices are now created and kept in a dedicated
  • temporary directory which is also configurable though snmpsimd command-line.
  • Example data files simplified, more native and foreign snapshots added.
  • Fix to snmprec.py not to record end-of-mib.
  • Fix to py2exe settings of setup.py

New in SNMP Simulator 0.1.6 RC 3 (Nov 17, 2012)

  • Net-SNMP's .snmpwalk files created with the "snmpwalk -ObentU" command can now be used by the Simulator directly.
  • SimpleAgentPro's .sapwalk files support added to Simulator.
  • Fixes to --start-oid & --stop-oid params to make the working again.
  • Simulator reports supported device files types on startup.
  • Shared device files now supported. Snapshots can now be indicated as shared through a symbolic link. Managers can use different credentials to access and modify the same set of Managed Objects.

New in SNMP Simulator 0.1.5 (Oct 2, 2012)

  • Simulator device file selection by a combination of ContextName, Transport ID and source address implemented.
  • Rudimentary MIB write support added (snmpset now works). Still need to support MIB-defined constraints.
  • Fix to snmpsimd.py to ignore possibly missing .dbm file on failed index rebuild.
  • Fix to OID search code what used to always pick the first OID in file while looking for EOL (Python3 only).

New in SNMP Simulator 0.1.5 RC 0 (Aug 16, 2012)

  • Fix to snmpsimd.py to ignore possibly missing .dbm file on failed index rebuild.

New in SNMP Simulator 0.1.4 (Jul 30, 2012)

  • Simulator device file selection by a combination of Community,
  • Transport ID and source address implemented.
  • UDP/IPv6 and UNIX domain socket transports support added to
  • snmpsimd.py and snmprec.py tools.
  • The snmpsimd.py and snmprec.py tools now support additional SNMPv3
  • authentication (SHA) and encryption (3DES, AES192, AES256) algorithms
  • provided by pysnmp.
  • Simulator now supports binding to and listening at multiple local
  • endpoints. The --agent-address & --agent-port options are now obsolete.
  • The snmprec.py tool Agent address specification syntax unified with that
  • of snmpsimd.py.
  • Multiple --device-dir c/l options are now supported by snmpsimd.py.
  • Some runtime diagnostics added to snmprec.py.
  • The snmpsimd.py tool unconditionally rebuilds existing indices of
  • unknown format.
  • Device files handling indexing made faster by not calling .tell().
  • That also required opening files in 'binary' mode to make sure offset
  • calculation will work correctly.
  • Attempt to open DBM in "fast" and "unsync" modes when building indices
  • to speed-up index generation.
  • Package meta information updated.
  • Fix to snmprec.py to make SNMP debugging working again.
  • Fix to snmprec.py to properly support non-default SNMP context name.
  • Fix to infinite loop possibly occurring at OID search routine.
  • Fix to DBM key type (string vs byte issue)
  • Fix to mib2dev.py MIB path handling.
  • Fix to index object to make "snmpwalk -c index" work again.
  • Fix to index object registration in --v2c-arch mode.
  • Fix to SNMPv2 exception objects translation into SNMPv1 PDU in the
  • v2c-arch mode

New in SNMP Simulator 0.1.3 (Jul 30, 2012)

  • Initial revision of the mib2dev.py tool.
  • Some more MIB-originated device files added.

New in SNMP Simulator 0.1.2 (Jul 30, 2012)

  • Some more py2k refactoring (some features did not work otherwise).
  • Fix to values tags matching at snmpsimd.py (simulator did not work otherwise).
  • Fixes to sys.exc_info invocation.

New in SNMP Simulator 0.1.1 (Jul 30, 2012)

  • Major overhaul for Python 2.4 -- 3.2 compatibility:
  • drop explicit long integer type use
  • map()/filter() replaced with list comprehension
  • apply() replaced with */**args
  • dictionary operations made 2K/3K compatible
  • division operator made 2K/3K compatible
  • exception syntax made 2K/3K compatible
  • tuple function arguments resolved to scalars to become py3k compatible

New in SNMP Simulator 0.0.11 (Jul 30, 2012)

  • --agent-port handling bug fixed in snmprec.py

New in SNMP Simulator 0.0.10 (Jul 30, 2012)

  • v3-arch command-line flag added to save on large number of [expensive] addV1System() calls.
  • setuptools dependencies improved

New in SNMP Simulator 0.0.9 (Jul 30, 2012)

  • Simulator now builds a table of loaded device files in a
  • dedicated 'index' context.
  • Use OS-specific file extension separator for better portability.
  • Support .db extensions voluntarily added by gdbm on OS X.
  • Fix to null-typed value read from .dump device file.
  • Legacy SNMPv1/v2c community string generation policy dropped.
  • SNMPv3 VACM initialization dropped altogether, as the specialized
  • SMI backend used by Simulator does not implement access control.
  • Fix to support zero-length device files.
  • Ignore value syntax errors in device files occured when responding.
  • Optionally validate device file data while indexing.
  • Allow forced device files re-indexing.
  • Fix to broken IP address serialization code in recorder.