33 #ifndef LWIP_HDR_APPS_SNMP_TABLE_H 34 #define LWIP_HDR_APPS_SNMP_TABLE_H 47 struct snmp_table_col_def
54 struct snmp_table_node
57 struct snmp_leaf_node node;
59 const struct snmp_table_col_def* columns;
60 snmp_err_t (*get_cell_instance)(
const u32_t* column,
const u32_t* row_oid,
u8_t row_oid_len,
struct snmp_node_instance* cell_instance);
61 snmp_err_t (*get_next_cell_instance)(
const u32_t* column,
struct snmp_obj_id* row_oid,
struct snmp_node_instance* cell_instance);
63 node_instance_get_value_method get_value;
65 node_instance_set_test_method set_test;
67 node_instance_set_value_method set_value;
70 snmp_err_t snmp_table_get_instance(
const u32_t *root_oid,
u8_t root_oid_len,
struct snmp_node_instance* instance);
71 snmp_err_t snmp_table_get_next_instance(
const u32_t *root_oid,
u8_t root_oid_len,
struct snmp_node_instance* instance);
73 #define SNMP_TABLE_CREATE(oid, columns, get_cell_instance_method, get_next_cell_instance_method, get_value_method, set_test_method, set_value_method) \ 74 {{{ SNMP_NODE_TABLE, (oid) }, \ 75 snmp_table_get_instance, \ 76 snmp_table_get_next_instance }, \ 77 (u16_t)LWIP_ARRAYSIZE(columns), (columns), \ 78 (get_cell_instance_method), (get_next_cell_instance_method), \ 79 (get_value_method), (set_test_method), (set_value_method)} 81 #define SNMP_TABLE_GET_COLUMN_FROM_OID(oid) ((oid)[1]) 87 SNMP_VARIANT_VALUE_TYPE_U32,
88 SNMP_VARIANT_VALUE_TYPE_S32,
89 SNMP_VARIANT_VALUE_TYPE_PTR,
90 SNMP_VARIANT_VALUE_TYPE_CONST_PTR
91 } snmp_table_column_data_type_t;
93 struct snmp_table_simple_col_def
97 snmp_table_column_data_type_t data_type;
100 struct snmp_table_simple_node
103 struct snmp_leaf_node node;
105 const struct snmp_table_simple_col_def* columns;
106 snmp_err_t (*get_cell_value)(
const u32_t* column,
const u32_t* row_oid,
u8_t row_oid_len,
union snmp_variant_value* value,
u32_t* value_len);
107 snmp_err_t (*get_next_cell_instance_and_value)(
const u32_t* column,
struct snmp_obj_id* row_oid,
union snmp_variant_value* value,
u32_t* value_len);
110 snmp_err_t snmp_table_simple_get_instance(
const u32_t *root_oid,
u8_t root_oid_len,
struct snmp_node_instance* instance);
111 snmp_err_t snmp_table_simple_get_next_instance(
const u32_t *root_oid,
u8_t root_oid_len,
struct snmp_node_instance* instance);
113 #define SNMP_TABLE_CREATE_SIMPLE(oid, columns, get_cell_value_method, get_next_cell_instance_and_value_method) \ 114 {{{ SNMP_NODE_TABLE, (oid) }, \ 115 snmp_table_simple_get_instance, \ 116 snmp_table_simple_get_next_instance }, \ 117 (u16_t)LWIP_ARRAYSIZE(columns), (columns), (get_cell_value_method), (get_next_cell_instance_and_value_method) } 119 u16_t snmp_table_extract_value_from_s32ref(
struct snmp_node_instance* instance,
void* value);
120 u16_t snmp_table_extract_value_from_u32ref(
struct snmp_node_instance* instance,
void* value);
121 u16_t snmp_table_extract_value_from_refconstptr(
struct snmp_node_instance* instance,
void* value);