snmpm(3)



snmpm(3erl)                Erlang Module Definition                snmpm(3erl)

NAME
       snmpm - Interface functions to the SNMP toolkit manager

DESCRIPTION
       The module snmpm contains interface functions to the SNMP manager.

COMMON DATA TYPES
       The following data types are used in the functions below:

       oid() = [byte()]  -  The oid() type is used to represent an ASN.1 OBJECT IDENTIFIER
       snmp_reply() = {error_status(), error_index(), varbinds()}
       error_status() = noError | atom()
       error_index() = integer()
       varbinds() = [varbind()]
       atl_type() = read | write | read_write
       target_name() = string()  -  Is a unique *non-empty* string
       vars_and_vals() = [var_and_val()]
       var_and_val() = {oid(), value_type(), value()} | {oid(), value()}
       value_type() = o ('OBJECT IDENTIFIER') |
                      i ('INTEGER') |
                      u ('Unsigned32') |
                      g ('Unsigned32') |
                      s ('OCTET SRING') |
                      b ('BITS') |
                      ip ('IpAddress') |
                      op ('Opaque') |
                      c32 ('Counter32') |
                      c64 ('Counter64') |
                      tt ('TimeTicks')
       value() = term()
       community() = string()
       sec_model() = any | v1 | v2c | usm
       sec_name() = string()
       sec_level() = noAuthNoPriv | authNoPriv | authPriv

       See also the  data types in snmpa_conf.

