1 /*
2 Generated by LwipMibCompiler
3 */
4 
5 #include "lwip/apps/snmp_opts.h"
6 
7 #if LWIP_SNMP && LWIP_SNMP_V3 /* don't build if not configured for use in lwipopts.h */
8 
9 #include "lwip/apps/snmp_snmpv2_framework.h"
10 #include "lwip/apps/snmp.h"
11 #include "lwip/apps/snmp_core.h"
12 #include "lwip/apps/snmp_scalar.h"
13 #include "lwip/apps/snmp_table.h"
14 #include "lwip/apps/snmpv3.h"
15 #include "snmpv3_priv.h"
16 
17 #include "lwip/sys.h"
18 
19 #include <string.h>
20 
21 const struct snmp_obj_id usmNoAuthProtocol      = { 10, { 1, 3, 6, 1, 6, 3, 10, 1, 1, 1 } };
22 const struct snmp_obj_id usmHMACMD5AuthProtocol = { 10, { 1, 3, 6, 1, 6, 3, 10, 1, 1, 2 } };
23 const struct snmp_obj_id usmHMACSHAAuthProtocol = { 10, { 1, 3, 6, 1, 6, 3, 10, 1, 1, 3 } };
24 /* .4 sha-224
25  * .5 sha-256
26  * .6 sha-384
27  * .7 sha-512
28  */
29 
30 const struct snmp_obj_id usmNoPrivProtocol  = { 10, { 1, 3, 6, 1, 6, 3, 10, 1, 2, 1 } };
31 const struct snmp_obj_id usmDESPrivProtocol = { 10, { 1, 3, 6, 1, 6, 3, 10, 1, 2, 2 } };
32 /* .3 3des-ede */
33 const struct snmp_obj_id usmAESPrivProtocol = { 10, { 1, 3, 6, 1, 6, 3, 10, 1, 2, 4 } };
34 /* .5 unknown
35  * .6 unknown
36  * .7 unknown
37  */
38 
39 /* TODO: where should this value come from? */
40 #define SNMP_FRAMEWORKMIB_SNMPENGINEMAXMESSAGESIZE 1500
41 
42 /* --- snmpFrameworkMIBObjects 1.3.6.1.6.3.10.2 ----------------------------------------------------- */
43 static s16_t snmpengine_scalars_get_value(const struct snmp_scalar_array_node_def *node, void *value)
44 {
45   const char *engineid;
46   u8_t engineid_len;
47 
48   switch (node->oid) {
49   case 1: /* snmpEngineID */
50     snmpv3_get_engine_id(&engineid, &engineid_len);
51     MEMCPY(value, engineid, engineid_len);
52     return engineid_len;
53   case 2: /* snmpEngineBoots */
54     *(s32_t *)value = snmpv3_get_engine_boots_internal();
55     return sizeof(s32_t);
56   case 3: /* snmpEngineTime */
57     *(s32_t *)value = snmpv3_get_engine_time_internal();
58     return sizeof(s32_t);
59   case 4: /* snmpEngineMaxMessageSize */
60     *(s32_t *)value = SNMP_FRAMEWORKMIB_SNMPENGINEMAXMESSAGESIZE;
61     return sizeof(s32_t);
62   default:
63     LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmpengine_scalars_get_value(): unknown id: %"S32_F"\n", node->oid));
64     return 0;
65   }
66 }
67 
68 static const struct snmp_scalar_array_node_def snmpengine_scalars_nodes[] = {
69   {1, SNMP_ASN1_TYPE_OCTET_STRING, SNMP_NODE_INSTANCE_READ_ONLY}, /* snmpEngineID */
70   {2, SNMP_ASN1_TYPE_INTEGER,      SNMP_NODE_INSTANCE_READ_ONLY}, /* snmpEngineBoots */
71   {3, SNMP_ASN1_TYPE_INTEGER,      SNMP_NODE_INSTANCE_READ_ONLY}, /* snmpEngineTime */
72   {4, SNMP_ASN1_TYPE_INTEGER,      SNMP_NODE_INSTANCE_READ_ONLY}, /* snmpEngineMaxMessageSize */
73 };
74 static const struct snmp_scalar_array_node snmpengine_scalars = SNMP_SCALAR_CREATE_ARRAY_NODE(1, snmpengine_scalars_nodes, snmpengine_scalars_get_value, NULL, NULL);
75 
76 static const struct snmp_node *const snmpframeworkmibobjects_subnodes[] = {
77   &snmpengine_scalars.node.node
78 };
79 static const struct snmp_tree_node snmpframeworkmibobjects_treenode = SNMP_CREATE_TREE_NODE(2, snmpframeworkmibobjects_subnodes);
80 
81 /* --- snmpFrameworkMIB  ----------------------------------------------------- */
82 static const struct snmp_node *const snmpframeworkmib_subnodes[] = {
83   &snmpframeworkmibobjects_treenode.node
84 };
85 static const struct snmp_tree_node snmpframeworkmib_root = SNMP_CREATE_TREE_NODE(10, snmpframeworkmib_subnodes);
86 static const u32_t snmpframeworkmib_base_oid[] = {1,3,6,1,6,3,10};
87 const struct snmp_mib snmpframeworkmib = {snmpframeworkmib_base_oid, LWIP_ARRAYSIZE(snmpframeworkmib_base_oid), &snmpframeworkmib_root.node};
88 
89 /* --- snmpFrameworkMIB  ----------------------------------------------------- */
90 #endif /* LWIP_SNMP */
91