1 /*
2 * Note: this file originally auto-generated by mib2c using
3 * version : 14170 $ of $
4 *
5 * $Id:$
6 */
7 /** \page MFD helper for etherStatsTable
8 *
9 * \section intro Introduction
10 * Introductory text.
11 *
12 */
13 /*
14 * standard Net-SNMP includes
15 */
16 #include <net-snmp/net-snmp-config.h>
17 #include <net-snmp/net-snmp-includes.h>
18 #include <net-snmp/agent/net-snmp-agent-includes.h>
19
20 /*
21 * include our parent header
22 */
23 #include "etherStatsTable.h"
24
25 #include <net-snmp/agent/mib_modules.h>
26
27 #include "etherStatsTable_interface.h"
28
29 oid etherStatsTable_oid[] = { ETHERSTATSTABLE_OID };
30 int etherStatsTable_oid_size = OID_LENGTH(etherStatsTable_oid);
31
32 etherStatsTable_registration etherStatsTable_user_context;
33 static etherStatsTable_registration *etherStatsTable_user_context_p;
34
35 void initialize_table_etherStatsTable(void);
36 void shutdown_table_etherStatsTable(void);
37
38
39 /**
40 * Initializes the etherStatsTable module
41 */
42 void
init_etherStatsTable(void)43 init_etherStatsTable(void)
44 {
45 DEBUGMSGTL(("verbose:etherStatsTable:init_etherStatsTable",
46 "called\n"));
47
48 /*
49 * TODO:300:o: Perform etherStatsTable one-time module initialization.
50 */
51
52 /*
53 * here we initialize all the tables we're planning on supporting
54 */
55 if (should_init("etherStatsTable"))
56 initialize_table_etherStatsTable();
57
58 } /* init_etherStatsTable */
59
60 /**
61 * Shut-down the etherStatsTable module (agent is exiting)
62 */
63 void
shutdown_etherStatsTable(void)64 shutdown_etherStatsTable(void)
65 {
66 if (should_init("etherStatsTable"))
67 shutdown_table_etherStatsTable();
68
69 }
70
71 /**
72 * Initialize the table etherStatsTable
73 * (Define its contents and how it's structured)
74 */
75 void
initialize_table_etherStatsTable(void)76 initialize_table_etherStatsTable(void)
77 {
78 u_long flags;
79
80 DEBUGMSGTL(("verbose:etherStatsTable:initialize_table_etherStatsTable",
81 "called\n"));
82
83 /*
84 * TODO:301:o: Perform etherStatsTable one-time table initialization.
85 */
86
87 /*
88 * TODO:302:o: |->Initialize etherStatsTable user context
89 * if you'd like to pass in a pointer to some data for this
90 * table, allocate or set it up here.
91 */
92 /*
93 * a netsnmp_data_list is a simple way to store void pointers. A simple
94 * string token is used to add, find or remove pointers.
95 */
96 etherStatsTable_user_context_p
97 = netsnmp_create_data_list("etherStatsTable", NULL, NULL);
98
99 /*
100 * No support for any flags yet, but in the future you would
101 * set any flags here.
102 */
103 flags = 0;
104
105 /*
106 * call interface initialization code
107 */
108 _etherStatsTable_initialize_interface
109 (etherStatsTable_user_context_p, flags);
110 } /* initialize_table_etherStatsTable */
111
112 /**
113 * Shutdown the table etherStatsTable
114 */
115 void
shutdown_table_etherStatsTable(void)116 shutdown_table_etherStatsTable(void)
117 {
118 /*
119 * call interface shutdown code
120 */
121 _etherStatsTable_shutdown_interface(etherStatsTable_user_context_p);
122 netsnmp_free_all_list_data(etherStatsTable_user_context_p);
123 etherStatsTable_user_context_p = NULL;
124 }
125
126 /**
127 * extra context initialization (eg default values)
128 *
129 * @param rowreq_ctx : row request context
130 * @param user_init_ctx : void pointer for user (parameter to rowreq_ctx_allocate)
131 *
132 * @retval MFD_SUCCESS : no errors
133 * @retval MFD_ERROR : error (context allocate will fail)
134 */
135 int
etherStatsTable_rowreq_ctx_init(etherStatsTable_rowreq_ctx * rowreq_ctx,void * user_init_ctx)136 etherStatsTable_rowreq_ctx_init(etherStatsTable_rowreq_ctx * rowreq_ctx,
137 void *user_init_ctx)
138 {
139 DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_rowreq_ctx_init",
140 "called\n"));
141
142 netsnmp_assert(NULL != rowreq_ctx);
143
144 /*
145 * TODO:210:o: |-> Perform extra etherStatsTable rowreq initialization. (eg DEFVALS)
146 */
147
148 return MFD_SUCCESS;
149 } /* etherStatsTable_rowreq_ctx_init */
150
151 /**
152 * extra context cleanup
153 *
154 */
155 void
etherStatsTable_rowreq_ctx_cleanup(etherStatsTable_rowreq_ctx * rowreq_ctx)156 etherStatsTable_rowreq_ctx_cleanup(etherStatsTable_rowreq_ctx * rowreq_ctx)
157 {
158 DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_rowreq_ctx_cleanup", "called\n"));
159
160 netsnmp_assert(NULL != rowreq_ctx);
161
162 /*
163 * TODO:211:o: |-> Perform extra etherStatsTable rowreq cleanup.
164 */
165 } /* etherStatsTable_rowreq_ctx_cleanup */
166
167 /**
168 * pre-request callback
169 *
170 *
171 * @retval MFD_SUCCESS : success.
172 * @retval MFD_ERROR : other error
173 */
174 int
etherStatsTable_pre_request(etherStatsTable_registration * user_context)175 etherStatsTable_pre_request(etherStatsTable_registration * user_context)
176 {
177 DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_pre_request",
178 "called\n"));
179
180 /*
181 * TODO:510:o: Perform etherStatsTable pre-request actions.
182 */
183
184 return MFD_SUCCESS;
185 } /* etherStatsTable_pre_request */
186
187 /**
188 * post-request callback
189 *
190 * Note:
191 * New rows have been inserted into the container, and
192 * deleted rows have been removed from the container and
193 * released.
194 *
195 * @param user_context
196 * @param rc : MFD_SUCCESS if all requests succeeded
197 *
198 * @retval MFD_SUCCESS : success.
199 * @retval MFD_ERROR : other error (ignored)
200 */
201 int
etherStatsTable_post_request(etherStatsTable_registration * user_context,int rc)202 etherStatsTable_post_request(etherStatsTable_registration * user_context,
203 int rc)
204 {
205 DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_post_request",
206 "called\n"));
207
208 /*
209 * TODO:511:o: Perform etherStatsTable post-request actions.
210 */
211
212 /*
213 * check to set if any rows were changed.
214 */
215 if (etherStatsTable_dirty_get()) {
216 /*
217 * check if request was successful. If so, this would be
218 * a good place to save data to its persistent store.
219 */
220 if (MFD_SUCCESS == rc) {
221 /*
222 * save changed rows, if you haven't already
223 */
224 }
225
226 etherStatsTable_dirty_set(0); /* clear table dirty flag */
227 }
228
229 return MFD_SUCCESS;
230 } /* etherStatsTable_post_request */
231
232
233 /** @{ */
234