Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
snmp.h
00001 /* 00002 * Copyright (c) 2001, 2002 Leon Woestenberg <leon.woestenberg@axon.tv> 00003 * Copyright (c) 2001, 2002 Axon Digital Design B.V., The Netherlands. 00004 * All rights reserved. 00005 * 00006 * Redistribution and use in source and binary forms, with or without modification, 00007 * are permitted provided that the following conditions are met: 00008 * 00009 * 1. Redistributions of source code must retain the above copyright notice, 00010 * this list of conditions and the following disclaimer. 00011 * 2. Redistributions in binary form must reproduce the above copyright notice, 00012 * this list of conditions and the following disclaimer in the documentation 00013 * and/or other materials provided with the distribution. 00014 * 3. The name of the author may not be used to endorse or promote products 00015 * derived from this software without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 00018 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00019 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 00020 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00021 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 00022 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00023 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00024 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 00025 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 00026 * OF SUCH DAMAGE. 00027 * 00028 * This file is part of the lwIP TCP/IP stack. 00029 * 00030 * Author: Leon Woestenberg <leon.woestenberg@axon.tv> 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 * @see RFC1213, "MIB-II, 6. Definitions" 00046 */ 00047 enum snmp_ifType { 00048 snmp_ifType_other=1, /* none of the following */ 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, /* T-1 */ 00066 snmp_ifType_e1, /* european equiv. of T-1 */ 00067 snmp_ifType_basicISDN, 00068 snmp_ifType_primaryISDN, /* proprietary serial */ 00069 snmp_ifType_propPointToPointSerial, 00070 snmp_ifType_ppp, 00071 snmp_ifType_softwareLoopback, 00072 snmp_ifType_eon, /* CLNP over IP [11] */ 00073 snmp_ifType_ethernet_3Mbit, 00074 snmp_ifType_nsip, /* XNS over IP */ 00075 snmp_ifType_slip, /* generic SLIP */ 00076 snmp_ifType_ultra, /* ULTRA technologies */ 00077 snmp_ifType_ds3, /* T-3 */ 00078 snmp_ifType_sip, /* SMDS */ 00079 snmp_ifType_frame_relay 00080 }; 00081 00082 #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ 00083 00084 /** SNMP "sysuptime" Interval */ 00085 #define SNMP_SYSUPTIME_INTERVAL 10 00086 00087 /** fixed maximum length for object identifier type */ 00088 #define LWIP_SNMP_OBJ_ID_LEN 32 00089 00090 /** internal object identifier representation */ 00091 struct snmp_obj_id 00092 { 00093 u8_t len; 00094 s32_t id[LWIP_SNMP_OBJ_ID_LEN]; 00095 }; 00096 00097 /* system */ 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 /* network interface */ 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 /* ARP (for atTable and ipNetToMediaTable) */ 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 /* IP */ 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 /* ICMP */ 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 /* TCP */ 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 /* UDP */ 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 /* SNMP */ 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 /* LWIP_SNMP support not available */ 00227 /* define everything to be empty */ 00228 #else 00229 00230 /* system */ 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 /* network interface */ 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 /* ARP */ 00254 #define snmp_insert_arpidx_tree(ni,ip) 00255 #define snmp_delete_arpidx_tree(ni,ip) 00256 00257 /* IP */ 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 /* ICMP */ 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 /* TCP */ 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 /* UDP */ 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 /* SNMP */ 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 /* LWIP_SNMP */ 00359 00360 #ifdef __cplusplus 00361 } 00362 #endif 00363 00364 #endif /* __LWIP_SNMP_H__ */
Generated on Tue Jul 12 2022 20:39:37 by
1.7.2