diff options
Diffstat (limited to 'lib/snmp/doc/src/snmp_app.xml')
-rw-r--r-- | lib/snmp/doc/src/snmp_app.xml | 125 |
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> |