From c842e38a1be4a92f14a309a6ccb66f33b5585088 Mon Sep 17 00:00:00 2001 From: Micael Karlberg Date: Tue, 26 Mar 2019 11:25:50 +0100 Subject: [snmp|agent] Add the default get-mechanism module snmpa_get Added the snmpa_get module as the default get-mechanism for the agent. This has been done by simply moving the do_get, do_get_next and do_get_bulk functions from the snmpa_agent module. Some functions where also moved into the lib module (with the idea of beeing more generally useful). OTP-15691 --- lib/snmp/test/modules.mk | 1 + lib/snmp/test/snmp_agent_test_get.erl | 55 +++++++++++++++++++++++++++++++++++ lib/snmp/test/snmp_agent_test_lib.erl | 1 + 3 files changed, 57 insertions(+) create mode 100644 lib/snmp/test/snmp_agent_test_get.erl (limited to 'lib/snmp/test') diff --git a/lib/snmp/test/modules.mk b/lib/snmp/test/modules.mk index 0f54e67c65..8b6547f9a9 100644 --- a/lib/snmp/test/modules.mk +++ b/lib/snmp/test/modules.mk @@ -31,6 +31,7 @@ SUITE_MODULES = \ snmp_agent_mibs_test \ snmp_agent_nfilter_test \ snmp_agent_test \ + snmp_agent_test_get \ snmp_agent_conf_test \ snmp_agent_test_lib \ snmp_manager_config_test \ diff --git a/lib/snmp/test/snmp_agent_test_get.erl b/lib/snmp/test/snmp_agent_test_get.erl new file mode 100644 index 0000000000..46436044f5 --- /dev/null +++ b/lib/snmp/test/snmp_agent_test_get.erl @@ -0,0 +1,55 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2019-2019. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%% +%% %CopyrightEnd% +%% + +-module(snmp_agent_test_get). + +-behaviour(snmpa_get_mechanism). + + +%%%----------------------------------------------------------------- +%%% snmpa_get_mechanism exports +%%%----------------------------------------------------------------- + +-export([ + do_get/2, do_get/3, + do_get_next/2, + do_get_bulk/6 + ]). + + + +do_get(UnsortedVarbinds, IsNotification) -> + snmpa_get:do_get(UnsortedVarbinds, IsNotification). + + + +do_get(MibView, UnsortedVarbinds, IsNotification) -> + snmpa_get:do_get(MibView, UnsortedVarbinds, IsNotification). + + +do_get_next(MibView, UnsortedVBs) -> + snmpa_get:do_get_next(MibView, UnsortedVBs). + + + + +do_get_bulk(MibView, NonRepeaters, MaxRepetitions, PduMS, Varbinds, GbMaxVBs) -> + snmpa_get:do_get_bulk(MibView, NonRepeaters, MaxRepetitions, + PduMS, Varbinds, GbMaxVBs). diff --git a/lib/snmp/test/snmp_agent_test_lib.erl b/lib/snmp/test/snmp_agent_test_lib.erl index 66211d7105..c19c88528f 100644 --- a/lib/snmp/test/snmp_agent_test_lib.erl +++ b/lib/snmp/test/snmp_agent_test_lib.erl @@ -445,6 +445,7 @@ start_agent(Config, Vsns, Opts) -> [{versions, Vsns}, {agent_type, master}, {agent_verbosity, trace}, + {get_mechanism, snmp_agent_test_get}, {db_dir, AgentDbDir}, {audit_trail_log, [{type, read_write}, {dir, AgentLogDir}, -- cgit v1.2.3 From b528d830a741f6611b704ddcce1e702b41757c36 Mon Sep 17 00:00:00 2001 From: Micael Karlberg Date: Wed, 27 Mar 2019 11:00:53 +0100 Subject: [snmp|agent] Add the net-if data (Extra) argument to get-callbacks Added the Extra (net-if data) argument to all the get- mechanism callback functions. OTP-15691 --- lib/snmp/test/snmp_agent_test_get.erl | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'lib/snmp/test') diff --git a/lib/snmp/test/snmp_agent_test_get.erl b/lib/snmp/test/snmp_agent_test_get.erl index 46436044f5..517c71507a 100644 --- a/lib/snmp/test/snmp_agent_test_get.erl +++ b/lib/snmp/test/snmp_agent_test_get.erl @@ -28,28 +28,31 @@ %%%----------------------------------------------------------------- -export([ - do_get/2, do_get/3, - do_get_next/2, - do_get_bulk/6 + do_get/3, do_get/4, + do_get_next/3, + do_get_bulk/7 ]). -do_get(UnsortedVarbinds, IsNotification) -> - snmpa_get:do_get(UnsortedVarbinds, IsNotification). +do_get(UnsortedVarbinds, IsNotification, Extra) -> + snmpa_get:do_get(UnsortedVarbinds, IsNotification, Extra). -do_get(MibView, UnsortedVarbinds, IsNotification) -> - snmpa_get:do_get(MibView, UnsortedVarbinds, IsNotification). +do_get(MibView, UnsortedVarbinds, IsNotification, Extra) -> + snmpa_get:do_get(MibView, UnsortedVarbinds, IsNotification, Extra). -do_get_next(MibView, UnsortedVBs) -> - snmpa_get:do_get_next(MibView, UnsortedVBs). +do_get_next(MibView, UnsortedVBs, Extra) -> + snmpa_get:do_get_next(MibView, UnsortedVBs, Extra). -do_get_bulk(MibView, NonRepeaters, MaxRepetitions, PduMS, Varbinds, GbMaxVBs) -> + +do_get_bulk(MibView, NonRepeaters, MaxRepetitions, + PduMS, Varbinds, GbMaxVBs, Extra) -> snmpa_get:do_get_bulk(MibView, NonRepeaters, MaxRepetitions, - PduMS, Varbinds, GbMaxVBs). + PduMS, Varbinds, GbMaxVBs, + Extra). -- cgit v1.2.3 From b9a0da00aa0259e35b505d674d2a656020fdbdfe Mon Sep 17 00:00:00 2001 From: Micael Karlberg Date: Wed, 27 Mar 2019 15:40:56 +0100 Subject: [snmp|manager|test] Add bind_to for agents On some linux platforms "they" add a 127.0.1.1 in the hosts file, wich can cause problems for some (manager) test cases. So, just to be on the safe side, make sure we bind to the configured address. Note that this has nothing to do with the current issue. --- lib/snmp/test/snmp_manager_test.erl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib/snmp/test') diff --git a/lib/snmp/test/snmp_manager_test.erl b/lib/snmp/test/snmp_manager_test.erl index 6ced55f0cc..bb9b05b89f 100644 --- a/lib/snmp/test/snmp_manager_test.erl +++ b/lib/snmp/test/snmp_manager_test.erl @@ -6179,7 +6179,12 @@ start_agent(Node, Vsns, Conf0, _Opts) -> {mib_server, [{verbosity, MSV}]}, {note_store, [{verbosity, NSV}]}, {stymbolic_store, [{verbosity, SSV}]}, - {net_if, [{verbosity, NIV}]}, + {net_if, [{verbosity, NIV}, + %% On some linux "they" add a 127.0.1.1 or somthing + %% similar, so if we don't specify bind_to + %% we don't know which address will be selected + %% (which will cause problems for some test cases). + {options, [{bind_to, true}]}]}, {multi_threaded, true}], ?line ok = set_agent_env(Node, Env), -- cgit v1.2.3