1 // NAME
2 // $RCSfile: UsmAgent.java,v $
3 // DESCRIPTION
4 // [given below in javadoc format]
5 // DELTA
6 // $Revision: 3.8 $
7 // CREATED
8 // $Date: 2006/03/23 14:54:10 $
9 // COPYRIGHT
10 // Westhawk Ltd
11 // TO DO
12 //
13
14 /*
15 * Copyright (C) 2001 - 2006 by Westhawk Ltd
16 * <a href="www.westhawk.co.uk">www.westhawk.co.uk</a>
17 *
18 * Permission to use, copy, modify, and distribute this software
19 * for any purpose and without fee is hereby granted, provided
20 * that the above copyright notices appear in all copies and that
21 * both the copyright notice and this permission notice appear in
22 * supporting documentation.
23 * This software is provided "as is" without express or implied
24 * warranty.
25 * author <a href="mailto:snmp@westhawk.co.uk">Tim Panton</a>
26 */
27
28 package uk.co.westhawk.snmp.stack;
29
30 /*-
31 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
32 * SNMP Java Client
33 * ჻჻჻჻჻჻
34 * Copyright 2023 MetricsHub, Westhawk
35 * ჻჻჻჻჻჻
36 * This program is free software: you can redistribute it and/or modify
37 * it under the terms of the GNU Lesser General Public License as
38 * published by the Free Software Foundation, either version 3 of the
39 * License, or (at your option) any later version.
40 *
41 * This program is distributed in the hope that it will be useful,
42 * but WITHOUT ANY WARRANTY; without even the implied warranty of
43 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44 * GNU General Lesser Public License for more details.
45 *
46 * You should have received a copy of the GNU General Lesser Public
47 * License along with this program. If not, see
48 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
49 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
50 */
51
52 /**
53 * This interface provides the SNMPv3 USM (User-Based Security Model)
54 * authoritative details.
55 *
56 * <p>
57 * When the stack is used as authoritative SNMP engine it has to send
58 * its Engine ID and clock (i.e. Engine Boots and Engine Time) with each
59 * message.
60 * The engine who sends a Response, a Trapv2 or a Report is
61 * authoritative.
62 * </p>
63 *
64 * <p>
65 * Since this stack has no means in providing this information, this
66 * interface has to be implemented by the user.
67 * </p>
68 *
69 * <p>
70 * See <a href="http://www.ietf.org/rfc/rfc3414.txt">SNMP-USER-BASED-SM-MIB</a>.
71 * </p>
72 * @see SnmpContextv3#setUsmAgent
73 *
74 * @author <a href="mailto:snmp@westhawk.co.uk">Birgit Arkesteijn</a>
75 * @version $Revision: 3.8 $ $Date: 2006/03/23 14:54:10 $
76 */
77 public interface UsmAgent {
78 static final String version_id = "@(#)$Id: UsmAgent.java,v 3.8 2006/03/23 14:54:10 birgit Exp $ Copyright Westhawk Ltd";
79
80 /**
81 * This name ("_myusmagent") is used to create an entry in the TimeWindow
82 * for the stack to act as authoritative engine.
83 */
84 public String MYFAKEHOSTNAME = "_myusmagent";
85
86 /**
87 * Returns the authoritative SNMP Engine ID.
88 * It uniquely and unambiguously identifies the SNMP engine, within an
89 * administrative domain.
90 *
91 * <p>
92 * The Engine ID is the (case insensitive) string representation of a
93 * hexadecimal number, without any prefix, for example
94 * <b>010000a1d41e4946</b>.
95 * </p>
96 *
97 * @see uk.co.westhawk.snmp.util.SnmpUtilities#toBytes(String)
98 */
99 public String getSnmpEngineId();
100
101 /**
102 * Returns the authoritative Engine Boots.
103 * It is a count of the number of times the SNMP engine has
104 * re-booted/re-initialized since snmpEngineID was last configured.
105 */
106 public int getSnmpEngineBoots();
107
108 /**
109 * Returns the authoritative Engine Time.
110 * It is the number of seconds since the snmpEngineBoots counter was
111 * last incremented.
112 */
113 public int getSnmpEngineTime();
114
115 /**
116 * Returns the value of the usmStatsUnknownEngineIDs counter.
117 * The stack needs this when responding to a discovery request.
118 */
119 public long getUsmStatsUnknownEngineIDs();
120
121 /**
122 * Returns the value of the usmStatsNotInTimeWindows counter.
123 * The stack needs this when responding to a discovery request.
124 */
125 public long getUsmStatsNotInTimeWindows();
126
127 /**
128 * Sets the current snmp context.
129 */
130 public void setSnmpContext(SnmpContextv3Basis context);
131 }