SNMP::Persist - The SNMP pass_persist threaded backend


Version 0.05


        use SNMP::Persist qw(&define_oid &start_persister &define_subtree);
        use strict;
        use warnings;

        #define base oid to host the subtree

        #start the thread serving answers

        #set first application number

        #loop forever to update the values
        while(1) {

          my %subtree;
          my $gameName;
          my $index=1;                                          #set first application number

          foreach $gameName ("game1", "game2") {                     #for each application
            $subtree{"1." . $index}=["INTEGER",$index];              #set game index data pair
            $subtree{"2." . $index}=["STRING",$gameName];            #set game name data pair
            $subtree{"3." . $index}=["Counter32", 344.2 ];           #set total memory data pair
            $index++;                                                #next application

          #new values have arrived - notify the subtree controller

          #don't update for next 5 minutes

The script can be used in the following way from snmpd.conf:

pass_persist . <user script location>


The SNMP-Persist module is a backend for pass_persist feature of net-snmp.

It simplifies the process of sharing user-specified data via SNMP and development of persistent net-snmp applications controlling a chosen MIB subtree.

It is particularly useful if data gathering process takes too long. The responder is a separate thread, which is not influenced by updates of MIB subtree data. The answer to a snmp request is fast and doesn't rely on potentially slow source of data.



Start the thread responsible for handling snmp requests. The function expects a reference to a predefined hash of arrays. Each array has to be built of two elements:

  • data type

    any SMI datatype supported by net-snmp (e.g. "INTEGER", "STRING", "Counter32")

  • value

    a value set accordingly to the data type


Define the base oid for a mib subtree controlled by a script

start_persister( )

Create or update the subtree data


Anna Wiejak, <anias at>


Please report any bugs or feature requests to bug-snmp-persist at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc SNMP::Persist

You can also look for information at:


Copyright 2006 Anna Wiejak, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.