35 #ifndef __LWIP_SNMP_MSG_H__
36 #define __LWIP_SNMP_MSG_H__
39 #include "lwip/snmp.h"
40 #include "lwip/snmp_structs.h"
41 #include "lwip/ip_addr.h"
49 #include "private_mib.h"
59 #define SNMP_IN_PORT 161
63 #ifndef SNMP_TRAP_PORT
64 #define SNMP_TRAP_PORT 162
67 #define SNMP_ES_NOERROR 0
68 #define SNMP_ES_TOOBIG 1
69 #define SNMP_ES_NOSUCHNAME 2
70 #define SNMP_ES_BADVALUE 3
71 #define SNMP_ES_READONLY 4
72 #define SNMP_ES_GENERROR 5
74 #define SNMP_GENTRAP_COLDSTART 0
75 #define SNMP_GENTRAP_WARMSTART 1
76 #define SNMP_GENTRAP_AUTHFAIL 4
77 #define SNMP_GENTRAP_ENTERPRISESPC 6
82 struct snmp_varbind *next;
84 struct snmp_varbind *prev;
112 struct snmp_varbind_root
114 struct snmp_varbind *head;
115 struct snmp_varbind *tail;
125 struct snmp_resp_header_lengths
159 struct snmp_trap_header_lengths
201 #define SNMP_MSG_EMPTY 0
203 #define SNMP_MSG_SEARCH_OBJ 1
206 #define SNMP_MSG_INTERNAL_GET_OBJDEF 2
207 #define SNMP_MSG_INTERNAL_GET_VALUE 3
208 #define SNMP_MSG_INTERNAL_SET_TEST 4
209 #define SNMP_MSG_INTERNAL_GET_OBJDEF_S 5
210 #define SNMP_MSG_INTERNAL_SET_VALUE 6
214 #define SNMP_MSG_EXTERNAL_GET_OBJDEF 7
215 #define SNMP_MSG_EXTERNAL_GET_VALUE 8
216 #define SNMP_MSG_EXTERNAL_SET_TEST 9
217 #define SNMP_MSG_EXTERNAL_GET_OBJDEF_S 10
218 #define SNMP_MSG_EXTERNAL_SET_VALUE 11
220 #define SNMP_COMMUNITY_STR_LEN 64
221 struct snmp_msg_pstat
238 u8_t community[SNMP_COMMUNITY_STR_LEN + 1];
244 struct mib_external_node *ext_mib_node;
245 struct snmp_name_ptr ext_name_ptr;
246 struct obj_def ext_object_def;
247 struct snmp_obj_id ext_oid;
251 struct snmp_varbind *vb_ptr;
253 struct snmp_varbind_root invb;
255 struct snmp_varbind_root outvb;
257 struct snmp_resp_header_lengths rhl;
268 struct snmp_obj_id *enterprise;
278 struct snmp_varbind_root outvb;
280 struct snmp_trap_header_lengths thl;
284 extern const s32_t snmp_version;
286 extern const char snmp_publiccommunity[7];
288 extern struct snmp_msg_trap trap_msg;
291 void snmp_init(
void);
292 void snmp_trap_dst_enable(u8_t dst_idx, u8_t enable);
293 void snmp_trap_dst_ip_set(u8_t dst_idx, ip_addr_t *dst);
296 struct snmp_varbind* snmp_varbind_alloc(
struct snmp_obj_id *oid, u8_t type, u8_t len);
297 void snmp_varbind_free(
struct snmp_varbind *vb);
298 void snmp_varbind_list_free(
struct snmp_varbind_root *root);
299 void snmp_varbind_tail_add(
struct snmp_varbind_root *root,
struct snmp_varbind *vb);
300 struct snmp_varbind* snmp_varbind_tail_remove(
struct snmp_varbind_root *root);
303 void snmp_msg_event(u8_t request_id);
304 err_t snmp_send_response(
struct snmp_msg_pstat *m_stat);
305 err_t snmp_send_trap(s8_t generic_trap,
struct snmp_obj_id *eoid, s32_t specific_trap);
306 void snmp_coldstart_trap(
void);
307 void snmp_authfail_trap(
void);