From 31b06641f692641f82c489069584220609e1e840 Mon Sep 17 00:00:00 2001
From: Micael Karlberg
Date: Tue, 21 May 2013 11:17:44 +0200
Subject: [snmp/agent] backup
---
lib/snmp/doc/src/snmp_app.xml | 48 ++++++++++++++++++++++---------------------
1 file changed, 25 insertions(+), 23 deletions(-)
(limited to 'lib/snmp/doc/src')
diff --git a/lib/snmp/doc/src/snmp_app.xml b/lib/snmp/doc/src/snmp_app.xml
index c7a74f0ca6..9cdbcc91c5 100644
--- a/lib/snmp/doc/src/snmp_app.xml
+++ b/lib/snmp/doc/src/snmp_app.xml
@@ -312,29 +312,31 @@
- ]]>
- -
-
Specifies how info retrieved from the mibs will be stored.
- If mib_storage is {ets, Dir}, the table will also be
- stored on file. If Dir is default, then db_dir
- will be used.
- If mib_storage is dets or if Dir is
- default, then db_dir will be used for Dir.
- If mib_storage is mnesia then erlang:nodes()
- will be used for Nodes.
- Default is ets.
- Dir = default | string(). Dir is the directory where the
- files will be stored. If default, then db_dir will be
- used.
- Nodes = visible | connected | [node()].
- Nodes = visible is translated to
- erlang:nodes(visible).
- Nodes = connected is translated to
- erlang:nodes(connected).
- If Nodes = [] then the own node is assumed.
- Action = clear | keep. Default is keep.
- Action is used to specify what shall be done if the
- mnesia/dets table already exist.
+
+ -
+
mib_storage_opt() = {module, mib_storage_module()} | {options, list()}
+ This option specifies how basic mib data is stored.
+ This option is used by two parts of the snmp agent:
+ The mib-server and the symbolic-store.
+ Default is [{module, snmpa_mib_storage_ets}].
+
+
+
+ ]]>
+ -
+
Defines the callback mib data storage module of the
+ SNMP agent mib-server as defined by the
+ snmpa_mib_data
+ behaviour.
+ At present only the default module is provided with the agent,
+ snmpa_mib_data_tttn.
+
+ Default module is snmpa_mib_data_tttn.
--
cgit v1.2.3
From 4e7bd62bf3b38b40eee02766b0ad68fdf75fa1c9 Mon Sep 17 00:00:00 2001
From: Micael Karlberg
Date: Tue, 21 May 2013 15:00:42 +0200
Subject: [snmp/agent] Add mib-storage behaviour ref-man documentation
---
lib/snmp/doc/src/files.mk | 1 +
lib/snmp/doc/src/notes.xml | 13 +++++
lib/snmp/doc/src/ref_man.xml | 1 +
lib/snmp/doc/src/snmp_app.xml | 94 +++++++++++++++++++++++++++++------
lib/snmp/doc/src/snmp_config.xml | 98 +++++++++++++++++++++++++++++++++++++
lib/snmp/doc/src/snmpa_mib_data.xml | 2 +-
6 files changed, 193 insertions(+), 16 deletions(-)
(limited to 'lib/snmp/doc/src')
diff --git a/lib/snmp/doc/src/files.mk b/lib/snmp/doc/src/files.mk
index e215143b03..494c550fff 100644
--- a/lib/snmp/doc/src/files.mk
+++ b/lib/snmp/doc/src/files.mk
@@ -42,6 +42,7 @@ XML_AGENT_REF3_FILES = \
snmpa_error_logger.xml \
snmpa_local_db.xml \
snmpa_mib_data.xml \
+ snmpa_mib_storage.xml \
snmpa_mpd.xml \
snmpa_network_interface.xml \
snmpa_network_interface_filter.xml \
diff --git a/lib/snmp/doc/src/notes.xml b/lib/snmp/doc/src/notes.xml
index 2dfe347e42..b6c7c22fb0 100644
--- a/lib/snmp/doc/src/notes.xml
+++ b/lib/snmp/doc/src/notes.xml
@@ -56,6 +56,19 @@
data_module.
Own Id: OTP-11101
+
+ -
+
[agent] Introduced a documented behaviour for the
+ mib storage.
+ At present there are three simple modules
+ (snmpa_mib_storage_ets, snmpa_mib_storage_dets and
+ snmpa_mib_storage_mnesia) implementíng this behaviour,
+ provided with the app.
+ A config option for the (agent)
+ mib storage
+ has been added to the agent config options.
+ Own Id: OTP-11107
+
diff --git a/lib/snmp/doc/src/ref_man.xml b/lib/snmp/doc/src/ref_man.xml
index 2c12ac665a..628b30b11a 100644
--- a/lib/snmp/doc/src/ref_man.xml
+++ b/lib/snmp/doc/src/ref_man.xml
@@ -45,6 +45,7 @@
+
diff --git a/lib/snmp/doc/src/snmp_app.xml b/lib/snmp/doc/src/snmp_app.xml
index 9cdbcc91c5..c62c8f1541 100644
--- a/lib/snmp/doc/src/snmp_app.xml
+++ b/lib/snmp/doc/src/snmp_app.xml
@@ -311,8 +311,8 @@
Default is [].
-
-
+
+ ]]>
-
mib_storage_opt() = {module, mib_storage_module()} | {options, list()}
This option specifies how basic mib data is stored.
@@ -322,21 +322,85 @@
- ]]>
+
-
-
Defines the callback mib data storage module of the
- SNMP agent mib-server as defined by the
- snmpa_mib_data
+
Defines the mib storage module of the SNMP agent as defined by the
+ snmpa_mib_storage
behaviour.
- At present only the default module is provided with the agent,
- snmpa_mib_data_tttn.
-
- Default module is snmpa_mib_data_tttn.
+ Several entities (mib-server via the its data module and
+ the symbolic-store) of the snmp agent uses this for storage
+ of miscelaneous mib data.
+ There are several implementations provided with the agent:
+ snmpa_mib_storage_ets, snmpa_mib_storage_dets and
+ snmpa_mib_storage_mnesia.
+ Default module is snmpa_mib_storage_ets.
+
+
+
+ ]]>
+ -
+
This is implementattion depended. That is, it depends on the
+ module. For each module a specific set of options are valid:
+
+ -
+
snmpa_mib_storage_ets: {dir, filename()} | {action, keep | clear}, {checksum, boolean()}
+
+ -
+
dir - If present, points to a directory where a file
+ to which all data in the ets table is "synced".
+ Also, when a table is opened this file is read,
+ if it exists.
+ By default, this will not be used.
+
+ -
+
action - Specifies the behaviour when a non-empty
+ file is found: Keep its content or clear it out.
+ Default is keep.
+
+ -
+
checksum - Defines if the file is checksummed
+ or not.
+ Default is false.
+
+
+
+ -
+
snmpa_mib_storage_dets: {dir, filename()} | {action, keep | clear}, {auto_save, default | pos_integer()} | {repair, force | boolean()}
+
+ -
+
dir - This mandatory option points to a
+ directory where to place the file of a dets table.
+
+ -
+
action - Specifies the behaviour when a non-empty
+ file is found: Keep its content or clear it out.
+ Default is keep.
+
+ -
+
auto_save - Defines the dets auto-save frequency.
+ Default is default.
+
+ -
+
repair - Defines the dets repair behaviour.
+ Default is false.
+
+
+
+ -
+
snmpa_mib_storage_mnesia: {action, keep | clear}, {nodes, [node()]}
+
+ -
+
action - Specifies the behaviour when a non-empty,
+ already existing, table: Keep its content or clear it out.
+ Default is keep.
+
+ -
+
nodes - Defines where to open the table.
+ Default is the result of the call: erlang:nodes().
+
+
+
+
diff --git a/lib/snmp/doc/src/snmp_config.xml b/lib/snmp/doc/src/snmp_config.xml
index 28bfcbb3de..a88111085f 100644
--- a/lib/snmp/doc/src/snmp_config.xml
+++ b/lib/snmp/doc/src/snmp_config.xml
@@ -308,6 +308,103 @@
Default is [].
+
+ ]]>
+ -
+
mib_storage_opt() = {module, mib_storage_module()} | {options, list()}
+ This option specifies how basic mib data is stored.
+ This option is used by two parts of the snmp agent:
+ The mib-server and the symbolic-store.
+ Default is [{module, snmpa_mib_storage_ets}].
+
+
+
+
+ -
+
Defines the mib storage module of the SNMP agent as defined by the
+ snmpa_mib_storage
+ behaviour.
+ Several entities (mib-server via the its data module and
+ the symbolic-store) of the snmp agent uses this for storage
+ of miscelaneous mib data.
+ There are several implementations provided with the agent:
+ snmpa_mib_storage_ets, snmpa_mib_storage_dets and
+ snmpa_mib_storage_mnesia.
+ Default module is snmpa_mib_storage_ets.
+
+
+
+ ]]>
+ -
+
This is implementattion depended. That is, it depends on the
+ module. For each module a specific set of options are valid:
+
+ -
+
snmpa_mib_storage_ets: {dir, filename()} | {action, keep | clear}, {checksum, boolean()}
+
+ -
+
dir - If present, points to a directory where a file
+ to which all data in the ets table is "synced".
+ Also, when a table is opened this file is read,
+ if it exists.
+ By default, this will not be used.
+
+ -
+
action - Specifies the behaviour when a non-empty
+ file is found: Keep its content or clear it out.
+ Default is keep.
+
+ -
+
checksum - Defines if the file is checksummed
+ or not.
+ Default is false.
+
+
+
+ -
+
snmpa_mib_storage_dets: {dir, filename()} | {action, keep | clear}, {auto_save, default | pos_integer()} | {repair, force | boolean()}
+
+ -
+
dir - This mandatory option points to a
+ directory where to place the file of a dets table.
+
+ -
+
action - Specifies the behaviour when a non-empty
+ file is found: Keep its content or clear it out.
+ Default is keep.
+
+ -
+
auto_save - Defines the dets auto-save frequency.
+ Default is default.
+
+ -
+
repair - Defines the dets repair behaviour.
+ Default is false.
+
+
+
+ -
+
snmpa_mib_storage_mnesia: {action, keep | clear}, {nodes, [node()]}
+
+ -
+
action - Specifies the behaviour when a non-empty,
+ already existing, table: Keep its content or clear it out.
+ Default is keep.
+
+ -
+
nodes - Defines where to open the table.
+ Default is the result of the call: erlang:nodes().
+
+
+
+
+
+
+
]]>
diff --git a/lib/snmp/doc/src/snmpa_mib_data.xml b/lib/snmp/doc/src/snmpa_mib_data.xml
index 4c971ec5d9..ff07a03b98 100644
--- a/lib/snmp/doc/src/snmpa_mib_data.xml
+++ b/lib/snmp/doc/src/snmpa_mib_data.xml
@@ -122,7 +122,7 @@
Module:close(State) -> void()
- Close the mib-storage
+ Close the mib-server data instance
State = term()
--
cgit v1.2.3
From 39540e7c380f6cb218a2ec6324f6296fa8327dba Mon Sep 17 00:00:00 2001
From: Micael Karlberg
Date: Thu, 23 May 2013 12:35:38 +0200
Subject: [snmp/agent] Updated open options for the mnesia mib-storage module
Updated the snmpa_mib_storage_mnesia module to handle alias
atoms for the nodes option.
Also, (git) added mib-storage behaviour ref-man.
---
lib/snmp/doc/src/snmp_app.xml | 29 +++-
lib/snmp/doc/src/snmp_config.xml | 29 +++-
lib/snmp/doc/src/snmpa_mib_storage.xml | 292 +++++++++++++++++++++++++++++++++
3 files changed, 344 insertions(+), 6 deletions(-)
create mode 100644 lib/snmp/doc/src/snmpa_mib_storage.xml
(limited to 'lib/snmp/doc/src')
diff --git a/lib/snmp/doc/src/snmp_app.xml b/lib/snmp/doc/src/snmp_app.xml
index c62c8f1541..f5a6de1099 100644
--- a/lib/snmp/doc/src/snmp_app.xml
+++ b/lib/snmp/doc/src/snmp_app.xml
@@ -329,7 +329,7 @@
behaviour.
Several entities (mib-server via the its data module and
the symbolic-store) of the snmp agent uses this for storage
- of miscelaneous mib data.
+ of miscelaneous mib related data retrieved while loading a mib.
There are several implementations provided with the agent:
snmpa_mib_storage_ets, snmpa_mib_storage_dets and
snmpa_mib_storage_mnesia.
@@ -340,7 +340,8 @@
]]>
-
This is implementattion depended. That is, it depends on the
- module. For each module a specific set of options are valid:
+ module. For each module a specific set of options are valid.
+ For the module provided with the app, these options are supported:
-
snmpa_mib_storage_ets: {dir, filename()} | {action, keep | clear}, {checksum, boolean()}
@@ -395,7 +396,29 @@
Default is keep.
-
-
nodes - Defines where to open the table.
+ nodes - A list of node names (or an atom
+ describing a list of nodes) defining where to open the table.
+ Its up to the user to ensure that mnesia is actually running
+ on the specified nodes.
+ The following distinct values are recognised:
+
+ -
+
[] - Translated into a list of the own node: [node()]
+
+ -
+
all - erlang:nodes()
+
+ -
+
visible - erlang:nodes(visible)
+
+ -
+
connected - erlang:nodes(connected)
+
+ -
+
db_nodes - mnesia:system_info(db_nodes)
+
+
+
Default is the result of the call: erlang:nodes().
diff --git a/lib/snmp/doc/src/snmp_config.xml b/lib/snmp/doc/src/snmp_config.xml
index a88111085f..f1acebf2f7 100644
--- a/lib/snmp/doc/src/snmp_config.xml
+++ b/lib/snmp/doc/src/snmp_config.xml
@@ -326,7 +326,7 @@
behaviour.
Several entities (mib-server via the its data module and
the symbolic-store) of the snmp agent uses this for storage
- of miscelaneous mib data.
+ of miscelaneous mib related data dataretrieved while loading a mib.
There are several implementations provided with the agent:
snmpa_mib_storage_ets, snmpa_mib_storage_dets and
snmpa_mib_storage_mnesia.
@@ -337,7 +337,8 @@
]]>
-
This is implementattion depended. That is, it depends on the
- module. For each module a specific set of options are valid:
+ module. For each module a specific set of options are valid.
+ For the module provided with the app, these options are supported:
-
snmpa_mib_storage_ets: {dir, filename()} | {action, keep | clear}, {checksum, boolean()}
@@ -392,7 +393,29 @@
Default is keep.
-
-
nodes - Defines where to open the table.
+ nodes - A list of node names (or an atom
+ describing a list of nodes) defining where to open the table.
+ Its up to the user to ensure that mnesia is actually running
+ on the specified nodes.
+ The following distinct values are recognised:
+
+ -
+
[] - Translated into a list of the own node: [node()]
+
+ -
+
all - erlang:nodes()
+
+ -
+
visible - erlang:nodes(visible)
+
+ -
+
connected - erlang:nodes(connected)
+
+ -
+
db_nodes - mnesia:system_info(db_nodes)
+
+
+
Default is the result of the call: erlang:nodes().
diff --git a/lib/snmp/doc/src/snmpa_mib_storage.xml b/lib/snmp/doc/src/snmpa_mib_storage.xml
new file mode 100644
index 0000000000..a857ce79e8
--- /dev/null
+++ b/lib/snmp/doc/src/snmpa_mib_storage.xml
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+ 20132013
+ Ericsson AB. All Rights Reserved.
+
+
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+
+
+ snmpa_mib_storage
+
+
+
+
+ snmpa_mib_storage.xml
+
+
+ snmpa_mib_storage
+
+ Behaviour module for the SNMP agent mib storage.
+
+
+ This module defines the behaviour of the SNMP agent mib storage.
+ The mib storage is used by the agent to store internal mib-
+ related information. The mib storage module is used by several entities,
+ not just the mib-server.
+
+ A snmpa_mib_storage compliant module
+ must export the following functions:
+
+ -
+ open/5
+
+ -
+ close/1
+
+ -
+ read/2
+
+ -
+ write/2
+
+ -
+ delete/1
+
+ -
+ delete/2
+
+ -
+ match_object/2
+
+ -
+ match_delete/2
+
+ -
+ tab2list/1
+
+ -
+ info/1
+
+ -
+ sync/1
+
+ -
+ backup/2
+
+
+
+ The semantics of them and their exact signatures are
+ explained below.
+
+
+
+
+ CALLBACK FUNCTIONS
+ The following functions must be exported from a
+ mib-server data callback module:
+
+
+
+
+
+
+ Module:open(Name, RecordName, Fields, Type, Options) -> {ok, TabId} | {error, Reason}
+ Create new (mib-server) data instance
+
+ Name = atom()
+ RecordName = atom()
+ Fields = [atom()]
+ Type = set | bag()
+ Options = list()
+ TabId = term()
+ Reason = term()
+
+
+ Create or open a mib storage table.
+ Note that the RecordName and Fields arguments
+ my not be used in all implementations (they are actually only
+ needed for mnesia-based implementations).
+
+ Note also that the Options argument comes from
+ the options config option of the mib-storage config option,
+ and is passed on as is.
+
+
+
+
+
+
+ Module:close(TabId) -> void()
+ Close the mib-storage table
+
+ State = term()
+
+
+ Close the mib-storage table.
+
+
+
+
+
+
+ Module:read(TabId, Key) -> false | {value, Record}
+ Read a record from the mib-storage table
+
+ TabId = term()
+ Key = term()
+ Record = tuple()
+
+
+ Read a record from the mib-storage table.
+
+
+
+
+
+
+ Module:write(TabId, Record) -> ok | {error, Reason}
+ Write a record to the mib-storage table
+
+ TabId = term()
+ Record = tuple()
+ Reason = term()
+
+
+ Write a record to the mib-storage table.
+
+
+
+
+
+
+ Module:delete(TabId) -> void()
+ Delete an entire mib-storage table
+
+ TabId = term()
+
+
+ Delete an entire mib-storage table.
+
+
+
+
+
+
+ Module:delete(TabId, Key) -> ok | {error, Reason}
+ Delete a record from the mib-storage table
+
+ TabId = term()
+ Key = term()
+ Reason = term()
+
+
+ Delete a record from the mib-storage table.
+
+
+
+
+
+
+ Module:match_object(TabId, Pattern) -> {ok, Recs} | {error, Reason}
+ Search the mib-storage table for record matching pattern
+
+ TabId = term()
+ Pattern = match_pattern()
+ Recs = [tuple()]
+ Reason = term()
+
+
+ Search the mib-storage table for record that match the
+ specified pattern.
+
+
+
+
+
+
+ Module:match_delete(TabId, Pattern) -> {ok, Recs} | {error, Reason}
+ Delete records in the mib-storage table matching pattern
+
+ TabId = term()
+ Pattern = match_pattern()
+ Recs = [tuple()]
+ Reason = term()
+
+
+ Search the mib-storage table for record that match the
+ specified pattern and then delete them. The records deleted are
+ also returned.
+
+
+
+
+
+
+ Module:tab2list(TabId) -> Recs
+ Return all records of the mib-storage table
+
+ TabId = term()
+ Recs = [tuple()]
+
+
+ Return all records in the mib-storage table in the form
+ of a list.
+
+
+
+
+
+
+ Module:info(TabId) -> {ok, Info} | {error, Reason}
+ Returns information about the mib-storage table.
+
+ TabId = term()
+ Info = term()
+ Reason = term()
+
+
+ Retrieve implementation dependent mib-storage table
+ information.
+
+
+
+
+
+
+ Module:sync(TabId) -> void()
+ Synchronize mib-storage table
+
+ TabId = term()
+
+
+ Synchronize the mib-storage table.
+ What this means, if anything, is implementation dependent.
+
+
+
+
+
+
+ Module:backup(TabId, BackupDir) -> ok | {error, Reason}
+ Perform a backup of the mib-storage table
+
+ TabId = term()
+ BackupDir = string()
+ Reason = term()
+
+
+ Perform a backup of the mib-storage table.
+ What this means, if anything, is implementation dependent.
+
+
+
+
+
+
+
+
--
cgit v1.2.3