snmp_agent.h
Go to the documentation of this file.
1 /**
2  * @file snmp_agent.h
3  * @brief SNMP agent (Simple Network Management Protocol)
4  *
5  * @section License
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  *
9  * Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
10  *
11  * This file is part of CycloneTCP Open.
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software Foundation,
25  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26  *
27  * @author Oryx Embedded SARL (www.oryx-embedded.com)
28  * @version 2.4.0
29  **/
30 
31 #ifndef _SNMP_AGENT_H
32 #define _SNMP_AGENT_H
33 
34 //Forward declaration of SnmpAgentContext structure
35 struct _SnmpAgentContext;
36 #define SnmpAgentContext struct _SnmpAgentContext
37 
38 //Dependencies
39 #include "core/net.h"
40 #include "snmp/snmp_common.h"
42 #include "snmp/snmp_agent_trap.h"
43 #include "snmp/snmp_agent_inform.h"
44 #include "snmp/snmp_agent_usm.h"
45 #include "snmp/snmp_agent_vacm.h"
46 #include "mibs/mib_common.h"
47 
48 //SNMP agent support
49 #ifndef SNMP_AGENT_SUPPORT
50  #define SNMP_AGENT_SUPPORT DISABLED
51 #elif (SNMP_AGENT_SUPPORT != ENABLED && SNMP_AGENT_SUPPORT != DISABLED)
52  #error SNMP_AGENT_SUPPORT parameter is not valid
53 #endif
54 
55 //Stack size required to run the SNMP agent
56 #ifndef SNMP_AGENT_STACK_SIZE
57  #define SNMP_AGENT_STACK_SIZE 550
58 #elif (SNMP_AGENT_STACK_SIZE < 1)
59  #error SNMP_AGENT_STACK_SIZE parameter is not valid
60 #endif
61 
62 //Priority at which the SNMP agent should run
63 #ifndef SNMP_AGENT_PRIORITY
64  #define SNMP_AGENT_PRIORITY OS_TASK_PRIORITY_NORMAL
65 #endif
66 
67 //Maximum number of MIBs
68 #ifndef SNMP_AGENT_MAX_MIBS
69  #define SNMP_AGENT_MAX_MIBS 8
70 #elif (SNMP_AGENT_MAX_MIBS < 1)
71  #error SNMP_AGENT_MAX_MIBS parameter is not valid
72 #endif
73 
74 //Maximum number of community strings
75 #ifndef SNMP_AGENT_MAX_COMMUNITIES
76  #define SNMP_AGENT_MAX_COMMUNITIES 3
77 #elif (SNMP_AGENT_MAX_COMMUNITIES < 1)
78  #error SNMP_AGENT_MAX_COMMUNITIES parameter is not valid
79 #endif
80 
81 //Maximum number of users
82 #ifndef SNMP_AGENT_MAX_USERS
83  #define SNMP_AGENT_MAX_USERS 8
84 #elif (SNMP_AGENT_MAX_USERS < 1)
85  #error SNMP_AGENT_MAX_USERS parameter is not valid
86 #endif
87 
88 //Size of the group table
89 #ifndef SNMP_AGENT_GROUP_TABLE_SIZE
90  #define SNMP_AGENT_GROUP_TABLE_SIZE 8
91 #elif (SNMP_AGENT_GROUP_TABLE_SIZE < 1)
92  #error SNMP_AGENT_GROUP_TABLE_SIZE parameter is not valid
93 #endif
94 
95 //Size of the access table
96 #ifndef SNMP_AGENT_ACCESS_TABLE_SIZE
97  #define SNMP_AGENT_ACCESS_TABLE_SIZE 8
98 #elif (SNMP_AGENT_ACCESS_TABLE_SIZE < 1)
99  #error SNMP_AGENT_ACCESS_TABLE_SIZE parameter is not valid
100 #endif
101 
102 //Size of the view table
103 #ifndef SNMP_AGENT_VIEW_TABLE_SIZE
104  #define SNMP_AGENT_VIEW_TABLE_SIZE 8
105 #elif (SNMP_AGENT_VIEW_TABLE_SIZE < 1)
106  #error SNMP_AGENT_VIEW_TABLE_SIZE parameter is not valid
107 #endif
108 
109 //Application specific context
110 #ifndef SNMP_AGENT_PRIVATE_CONTEXT
111  #define SNMP_AGENT_PRIVATE_CONTEXT
112 #endif
113 
114 //C++ guard
115 #ifdef __cplusplus
116 extern "C" {
117 #endif
118 
119 
120 /**
121  * @brief Random data generation callback function
122  **/
123 
124 typedef error_t (*SnmpAgentRandCallback)(uint8_t *data, size_t length);
125 
126 
127 /**
128  * @brief SNMP agent settings
129  **/
130 
131 typedef struct
132 {
133  OsTaskParameters task; ///<Task parameters
134  NetInterface *interface; ///<Network interface to configure
135  SnmpVersion versionMin; ///<Minimum version accepted by the SNMP agent
136  SnmpVersion versionMax; ///<Maximum version accepted by the SNMP agent
137  uint16_t port; ///<SNMP port number
138  uint16_t trapPort; ///<SNMP trap port number
139  SnmpAgentRandCallback randCallback; ///<Random data generation callback function
141 
142 
143 /**
144  * @brief SNMP agent context
145  **/
146 
148 {
149  SnmpAgentSettings settings; ///<SNMP agent settings
150  bool_t running; ///<Operational state of the SNMP agent
151  bool_t stop; ///<Stop request
152  OsMutex mutex; ///<Mutex preventing simultaneous access to SNMP agent context
153  OsEvent event; ///<Event object used to poll the underlying socket
154  OsTaskParameters taskParams; ///<Task parameters
155  OsTaskId taskId; ///<Task identifier
156  uint8_t enterpriseOid[SNMP_MAX_OID_SIZE]; ///<Enterprise OID
157  size_t enterpriseOidLen; ///<Length of the enterprise OID
158  const MibModule *mibTable[SNMP_AGENT_MAX_MIBS]; ///<MIB modules
159 #if (SNMP_V1_SUPPORT == ENABLED || SNMP_V2C_SUPPORT == ENABLED)
161 #endif
162 #if (SNMP_V3_SUPPORT == ENABLED)
164 #endif
165 #if (SNMP_AGENT_VACM_SUPPORT == ENABLED)
168  SnmpViewEntry viewTable[SNMP_AGENT_VIEW_TABLE_SIZE]; ///<Families of subtrees within MIB views
169 #endif
170  Socket *socket; ///<Underlying socket
171  NetInterface *localInterface; ///<Network interface the SNMP request was received on
172  IpAddr localIpAddr; ///<Destination IP address of the received SNMP request
173  IpAddr remoteIpAddr; ///<Source IP address of the received SNMP request
174  uint16_t remotePort; ///<Source port of the received SNMP request
175  int32_t requestId; ///<Request identifier
176  SnmpMessage request; ///<SNMP request message
177  SnmpMessage response; ///<SNMP response message
178  SnmpUserEntry user; ///<Security profile of current user
179 #if (SNMP_V3_SUPPORT == ENABLED)
180  uint8_t contextEngine[SNMP_MAX_CONTEXT_ENGINE_SIZE]; ///<Context engine identifier
181  size_t contextEngineLen; ///<Length of the context engine identifier
183  systime_t systemTime; ///<System time
184  int32_t engineBoots; ///<Number of times that the SNMP engine has rebooted
185  int32_t engineTime; ///<SNMP engine time
186  int32_t msgId; ///<Message identifier
187  uint64_t salt; ///<Integer initialized to a random value at boot time
188  uint8_t privParameters[8]; ///<Privacy parameters
189 #endif
190 #if (SNMP_AGENT_INFORM_SUPPORT == ENABLED)
191  SnmpAgentState informState; ///<State of the inform sending process
192  int32_t informRequestId; ///<Inform request identifier
193  systime_t informTimestamp; ///<Timestamp to manage retransmissions
194  uint_t informRetransmitCount; ///<Retransmission counter
195  OsEvent informEvent; ///<Event object
196 #if (SNMP_V3_SUPPORT == ENABLED)
197  uint8_t informContextEngine[SNMP_MAX_CONTEXT_ENGINE_SIZE]; ///<Context engine identifier of the remote application
198  size_t informContextEngineLen; ///<Length of the context engine identifier
199  int32_t informEngineBoots; ///<Number of times that the remote SNMP engine has rebooted
200  int32_t informEngineTime; ///<SNMP engine time of the remote application
201  int32_t informMsgId; ///<Message identifier
202 #endif
203 #endif
204  SNMP_AGENT_PRIVATE_CONTEXT ///<Application specific context
205 };
206 
207 
208 //SNMP agent related functions
210 
212  const SnmpAgentSettings *settings);
213 
216 
217 error_t snmpAgentLoadMib(SnmpAgentContext *context, const MibModule *module);
218 error_t snmpAgentUnloadMib(SnmpAgentContext *context, const MibModule *module);
219 
221  SnmpVersion versionMin, SnmpVersion versionMax);
222 
223 error_t snmpAgentSetEngineBoots(SnmpAgentContext *context, int32_t engineBoots);
224 error_t snmpAgentGetEngineBoots(SnmpAgentContext *context, int32_t *engineBoots);
225 
227  const uint8_t *enterpriseOid, size_t enterpriseOidLen);
228 
230  const void *contextEngine, size_t contextEngineLen);
231 
233  const char_t *contextName);
234 
236  const char_t *community, SnmpAccess mode);
237 
239  const char_t *community);
240 
242  const char_t *userName, SnmpAccess mode, SnmpKeyFormat keyFormat,
243  SnmpAuthProtocol authProtocol, const void *authKey,
244  SnmpPrivProtocol privProtocol, const void *privKey);
245 
246 error_t snmpAgentDeleteUser(SnmpAgentContext *context, const char_t *userName);
247 
248 error_t snmpAgentJoinGroup(SnmpAgentContext *context, const char_t *userName,
249  SnmpSecurityModel securityModel, const char_t *groupName);
250 
252  const char_t *userName, SnmpSecurityModel securityModel);
253 
255  const char_t *groupName, SnmpSecurityModel securityModel,
256  SnmpSecurityLevel securityLevel, const char_t *contextPrefix,
257  SnmpContextMatch contextMatch, const char_t *readViewName,
258  const char_t *writeViewName, const char_t *notifyViewName);
259 
261  const char_t *groupName, SnmpSecurityModel securityModel,
262  SnmpSecurityLevel securityLevel, const char_t *contextPrefix);
263 
265  const char_t *viewName, const uint8_t *subtree, size_t subtreeLen,
266  const uint8_t *mask, size_t maskLen, SnmpViewType type);
267 
269  const char_t *viewName, const uint8_t *subtree, size_t subtreeLen);
270 
272  const IpAddr *destIpAddr, SnmpVersion version, const char_t *userName,
273  uint_t genericTrapType, uint_t specificTrapCode,
274  const SnmpTrapObject *objectList, uint_t objectListSize);
275 
277  const IpAddr *destIpAddr, SnmpVersion version, const char_t *userName,
278  uint_t genericTrapType, uint_t specificTrapCode,
279  const SnmpTrapObject *objectList, uint_t objectListSize);
280 
281 void snmpAgentTask(SnmpAgentContext *context);
282 
283 void snmpAgentDeinit(SnmpAgentContext *context);
284 
285 //C++ guard
286 #ifdef __cplusplus
287 }
288 #endif
289 
290 #endif
uint8_t type
Definition: coap_common.h:176
uint8_t version
Definition: coap_common.h:177
unsigned int uint_t
Definition: compiler_port.h:50
char char_t
Definition: compiler_port.h:48
int bool_t
Definition: compiler_port.h:53
error_t
Error codes.
Definition: error.h:43
uint8_t data[]
Definition: ethernet.h:222
Ipv4Addr destIpAddr
Definition: ipcp.h:80
Common definitions for MIB modules.
Ipv6Addr contextPrefix
Definition: ndp.h:519
TCP/IP stack core.
#define NetInterface
Definition: net.h:36
uint32_t systime_t
System time.
thread_t * OsTaskId
Task identifier.
error_t snmpAgentLoadMib(SnmpAgentContext *context, const MibModule *module)
Load a MIB module.
Definition: snmp_agent.c:348
#define SNMP_AGENT_PRIVATE_CONTEXT
Definition: snmp_agent.h:111
error_t snmpAgentSendInform(SnmpAgentContext *context, const IpAddr *destIpAddr, SnmpVersion version, const char_t *userName, uint_t genericTrapType, uint_t specificTrapCode, const SnmpTrapObject *objectList, uint_t objectListSize)
Send SNMP inform request.
Definition: snmp_agent.c:1668
error_t snmpAgentSetEngineBoots(SnmpAgentContext *context, int32_t engineBoots)
Set the value of the snmpEngineBoots variable.
Definition: snmp_agent.c:517
error_t snmpAgentCreateView(SnmpAgentContext *context, const char_t *viewName, const uint8_t *subtree, size_t subtreeLen, const uint8_t *mask, size_t maskLen, SnmpViewType type)
Create a new MIB view.
Definition: snmp_agent.c:1431
error_t snmpAgentSetEnterpriseOid(SnmpAgentContext *context, const uint8_t *enterpriseOid, size_t enterpriseOidLen)
Set enterprise OID.
Definition: snmp_agent.c:587
error_t snmpAgentCreateCommunity(SnmpAgentContext *context, const char_t *community, SnmpAccess mode)
Create a new community string.
Definition: snmp_agent.c:698
error_t snmpAgentDeleteUser(SnmpAgentContext *context, const char_t *userName)
Remove existing user.
Definition: snmp_agent.c:1028
error_t snmpAgentDeleteView(SnmpAgentContext *context, const char_t *viewName, const uint8_t *subtree, size_t subtreeLen)
Delete an existing MIB view.
Definition: snmp_agent.c:1533
error_t(* SnmpAgentRandCallback)(uint8_t *data, size_t length)
Random data generation callback function.
Definition: snmp_agent.h:124
#define SNMP_AGENT_VIEW_TABLE_SIZE
Definition: snmp_agent.h:104
error_t snmpAgentCreateUser(SnmpAgentContext *context, const char_t *userName, SnmpAccess mode, SnmpKeyFormat keyFormat, SnmpAuthProtocol authProtocol, const void *authKey, SnmpPrivProtocol privProtocol, const void *privKey)
Create a new user.
Definition: snmp_agent.c:830
#define SnmpAgentContext
Definition: snmp_agent.h:36
#define SNMP_AGENT_GROUP_TABLE_SIZE
Definition: snmp_agent.h:90
void snmpAgentGetDefaultSettings(SnmpAgentSettings *settings)
Initialize settings with default values.
Definition: snmp_agent.c:73
error_t snmpAgentSetContextEngine(SnmpAgentContext *context, const void *contextEngine, size_t contextEngineLen)
Set context engine identifier.
Definition: snmp_agent.c:620
error_t snmpAgentDeleteCommunity(SnmpAgentContext *context, const char_t *community)
Remove a community string.
Definition: snmp_agent.c:772
#define SNMP_AGENT_MAX_MIBS
Definition: snmp_agent.h:69
error_t snmpAgentLeaveGroup(SnmpAgentContext *context, const char_t *userName, SnmpSecurityModel securityModel)
Leave a group of users.
Definition: snmp_agent.c:1175
error_t snmpAgentInit(SnmpAgentContext *context, const SnmpAgentSettings *settings)
SNMP agent initialization.
Definition: snmp_agent.c:105
error_t snmpAgentSendTrap(SnmpAgentContext *context, const IpAddr *destIpAddr, SnmpVersion version, const char_t *userName, uint_t genericTrapType, uint_t specificTrapCode, const SnmpTrapObject *objectList, uint_t objectListSize)
Send SNMP trap notification.
Definition: snmp_agent.c:1592
error_t snmpAgentStop(SnmpAgentContext *context)
Stop SNMP agent.
Definition: snmp_agent.c:308
#define SNMP_AGENT_MAX_USERS
Definition: snmp_agent.h:83
void snmpAgentTask(SnmpAgentContext *context)
SNMP agent task.
Definition: snmp_agent.c:1948
#define SNMP_AGENT_ACCESS_TABLE_SIZE
Definition: snmp_agent.h:97
error_t snmpAgentGetEngineBoots(SnmpAgentContext *context, int32_t *engineBoots)
Get the value of the snmpEngineBoots variable.
Definition: snmp_agent.c:556
error_t snmpAgentSetVersion(SnmpAgentContext *context, SnmpVersion versionMin, SnmpVersion versionMax)
Set minimum and maximum versions permitted.
Definition: snmp_agent.c:486
error_t snmpAgentJoinGroup(SnmpAgentContext *context, const char_t *userName, SnmpSecurityModel securityModel, const char_t *groupName)
Join a group of users.
Definition: snmp_agent.c:1082
void snmpAgentDeinit(SnmpAgentContext *context)
Release SNMP agent context.
Definition: snmp_agent.c:2077
error_t snmpAgentUnloadMib(SnmpAgentContext *context, const MibModule *module)
Unload a MIB module.
Definition: snmp_agent.c:428
error_t snmpAgentSetContextName(SnmpAgentContext *context, const char_t *contextName)
Set context name.
Definition: snmp_agent.c:657
error_t snmpAgentCreateAccess(SnmpAgentContext *context, const char_t *groupName, SnmpSecurityModel securityModel, SnmpSecurityLevel securityLevel, const char_t *contextPrefix, SnmpContextMatch contextMatch, const char_t *readViewName, const char_t *writeViewName, const char_t *notifyViewName)
Create access policy for the specified group name.
Definition: snmp_agent.c:1236
error_t snmpAgentDeleteAccess(SnmpAgentContext *context, const char_t *groupName, SnmpSecurityModel securityModel, SnmpSecurityLevel securityLevel, const char_t *contextPrefix)
Delete an existing access policy.
Definition: snmp_agent.c:1371
#define SNMP_AGENT_MAX_COMMUNITIES
Definition: snmp_agent.h:76
error_t snmpAgentStart(SnmpAgentContext *context)
Start SNMP agent.
Definition: snmp_agent.c:220
SNMP inform notifications.
SnmpAgentState
State of the inform sending process.
SNMP trap notifications.
User-based Security Model (USM) for SNMPv3.
SnmpAuthProtocol
SnmpKeyFormat
SNMP key format.
SnmpAccess
Access modes.
SnmpSecurityLevel
Security levels.
SnmpSecurityModel
Security models.
SnmpPrivProtocol
View-based Access Control Model (VACM) for SNMP.
SnmpContextMatch
Context match.
SnmpViewType
View type.
Definitions common to SNMP agent and SNMP manager.
#define SNMP_MAX_CONTEXT_ENGINE_SIZE
Definition: snmp_common.h:67
#define SNMP_MAX_CONTEXT_NAME_LEN
Definition: snmp_common.h:74
#define SNMP_MAX_OID_SIZE
Definition: snmp_common.h:116
SnmpVersion
SNMP version identifiers.
Definition: snmp_common.h:137
#define Socket
Definition: socket.h:36
SNMP agent context.
Definition: snmp_agent.h:148
IpAddr remoteIpAddr
Source IP address of the received SNMP request.
Definition: snmp_agent.h:173
int32_t requestId
Request identifier.
Definition: snmp_agent.h:175
uint8_t enterpriseOid[SNMP_MAX_OID_SIZE]
Enterprise OID.
Definition: snmp_agent.h:156
int32_t informRequestId
Inform request identifier.
Definition: snmp_agent.h:192
SnmpAgentState informState
State of the inform sending process.
Definition: snmp_agent.h:191
SnmpMessage response
SNMP response message.
Definition: snmp_agent.h:177
IpAddr localIpAddr
Destination IP address of the received SNMP request.
Definition: snmp_agent.h:172
uint16_t remotePort
Source port of the received SNMP request.
Definition: snmp_agent.h:174
systime_t informTimestamp
Timestamp to manage retransmissions.
Definition: snmp_agent.h:193
OsEvent informEvent
Event object.
Definition: snmp_agent.h:195
SnmpMessage request
SNMP request message.
Definition: snmp_agent.h:176
SnmpUserEntry userTable[SNMP_AGENT_MAX_USERS]
List of users.
Definition: snmp_agent.h:163
bool_t stop
Stop request.
Definition: snmp_agent.h:151
char_t contextName[SNMP_MAX_CONTEXT_NAME_LEN+1]
Context name.
Definition: snmp_agent.h:182
uint8_t contextEngine[SNMP_MAX_CONTEXT_ENGINE_SIZE]
Context engine identifier.
Definition: snmp_agent.h:180
size_t contextEngineLen
Length of the context engine identifier.
Definition: snmp_agent.h:181
int32_t engineBoots
Number of times that the SNMP engine has rebooted.
Definition: snmp_agent.h:184
SnmpAccessEntry accessTable[SNMP_AGENT_ACCESS_TABLE_SIZE]
Access rights for groups.
Definition: snmp_agent.h:167
int32_t engineTime
SNMP engine time.
Definition: snmp_agent.h:185
int32_t msgId
Message identifier.
Definition: snmp_agent.h:186
OsTaskId taskId
Task identifier.
Definition: snmp_agent.h:155
uint64_t salt
Integer initialized to a random value at boot time.
Definition: snmp_agent.h:187
size_t informContextEngineLen
Length of the context engine identifier.
Definition: snmp_agent.h:198
bool_t running
Operational state of the SNMP agent.
Definition: snmp_agent.h:150
OsTaskParameters taskParams
Task parameters.
Definition: snmp_agent.h:154
uint_t informRetransmitCount
Retransmission counter.
Definition: snmp_agent.h:194
systime_t systemTime
System time.
Definition: snmp_agent.h:183
uint8_t informContextEngine[SNMP_MAX_CONTEXT_ENGINE_SIZE]
Context engine identifier of the remote application.
Definition: snmp_agent.h:197
SnmpUserEntry user
Security profile of current user.
Definition: snmp_agent.h:178
SnmpViewEntry viewTable[SNMP_AGENT_VIEW_TABLE_SIZE]
Families of subtrees within MIB views.
Definition: snmp_agent.h:168
int32_t informMsgId
Message identifier.
Definition: snmp_agent.h:201
uint8_t privParameters[8]
Privacy parameters.
Definition: snmp_agent.h:188
Socket * socket
Underlying socket.
Definition: snmp_agent.h:170
NetInterface * localInterface
Network interface the SNMP request was received on.
Definition: snmp_agent.h:171
OsEvent event
Event object used to poll the underlying socket.
Definition: snmp_agent.h:153
int32_t informEngineTime
SNMP engine time of the remote application.
Definition: snmp_agent.h:200
int32_t informEngineBoots
Number of times that the remote SNMP engine has rebooted.
Definition: snmp_agent.h:199
size_t enterpriseOidLen
Length of the enterprise OID.
Definition: snmp_agent.h:157
const MibModule * mibTable[SNMP_AGENT_MAX_MIBS]
MIB modules.
Definition: snmp_agent.h:158
OsMutex mutex
Mutex preventing simultaneous access to SNMP agent context.
Definition: snmp_agent.h:152
SnmpGroupEntry groupTable[SNMP_AGENT_GROUP_TABLE_SIZE]
List of groups.
Definition: snmp_agent.h:166
SnmpUserEntry communityTable[SNMP_AGENT_MAX_COMMUNITIES]
Community strings.
Definition: snmp_agent.h:160
SnmpAgentSettings settings
SNMP agent settings.
Definition: snmp_agent.h:149
IP network address.
Definition: ip.h:79
MIB module.
Definition: mib_common.h:292
Event object.
Mutex object.
Task parameters.
Access table entry.
SNMP agent settings.
Definition: snmp_agent.h:132
SnmpVersion versionMin
Minimum version accepted by the SNMP agent.
Definition: snmp_agent.h:135
OsTaskParameters task
Task parameters.
Definition: snmp_agent.h:133
SnmpVersion versionMax
Maximum version accepted by the SNMP agent.
Definition: snmp_agent.h:136
uint16_t trapPort
SNMP trap port number.
Definition: snmp_agent.h:138
uint16_t port
SNMP port number.
Definition: snmp_agent.h:137
SnmpAgentRandCallback randCallback
Random data generation callback function.
Definition: snmp_agent.h:139
NetInterface * interface
Network interface to configure.
Definition: snmp_agent.h:134
Group table entry.
SNMP message.
Object descriptor for trap notifications.
User table entry.
View table entry.
uint8_t length
Definition: tcp.h:368
uint8_t mask
Definition: web_socket.h:319