User's Guide
Reference Manual
Release Notes
PDF
Top

Simple Network Management Protocol (SNMP)
Reference Manual
Version 4.24

Expand All
Contract All

Table of Contents

- snmp
  - Top of manual page
  - config/0
  - start/0
  - start/1
  - start_agent/0
  - start_agent/1
  - start_manager/0
  - start_manager/1
  - date_and_time/0
  - date_and_time_to_universal_time_dst/1
  - date_and_time_to_string/1
  - date_and_time_to_string/2
  - date_and_time_to_string2/1
  - local_time_to_date_and_time_dst/1
  - universal_time_to_date_and_time/1
  - validate_date_and_time/1
  - validate_date_and_time/2
  - passwd2localized_key/3
  - octet_string_to_bits/1
  - bits_to_octet_string/1
  - read_mib/1
  - log_to_txt/5
  - log_to_txt/6
  - log_to_txt/7
  - log_to_io/4
  - log_to_io/5
  - log_to_io/6
  - change_log_size/2
  - print_version_info/0
  - print_version_info/1
  - versions1/0
  - versions2/0
  - print_versions/1
  - print_versions/2
  - enable_trace/0
  - disable_trace/0
  - set_trace/1
  - reset_trace/1
  - set_trace/2
- snmp (App)
- snmpa
  - Top of manual page
  - add_agent_caps/2
  - del_agent_caps/1
  - get_agent_caps/0
  - get/2
  - get/3
  - get_next/2
  - get_next/3
  - backup/1
  - backup/2
  - info/0
  - info/1
  - old_info_format/1
  - load_mibs/1
  - load_mibs/2
  - unload_mibs/1
  - unload_mibs/2
  - which_mibs/0
  - which_mibs/1
  - whereis_mib/1
  - whereis_mib/2
  - current_request_id/0
  - current_context/0
  - current_community/0
  - current_address/0
  - enum_to_int/2
  - enum_to_int/3
  - int_to_enum/2
  - int_to_enum/3
  - name_to_oid/1
  - name_to_oid/2
  - oid_to_name/1
  - oid_to_name/2
  - which_aliasnames/0
  - which_tables/0
  - which_variables/0
  - which_notifications/0
  - log_to_txt/1
  - log_to_txt/2
  - log_to_txt/3
  - log_to_txt/4
  - log_to_txt/5
  - log_to_txt/6
  - log_to_txt/7
  - log_to_io/1
  - log_to_io/2
  - log_to_io/3
  - log_to_io/4
  - log_to_io/5
  - log_to_io/6
  - change_log_size/1
  - set_log_type/1
  - set_log_type/2
  - mib_of/1
  - mib_of/2
  - me_of/1
  - me_of/2
  - invalidate_mibs_cache/0
  - invalidate_mibs_cache/1
  - enable_mibs_cache/0
  - enable_mibs_cache/1
  - disable_mibs_cache/0
  - disable_mibs_cache/1
  - which_mibs_cache_size/0
  - which_mibs_cache_size/1
  - gc_mibs_cache/0
  - gc_mibs_cache/1
  - gc_mibs_cache/1
  - gc_mibs_cache/2
  - gc_mibs_cache/2
  - gc_mibs_cache/3
  - enable_mibs_cache_autogc/0
  - enable_mibs_cache_autogc/1
  - disable_mibs_cache_autogc/0
  - disable_mibs_cache_autogc/1
  - update_mibs_cache_age/1
  - update_mibs_cache_age/2
  - update_mibs_cache_gclimit/1
  - update_mibs_cache_gclimit/2
  - register_notification_filter/3
  - register_notification_filter/4
  - register_notification_filter/4
  - register_notification_filter/5
  - unregister_notification_filter/1
  - unregister_notification_filter/2
  - which_notification_filter/0
  - which_notification_filter/1
  - set_request_limit/1
  - set_request_limit/2
  - register_subagent/3
  - unregister_subagent/2
  - send_notification2/3
  - send_notification/3
  - send_notification/4
  - send_notification/5
  - send_notification/6
  - send_notification/7
  - discovery/2
  - discovery/3
  - discovery/3
  - discovery/4
  - discovery/4
  - discovery/5
  - discovery/6
  - convert_config/1
  - restart_worker/0
  - restart_worker/1
  - restart_set_worker/0
  - restart_set_worker/1
  - print_mib_info/0
  - print_mib_tables/0
  - print_mib_variables/0
  - verbosity/2
