00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __LWIP_SNMP_H__
00034 #define __LWIP_SNMP_H__
00035
00036 #include "lwip/opt.h"
00037 #include "lwip/netif.h"
00038 #include "lwip/udp.h"
00039
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043
00044
00045
00046
00047 enum snmp_ifType {
00048 snmp_ifType_other=1,
00049 snmp_ifType_regular1822,
00050 snmp_ifType_hdh1822,
00051 snmp_ifType_ddn_x25,
00052 snmp_ifType_rfc877_x25,
00053 snmp_ifType_ethernet_csmacd,
00054 snmp_ifType_iso88023_csmacd,
00055 snmp_ifType_iso88024_tokenBus,
00056 snmp_ifType_iso88025_tokenRing,
00057 snmp_ifType_iso88026_man,
00058 snmp_ifType_starLan,
00059 snmp_ifType_proteon_10Mbit,
00060 snmp_ifType_proteon_80Mbit,
00061 snmp_ifType_hyperchannel,
00062 snmp_ifType_fddi,
00063 snmp_ifType_lapb,
00064 snmp_ifType_sdlc,
00065 snmp_ifType_ds1,
00066 snmp_ifType_e1,
00067 snmp_ifType_basicISDN,
00068 snmp_ifType_primaryISDN,
00069 snmp_ifType_propPointToPointSerial,
00070 snmp_ifType_ppp,
00071 snmp_ifType_softwareLoopback,
00072 snmp_ifType_eon,
00073 snmp_ifType_ethernet_3Mbit,
00074 snmp_ifType_nsip,
00075 snmp_ifType_slip,
00076 snmp_ifType_ultra,
00077 snmp_ifType_ds3,
00078 snmp_ifType_sip,
00079 snmp_ifType_frame_relay
00080 };
00081
00082 #if LWIP_SNMP
00083
00084
00085 #define SNMP_SYSUPTIME_INTERVAL 10
00086
00087
00088 #define LWIP_SNMP_OBJ_ID_LEN 32
00089
00090
00091 struct snmp_obj_id
00092 {
00093 u8_t len;
00094 s32_t id[LWIP_SNMP_OBJ_ID_LEN];
00095 };
00096
00097
00098 void snmp_set_sysdesr(u8_t* str, u8_t* len);
00099 void snmp_set_sysobjid(struct snmp_obj_id *oid);
00100 void snmp_get_sysobjid_ptr(struct snmp_obj_id **oid);
00101 void snmp_inc_sysuptime(void);
00102 void snmp_add_sysuptime(u32_t value);
00103 void snmp_get_sysuptime(u32_t *value);
00104 void snmp_set_syscontact(u8_t *ocstr, u8_t *ocstrlen);
00105 void snmp_set_sysname(u8_t *ocstr, u8_t *ocstrlen);
00106 void snmp_set_syslocation(u8_t *ocstr, u8_t *ocstrlen);
00107
00108
00109 void snmp_add_ifinoctets(struct netif *ni, u32_t value);
00110 void snmp_inc_ifinucastpkts(struct netif *ni);
00111 void snmp_inc_ifinnucastpkts(struct netif *ni);
00112 void snmp_inc_ifindiscards(struct netif *ni);
00113 void snmp_add_ifoutoctets(struct netif *ni, u32_t value);
00114 void snmp_inc_ifoutucastpkts(struct netif *ni);
00115 void snmp_inc_ifoutnucastpkts(struct netif *ni);
00116 void snmp_inc_ifoutdiscards(struct netif *ni);
00117 void snmp_inc_iflist(void);
00118 void snmp_dec_iflist(void);
00119
00120
00121 void snmp_insert_arpidx_tree(struct netif *ni, struct ip_addr *ip);
00122 void snmp_delete_arpidx_tree(struct netif *ni, struct ip_addr *ip);
00123
00124
00125 void snmp_inc_ipinreceives(void);
00126 void snmp_inc_ipinhdrerrors(void);
00127 void snmp_inc_ipinaddrerrors(void);
00128 void snmp_inc_ipforwdatagrams(void);
00129 void snmp_inc_ipinunknownprotos(void);
00130 void snmp_inc_ipindiscards(void);
00131 void snmp_inc_ipindelivers(void);
00132 void snmp_inc_ipoutrequests(void);
00133 void snmp_inc_ipoutdiscards(void);
00134 void snmp_inc_ipoutnoroutes(void);
00135 void snmp_inc_ipreasmreqds(void);
00136 void snmp_inc_ipreasmoks(void);
00137 void snmp_inc_ipreasmfails(void);
00138 void snmp_inc_ipfragoks(void);
00139 void snmp_inc_ipfragfails(void);
00140 void snmp_inc_ipfragcreates(void);
00141 void snmp_inc_iproutingdiscards(void);
00142 void snmp_insert_ipaddridx_tree(struct netif *ni);
00143 void snmp_delete_ipaddridx_tree(struct netif *ni);
00144 void snmp_insert_iprteidx_tree(u8_t dflt, struct netif *ni);
00145 void snmp_delete_iprteidx_tree(u8_t dflt, struct netif *ni);
00146
00147
00148 void snmp_inc_icmpinmsgs(void);
00149 void snmp_inc_icmpinerrors(void);
00150 void snmp_inc_icmpindestunreachs(void);
00151 void snmp_inc_icmpintimeexcds(void);
00152 void snmp_inc_icmpinparmprobs(void);
00153 void snmp_inc_icmpinsrcquenchs(void);
00154 void snmp_inc_icmpinredirects(void);
00155 void snmp_inc_icmpinechos(void);
00156 void snmp_inc_icmpinechoreps(void);
00157 void snmp_inc_icmpintimestamps(void);
00158 void snmp_inc_icmpintimestampreps(void);
00159 void snmp_inc_icmpinaddrmasks(void);
00160 void snmp_inc_icmpinaddrmaskreps(void);
00161 void snmp_inc_icmpoutmsgs(void);
00162 void snmp_inc_icmpouterrors(void);
00163 void snmp_inc_icmpoutdestunreachs(void);
00164 void snmp_inc_icmpouttimeexcds(void);
00165 void snmp_inc_icmpoutparmprobs(void);
00166 void snmp_inc_icmpoutsrcquenchs(void);
00167 void snmp_inc_icmpoutredirects(void);
00168 void snmp_inc_icmpoutechos(void);
00169 void snmp_inc_icmpoutechoreps(void);
00170 void snmp_inc_icmpouttimestamps(void);
00171 void snmp_inc_icmpouttimestampreps(void);
00172 void snmp_inc_icmpoutaddrmasks(void);
00173 void snmp_inc_icmpoutaddrmaskreps(void);
00174
00175
00176 void snmp_inc_tcpactiveopens(void);
00177 void snmp_inc_tcppassiveopens(void);
00178 void snmp_inc_tcpattemptfails(void);
00179 void snmp_inc_tcpestabresets(void);
00180 void snmp_inc_tcpinsegs(void);
00181 void snmp_inc_tcpoutsegs(void);
00182 void snmp_inc_tcpretranssegs(void);
00183 void snmp_inc_tcpinerrs(void);
00184 void snmp_inc_tcpoutrsts(void);
00185
00186
00187 void snmp_inc_udpindatagrams(void);
00188 void snmp_inc_udpnoports(void);
00189 void snmp_inc_udpinerrors(void);
00190 void snmp_inc_udpoutdatagrams(void);
00191 void snmp_insert_udpidx_tree(struct udp_pcb *pcb);
00192 void snmp_delete_udpidx_tree(struct udp_pcb *pcb);
00193
00194
00195 void snmp_inc_snmpinpkts(void);
00196 void snmp_inc_snmpoutpkts(void);
00197 void snmp_inc_snmpinbadversions(void);
00198 void snmp_inc_snmpinbadcommunitynames(void);
00199 void snmp_inc_snmpinbadcommunityuses(void);
00200 void snmp_inc_snmpinasnparseerrs(void);
00201 void snmp_inc_snmpintoobigs(void);
00202 void snmp_inc_snmpinnosuchnames(void);
00203 void snmp_inc_snmpinbadvalues(void);
00204 void snmp_inc_snmpinreadonlys(void);
00205 void snmp_inc_snmpingenerrs(void);
00206 void snmp_add_snmpintotalreqvars(u8_t value);
00207 void snmp_add_snmpintotalsetvars(u8_t value);
00208 void snmp_inc_snmpingetrequests(void);
00209 void snmp_inc_snmpingetnexts(void);
00210 void snmp_inc_snmpinsetrequests(void);
00211 void snmp_inc_snmpingetresponses(void);
00212 void snmp_inc_snmpintraps(void);
00213 void snmp_inc_snmpouttoobigs(void);
00214 void snmp_inc_snmpoutnosuchnames(void);
00215 void snmp_inc_snmpoutbadvalues(void);
00216 void snmp_inc_snmpoutgenerrs(void);
00217 void snmp_inc_snmpoutgetrequests(void);
00218 void snmp_inc_snmpoutgetnexts(void);
00219 void snmp_inc_snmpoutsetrequests(void);
00220 void snmp_inc_snmpoutgetresponses(void);
00221 void snmp_inc_snmpouttraps(void);
00222 void snmp_get_snmpgrpid_ptr(struct snmp_obj_id **oid);
00223 void snmp_set_snmpenableauthentraps(u8_t *value);
00224 void snmp_get_snmpenableauthentraps(u8_t *value);
00225
00226
00227
00228 #else
00229
00230
00231 #define snmp_set_sysdesr(str, len)
00232 #define snmp_set_sysobjid(oid);
00233 #define snmp_get_sysobjid_ptr(oid)
00234 #define snmp_inc_sysuptime()
00235 #define snmp_add_sysuptime(value)
00236 #define snmp_get_sysuptime(value)
00237 #define snmp_set_syscontact(ocstr, ocstrlen);
00238 #define snmp_set_sysname(ocstr, ocstrlen);
00239 #define snmp_set_syslocation(ocstr, ocstrlen);
00240
00241
00242 #define snmp_add_ifinoctets(ni,value)
00243 #define snmp_inc_ifinucastpkts(ni)
00244 #define snmp_inc_ifinnucastpkts(ni)
00245 #define snmp_inc_ifindiscards(ni)
00246 #define snmp_add_ifoutoctets(ni,value)
00247 #define snmp_inc_ifoutucastpkts(ni)
00248 #define snmp_inc_ifoutnucastpkts(ni)
00249 #define snmp_inc_ifoutdiscards(ni)
00250 #define snmp_inc_iflist()
00251 #define snmp_dec_iflist()
00252
00253
00254 #define snmp_insert_arpidx_tree(ni,ip)
00255 #define snmp_delete_arpidx_tree(ni,ip)
00256
00257
00258 #define snmp_inc_ipinreceives()
00259 #define snmp_inc_ipinhdrerrors()
00260 #define snmp_inc_ipinaddrerrors()
00261 #define snmp_inc_ipforwdatagrams()
00262 #define snmp_inc_ipinunknownprotos()
00263 #define snmp_inc_ipindiscards()
00264 #define snmp_inc_ipindelivers()
00265 #define snmp_inc_ipoutrequests()
00266 #define snmp_inc_ipoutdiscards()
00267 #define snmp_inc_ipoutnoroutes()
00268 #define snmp_inc_ipreasmreqds()
00269 #define snmp_inc_ipreasmoks()
00270 #define snmp_inc_ipreasmfails()
00271 #define snmp_inc_ipfragoks()
00272 #define snmp_inc_ipfragfails()
00273 #define snmp_inc_ipfragcreates()
00274 #define snmp_inc_iproutingdiscards()
00275 #define snmp_insert_ipaddridx_tree(ni)
00276 #define snmp_delete_ipaddridx_tree(ni)
00277 #define snmp_insert_iprteidx_tree(dflt, ni)
00278 #define snmp_delete_iprteidx_tree(dflt, ni)
00279
00280
00281 #define snmp_inc_icmpinmsgs()
00282 #define snmp_inc_icmpinerrors()
00283 #define snmp_inc_icmpindestunreachs()
00284 #define snmp_inc_icmpintimeexcds()
00285 #define snmp_inc_icmpinparmprobs()
00286 #define snmp_inc_icmpinsrcquenchs()
00287 #define snmp_inc_icmpinredirects()
00288 #define snmp_inc_icmpinechos()
00289 #define snmp_inc_icmpinechoreps()
00290 #define snmp_inc_icmpintimestamps()
00291 #define snmp_inc_icmpintimestampreps()
00292 #define snmp_inc_icmpinaddrmasks()
00293 #define snmp_inc_icmpinaddrmaskreps()
00294 #define snmp_inc_icmpoutmsgs()
00295 #define snmp_inc_icmpouterrors()
00296 #define snmp_inc_icmpoutdestunreachs()
00297 #define snmp_inc_icmpouttimeexcds()
00298 #define snmp_inc_icmpoutparmprobs()
00299 #define snmp_inc_icmpoutsrcquenchs()
00300 #define snmp_inc_icmpoutredirects()
00301 #define snmp_inc_icmpoutechos()
00302 #define snmp_inc_icmpoutechoreps()
00303 #define snmp_inc_icmpouttimestamps()
00304 #define snmp_inc_icmpouttimestampreps()
00305 #define snmp_inc_icmpoutaddrmasks()
00306 #define snmp_inc_icmpoutaddrmaskreps()
00307
00308 #define snmp_inc_tcpactiveopens()
00309 #define snmp_inc_tcppassiveopens()
00310 #define snmp_inc_tcpattemptfails()
00311 #define snmp_inc_tcpestabresets()
00312 #define snmp_inc_tcpinsegs()
00313 #define snmp_inc_tcpoutsegs()
00314 #define snmp_inc_tcpretranssegs()
00315 #define snmp_inc_tcpinerrs()
00316 #define snmp_inc_tcpoutrsts()
00317
00318
00319 #define snmp_inc_udpindatagrams()
00320 #define snmp_inc_udpnoports()
00321 #define snmp_inc_udpinerrors()
00322 #define snmp_inc_udpoutdatagrams()
00323 #define snmp_insert_udpidx_tree(pcb)
00324 #define snmp_delete_udpidx_tree(pcb)
00325
00326
00327 #define snmp_inc_snmpinpkts()
00328 #define snmp_inc_snmpoutpkts()
00329 #define snmp_inc_snmpinbadversions()
00330 #define snmp_inc_snmpinbadcommunitynames()
00331 #define snmp_inc_snmpinbadcommunityuses()
00332 #define snmp_inc_snmpinasnparseerrs()
00333 #define snmp_inc_snmpintoobigs()
00334 #define snmp_inc_snmpinnosuchnames()
00335 #define snmp_inc_snmpinbadvalues()
00336 #define snmp_inc_snmpinreadonlys()
00337 #define snmp_inc_snmpingenerrs()
00338 #define snmp_add_snmpintotalreqvars(value)
00339 #define snmp_add_snmpintotalsetvars(value)
00340 #define snmp_inc_snmpingetrequests()
00341 #define snmp_inc_snmpingetnexts()
00342 #define snmp_inc_snmpinsetrequests()
00343 #define snmp_inc_snmpingetresponses()
00344 #define snmp_inc_snmpintraps()
00345 #define snmp_inc_snmpouttoobigs()
00346 #define snmp_inc_snmpoutnosuchnames()
00347 #define snmp_inc_snmpoutbadvalues()
00348 #define snmp_inc_snmpoutgenerrs()
00349 #define snmp_inc_snmpoutgetrequests()
00350 #define snmp_inc_snmpoutgetnexts()
00351 #define snmp_inc_snmpoutsetrequests()
00352 #define snmp_inc_snmpoutgetresponses()
00353 #define snmp_inc_snmpouttraps()
00354 #define snmp_get_snmpgrpid_ptr(oid)
00355 #define snmp_set_snmpenableauthentraps(value)
00356 #define snmp_get_snmpenableauthentraps(value)
00357
00358 #endif
00359
00360 #ifdef __cplusplus
00361 }
00362 #endif
00363
00364 #endif