summaryrefslogtreecommitdiff
path: root/lib/snmp/doc/src/snmp_app.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/snmp/doc/src/snmp_app.xml')
-rw-r--r--lib/snmp/doc/src/snmp_app.xml125
1 files changed, 81 insertions, 44 deletions
diff --git a/lib/snmp/doc/src/snmp_app.xml b/lib/snmp/doc/src/snmp_app.xml
index 978aff59b1..361781cb61 100644
--- a/lib/snmp/doc/src/snmp_app.xml
+++ b/lib/snmp/doc/src/snmp_app.xml
@@ -52,7 +52,7 @@
<!--
-There are achors (marker id) in this file, but do **NOT** link to anything
+There are anchors (marker id) in this file, but do **NOT** link to anything
in this file!! Because of the title is in capital letters, the generated
html file will also be in capital letters.
This should not be a problem since almost everything here is duplicated
@@ -188,22 +188,46 @@ in the snmp_config file!
<tag><marker id="agent_orig_disco_opts"></marker>
<c><![CDATA[agent_originating_discovery_opts() = [agent_originating_discovery_opt()] <optional>]]></c></tag>
<item>
- <p><c>agent_originating_discovery_opt() =
- {enable, boolean()}</c></p>
- <p>These are options effecting discovery <c>originating</c> in this
- agent. </p>
- <p>The default values for the <c>originating</c>
- discovery options are: </p>
- <list type="bulleted">
- <item>enable: <c>true</c></item>
+ <p><c>agent_originating_discovery_opt() = {enable, boolean()}</c></p>
+ <p>These are options effecting discovery <c>originating</c> in this
+ agent. </p>
+ <p>The default values for the <c>originating</c>
+ discovery options are: </p>
+ <list type="bulleted">
+ <item>enable: <c>true</c></item>
</list>
</item>
<tag><marker id="agent_mt"></marker>
- <c><![CDATA[multi_threaded() = bool() <optional>]]></c></tag>
+ <c><![CDATA[multi_threaded() = bool() | extended <optional>]]></c></tag>
<item>
- <p>If <c>true</c>, the agent is multi-threaded, with one
- thread for each get request. </p>
+ <p>If <c>true</c> (or <c>extended</c>), the agent is multi-threaded,
+ with one thread for each get request.</p>
+ <p>The value <c>extended</c> means that a special 'process'
+ is also created intended to handle <em>all</em> notifications. </p>
+ <list>
+ <item>
+ <p><c>true</c> - One worker dedicated to 'set-requests' and one
+ (main) worker for all other requests ('get-request' and
+ notifications).</p>
+ <p>If the 'main' worker is busy, a temporary process is
+ spawned to handle that job ('get-request' or notification). </p>
+ </item>
+ <item>
+ <p><c>extended</c> - One worker dedicated to 'set-requests',
+ one worker dedicated to notifications and one
+ (main) worker for all 'get-requests'. </p>
+ <p>If the 'main' worker is busy, a temporary process is
+ spawned to handle that 'get-request'. </p>
+ </item>
+ </list>
+ <note>
+ <p>Even with multi-threaded set to <c>extended</c>
+ there is still a risk for 'reorder' when sending inform-requsts,
+ which require a response (and may therefor require resending). </p>
+ <p>Also, there is of course no way to guarantee order once the
+ package is on the network. </p>
+ </note>
<p>Default is <c>false</c>.</p>
</item>
@@ -263,7 +287,7 @@ in the snmp_config file!
<item>
<p>Module which handles the network interface part for the
SNMP agent. Must implement the
- <seealso marker="snmpa_network_interface">snmpa_network_interface</seealso> behaviour.</p>
+ <seeerl marker="snmpa_network_interface">snmpa_network_interface</seeerl> behaviour.</p>
<p>Default is <c>snmpa_net_if</c>.</p>
</item>
@@ -271,16 +295,23 @@ in the snmp_config file!
<c><![CDATA[agent_net_if_options() = [agent_net_if_option()] <optional>]]></c></tag>
<item>
<p><c>agent_net_if_option() = {bind_to, bind_to()} |
- {sndbuf, sndbuf()} |
- {recbuf, recbuf()} |
- {no_reuse, no_reuse()} |
- {req_limit, req_limit()} |
- {filter, agent_net_if_filter_options()} |
- {extra_sock_opts, extra_socket_options()}</c></p>
- <p>These options are actually specific to the used module.
- The ones shown here are applicable to the default
- <c>agent_net_if_module()</c>.</p>
- <p>For defaults see the options in <c>agent_net_if_option()</c>.</p>
+ {sndbuf, sndbuf()} |
+ {recbuf, recbuf()} |
+ {no_reuse, no_reuse()} |
+ {req_limit, req_limit()} |
+ {filter, agent_net_if_filter_options()} |
+ {extra_sock_opts, extra_socket_options()}</c></p>
+ <p>These options are actually specific to the used module.
+ The ones shown here are applicable to the default
+ <c>agent_net_if_module()</c>.</p>
+ <note>
+ <p>If the user has configured transports <em>with</em> options
+ then those will take precedence over these options.
+ See
+ <seeguide marker="snmp_agent_config_files#agent_information">agent information</seeguide>
+ for more info. </p>
+ </note>
+ <p>For defaults see the options in <c>agent_net_if_option()</c>.</p>
</item>
<tag><marker id="agent_ni_req_limit"></marker>
@@ -306,7 +337,7 @@ in the snmp_config file!
<item>
<p>Module which handles the network interface filter part for the
SNMP agent. Must implement the
- <seealso marker="snmpa_network_interface_filter">snmpa_network_interface_filter</seealso> behaviour.</p>
+ <seeerl marker="snmpa_network_interface_filter">snmpa_network_interface_filter</seeerl> behaviour.</p>
<p>Default is <c>snmpa_net_if_filter</c>.</p>
</item>
@@ -339,7 +370,7 @@ in the snmp_config file!
<c><![CDATA[mib_storage_module() = snmpa_mib_data_ets | snmpa_mib_data_dets | snmpa_mib_data_mnesia | module()]]></c></tag>
<item>
<p>Defines the mib storage module of the SNMP agent as defined by the
- <seealso marker="snmpa_mib_storage">snmpa_mib_storage</seealso>
+ <seeerl marker="snmpa_mib_storage">snmpa_mib_storage</seeerl>
behaviour. </p>
<p>Several entities (<c>mib-server</c> via the its data module and
the <c>symbolic-store</c>) of the snmp agent uses this for storage
@@ -477,7 +508,7 @@ in the snmp_config file!
<item>
<p>Defines the backend data module of the SNMP agent mib-server as
defined by the
- <seealso marker="snmpa_mib_data">snmpa_mib_data</seealso>
+ <seeerl marker="snmpa_mib_data">snmpa_mib_data</seeerl>
behaviour. </p>
<p>At present only the default module is provided with the agent,
<c>snmpa_mib_data_tttn</c>. </p>
@@ -511,7 +542,7 @@ in the snmp_config file!
<item>
<p>Defines if the mib server shall perform cache gc automatically or
leave it to the user (see
- <seealso marker="snmpa#gc_mibs_cache">gc_mibs_cache/0,1,2,3</seealso>). </p>
+ <seeerl marker="snmpa#gc_mibs_cache">gc_mibs_cache/0,1,2,3</seeerl>). </p>
<p>Default is <c>true</c>.</p>
</item>
@@ -526,21 +557,27 @@ in the snmp_config file!
</item>
<tag><marker id="agent_ms_cache_gclimit"></marker>
- <c><![CDATA[mibs_cache_gclimit() = integer() > 0 | infinity <optional>]]></c></tag>
+ <c><![CDATA[mibs_cache_gclimit() = infinity | integer() > 0 <optional>]]></c></tag>
<item>
<p>When performing a GC, this is the max number of cache entries
that will be deleted from the cache. </p>
- <p>The reason for having this limit is that if the cache is
+
+ <p>The reason why its possible to set a limit, is that if the cache is
large, the GC can potentially take a long time, during which
- the agent is locked. </p>
- <p>Default is <c>100</c>.</p>
+ the agent is "busy".
+ <em>But</em> on a heavily loaded system, we also risk not removing
+ enough elements in the cache, instead causing it to grow over time.
+ This is the reason the default value is <c>infinity</c>, which will
+ ensure that <em>all</em> candidates are removed as soon as possible. </p>
+
+ <p>Default is <c>infinity</c>.</p>
</item>
<tag><marker id="agent_error_report_mod"></marker>
<c><![CDATA[error_report_mod() = atom() <optional>]]></c></tag>
<item>
<p>Defines an error report module, implementing the
- <seealso marker="snmpa_error_report">snmpa_error_report</seealso>
+ <seeerl marker="snmpa_error_report">snmpa_error_report</seeerl>
behaviour. Two modules are provided with the toolkit:
<c>snmpa_error_logger</c> and <c>snmpa_error_io</c>.</p>
<p>Default is <c>snmpa_error_logger</c>.</p>
@@ -613,9 +650,9 @@ in the snmp_config file!
The information will have an <em>best before</em> time,
defined by the <c>Expire</c> time given when calling the
request function (see
- <seealso marker="snmpm#async_get">async_get</seealso>,
- <seealso marker="snmpm#async_get_next">async_get_next</seealso> and
- <seealso marker="snmpm#async_set">async_set</seealso>).</p>
+ <seeerl marker="snmpm#async_get2">async_get</seeerl>,
+ <seeerl marker="snmpm#async_get_next2">async_get_next</seeerl> and
+ <seeerl marker="snmpm#async_set2">async_set</seeerl>).</p>
<p>Time in milli-seconds.</p>
<p>Default is <c>30000</c>.</p>
</item>
@@ -648,7 +685,7 @@ in the snmp_config file!
net-if process.
Note that this will only work if the used net-if process actually supports
the protocol. See
- <seealso marker="snmpm_network_interface">snmpm_network_interface</seealso> behaviour for more info. </p>
+ <seeerl marker="snmpm_network_interface">snmpm_network_interface</seeerl> behaviour for more info. </p>
<taglist>
<tag><marker id="manager_server_nis_none"></marker>
<c><![CDATA[none (default)]]></c></tag>
@@ -720,7 +757,7 @@ in the snmp_config file!
<item>
<p><c>{user, integer()}</c> - The manager will send response
(acknowledgment) to inform-request messages when the
- <seealso marker="snmpm_user#handle_inform">handle_inform</seealso>
+ <seeerl marker="snmpm_user#handle_inform">handle_inform</seeerl>
function completes. The integer is the time, in milli-seconds,
that the manager will consider the stored inform-request info
valid.</p>
@@ -731,9 +768,9 @@ in the snmp_config file!
</item>
</list>
<p>See
- <seealso marker="snmpm_network_interface">snmpm_network_interface</seealso>,
- <seealso marker="snmpm_user">handle_inform</seealso> and
- <seealso marker="snmp_manager_netif">definition of the manager net if</seealso> for more info.</p>
+ <seeerl marker="snmpm_network_interface">snmpm_network_interface</seeerl>,
+ <seeerl marker="snmpm_user">handle_inform</seeerl> and
+ <seeguide marker="snmp_manager_netif">definition of the manager net if</seeguide> for more info.</p>
<p>Default is <c>auto</c>.</p>
</item>
@@ -776,7 +813,7 @@ in the snmp_config file!
<item>
<p>The module which handles the network interface part for the
SNMP manager. It must implement the
- <seealso marker="snmpm_network_interface">snmpm_network_interface</seealso> behaviour.</p>
+ <seeerl marker="snmpm_network_interface">snmpm_network_interface</seeerl> behaviour.</p>
<p>Default is <c>snmpm_net_if</c>.</p>
</item>
@@ -796,7 +833,7 @@ in the snmp_config file!
<item>
<p>Module which handles the network interface filter part for the
SNMP manager. Must implement the
- <seealso marker="snmpm_network_interface_filter">snmpm_network_interface_filter</seealso> behaviour.</p>
+ <seeerl marker="snmpm_network_interface_filter">snmpm_network_interface_filter</seeerl> behaviour.</p>
<p>Default is <c>snmpm_net_if_filter</c>.</p>
</item>
@@ -804,7 +841,7 @@ in the snmp_config file!
<c><![CDATA[def_user_module() = atom() <optional>]]></c></tag>
<item>
<p>The module implementing the default user. See the
- <seealso marker="snmpm_user">snmpm_user</seealso> behaviour.</p>
+ <seeerl marker="snmpm_user">snmpm_user</seeerl> behaviour.</p>
<p>Default is <c>snmpm_user_default</c>.</p>
</item>
@@ -823,7 +860,7 @@ in the snmp_config file!
<tag><marker id="restart_type"></marker>
<c>restart_type() = permanent | transient | temporary</c></tag>
<item>
- <p>See <seealso marker="stdlib:supervisor#child_spec">supervisor</seealso>
+ <p>See <seeerl marker="stdlib:supervisor#child_spec">supervisor</seeerl>
documentation for more info.</p>
<p>Default is <c>permanent</c> for the agent and <c>transient</c>
for the manager.</p>