- snmpa_conf
  - Top of manual page
  - agent_entry/2
  - write_agent_config/2
  - write_agent_config/3
  - append_agent_config/2
  - read_agent_config/1
  - standard_entry/2
  - write_standard_config/2
  - write_standard_config/3
  - append_standard_config/2
  - read_standard_config/1
  - context_entry/1
  - write_context_config/2
  - write_context_config/3
  - append_context_config/2
  - read_context_config/1
  - community_entry/1
  - community_entry/5
  - write_community_config/2
  - write_community_config/3
  - append_community_config/2
  - read_community_config/1
  - target_addr_entry/5
  - target_addr_entry/6
  - target_addr_entry/8
  - target_addr_entry/10
  - target_addr_entry/11
  - write_target_addr_config/2
  - write_target_addr_config/3
  - append_target_addr_config/2
  - read_target_addr_config/1
  - target_params_entry/2
  - target_params_entry/4
  - target_params_entry/5
  - write_target_params_config/2
  - write_target_params_config/3
  - append_target_params_config/2
  - read_target_params_config/1
  - vacm_s2g_entry/3
  - vacm_acc_entry/8
  - vacm_vtf_entry/2
  - vacm_vtf_entry/4
  - write_vacm_config/2
  - write_vacm_config/3
  - append_vacm_config/2
  - read_vacm_config/1
  - usm_entry/1
  - usm_entry/13
  - write_usm_config/2
  - write_usm_config/3
  - append_usm_config/2
  - read_usm_config/1
  - notify_entry/3
  - write_notify_config/2
  - write_notify_config/3
  - append_notify_config/2
  - read_notify_config/1
- snmpa_discovery_handler
  - Top of manual page
  - stage1_finish/3
- snmpa_error_report
  - Top of manual page
  - config_err/2
  - user_err/2
- snmpa_error
  - Top of manual page
  - config_err/2
  - user_err/2
- snmpa_error_io
  - Top of manual page
  - config_err/2
  - user_err/2
- snmpa_error_logger
  - Top of manual page
  - config_err/2
  - user_err/2
- snmpa_local_db
  - Top of manual page
  - dump/0
  - match/2
  - print/0
  - print/1
  - print/2
  - table_create/1
  - table_create_row/3
  - table_delete/1
  - table_delete_row/2
  - table_exists/1
  - table_get_row/2
- snmpa_mib_data
  - Top of manual page
  - Module:new/1
  - Module:close/1
  - Module:sync/1
  - Module:load_mib/4
  - Module:unload_mib/2
  - Module:lookup/2
  - Module:next/3
  - Module:register_subagent/3
  - Module:unregister_subagent/2
  - Module:dump/2
  - Module:which_mib/2
  - Module:which_mibs/1
  - Module:whereis_mib/2
  - Module:info/1
  - Module:backup/2
  - Module:code_change/4
- snmpa_mib_storage
  - Top of manual page
  - Module:open/5
  - Module:close/1
  - Module:read/2
  - Module:write/2
  - Module:delete/1
  - Module:delete/2
  - Module:match_object/2
  - Module:match_delete/2
  - Module:tab2list/1
  - Module:info/1
  - Module:sync/1
  - Module:backup/2
- snmpa_mpd
  - Top of manual page
  - init/1
  - process_packet/6
  - process_packet/7
  - generate_response_msg/5
  - generate_response_msg/6
  - generate_msg/5
  - generate_msg/6
  - discarded_pdu/1
- snmpa_network_interface
  - Top of manual page
  - start_link/4
  - info/1
  - verbosity/2
  - get_log_type/1
  - set_log_type/2
- snmpa_network_interface_filter
  - Top of manual page
  - accept_recv/2
  - accept_send/2
  - accept_recv_pdu/3
  - accept_send_pdu/2
