1%%
2%% %CopyrightBegin%
3%%
4%% Copyright Ericsson AB 2004-2019. All Rights Reserved.
5%%
6%% Licensed under the Apache License, Version 2.0 (the "License");
7%% you may not use this file except in compliance with the License.
8%% You may obtain a copy of the License at
9%%
10%%     http://www.apache.org/licenses/LICENSE-2.0
11%%
12%% Unless required by applicable law or agreed to in writing, software
13%% distributed under the License is distributed on an "AS IS" BASIS,
14%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15%% See the License for the specific language governing permissions and
16%% limitations under the License.
17%%
18%% %CopyrightEnd%
19%%
20-module(snmpa_network_interface).
21
22%% Note that this behaviour is not enough!
23%% There is also a set of mandatory messages which the
24%% network interface entity must be able to receive and
25%% be able to send. See the documentation for more info.
26
27-callback start_link(Prio, NoteStore, MasterAgent, Opts) ->
28    {ok, Pid} | {error, Reason} when
29      Prio        :: low | normal | high, % priority_level(),
30      NoteStore   :: pid(),
31      MasterAgent :: pid(),
32      Opts        :: [Option],
33      Option      :: {verbosity, snmp:verbosity()} |
34                     {versions,  [snmp:version()]} |
35                     term(),
36      Pid         :: pid(),
37      Reason      :: term().
38
39-callback info(Pid) ->
40    Info when
41      Pid   :: pid(),
42      Info  :: [{Key, Value}],
43      Key   :: term(),
44      Value :: term().
45
46-callback verbosity(Pid, Verbosity) ->
47    snmp:void() when
48      Pid       :: pid(),
49      Verbosity :: snmp:verbosity().
50
51-callback get_log_type(Pid) ->
52    {ok, LogType} | {error, Reason} when
53      Pid     :: pid(),
54      LogType :: snmp:atl_type(),
55      Reason  :: term().
56
57-callback set_log_type(Pid, NewType) ->
58    {ok, OldType} | {error, Reason} when
59      Pid     :: pid(),
60      NewType :: snmp:atl_type(),
61      OldType :: snmp:atl_type(),
62      Reason  :: term().
63
64-callback get_request_limit(Pid) ->
65    {ok, Limit} when
66      Pid   :: pid(),
67      Limit :: non_neg_integer() | infinity.
68
69-callback set_request_limit(Pid, NewLimit) ->
70    {ok, OldLimit} when
71      Pid      :: pid(),
72      NewLimit :: non_neg_integer() | infinity,
73      OldLimit :: non_neg_integer() | infinity.
74
75