EXPORTS
       monitor() -> Ref

              Types:

                 Ref = reference()

              Monitor the SNMP manager. In case of a crash, the calling (moni-
              toring) process will get a 'DOWN' message (see the erlang module
              for more info).

       demonitor(Ref) -> void()

              Types:

                 Ref = reference()

              Turn off monitoring of the SNMP manager.

       notify_started(Timeout) -> Pid

              Types:

                 Timeout = integer()
                 Pid = pid()

              Request  a  notification  (message)  when  the  SNMP manager has
              started.

              The Timeout is the time the request is valid. The value  has  to
              be greater then zero.

              The Pid is the process handling the supervision of the SNMP man-
              ager start. When the manager has started  a  completion  message
              will  be  sent  to the client from this process: {snmpm_started,
              Pid}. If the SNMP manager was not started  in  time,  a  timeout
              message will be sent to the client: {snmpm_start_timeout, Pid}.

              A  client application that is dependent on the SNMP manager will
              use this function in order to be notified of  when  the  manager
              has started. There are two situations when this is useful:

                * During  the  start  of  a  system, when a client application
                  could start prior to the SNMP manager but is dependent  upon
                  it, and therefor has to wait for it to start.

                * When  the SNMP manager has crashed, the dependent client ap-
                  plication has to wait for the SNMP manager to  be  restarted
                  before it can reconnect.

              The  function  returns the pid() of a handler process, that does
              the supervision on behalf of the client application.  Note  that
              the client application is linked to this handler.

              This function is used in conjunction with the monitor function.

       cancel_notify_started(Pid) -> void()

              Types:

                 Pid = pid()

              Cancel a previous request to be notified of SNMP manager start.

       register_user(Id, Module, Data) -> ok | {error, Reason}
       register_user(Id,  Module,  Data,  DefaultAgentConfig)  -> ok | {error,
       Reason}

              Types:

                 Id = term()
                 Module = snmpm_user()
                 Data = term()
                 DefaultAgentConfig = [default_agent_config()]
                 default_agent_config() = {Item, Val}
                 Item = community | timeout |  max_message_size  |  version  |
                 sec_model | sec_name | sec_level
                 Val = term()
                 Reason = term()
                 snmpm_user() = Module implementing the snmpm_user behaviour

              Register  the  manager  entity  (=user) responsible for specific
              agent(s).

              Module is the callback module (snmpm_user behaviour) which  will
              be  called  whenever something happens (detected agent, incoming
              reply or incoming trap/notification). Note that this could  have
              already  been  done  as  a  consequence of the node config. (see
              users.conf).

              The argument DefaultAgentConfig is used as default  values  when
              this user register agents.

              The type of Val depends on Item:

              community = string()
              timeout = integer() | snmp_timer()
              max_message_size = integer()
              version = v1 | v2 | v3
              sec_model = any | v1 | v2c | usm
              sec_name = string()
              sec_level = noAuthNoPriv | authNoPriv | authPriv

       register_user_monitor(Id, Module, Data) -> ok | {error, Reason}
       register_user_monitor(Id,  Module,  Data,  DefaultAgentConfig)  -> ok |
       {error, Reason}

              Types:

                 Id = term()
                 Module = snmpm_user()
                 DefaultAgentConfig = [default_agent_config()]
                 default_agent_config() = {Item, Val}
                 Item = community | timeout |  max_message_size  |  version  |
                 sec_model | sec_name | sec_level
                 Val = term()
                 Data = term()
                 Reason = term()
                 snmpm_user() = Module implementing the snmpm_user behaviour

              Register  the  monitored  manager entity (=user) responsible for
              specific agent(s).

              The process performing the registration will be monitored. Which
              means  that if that process should die, all agents registered by
              that user process will be unregistered. All outstanding requests
              will be canceled.

              Module  is the callback module (snmpm_user behaviour) which will
              be called whenever something happens (detected  agent,  incoming
              reply  or incoming trap/notification). Note that this could have
              already been done as a consequence  of  the  node  config.  (see
              users.conf).

              The  argument  DefaultAgentConfig is used as default values when
              this user register agents.

              The type of Val depends on Item:

              community = string()
              timeout = integer() | snmp_timer()
              max_message_size = integer()
              version = v1 | v2 | v3
              sec_model = any | v1 | v2c | usm
              sec_name = string()
              sec_level = noAuthNoPriv | authNoPriv | authPriv

       unregister_user(Id) -> ok | {error, Reason}

              Types:

                 Id = term()

              Unregister the user.

       which_users() -> Users

              Types:

                 Users = [UserId]
                 UserId = term()

              Get a list of the identities of all registered users.

       register_agent(UserId, TargetName, Config) -> ok | {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 Config = [agent_config()]
                 agent_config() = {Item, Val}
                 Item = engine_id | address | port |  community  |  timeout  |
                 max_message_size | version | sec_model | sec_name | sec_level
                 | tdomain
                 Val = term()
                 Reason = term()

              Explicitly instruct the  manager  to  handle  this  agent,  with
              UserId as the responsible user.

              Called to instruct the manager that this agent shall be handled.
              This function is used when  the  user  knows  in  advance  which
              agents the manager shall handle. Note that there is an alternate
              way to do the same thing: Add the agent to  the  manager  config
              files (see agents.conf).

              TargetName  is  a  non-empty  string,  uniquely  identifying the
              agent.

              The type of Val depends on Item:

              [mandatory] engine_id = string()
              [mandatory] tadress = transportAddress()  % Depends on tdomain
              [optional]  port = inet:port_number()
              [optional]  tdomain = transportDomain()
              [optional]  community = string()
              [optional]  timeout = integer() | snmp_timer()
              [optional]  max_message_size = integer()
              [optional]  version = v1 | v2 | v3
              [optional]  sec_model = any | v1 | v2c | usm
              [optional]  sec_name = string()
              [optional]  sec_level = noAuthNoPriv | authNoPriv | authPriv

              Note that if no tdomain is given, the default value,  transport-
              DomainUdpIpv4, is used.

              Note that if no port is given and if taddress does not contain a
              port number, the default value is used.

       unregister_agent(UserId, TargetName) -> ok | {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()

              Unregister the agent.

       agent_info(TargetName, Item) -> {ok, Val} | {error, Reason}

              Types:

                 TargetName = target_name()
                 Item = atom()
                 Reason = term()

              Retrieve agent config.

       update_agent_info(UserId, TargetName, Info) -> ok | {error, Reason}
       update_agent_info(UserId, TargetName, Item, Val) -> ok |  {error,  Rea-
       son}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 Info = [{item(), item_value()}]
                 Item = item()
                 item() = atom()
                 Val = item_value()
                 item_value() = term()
                 Reason = term()

              Update  agent config. The function update_agent_info/3 should be
              used when several values needs to be updated atomically.

              See function register_agent for more info  about  what  kind  of
              items are allowed.

       which_agents() -> Agents
       which_agents(UserId) -> Agents

              Types:

                 UserId = term()
                 Agents = [TargetName]
                 TargetName = target_name()

              Get  a list of all registered agents or all agents registered by
              a specific user.

       register_usm_user(EngineID, UserName, Conf) -> ok | {error, Reason}

              Types:

                 EngineID = string()
                 UserName = string()
                 Conf = [usm_config()]
                 usm_config() = {Item, Val}
                 Item = sec_name | auth | auth_key | priv | priv_key
                 Val = term()
                 Reason = term()

              Explicitly instruct the manager to handle this  USM  user.  Note
              that there is an alternate way to do the same thing: Add the usm
              user to the manager config files (see usm.conf).

              The type of Val depends on Item:

              sec_name = string()
              auth = usmNoAuthProtocol | usmHMACMD5AuthProtocol | usmHMACSHAAuthProtocoltimeout
              auth_key = [integer()]   (length 16 if auth = usmHMACMD5AuthProtocol,
                                        length 20 if auth = usmHMACSHAAuthProtocol)
              priv = usmNoPrivProtocol | usmDESPrivProtocol | usmAesCfb128Protocol
              priv_key = [integer()]   (length is 16 if priv = usmDESPrivProtocol | usmAesCfb128Protocol).

       unregister_usm_user(EngineID, UserName) -> ok | {error, Reason}

              Types:

                 EngineID = string()
                 UserName = string()
                 Reason = term()

              Unregister this USM user.

       usm_user_info(EngineID, UserName, Item) -> {ok, Val} | {error, Reason}

              Types:

                 EngineID = string()
                 UsmName = string()
                 Item = sec_name | auth | auth_key | priv | priv_key
                 Reason = term()

              Retrieve usm user config.

       update_usm_user_info(EngineID, UserName, Item, Val)  ->  ok  |  {error,
       Reason}

              Types:

                 EngineID = string()
                 UsmName = string()
                 Item = sec_name | auth | auth_key | priv | priv_key
                 Val = term()
                 Reason = term()

              Update usm user config.

       which_usm_users() -> UsmUsers

              Types:

                 UsmUsers = [{EngineID,UserName}]
                 EngineID = string()
                 UsmName = string()

              Get a list of all registered usm users.

       which_usm_users(EngineID) -> UsmUsers

              Types:

                 UsmUsers = [UserName]
                 UserName = string()

              Get a list of all registered usm users with engine-id EngineID.

       sync_get2(UserId,  TargetName,  Oids)  ->  {ok, SnmpReply, Remaining} |
       {error, Reason}
       sync_get2(UserId, TargetName, Oids, SendOpts) ->  {ok,  SnmpReply,  Re-
       maining} | {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 Oids = [oid()]
                 SendOpts = send_opts()
                 send_opts() = [send_opt()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra, term()}  |  {community,  community()}  |  {sec_model,
                 sec_model()}    |    {sec_name,   string()}   |   {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 SnmpReply = snmp_reply()
                 Remaining = integer()
                 Reason  =   {send_failed,   ReqId,   ActualReason}   |   {in-
                 valid_sec_info, SecInfo, SnmpInfo} | term()
                 ReqId = term()
                 ActualReason = term()
                 SecInfo = [sec_info()]
                 sec_info() = {sec_tag(), ExpectedValue, ReceivedValue}
                 sec_tag() = atom()
                 ExpectedValue = ReceivedValue = term()
                 SnmpInfo = term()

              Synchronous get-request.

              Remaining  is the remaining time of the given (or default) time-
              out time.

              When Reason is {send_failed,  ...}  it  means  that  the  net_if
              process failed to send the message. This could happen because of
              any number of reasons, i.e. encoding error. ActualReason is  the
              actual reason in this case.

              The  send option extra specifies an opaque data structure passed
              on to the net-if process. The net-if process  included  in  this
              application  makes,  with one exception, no use of this info, so
              the only use for it in such a option (when using  the  built  in
              net-if)  would be tracing. The one usage exception is: Any tuple
              with snmpm_extra_info_tag as its first element is  reserved  for
              internal use.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level and max_message_size) are override options.  That  is,
              for  this request, they override any configuration done when the
              agent was registered.

              For SnmpInfo, see the user callback function handle_report.

       async_get2(UserId, TargetName, Oids) -> {ok, ReqId} | {error, Reason}
       async_get2(UserId, TargetName, Oids, SendOpts) -> {ok, ReqId} | {error,
       Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 Oids = [oid()]
                 SendOpts = send_opts()
                 send_opts() = [send_opt()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra, term()}  |  {community,  community()}  |  {sec_model,
                 sec_model()}    |    {sec_name,   string()}   |   {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 ReqId = term()
                 Reason = term()

              Asynchronous get-request.

              The reply, if it arrives, will be delivered to the user  through
              a call to the snmpm_user callback function handle_pdu.

              The  send  option  timeout specifies for how long the request is
              valid (after which the manager is free to delete it).

              The send option extra specifies an opaque data structure  passed
              on  to  the  net-if process. The net-if process included in this
              application makes, with one exception, no use of this  info,  so
              the  only  use  for it in such a option (when using the built in
              net-if) would be tracing. The one usage exception is: Any  tuple
              with  snmpm_extra_info_tag  as its first element is reserved for
              internal use.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level  and  max_message_size) are override options. That is,
              for this request, they override any configuration done when  the
              agent was registered.

       sync_get_next2(UserId,  TargetName, Oids) -> {ok, SnmpReply, Remaining}
       | {error, Reason}
       sync_get_next2(UserId, TargetName, Oids, SendOpts) ->  {ok,  SnmpReply,
       Remaining} | {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 Oids = [oid()]
                 SendOpts = send_opts()
                 send_opts() = [send_opt()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra, term()}  |  {community,  community()}  |  {sec_model,
                 sec_model()}    |    {sec_name,   string()}   |   {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 SnmpReply = snmp_reply()
                 Remaining = integer()
                 Reason  =   {send_failed,   ReqId,   ActualReason}   |   {in-
                 valid_sec_info, SecInfo, SnmpInfo} | term()
                 ReqId = term()
                 ActualReason = term()
                 SecInfo = [sec_info()]
                 sec_info() = {sec_tag(), ExpectedValue, ReceivedValue}
                 sec_tag() = atom()
                 ExpectedValue = ReceivedValue = term()
                 SnmpInfo = term()

              Synchronous get-next-request.

              Remaining  is the remaining time of the given (or default) time-
              out time.

              When Reason is {send_failed,  ...}  it  means  that  the  net_if
              process failed to send the message. This could happen because of
              any number of reasons, i.e. encoding error. ActualReason is  the
              actual reason in this case.

              The  send option extra specifies an opaque data structure passed
              on to the net-if process. The net-if process  included  in  this
              application  makes,  with one exception, no use of this info, so
              the only use for it in such a option (when using  the  built  in
              net-if)  would be tracing. The one usage exception is: Any tuple
              with snmpm_extra_info_tag as its first element is  reserved  for
              internal use.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level and max_message_size) are override options.  That  is,
              for  this request, they override any configuration done when the
              agent was registered.

              For SnmpInfo, see the user callback function handle_report.

       async_get_next2(UserId, TargetName, Oids) -> {ok, ReqId} | {error, Rea-
       son}
       async_get_next2(UserId,  TargetName,  Oids,  SendOpts) -> {ok, ReqId} |
       {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 Oids = [oid()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra,  term()}  |  {community,  community()}  | {sec_model,
                 sec_model()}   |   {sec_name,   string()}    |    {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 ReqId = integer()
                 Reason = term()

              Asynchronous get-next-request.

              The  reply  will  be delivered to the user through a call to the
              snmpm_user callback function handle_pdu.

              The send option timeout specifies for how long  the  request  is
              valid (after which the manager is free to delete it).

              The  send option extra specifies an opaque data structure passed
              on to the net-if process. The net-if process  included  in  this
              application  makes,  with one exception, no use of this info, so
              the only use for it in such a option (when using  the  built  in
              net-if)  would be tracing. The one usage exception is: Any tuple
              with snmpm_extra_info_tag as its first element is  reserved  for
              internal use.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level and max_message_size) are override options.  That  is,
              for  this request, they override any configuration done when the
              agent was registered.

       sync_set2(UserId, TargetName, VarsAndVals) -> {ok,  SnmpReply,  Remain-
       ing} | {error, Reason}
       sync_set2(UserId, TargetName, VarsAndVals, SendOpts) -> {ok, SnmpReply,
       Remaining} | {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 VarsAndVals = vars_and_vals()
                 SendOpts = send_opts()
                 send_opts() = [send_opt()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra,  term()}  |  {community,  community()}  | {sec_model,
                 sec_model()}   |   {sec_name,   string()}    |    {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 SnmpReply = snmp_reply()
                 Remaining = integer()
                 Reason   =   {send_failed,   ReqId,   ActualReason}   |  {in-
                 valid_sec_info, SecInfo, SnmpInfo} | term()
                 ReqId = term()
                 ActualReason = term()
                 SecInfo = [sec_info()]
                 sec_info() = {sec_tag(), ExpectedValue, ReceivedValue}
                 sec_tag() = atom()
                 ExpectedValue = ReceivedValue = term()
                 SnmpInfo = term()

              Synchronous set-request.

              Remaining is the remaining time of the given (or default)  time-
              out time.

              When  Reason  is  {send_failed,  ...}  it  means that the net_if
              process failed to send the message. This could happen because of
              any  number of reasons, i.e. encoding error. ActualReason is the
              actual reason in this case.

              When var_and_val() is {oid(), value()}, the manager makes an ed-
              ucated guess based on the loaded mibs.

              The  send option extra specifies an opaque data structure passed
              on to the net-if process. The net-if process  included  in  this
              application  makes,  with one exception, no use of this info, so
              the only use for it in such a option (when using  the  built  in
              net-if)  would be tracing. The one usage exception is: Any tuple
              with snmpm_extra_info_tag as its first element is  reserved  for
              internal use.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level and max_message_size) are override options.  That  is,
              for  this request, they override any configuration done when the
              agent was registered.

              For SnmpInfo, see the user callback function handle_report.

       async_set2(UserId, TargetName, VarsAndVals) -> {ok,  ReqId}  |  {error,
       Reason}
       async_set2(UserId,  TargetName, VarsAndVals, SendOpts) -> {ok, ReqId} |
       {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 VarsAndVals = vars_and_vals()
                 SendOpts = send_opts()
                 send_opts() = [send_opt()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra,  term()}  |  {community,  community()}  | {sec_model,
                 sec_model()}   |   {sec_name,   string()}    |    {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 ReqId = term()
                 Reason = term()

              Asynchronous set-request.

              The  reply  will  be delivered to the user through a call to the
              snmpm_user callback function handle_pdu.

              The send option timeout specifies for how long  the  request  is
              valid (after which the manager is free to delete it).

              When var_and_val() is {oid(), value()}, the manager makes an ed-
              ucated guess based on the loaded mibs.

              The send option extra specifies an opaque data structure  passed
              on  to  the  net-if process. The net-if process included in this
              application makes, with one exception, no use of this  info,  so
              the  only  use  for it in such a option (when using the built in
              net-if) would be tracing. The one usage exception is: Any  tuple
              with  snmpm_extra_info_tag  as its first element is reserved for
              internal use.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level  and  max_message_size) are override options. That is,
              for this request, they override any configuration done when  the
              agent was registered.

       sync_get_bulk2(UserId,  TragetName,  NonRep, MaxRep, Oids) -> {ok, Snm-
       pReply, Remaining} | {error, Reason}
       sync_get_bulk2(UserId, TragetName, NonRep, MaxRep, Oids,  SendOpts)  ->
       {ok, SnmpReply, Remaining} | {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 NonRep = integer()
                 MaxRep = integer()
                 Oids = [oid()]
                 SendOpts = send_opts()
                 send_opts() = [send_opt()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra, term()}  |  {community,  community()}  |  {sec_model,
                 sec_model()}    |    {sec_name,   string()}   |   {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 SnmpReply = snmp_reply()
                 Remaining = integer()
                 Reason  =   {send_failed,   ReqId,   ActualReason}   |   {in-
                 valid_sec_info, SecInfo, SnmpInfo} | term()
                 ReqId = term()
                 ActualReason = term()
                 SecInfo = [sec_info()]
                 sec_info() = {sec_tag(), ExpectedValue, ReceivedValue}
                 sec_tag() = atom()
                 ExpectedValue = ReceivedValue = term()
                 SnmpInfo = term()

              Synchronous get-bulk-request (See RFC1905).

              Remaining  is the remaining time of the given (or default) time-
              out time.

              When Reason is {send_failed,  ...}  it  means  that  the  net_if
              process failed to send the message. This could happen because of
              any number of reasons, i.e. encoding error. ActualReason is  the
              actual reason in this case.

              The  send option extra specifies an opaque data structure passed
              on to the net-if process. The net-if process  included  in  this
              application  makes,  with one exception, no use of this info, so
              the only use for it in such a option (when using  the  built  in
              net-if)  would be tracing. The one usage exception is: Any tuple
              with snmpm_extra_info_tag as its first element is  reserved  for
              internal use.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level and max_message_size) are override options.  That  is,
              for  this request, they override any configuration done when the
              agent was registered.

              For SnmpInfo, see the user callback function handle_report.

       async_get_bulk2(UserId, TargetName, NonRep, MaxRep, Oids) ->  {ok,  Re-
       qId} | {error, Reason}
       async_get_bulk2(UserId,  TargetName, NonRep, MaxRep, Oids, SendOpts) ->
       {ok, ReqId} | {error, Reason}

              Types:

                 UserId = term()
                 TargetName = target_name()
                 NonRep = integer()
                 MaxRep = integer()
                 Oids = [oid()]
                 SendOpts = send_opts()
                 send_opts() = [send_opt()]
                 send_opt() = {context, string()} | {timeout, pos_integer()} |
                 {extra,  term()}  |  {community,  community()}  | {sec_model,
                 sec_model()}   |   {sec_name,   string()}    |    {sec_level,
                 sec_level()} | {max_message_size, pos_integer()}
                 ReqId = integer()
                 Reason = term()

              Asynchronous get-bulk-request (See RFC1905).

              The  reply  will  be delivered to the user through a call to the
              snmpm_user callback function handle_pdu.

              The send option timeout specifies for how long  the  request  is
              valid (after which the manager is free to delete it).

              The  send option extra specifies an opaque data structure passed
              on to the net-if process. The net-if process  included  in  this
              application makes no use of this info, so the only use for it in
              such a configuration (when using the built in net-if)  would  be
              tracing.

              Some  of  the  send  options  (community,  sec_model,  sec_name,
              sec_level and max_message_size) are override options.  That  is,
              for  this request, they override any configuration done when the
              agent was registered.

       cancel_async_request(UserId, ReqId) -> ok | {error, Reason}

              Types:

                 UserId = term()
                 ReqId = term()
                 Reason = term()

              Cancel a previous asynchronous request.

       log_to_txt(LogDir)
       log_to_txt(LogDir, Block | Mibs)
       log_to_txt(LogDir, Mibs, Block | OutFile) -> ok | {ok, Cnt}  |  {error,
       Reason}
       log_to_txt(LogDir,  Mibs, OutFile, Block | LogName) -> ok | {ok, Cnt} |
       {error, Reason}
       log_to_txt(LogDir, Mibs, OutFile, LogName, Block |  LogFile)  ->  ok  |
       {ok, Cnt} | {error, Reason}
       log_to_txt(LogDir,  Mibs,  OutFile, LogName, LogFile, Block | Start) ->
       ok | {ok, Cnt} | {error, Reason}
       log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Block, Start) -> ok
       | {ok, Cnt} | {error, Reason}
       log_to_txt(LogDir,  Mibs, OutFile, LogName, LogFile, Start, Stop) -> ok
       | {ok, Cnt} | {error, Reason}
       log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Block, Start, Stop)
       -> ok | {ok, Cnt} | {error, Reason}

              Types:

                 LogDir = string()
                 Mibs = [MibName]
                 MibName = string()
                 Block = boolean()
                 OutFile = string()
                 LogName = string()
                 LogFile = string()
                 Start = Stop = null | calendar:datetime() | {local_time, cal-
                 endar:datetime()} | {universal_time, calendar:datetime()}
                 Cnt = {NumOK, NumERR}
                 NumOK = non_neg_integer()
                 NumERR = pos_integer()
                 Reason = disk_log_open_error() | file_open_error() | term()
                 disk_log_open_error() = {LogName, term()}
                 file_open_error() = {OutFile, term()}

              Converts an Audit Trail Log to a readable text file. OutFile de-
              faults  to  "./snmpm_log.txt".  LogName defaults to "snmpm_log".
              LogFile defaults to "snmpm.log".

              The Block argument indicates if the log should be blocked during
              conversion.  This  could  be  usefull when converting large logs
              (when otherwise the log could wrap during conversion).  Defaults
              to true.

              See snmp:log_to_txt for more info.

       log_to_io(LogDir) -> ok | {ok, Cnt} | {error, Reason}
       log_to_io(LogDir, Block | Mibs) -> ok | {ok, Cnt} | {error, Reason}
       log_to_io(LogDir, Mibs) -> ok | {error, Reason}
       log_to_io(LogDir,  Mibs,  Block  | LogName) -> ok | {ok, Cnt} | {error,
       Reason}
       log_to_io(LogDir, Mibs, LogName, Block | LogFile) -> ok | {ok,  Cnt}  |
       {error, Reason}
       log_to_io(LogDir,  Mibs,  LogName, LogFile, Block | Start) -> ok | {ok,
       Cnt} | {error, Reason}
       log_to_io(LogDir, Mibs, LogName, LogFile, Block, Start) ->  ok  |  {ok,
       Cnt} | {error, Reason}
       log_to_io(LogDir,  Mibs,  LogName,  LogFile,  Start, Stop) -> ok | {ok,
       Cnt} | {error, Reason}
       log_to_io(LogDir, Mibs, LogName, LogFile, Block, Start, Stop) ->  ok  |
       {ok, Cnt} | {error, Reason}

              Types:

                 LogDir = string()
                 Mibs = [MibName]
                 MibName = string()
                 Block = boolean()
                 LogName = string()
                 LogFile = string()
                 Start = Stop = null | calendar:datetime() | {local_time, cal-
                 endar:datetime()} | {universal_time, calendar:datetime()}
                 Cnt = {NumOK, NumERR}
                 NumOK = non_neg_integer()
                 NumERR = pos_integer()
                 Reason = disk_log_open_error() | file_open_error() | term()
                 disk_log_open_error() = {LogName, term()}
                 file_open_error() = {OutFile, term()}

              Converts an Audit Trail Log to a readable format and  prints  it
              on  stdio.  LogName defaults to "snmpm_log". LogFile defaults to
              "snmpm.log".

              The Block argument indicates if the log should be blocked during
              conversion.  This  could  be  usefull when converting large logs
              (when otherwise the log could wrap during conversion).  Defaults
              to true.

              See snmp:log_to_io for more info.

       change_log_size(NewSize) -> ok | {error, Reason}

              Types:

                 NewSize = {MaxBytes, MaxFiles}
                 MaxBytes = integer()
                 MaxFiles = integer()
                 Reason = term()

              Changes  the  log  size  of the Audit Trail Log. The application
              must be configured to use the audit trail log  function.  Please
              refer  to  disk_log(3erl)  in  Kernel Reference Manual for a de-
              scription of how to change the log size.

              The change is permanent, as long as the log is not deleted. That
              means, the log size is remembered across reboots.

       set_log_type(NewType) -> {ok, OldType} | {error, Reason}

              Types:

                 NewType = OldType = atl_type()
                 Reason = term()

              Changes the run-time Audit Trail log type.

              Note that this has no effect on the application configuration as
              defined by configuration files, so a node  restart  will  revert
              the config to whatever is in those files.

              This  function  is primarily useful in testing/debugging scenar-
              ios.

       load_mib(Mib) -> ok | {error, Reason}

              Types:

                 Mib = MibName
                 MibName = string()
                 Reason = term()

              Load a Mib into the manager. The MibName is the name of the Mib,
              including the path to where the compiled mib is found. For exam-
              ple,

                        Dir = code:priv_dir(my_app) ++ "/mibs/",
                        snmpm:load_mib(Dir ++ "MY-MIB").

       unload_mib(Mib) -> ok | {error, Reason}

              Types:

                 Mib = MibName
                 MibName = string()
                 Reason = term()

              Unload a Mib from the manager. The MibName is the  name  of  the
              Mib,  including the path to where the compiled mib is found. For
              example,

                        Dir = code:priv_dir(my_app) ++ "/mibs/",
                        snmpm:unload_mib(Dir ++ "MY-MIB").

       which_mibs() -> Mibs

              Types:

                 Mibs = [{MibName, MibFile}]
                 MibName = atom()
                 MibFile = string()

              Get a list of all the mib's loaded into the manager.

       name_to_oid(Name) -> {ok, Oids} | {error, Reason}

              Types:

                 Name = atom()
                 Oids = [oid()]

              Transform a alias-name to its oid.

              Note that an alias-name is only unique within the mib,  so  when
              loading several mib's into a manager, there might be several in-
              stances of the same aliasname.

       oid_to_name(Oid) -> {ok, Name} | {error, Reason}

              Types:

                 Oid = oid()
                 Name = atom()
                 Reason = term()

              Transform a oid to its aliasname.

       oid_to_type(Oid) -> {ok, Type} | {error, Reason}

              Types:

                 Oid = oid()
                 Type = atom()
                 Reason = term()

              Retreive the type (asn1 bertype) of an oid.

       backup(BackupDir) -> ok | {error, Reason}

              Types:

                 BackupDir = string()

              Backup persistent data handled by the manager.

              BackupDir cannot be identical to DbDir.

       info() -> [{Key, Value}]

              Types:

                 Key = atom()
                 Value = term()

              Returns a list (a dictionary) containing information  about  the
              manager. Information includes statistics counters, miscellaneous
              info about each process (e.g. memory allocation), and so on.

       verbosity(Ref, Verbosity) -> void()

              Types:

                 Ref = server | config | net_if | note_store | all
                 Verbosity = verbosity()
                 verbosity() = silence | info | log | debug | trace

              Sets verbosity for the designated process. For the  lowest  ver-
              bosity  silence,  nothing  is printed. The higher the verbosity,
              the more is printed.

       restart(Ref) -> void()

              Types:

                 Ref = net_if

              Restart the indicated process (Ref). Note that its  not  without
              risk  to  restart  a  process,  and should therefor be used with
              care.

       format_reason(Reason) -> string()
       format_reason(Prefix, Reason) -> string()

              Types:

                 Reason = term()
                 Prefix = integer() | string()

              This utility function is used  to  create  a  formatted  (pretty
              printable) string of the error reason received from either:

                * The  Reason returned value if any of the sync/async get/get-
                  next/set/get-bulk functions returns {error, Reason}

                * The Reason parameter in the handle_error user callback func-
                  tion.

              Prefix should either be an indention string (e.g. a list of spa-
              ces) or a positive integer (which will be used to create the in-
              dention string of that length).

Ericsson AB                        snmp 5.6                        snmpm(3erl)

Man(1) output converted with man2html
list of all man pages