- snmpa_notification_delivery_info_receiver
  - Top of manual page
  - delivery_targets/3
  - delivery_info/4
- snmpa_notification_filter
  - Top of manual page
  - handle_notification/2
- snmpa_supervisor
  - Top of manual page
  - start_sub_sup/1
  - start_master_sup/1
  - start_sub_agent/3
  - stop_sub_agent/1
- snmp_community_mib
  - Top of manual page
  - configure/1
  - reconfigure/1
  - add_community/5
  - add_community/6
  - delete_community/1
- snmp_framework_mib
  - Top of manual page
  - configure/1
  - init/0
  - add_context/1
  - delete_context/1
- snmp_generic
  - Top of manual page
  - get_status_col/2
  - get_status_col/2
  - get_index_types/1
  - get_table_info/2
  - table_func/2
  - table_func/4
  - table_get_elements/3
  - table_next/2
  - table_row_exists/2
  - table_set_elements/3
  - variable_func/2
  - variable_func/3
  - variable_get/1
  - variable_set/2
- snmp_index
  - Top of manual page
  - delete/1
  - delete/2
  - get/2
  - get_last/1
  - get_next/2
  - insert/3
  - key_to_oid/2
  - new/1
- snmp_notification_mib
  - Top of manual page
  - configure/1
  - reconfigure/1
  - add_notify/3
  - delete_notify/1
- snmp_pdus
  - Top of manual page
  - dec_message/1
  - dec_message_only/1
  - dec_pdu/1
  - dec_scoped_pdu/1
  - dec_scoped_pdu_data/1
  - dec_usm_security_parameters/1
  - enc_encrypted_scoped_pdu/1
  - enc_message/1
  - enc_message_only/1
  - enc_pdu/1
  - enc_scoped_pdu/1
  - enc_usm_security_parameters/1
- snmp_standard_mib
  - Top of manual page
  - configure/1
  - inc/1
  - inc/2
  - reconfigure/1
  - reset/0
  - sys_up_time/0
- snmp_target_mib
  - Top of manual page
  - configure/1
  - reconfigure/1
  - set_target_engine_id/2
  - add_addr/10
  - add_addr/11
  - delete_addr/1
  - add_params/5
  - delete_params/1
- snmp_user_based_sm_mib
  - Top of manual page
  - configure/1
  - reconfigure/1
  - add_user/13
  - delete_user/1
- snmp_view_based_acm_mib
  - Top of manual page
  - configure/1
  - reconfigure/1
  - add_sec2group/3
  - delete_sec2group/1
  - add_access/8
  - delete_access/1
  - add_view_tree_fam/4
  - delete_view_tree_fam/1
- snmpc
  - Top of manual page
  - compile/1
  - compile/2
  - is_consistent/1
  - mib_to_hrl/1
