# snmp_view_based_acm_mib

###
Module

snmp_view_based_acm_mib

###
Module Summary

Instrumentation Functions for SNMP-VIEW-BASED-ACM-MIB

###
Description

The module snmp_view_based_acm_mib implements the instrumentation functions for the SNMP-VIEW-BASED-ACM-MIB, and functions for configuring the database.

The configuration files are described in the SNMP User's Manual.

###
Exports

####
configure(ConfDir) -> void()

### Types

ConfDir = string()

This function is called from the supervisor at system start-up.

Inserts all data in the configuration files into the database and destroys all old rows with StorageType volatile. The rows created from the configuration file will have StorageType nonVolatile.

All snmp counters are set to zero.

If an error is found in the configuration file, it is reported using the function config_err/2 of the error report module, and the function fails with the reason configuration_error.

ConfDir is a string which points to the directory where the configuration files are found.

The configuration file read is: vacm.conf.

####
reconfigure(ConfDir) -> void()

### Types

ConfDir = string()

Inserts all data in the configuration files into the database and destroys all old data, including the rows with StorageType nonVolatile. The rows created from the configuration file will have StorageType nonVolatile.

Thus, the data in the SNMP-VIEW-BASED-ACM-MIB, after this function has been called, is the data from the configuration files.

All snmp counters are set to zero.

If an error is found in the configuration file, it is reported using the function config_err/2 of the error report module, and the function fails with the reason configuration_error.

ConfDir is a string which points to the directory where the configuration files are found.

The configuration file read is: vacm.conf.

####
add_sec2group(SecModel, SecName, GroupName) -> Ret

### Types

SecModel = v1 | v2c | usm
SecName = string()
GroupName = string()
Ret = {ok, Key} | {error, Reason}
Key = term()
Reason = term()

Adds a security to group definition to the agent config. Equivalent to one vacmSecurityToGroup-line in the vacm.conf file.

####
delete_sec2group(Key) -> Ret

### Types

Key = term()
Ret = ok | {error, Reason}
Reason = term()

Delete a security to group definition from the agent config.

####
add_access(GroupName, Prefix, SecModel, SecLevel, Match, RV, WV, NV) -> Ret

### Types

GroupName = string()
Prefix = string()
SecModel = v1 | v2c | usm
SecLevel = string()
Match = prefix | exact
RV = string()
WV = string()
NV = string()
Ret = {ok, Key} | {error, Reason}
Key = term()
Reason = term()

Adds a access definition to the agent config. Equivalent to one vacmAccess-line in the vacm.conf file.

####
delete_access(Key) -> Ret

### Types

Key = term()
Ret = ok | {error, Reason}
Reason = term()

Delete a access definition from the agent config.

####
add_view_tree_fam(ViewIndex, SubTree, Status, Mask) -> Ret

### Types

ViewIndex = integer()
SubTree = oid()
Status = included | excluded
Mask = null | [integer()], where all values are either 0 or 1
Ret = {ok, Key} | {error, Reason}
Key = term()
Reason = term()

Adds a view tree family definition to the agent config. Equivalent to one vacmViewTreeFamily-line in the vacm.conf file.

####
delete_view_tree_fam(Key) -> Ret

### Types

Key = term()
Ret = ok | {error, Reason}
Reason = term()

Delete a view tree family definition from the agent config.