- snmpc(command)
- snmpm
  - Top of manual page
  - monitor/0
  - demonitor/1
  - notify_started/1
  - cancel_notify_started/1
  - register_user/3
  - register_user/4
  - register_user_monitor/3
  - register_user_monitor/4
  - unregister_user/1
  - which_users/0
  - register_agent/3
  - unregister_agent/2
  - agent_info/2
  - update_agent_info/3
  - update_agent_info/4
  - which_agents/0
  - which_agents/1
  - register_usm_user/3
  - unregister_usm_user/2
  - usm_user_info/3
  - update_usm_user_info/4
  - which_usm_users/0
  - which_usm_users/1
  - sync_get2/3
  - sync_get2/4
  - sync_get/3
  - sync_get/4
  - sync_get/4
  - sync_get/5
  - sync_get/6
  - async_get2/3
  - async_get2/4
  - async_get/3
  - async_get/4
  - async_get/4
  - async_get/5
  - async_get/6
  - sync_get_next2/3
  - sync_get_next2/4
  - sync_get_next/3
  - sync_get_next/4
  - sync_get_next/4
  - sync_get_next/5
  - sync_get_next/6
  - async_get_next2/3
  - async_get_next2/4
  - async_get_next/3
  - async_get_next/4
  - async_get_next/4
  - async_get_next/5
  - async_get_next/6
  - sync_set2/3
  - sync_set2/4
  - sync_set/3
  - sync_set/4
  - sync_set/4
  - sync_set/5
  - sync_set/6
  - async_set2/3
  - async_set2/4
  - async_set/3
  - async_set/4
  - async_set/4
  - async_set/5
  - async_set/6
  - sync_get_bulk2/5
  - sync_get_bulk2/6
  - sync_get_bulk/5
  - sync_get_bulk/6
  - sync_get_bulk/6
  - sync_get_bulk/7
  - sync_get_bulk/8
  - async_get_bulk2/5
  - async_get_bulk2/6
  - async_get_bulk/5
  - async_get_bulk/6
  - async_get_bulk/6
  - async_get_bulk/7
  - async_get_bulk/8
  - cancel_async_request/2
  - log_to_txt/2
  - log_to_txt/3
  - log_to_txt/4
  - log_to_txt/5
  - log_to_txt/6
  - log_to_txt/7
  - log_to_io/1
  - log_to_io/2
  - log_to_io/2
  - log_to_io/3
  - log_to_io/4
  - log_to_io/5
  - log_to_io/6
  - change_log_size/1
  - set_log_type/1
  - load_mib/1
  - unload_mib/1
  - which_mibs/0
  - name_to_oid/1
  - oid_to_name/1
  - oid_to_type/1
  - backup/1
  - info/0
  - verbosity/2
  - format_reason/1
  - format_reason/2
- snmpm_conf
  - Top of manual page
  - manager_entry/2
  - write_manager_config/2
  - write_manager_config/3
  - append_manager_config/2
  - read_manager_config/1
  - users_entry/1
  - users_entry/2
  - users_entry/3
  - write_users_config/2
  - write_users_config/3
  - append_users_config/2
  - read_users_config/1
  - agents_entry/12
  - write_agents_config/2
  - write_agents_config/3
  - append_agents_config/2
  - read_agents_config/1
  - usm_entry/6
  - usm_entry/7
  - write_usm_config/2
  - write_usm_config/3
  - append_usm_config/2
  - read_usm_config/1
- snmpm_mpd
  - Top of manual page
  - init_mpd/1
  - process_msg/7
  - generate_msg/5
  - generate_response_msg/4
- snmpm_network_interface
  - Top of manual page
  - start_link/2
  - stop/1
  - send_pdu/7
  - inform_response/4
  - note_store/2
  - info/1
  - verbosity/2
  - get_log_type/1
  - set_log_type/2
- snmpm_user
  - Top of manual page
  - handle_error/3
  - handle_agent/5
  - handle_pdu/4
  - handle_trap/3
  - handle_inform/3
  - handle_report/3
- snmpm_network_interface_filter
  - Top of manual page
  - accept_recv/2
  - accept_send/2
  - accept_recv_pdu/3
  - accept_send_pdu/3

# snmpa_mib_data

### MODULE

snmpa_mib_data

### MODULE SUMMARY

Behaviour module for the SNMP agent mib-server data module.

### DESCRIPTION

This module defines the behaviour of the SNMP agent mib-server data module. A snmpa_mib_data compliant module must export the following functions:

- new/1
- close/1
- sync/1
- load_mib/4
- unload_mib/4
- lookup/2
- next/3
- register_subagent/3
- unregister_subagent/2
- which_mib/2
- which_mibs/1
- whereis_mib/2
- dump/2
- info/1
- backup/2
- code_change/4

The semantics of them and their exact signatures are explained below.

Note that the data extracted from the imported (loaded) mibs are stored partly by the mib-server and partly by the symbolic-store server. See the default mib-server data module, snmpa_mib_data_tttn for details.

### CALLBACK FUNCTIONS

The following functions must be exported from a mib-server data callback module:

### EXPORTS

Module:new(Storage) -> State

Types:

Storage = mib_storage()
State = term()

Create a new mib-server data instance.

Module:close(State) -> void()

Types:

State = term()

Close the mib-storage.

Module:sync(State) -> void()

Types:

State = term()

Synchronize (write to disc, if possible) the mib-server data. This depends on the mib_storage option, and will only have an effect if the mib-storage option has an actual disc component (such as dets, or ets with a file).

Module:load_mib(State, Filename, MeOverride, TeOverride) -> {ok, NewState} | {error, Reason}

Types:

State = NewState = term()
Filename = filename()
MeOverride = boolean()
TeOverride = boolean()
Reason = already_loaded | term()

Load the mib specified by the Filename argument into the mib-server. The MeOverride and TeOverride arguments specifies how the mib-server shall handle duplicate mib- and trap- entries.

Module:unload_mib(State, Filename) -> {ok, NewState} | {error, Reason}

Types:

State = NewState = term()
Filename = filename()
Reason = not_loaded | term()

Unload the mib specified by the Filename argument from the mib-server.

Module:lookup(State, Oid) -> Reply

Types:

State = term()
Reply = {variable, ME} | {table_column, ME, TEOid} | {subagent, SAPid, SAOid} | {false, Reason}
Oid = TEOid = SAOid = oid()
SAPid = pid()
ME = me()
Reason = term()

Find the mib-entry corresponding to the Oid. If it is a variable, the Oid must be <Oid for var>.0 and if it is a table, Oid must be <table>.<entry>.<col>.<any>.

Module:next(State, Oid, MibView) -> Reply

Types:

State = term()
Reply = false | endOfTable | {subagent, SAPid, SAOid} | {variable, ME, VarOid} | {table, TableOid, TableRestOid, ME}
Oid = SAOid = VarOid = TableOid = TableRestOid = oid()
SAPid = pid()
ME = me()

Finds the lexicographically next oid.

Module:register_subagent(State, Oid, Pid) -> Reply

Types:

State = NewState = term()
Reply = {ok, NewState} | {error, Reason}
Oid = oid()
Pid = pid()
Reason = term()

Register the subagent, process, handling part of the mib-tree.

Module:unregister_subagent(State, PidOrOid) -> Reply

Types:

State = NewState = term()
Reply = {ok, NewState} | {ok, NewState, Pid} | {error, Reason}
PidOrOid = pid() | oid()
Pid = pid()
Reason = term()

Unregister the subagent, handling part of the mib-tree, as specified by the oid() or pid() (PidOrOid).

When unregister the subagent using an oid(), the pid() of the process handling the sub-tree is also returned.

Module:dump(State, Destination) -> Reply

Types:

State = term()
Reply = ok | {error, Reason}
Destination = io | filename()
Pid = pid()
Reason = term()

Dump the mib-server data to stdio (Destination = io) or the specified file.

Module:which_mib(State, Oid) -> Reply

Types:

State = term()
Reply = {ok, MibFile} | {error, Reason}
Oid = oid()
MibFile = string()
Reason = term()

Retrieve the mib-file to which an given oid() belongs.

Module:which_mibs(State) -> Reply

Types:

State = term()
Reply = [{MibName, Filename}]
MibName = atom()
Filename = string()

Retrieve all loaded mib-files.

Module:whereis_mib(State, MibName) -> Reply

Types:

State = term()
MibName = atom()
Reply = {ok, Filename} | {error, Reason}
Filename = string()
Reason = term()

Retrieve the mib file for the mib.

Module:info(State) -> Reply

Types:

State = term()
Reply = {ok, Filename} | {error, Reason}
Filename = string()
Reason = term()

Retrieve misc info for the mib data.

This is a utility function used to inspect, for instance, memory usage, in a simple way.

Module:backup(State, BackupDir) -> Reply

Types:

State = term()
Reply = ok | {error, Reason}
BackupDir = string()
Reason = term()

Perform a backup of the mib-server data.

Note that its implementation dependant (and also dependent on mib-storage is used) if a backup is possible.

Module:code_change(Destination, Vsn, Extra, State) -> NewState

Types:

Destination = up | down
Vsn = term()
Extra = term()
State = NewState = term()

Perform a code-change (upgrade or downgrade).

See gen_server for more info regarding the Vsn and Extra arguments.