snmp 1.2.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +57 -63
  3. data/Rakefile +2 -0
  4. data/data/ruby/snmp/mibs/ACCOUNTING-CONTROL-MIB.yaml +0 -0
  5. data/data/ruby/snmp/mibs/ADSL-LINE-EXT-MIB.yaml +0 -0
  6. data/data/ruby/snmp/mibs/ADSL-LINE-MIB.yaml +0 -0
  7. data/data/ruby/snmp/mibs/ADSL-TC-MIB.yaml +0 -0
  8. data/data/ruby/snmp/mibs/ADSL2-LINE-MIB.yaml +0 -0
  9. data/data/ruby/snmp/mibs/ADSL2-LINE-TC-MIB.yaml +0 -0
  10. data/data/ruby/snmp/mibs/AGENTX-MIB.yaml +0 -0
  11. data/data/ruby/snmp/mibs/AGGREGATE-MIB.yaml +0 -0
  12. data/data/ruby/snmp/mibs/ALARM-MIB.yaml +0 -0
  13. data/data/ruby/snmp/mibs/APM-MIB.yaml +0 -0
  14. data/data/ruby/snmp/mibs/APPC-MIB.yaml +0 -0
  15. data/data/ruby/snmp/mibs/APPLETALK-MIB.yaml +0 -0
  16. data/data/ruby/snmp/mibs/APPLICATION-MIB.yaml +0 -0
  17. data/data/ruby/snmp/mibs/APPN-DLUR-MIB.yaml +0 -0
  18. data/data/ruby/snmp/mibs/APPN-MIB.yaml +0 -0
  19. data/data/ruby/snmp/mibs/APPN-TRAP-MIB.yaml +0 -0
  20. data/data/ruby/snmp/mibs/APS-MIB.yaml +0 -0
  21. data/data/ruby/snmp/mibs/ARC-MIB.yaml +0 -0
  22. data/data/ruby/snmp/mibs/ATM-ACCOUNTING-INFORMATION-MIB.yaml +0 -0
  23. data/data/ruby/snmp/mibs/ATM-MIB.yaml +0 -0
  24. data/data/ruby/snmp/mibs/ATM-TC-MIB.yaml +0 -0
  25. data/data/ruby/snmp/mibs/ATM2-MIB.yaml +0 -0
  26. data/data/ruby/snmp/mibs/BGP4-MIB.yaml +0 -0
  27. data/data/ruby/snmp/mibs/BLDG-HVAC-MIB.yaml +0 -0
  28. data/data/ruby/snmp/mibs/BRIDGE-MIB.yaml +0 -0
  29. data/data/ruby/snmp/mibs/CHARACTER-MIB.yaml +0 -0
  30. data/data/ruby/snmp/mibs/CIRCUIT-IF-MIB.yaml +0 -0
  31. data/data/ruby/snmp/mibs/CLNS-MIB.yaml +0 -0
  32. data/data/ruby/snmp/mibs/COFFEE-POT-MIB.yaml +0 -0
  33. data/data/ruby/snmp/mibs/COPS-CLIENT-MIB.yaml +0 -0
  34. data/data/ruby/snmp/mibs/DECNET-PHIV-MIB.yaml +0 -0
  35. data/data/ruby/snmp/mibs/DIAL-CONTROL-MIB.yaml +0 -0
  36. data/data/ruby/snmp/mibs/DIFFSERV-CONFIG-MIB.yaml +0 -0
  37. data/data/ruby/snmp/mibs/DIFFSERV-DSCP-TC.yaml +0 -0
  38. data/data/ruby/snmp/mibs/DIFFSERV-MIB.yaml +0 -0
  39. data/data/ruby/snmp/mibs/DIRECTORY-SERVER-MIB.yaml +0 -0
  40. data/data/ruby/snmp/mibs/DISMAN-EVENT-MIB.yaml +0 -0
  41. data/data/ruby/snmp/mibs/DISMAN-EXPRESSION-MIB.yaml +0 -0
  42. data/data/ruby/snmp/mibs/DISMAN-NSLOOKUP-MIB.yaml +0 -0
  43. data/data/ruby/snmp/mibs/DISMAN-PING-MIB.yaml +0 -0
  44. data/data/ruby/snmp/mibs/DISMAN-SCHEDULE-MIB.yaml +0 -0
  45. data/data/ruby/snmp/mibs/DISMAN-SCRIPT-MIB.yaml +0 -0
  46. data/data/ruby/snmp/mibs/DISMAN-TRACEROUTE-MIB.yaml +0 -0
  47. data/data/ruby/snmp/mibs/DLSW-MIB.yaml +0 -0
  48. data/data/ruby/snmp/mibs/DNS-RESOLVER-MIB.yaml +0 -0
  49. data/data/ruby/snmp/mibs/DNS-SERVER-MIB.yaml +0 -0
  50. data/data/ruby/snmp/mibs/DOCS-BPI-MIB.yaml +0 -0
  51. data/data/ruby/snmp/mibs/DOCS-CABLE-DEVICE-MIB.yaml +0 -0
  52. data/data/ruby/snmp/mibs/DOCS-IETF-BPI2-MIB.yaml +0 -0
  53. data/data/ruby/snmp/mibs/DOCS-IETF-CABLE-DEVICE-NOTIFICATION-MIB.yaml +0 -0
  54. data/data/ruby/snmp/mibs/DOCS-IETF-QOS-MIB.yaml +0 -0
  55. data/data/ruby/snmp/mibs/DOCS-IETF-SUBMGT-MIB.yaml +0 -0
  56. data/data/ruby/snmp/mibs/DOCS-IF-MIB.yaml +0 -0
  57. data/data/ruby/snmp/mibs/DOT12-IF-MIB.yaml +0 -0
  58. data/data/ruby/snmp/mibs/DOT3-EPON-MIB.yaml +0 -0
  59. data/data/ruby/snmp/mibs/DOT3-OAM-MIB.yaml +0 -0
  60. data/data/ruby/snmp/mibs/DS0-MIB.yaml +0 -0
  61. data/data/ruby/snmp/mibs/DS0BUNDLE-MIB.yaml +0 -0
  62. data/data/ruby/snmp/mibs/DS1-MIB.yaml +0 -0
  63. data/data/ruby/snmp/mibs/DS3-MIB.yaml +0 -0
  64. data/data/ruby/snmp/mibs/DSA-MIB.yaml +0 -0
  65. data/data/ruby/snmp/mibs/DSMON-MIB.yaml +0 -0
  66. data/data/ruby/snmp/mibs/EBN-MIB.yaml +0 -0
  67. data/data/ruby/snmp/mibs/EFM-CU-MIB.yaml +0 -0
  68. data/data/ruby/snmp/mibs/ENTITY-MIB.yaml +0 -0
  69. data/data/ruby/snmp/mibs/ENTITY-SENSOR-MIB.yaml +0 -0
  70. data/data/ruby/snmp/mibs/ENTITY-STATE-MIB.yaml +0 -0
  71. data/data/ruby/snmp/mibs/ENTITY-STATE-TC-MIB.yaml +0 -0
  72. data/data/ruby/snmp/mibs/ETHER-CHIPSET-MIB.yaml +0 -0
  73. data/data/ruby/snmp/mibs/ETHER-WIS.yaml +0 -0
  74. data/data/ruby/snmp/mibs/EtherLike-MIB.yaml +0 -0
  75. data/data/ruby/snmp/mibs/FC-MGMT-MIB.yaml +0 -0
  76. data/data/ruby/snmp/mibs/FCIP-MGMT-MIB.yaml +0 -0
  77. data/data/ruby/snmp/mibs/FDDI-SMT73-MIB.yaml +0 -0
  78. data/data/ruby/snmp/mibs/FIBRE-CHANNEL-FE-MIB.yaml +0 -0
  79. data/data/ruby/snmp/mibs/FLOW-METER-MIB.yaml +0 -0
  80. data/data/ruby/snmp/mibs/FR-ATM-PVC-SERVICE-IWF-MIB.yaml +0 -0
  81. data/data/ruby/snmp/mibs/FR-MFR-MIB.yaml +0 -0
  82. data/data/ruby/snmp/mibs/FRAME-RELAY-DTE-MIB.yaml +0 -0
  83. data/data/ruby/snmp/mibs/FRNETSERV-MIB.yaml +0 -0
  84. data/data/ruby/snmp/mibs/FRSLD-MIB.yaml +0 -0
  85. data/data/ruby/snmp/mibs/Finisher-MIB.yaml +0 -0
  86. data/data/ruby/snmp/mibs/GMPLS-LABEL-STD-MIB.yaml +0 -0
  87. data/data/ruby/snmp/mibs/GMPLS-LSR-STD-MIB.yaml +0 -0
  88. data/data/ruby/snmp/mibs/GMPLS-TC-STD-MIB.yaml +0 -0
  89. data/data/ruby/snmp/mibs/GMPLS-TE-STD-MIB.yaml +0 -0
  90. data/data/ruby/snmp/mibs/GSMP-MIB.yaml +0 -0
  91. data/data/ruby/snmp/mibs/HC-ALARM-MIB.yaml +0 -0
  92. data/data/ruby/snmp/mibs/HC-PerfHist-TC-MIB.yaml +0 -0
  93. data/data/ruby/snmp/mibs/HC-RMON-MIB.yaml +0 -0
  94. data/data/ruby/snmp/mibs/HCNUM-TC.yaml +0 -0
  95. data/data/ruby/snmp/mibs/HDSL2-SHDSL-LINE-MIB.yaml +0 -0
  96. data/data/ruby/snmp/mibs/HOST-RESOURCES-MIB.yaml +0 -0
  97. data/data/ruby/snmp/mibs/HOST-RESOURCES-TYPES.yaml +0 -0
  98. data/data/ruby/snmp/mibs/HPR-IP-MIB.yaml +0 -0
  99. data/data/ruby/snmp/mibs/HPR-MIB.yaml +0 -0
  100. data/data/ruby/snmp/mibs/IANA-ITU-ALARM-TC-MIB.yaml +0 -0
  101. data/data/ruby/snmp/mibs/IF-CAP-STACK-MIB.yaml +0 -0
  102. data/data/ruby/snmp/mibs/IF-INVERTED-STACK-MIB.yaml +0 -0
  103. data/data/ruby/snmp/mibs/IF-MIB.yaml +0 -0
  104. data/data/ruby/snmp/mibs/IFCP-MGMT-MIB.yaml +0 -0
  105. data/data/ruby/snmp/mibs/IGMP-STD-MIB.yaml +0 -0
  106. data/data/ruby/snmp/mibs/INET-ADDRESS-MIB.yaml +0 -0
  107. data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-GUARANTEED-MIB.yaml +0 -0
  108. data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-MIB.yaml +0 -0
  109. data/data/ruby/snmp/mibs/INTERFACETOPN-MIB.yaml +0 -0
  110. data/data/ruby/snmp/mibs/IP-FORWARD-MIB.yaml +0 -0
  111. data/data/ruby/snmp/mibs/IP-MIB.yaml +0 -0
  112. data/data/ruby/snmp/mibs/IPATM-IPMC-MIB.yaml +0 -0
  113. data/data/ruby/snmp/mibs/IPMCAST-MIB.yaml +0 -0
  114. data/data/ruby/snmp/mibs/IPMROUTE-STD-MIB.yaml +0 -0
  115. data/data/ruby/snmp/mibs/IPOA-MIB.yaml +0 -0
  116. data/data/ruby/snmp/mibs/IPS-AUTH-MIB.yaml +0 -0
  117. data/data/ruby/snmp/mibs/IPSEC-SPD-MIB.yaml +0 -0
  118. data/data/ruby/snmp/mibs/IPV6-FLOW-LABEL-MIB.yaml +0 -0
  119. data/data/ruby/snmp/mibs/IPV6-ICMP-MIB.yaml +0 -0
  120. data/data/ruby/snmp/mibs/IPV6-MIB.yaml +0 -0
  121. data/data/ruby/snmp/mibs/IPV6-MLD-MIB.yaml +0 -0
  122. data/data/ruby/snmp/mibs/IPV6-TCP-MIB.yaml +0 -0
  123. data/data/ruby/snmp/mibs/IPV6-UDP-MIB.yaml +0 -0
  124. data/data/ruby/snmp/mibs/ISCSI-MIB.yaml +0 -0
  125. data/data/ruby/snmp/mibs/ISDN-MIB.yaml +0 -0
  126. data/data/ruby/snmp/mibs/ISIS-MIB.yaml +0 -0
  127. data/data/ruby/snmp/mibs/ISNS-MIB.yaml +0 -0
  128. data/data/ruby/snmp/mibs/ITU-ALARM-MIB.yaml +0 -0
  129. data/data/ruby/snmp/mibs/ITU-ALARM-TC-MIB.yaml +0 -0
  130. data/data/ruby/snmp/mibs/Job-Monitoring-MIB.yaml +0 -0
  131. data/data/ruby/snmp/mibs/L2TP-MIB.yaml +0 -0
  132. data/data/ruby/snmp/mibs/LANGTAG-TC-MIB.yaml +0 -0
  133. data/data/ruby/snmp/mibs/LMP-MIB.yaml +0 -0
  134. data/data/ruby/snmp/mibs/MALLOC-MIB.yaml +0 -0
  135. data/data/ruby/snmp/mibs/MAU-MIB.yaml +0 -0
  136. data/data/ruby/snmp/mibs/MIDCOM-MIB.yaml +0 -0
  137. data/data/ruby/snmp/mibs/MIOX25-MIB.yaml +0 -0
  138. data/data/ruby/snmp/mibs/MIP-MIB.yaml +0 -0
  139. data/data/ruby/snmp/mibs/MOBILEIPV6-MIB.yaml +0 -0
  140. data/data/ruby/snmp/mibs/MPLS-FTN-STD-MIB.yaml +0 -0
  141. data/data/ruby/snmp/mibs/MPLS-L3VPN-STD-MIB.yaml +0 -0
  142. data/data/ruby/snmp/mibs/MPLS-LC-ATM-STD-MIB.yaml +0 -0
  143. data/data/ruby/snmp/mibs/MPLS-LC-FR-STD-MIB.yaml +0 -0
  144. data/data/ruby/snmp/mibs/MPLS-LDP-ATM-STD-MIB.yaml +0 -0
  145. data/data/ruby/snmp/mibs/MPLS-LDP-FRAME-RELAY-STD-MIB.yaml +0 -0
  146. data/data/ruby/snmp/mibs/MPLS-LDP-GENERIC-STD-MIB.yaml +0 -0
  147. data/data/ruby/snmp/mibs/MPLS-LDP-STD-MIB.yaml +0 -0
  148. data/data/ruby/snmp/mibs/MPLS-LSR-STD-MIB.yaml +0 -0
  149. data/data/ruby/snmp/mibs/MPLS-TC-STD-MIB.yaml +0 -0
  150. data/data/ruby/snmp/mibs/MPLS-TE-STD-MIB.yaml +0 -0
  151. data/data/ruby/snmp/mibs/MSDP-MIB.yaml +0 -0
  152. data/data/ruby/snmp/mibs/MTA-MIB.yaml +0 -0
  153. data/data/ruby/snmp/mibs/Modem-MIB.yaml +0 -0
  154. data/data/ruby/snmp/mibs/NAT-MIB.yaml +0 -0
  155. data/data/ruby/snmp/mibs/NETWORK-SERVICES-MIB.yaml +0 -0
  156. data/data/ruby/snmp/mibs/NHRP-MIB.yaml +0 -0
  157. data/data/ruby/snmp/mibs/NOTIFICATION-LOG-MIB.yaml +0 -0
  158. data/data/ruby/snmp/mibs/OPT-IF-MIB.yaml +0 -0
  159. data/data/ruby/snmp/mibs/OSPF-MIB.yaml +0 -0
  160. data/data/ruby/snmp/mibs/OSPF-TRAP-MIB.yaml +0 -0
  161. data/data/ruby/snmp/mibs/P-BRIDGE-MIB.yaml +0 -0
  162. data/data/ruby/snmp/mibs/PARALLEL-MIB.yaml +0 -0
  163. data/data/ruby/snmp/mibs/PIM-MIB.yaml +0 -0
  164. data/data/ruby/snmp/mibs/PIM-STD-MIB.yaml +0 -0
  165. data/data/ruby/snmp/mibs/PINT-MIB.yaml +0 -0
  166. data/data/ruby/snmp/mibs/PKTC-IETF-MTA-MIB.yaml +0 -0
  167. data/data/ruby/snmp/mibs/PKTC-IETF-SIG-MIB.yaml +0 -0
  168. data/data/ruby/snmp/mibs/POLICY-BASED-MANAGEMENT-MIB.yaml +0 -0
  169. data/data/ruby/snmp/mibs/POWER-ETHERNET-MIB.yaml +0 -0
  170. data/data/ruby/snmp/mibs/PPP-BRIDGE-NCP-MIB.yaml +0 -0
  171. data/data/ruby/snmp/mibs/PPP-IP-NCP-MIB.yaml +0 -0
  172. data/data/ruby/snmp/mibs/PPP-LCP-MIB.yaml +0 -0
  173. data/data/ruby/snmp/mibs/PPP-SEC-MIB.yaml +0 -0
  174. data/data/ruby/snmp/mibs/PTOPO-MIB.yaml +0 -0
  175. data/data/ruby/snmp/mibs/PerfHist-TC-MIB.yaml +0 -0
  176. data/data/ruby/snmp/mibs/Printer-MIB.yaml +0 -0
  177. data/data/ruby/snmp/mibs/Q-BRIDGE-MIB.yaml +0 -0
  178. data/data/ruby/snmp/mibs/RADIUS-ACC-CLIENT-MIB.yaml +0 -0
  179. data/data/ruby/snmp/mibs/RADIUS-ACC-SERVER-MIB.yaml +0 -0
  180. data/data/ruby/snmp/mibs/RADIUS-AUTH-CLIENT-MIB.yaml +0 -0
  181. data/data/ruby/snmp/mibs/RADIUS-AUTH-SERVER-MIB.yaml +0 -0
  182. data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-CLIENT-MIB.yaml +0 -0
  183. data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-SERVER-MIB.yaml +0 -0
  184. data/data/ruby/snmp/mibs/RAQMON-MIB.yaml +0 -0
  185. data/data/ruby/snmp/mibs/RDBMS-MIB.yaml +0 -0
  186. data/data/ruby/snmp/mibs/RFC1065-SMI.yaml +0 -0
  187. data/data/ruby/snmp/mibs/RFC1155-SMI.yaml +0 -0
  188. data/data/ruby/snmp/mibs/RFC1158-MIB.yaml +0 -0
  189. data/data/ruby/snmp/mibs/RFC1213-MIB.yaml +0 -0
  190. data/data/ruby/snmp/mibs/RFC1269-MIB.yaml +0 -0
  191. data/data/ruby/snmp/mibs/RFC1271-MIB.yaml +0 -0
  192. data/data/ruby/snmp/mibs/RFC1285-MIB.yaml +0 -0
  193. data/data/ruby/snmp/mibs/RFC1316-MIB.yaml +0 -0
  194. data/data/ruby/snmp/mibs/RFC1381-MIB.yaml +0 -0
  195. data/data/ruby/snmp/mibs/RFC1382-MIB.yaml +0 -0
  196. data/data/ruby/snmp/mibs/RFC1414-MIB.yaml +0 -0
  197. data/data/ruby/snmp/mibs/RIPv2-MIB.yaml +0 -0
  198. data/data/ruby/snmp/mibs/RMON-MIB.yaml +0 -0
  199. data/data/ruby/snmp/mibs/RMON2-MIB.yaml +0 -0
  200. data/data/ruby/snmp/mibs/ROHC-MIB.yaml +0 -0
  201. data/data/ruby/snmp/mibs/ROHC-RTP-MIB.yaml +0 -0
  202. data/data/ruby/snmp/mibs/ROHC-UNCOMPRESSED-MIB.yaml +0 -0
  203. data/data/ruby/snmp/mibs/RS-232-MIB.yaml +0 -0
  204. data/data/ruby/snmp/mibs/RSTP-MIB.yaml +0 -0
  205. data/data/ruby/snmp/mibs/RSVP-MIB.yaml +0 -0
  206. data/data/ruby/snmp/mibs/RTP-MIB.yaml +0 -0
  207. data/data/ruby/snmp/mibs/SCSI-MIB.yaml +0 -0
  208. data/data/ruby/snmp/mibs/SCTP-MIB.yaml +0 -0
  209. data/data/ruby/snmp/mibs/SFLOW-MIB.yaml +0 -0
  210. data/data/ruby/snmp/mibs/SIP-COMMON-MIB.yaml +0 -0
  211. data/data/ruby/snmp/mibs/SIP-MIB.yaml +0 -0
  212. data/data/ruby/snmp/mibs/SIP-SERVER-MIB.yaml +0 -0
  213. data/data/ruby/snmp/mibs/SIP-TC-MIB.yaml +0 -0
  214. data/data/ruby/snmp/mibs/SIP-UA-MIB.yaml +0 -0
  215. data/data/ruby/snmp/mibs/SLAPM-MIB.yaml +0 -0
  216. data/data/ruby/snmp/mibs/SMON-MIB.yaml +0 -0
  217. data/data/ruby/snmp/mibs/SNA-NAU-MIB.yaml +0 -0
  218. data/data/ruby/snmp/mibs/SNA-SDLC-MIB.yaml +0 -0
  219. data/data/ruby/snmp/mibs/SNMP-COMMUNITY-MIB.yaml +0 -0
  220. data/data/ruby/snmp/mibs/SNMP-FRAMEWORK-MIB.yaml +0 -0
  221. data/data/ruby/snmp/mibs/SNMP-MPD-MIB.yaml +0 -0
  222. data/data/ruby/snmp/mibs/SNMP-NOTIFICATION-MIB.yaml +0 -0
  223. data/data/ruby/snmp/mibs/SNMP-PROXY-MIB.yaml +0 -0
  224. data/data/ruby/snmp/mibs/SNMP-REPEATER-MIB.yaml +0 -0
  225. data/data/ruby/snmp/mibs/SNMP-TARGET-MIB.yaml +0 -0
  226. data/data/ruby/snmp/mibs/SNMP-USER-BASED-SM-MIB.yaml +0 -0
  227. data/data/ruby/snmp/mibs/SNMP-USM-AES-MIB.yaml +0 -0
  228. data/data/ruby/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.yaml +0 -0
  229. data/data/ruby/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.yaml +0 -0
  230. data/data/ruby/snmp/mibs/SNMPv2-MIB.yaml +0 -0
  231. data/data/ruby/snmp/mibs/SNMPv2-SMI.yaml +0 -0
  232. data/data/ruby/snmp/mibs/SNMPv2-TM.yaml +0 -0
  233. data/data/ruby/snmp/mibs/SNMPv2-USEC-MIB.yaml +0 -0
  234. data/data/ruby/snmp/mibs/SONET-MIB.yaml +0 -0
  235. data/data/ruby/snmp/mibs/SOURCE-ROUTING-MIB.yaml +0 -0
  236. data/data/ruby/snmp/mibs/SSPM-MIB.yaml +0 -0
  237. data/data/ruby/snmp/mibs/SYSAPPL-MIB.yaml +0 -0
  238. data/data/ruby/snmp/mibs/T11-FC-FABRIC-ADDR-MGR-MIB.yaml +0 -0
  239. data/data/ruby/snmp/mibs/T11-FC-FABRIC-CONFIG-SERVER-MIB.yaml +0 -0
  240. data/data/ruby/snmp/mibs/T11-FC-FABRIC-LOCK-MIB.yaml +0 -0
  241. data/data/ruby/snmp/mibs/T11-FC-FSPF-MIB.yaml +0 -0
  242. data/data/ruby/snmp/mibs/T11-FC-NAME-SERVER-MIB.yaml +0 -0
  243. data/data/ruby/snmp/mibs/T11-FC-ROUTE-MIB.yaml +0 -0
  244. data/data/ruby/snmp/mibs/T11-FC-RSCN-MIB.yaml +0 -0
  245. data/data/ruby/snmp/mibs/T11-FC-VIRTUAL-FABRIC-MIB.yaml +0 -0
  246. data/data/ruby/snmp/mibs/T11-FC-ZONE-SERVER-MIB.yaml +0 -0
  247. data/data/ruby/snmp/mibs/T11-TC-MIB.yaml +0 -0
  248. data/data/ruby/snmp/mibs/TCP-ESTATS-MIB.yaml +0 -0
  249. data/data/ruby/snmp/mibs/TCP-MIB.yaml +0 -0
  250. data/data/ruby/snmp/mibs/TCPIPX-MIB.yaml +0 -0
  251. data/data/ruby/snmp/mibs/TE-LINK-STD-MIB.yaml +0 -0
  252. data/data/ruby/snmp/mibs/TE-MIB.yaml +0 -0
  253. data/data/ruby/snmp/mibs/TIME-AGGREGATE-MIB.yaml +0 -0
  254. data/data/ruby/snmp/mibs/TN3270E-MIB.yaml +0 -0
  255. data/data/ruby/snmp/mibs/TN3270E-RT-MIB.yaml +0 -0
  256. data/data/ruby/snmp/mibs/TOKEN-RING-RMON-MIB.yaml +0 -0
  257. data/data/ruby/snmp/mibs/TOKENRING-MIB.yaml +0 -0
  258. data/data/ruby/snmp/mibs/TOKENRING-STATION-SR-MIB.yaml +0 -0
  259. data/data/ruby/snmp/mibs/TRANSPORT-ADDRESS-MIB.yaml +0 -0
  260. data/data/ruby/snmp/mibs/TRIP-MIB.yaml +0 -0
  261. data/data/ruby/snmp/mibs/TRIP-TC-MIB.yaml +0 -0
  262. data/data/ruby/snmp/mibs/TUNNEL-MIB.yaml +0 -0
  263. data/data/ruby/snmp/mibs/UCD-SNMP-MIB.yaml +0 -0
  264. data/data/ruby/snmp/mibs/UDP-MIB.yaml +0 -0
  265. data/data/ruby/snmp/mibs/UDPLITE-MIB.yaml +0 -0
  266. data/data/ruby/snmp/mibs/UPS-MIB.yaml +0 -0
  267. data/data/ruby/snmp/mibs/URI-TC-MIB.yaml +0 -0
  268. data/data/ruby/snmp/mibs/VDSL-LINE-EXT-MCM-MIB.yaml +0 -0
  269. data/data/ruby/snmp/mibs/VDSL-LINE-EXT-SCM-MIB.yaml +0 -0
  270. data/data/ruby/snmp/mibs/VDSL-LINE-MIB.yaml +0 -0
  271. data/data/ruby/snmp/mibs/VPN-TC-STD-MIB.yaml +0 -0
  272. data/data/ruby/snmp/mibs/VRRP-MIB.yaml +0 -0
  273. data/data/ruby/snmp/mibs/WWW-MIB.yaml +0 -0
  274. data/examples/datetime.rb +0 -0
  275. data/examples/dump.rb +0 -0
  276. data/examples/get.rb +0 -0
  277. data/examples/iftable.rb +0 -0
  278. data/examples/link_down.rb +0 -0
  279. data/examples/log_traps.rb +0 -0
  280. data/examples/set.rb +0 -0
  281. data/examples/walk.rb +0 -0
  282. data/lib/snmp/agent.rb +0 -0
  283. data/lib/snmp/ber.rb +244 -237
  284. data/lib/snmp/manager.rb +4 -1
  285. data/lib/snmp/mib.rb +1 -1
  286. data/lib/snmp/options.rb +0 -0
  287. data/lib/snmp/pdu.rb +36 -22
  288. data/lib/snmp/varbind.rb +46 -26
  289. data/lib/snmp/version.rb +1 -1
  290. data/lib/snmp.rb +0 -0
  291. data/test/if_table1.yaml +0 -0
  292. data/test/if_table6.yaml +0 -0
  293. data/test/test_ber.rb +17 -16
  294. data/test/test_manager.rb +3 -3
  295. data/test/test_mib.rb +1 -1
  296. data/test/test_pdu.rb +3 -3
  297. data/test/test_retry.rb +1 -1
  298. data/test/test_smi.rb +0 -0
  299. data/test/test_varbind.rb +4 -2
  300. data/test/test_walk.rb +2 -2
  301. metadata +8 -7
data/lib/snmp/ber.rb CHANGED
@@ -78,278 +78,285 @@ module SNMP
78
78
  class InvalidObjectId < RuntimeError; end
79
79
  class InvalidLength < RuntimeError; end
80
80
 
81
- def assert_no_remainder(remainder)
82
- raise ParseError, remainder.inspect if remainder != ""
83
- end
81
+ module Decode
84
82
 
85
- #
86
- # Decode tag-length-value data. The data is assumed to be a string of
87
- # bytes in network byte order. This format is returned by Socket#recv.
88
- #
89
- # Returns a tuple containing the tag, the value, and any remaining
90
- # unprocessed data.
91
- #
92
- # The data is not interpretted by this method. Use one of the other
93
- # decoding methods to interpret the data.
94
- #
95
- # Note that ASN.1 supports an indefinite length format where the end of
96
- # content is marked by a pair of 0 octets. SNMP does not support this
97
- # format, so only the two definite forms are implemented (single byte and
98
- # multi-byte).
99
- #
100
- def decode_tlv(data)
101
- raise OutOfData if (data.length == 2 && data[1].ord != 0) || data.length < 2
102
- tag = data[0].ord
103
- length = data[1].ord
104
- if length < 0x80
105
- value = data[2, length]
106
- remainder = data[length+2..-1]
107
- else
108
- # ASN.1 says this octet can't be 0xff
109
- raise InvalidLength, length.to_s if length == 0xff
110
- num_octets = length & 0x7f
111
- length = build_integer(data, 2, num_octets)
112
- value = data[num_octets+2, length]
113
- remainder = data[num_octets+2+length..-1]
83
+ def assert_no_remainder(remainder)
84
+ raise ParseError, remainder.inspect if remainder != ""
114
85
  end
115
- return tag, value, remainder
116
- end
117
86
 
118
- #
119
- # Decode TLV data for an ASN.1 integer.
120
- #
121
- # Throws an InvalidTag exception if the tag is incorrect.
122
- #
123
- # Returns a tuple containing an integer and any remaining unprocessed data.
124
- #
125
- def decode_integer(data)
126
- tag, value, remainder = decode_tlv(data)
127
- raise InvalidTag, tag.to_s if tag != INTEGER_TAG
128
- return decode_integer_value(value), remainder
129
- end
87
+ #
88
+ # Decode tag-length-value data. The data is assumed to be a string of
89
+ # bytes in network byte order. This format is returned by Socket#recv.
90
+ #
91
+ # Returns a tuple containing the tag, the value, and any remaining
92
+ # unprocessed data.
93
+ #
94
+ # The data is not interpretted by this method. Use one of the other
95
+ # decoding methods to interpret the data.
96
+ #
97
+ # Note that ASN.1 supports an indefinite length format where the end of
98
+ # content is marked by a pair of 0 octets. SNMP does not support this
99
+ # format, so only the two definite forms are implemented (single byte and
100
+ # multi-byte).
101
+ #
102
+ def decode_tlv(data)
103
+ raise OutOfData if (data.length == 2 && data[1].ord != 0) || data.length < 2
104
+ tag = data[0].ord
105
+ length = data[1].ord
106
+ if length < 0x80
107
+ value = data[2, length]
108
+ remainder = data[length+2..-1]
109
+ else
110
+ # ASN.1 says this octet can't be 0xff
111
+ raise InvalidLength, length.to_s if length == 0xff
112
+ num_octets = length & 0x7f
113
+ length = build_integer(data, 2, num_octets)
114
+ value = data[num_octets+2, length]
115
+ remainder = data[num_octets+2+length..-1]
116
+ end
117
+ return tag, value, remainder
118
+ end
130
119
 
131
- def decode_timeticks(data)
132
- tag, value, remainder = decode_tlv(data)
133
- raise InvalidTag, tag.to_s if tag != TimeTicks_TAG
134
- return decode_uinteger_value(value), remainder
135
- end
120
+ #
121
+ # Decode TLV data for an ASN.1 integer.
122
+ #
123
+ # Throws an InvalidTag exception if the tag is incorrect.
124
+ #
125
+ # Returns a tuple containing an integer and any remaining unprocessed data.
126
+ #
127
+ def decode_integer(data)
128
+ tag, value, remainder = decode_tlv(data)
129
+ raise InvalidTag, tag.to_s if tag != INTEGER_TAG
130
+ return decode_integer_value(value), remainder
131
+ end
136
132
 
137
- def decode_integer_value(value)
138
- result = build_integer(value, 0, value.length)
139
- if value[0].ord[7] == 1
140
- result -= (1 << (8 * value.length))
133
+ def decode_timeticks(data)
134
+ tag, value, remainder = decode_tlv(data)
135
+ raise InvalidTag, tag.to_s if tag != TimeTicks_TAG
136
+ return decode_uinteger_value(value), remainder
141
137
  end
142
- result
143
- end
144
138
 
145
- ##
146
- # Decode an integer, ignoring the sign bit. Some agents insist on
147
- # encoding 32 bit unsigned integers with four bytes even though it
148
- # should be 5 bytes (at least the way I read it).
149
- #
150
- def decode_uinteger_value(value)
151
- build_integer(value, 0, value.length)
152
- end
139
+ def decode_integer_value(value)
140
+ result = build_integer(value, 0, value.length)
141
+ if value[0].ord[7] == 1
142
+ result -= (1 << (8 * value.length))
143
+ end
144
+ result
145
+ end
153
146
 
154
- def build_integer(data, start, num_octets)
155
- number = 0
156
- num_octets.times { |i| number = number<<8 | data[start+i].ord }
157
- return number
158
- end
147
+ ##
148
+ # Decode an integer, ignoring the sign bit. Some agents insist on
149
+ # encoding 32 bit unsigned integers with four bytes even though it
150
+ # should be 5 bytes (at least the way I read it).
151
+ #
152
+ def decode_uinteger_value(value)
153
+ build_integer(value, 0, value.length)
154
+ end
159
155
 
160
- #
161
- # Decode TLV data for an ASN.1 octet string.
162
- #
163
- # Throws an InvalidTag exception if the tag is incorrect.
164
- #
165
- # Returns a tuple containing a string and any remaining unprocessed data.
166
- #
167
- def decode_octet_string(data)
168
- tag, value, remainder = decode_tlv(data)
169
- raise InvalidTag, tag.to_s if tag != OCTET_STRING_TAG
170
- return value, remainder
171
- end
156
+ def build_integer(data, start, num_octets)
157
+ number = 0
158
+ num_octets.times { |i| number = number<<8 | data[start+i].ord }
159
+ return number
160
+ end
172
161
 
173
- def decode_ip_address(data)
174
- tag, value, remainder = decode_tlv(data)
175
- raise InvalidTag, tag.to_s if tag != IpAddress_TAG
176
- raise InvalidLength, tag.to_s if value.length != 4
177
- return value, remainder
178
- end
162
+ #
163
+ # Decode TLV data for an ASN.1 octet string.
164
+ #
165
+ # Throws an InvalidTag exception if the tag is incorrect.
166
+ #
167
+ # Returns a tuple containing a string and any remaining unprocessed data.
168
+ #
169
+ def decode_octet_string(data)
170
+ tag, value, remainder = decode_tlv(data)
171
+ raise InvalidTag, tag.to_s if tag != OCTET_STRING_TAG
172
+ return value, remainder
173
+ end
179
174
 
180
- #
181
- # Decode TLV data for an ASN.1 sequence.
182
- #
183
- # Throws an InvalidTag exception if the tag is incorrect.
184
- #
185
- # Returns a tuple containing the sequence data and any remaining
186
- # unprocessed data that follows the sequence.
187
- #
188
- def decode_sequence(data)
189
- tag, value, remainder = decode_tlv(data)
190
- raise InvalidTag, tag.to_s if tag != SEQUENCE_TAG
191
- return value, remainder
192
- end
175
+ def decode_ip_address(data)
176
+ tag, value, remainder = decode_tlv(data)
177
+ raise InvalidTag, tag.to_s if tag != IpAddress_TAG
178
+ raise InvalidLength, tag.to_s if value.length != 4
179
+ return value, remainder
180
+ end
193
181
 
194
- #
195
- # Unwrap TLV data for an ASN.1 object identifier. This method extracts
196
- # the OID value as a character string but does not decode it further.
197
- #
198
- # Throws an InvalidTag exception if the tag is incorrect.
199
- #
200
- # Returns a tuple containing the object identifier (OID) and any
201
- # remaining unprocessed data. The OID is represented as an array
202
- # of integers.
203
- #
204
- def decode_object_id(data)
205
- tag, value, remainder = decode_tlv(data)
206
- raise InvalidTag, tag.to_s if tag != OBJECT_IDENTIFIER_TAG
207
- return decode_object_id_value(value), remainder
208
- end
182
+ #
183
+ # Decode TLV data for an ASN.1 sequence.
184
+ #
185
+ # Throws an InvalidTag exception if the tag is incorrect.
186
+ #
187
+ # Returns a tuple containing the sequence data and any remaining
188
+ # unprocessed data that follows the sequence.
189
+ #
190
+ def decode_sequence(data)
191
+ tag, value, remainder = decode_tlv(data)
192
+ raise InvalidTag, tag.to_s if tag != SEQUENCE_TAG
193
+ return value, remainder
194
+ end
195
+
196
+ #
197
+ # Unwrap TLV data for an ASN.1 object identifier. This method extracts
198
+ # the OID value as a character string but does not decode it further.
199
+ #
200
+ # Throws an InvalidTag exception if the tag is incorrect.
201
+ #
202
+ # Returns a tuple containing the object identifier (OID) and any
203
+ # remaining unprocessed data. The OID is represented as an array
204
+ # of integers.
205
+ #
206
+ def decode_object_id(data)
207
+ tag, value, remainder = decode_tlv(data)
208
+ raise InvalidTag, tag.to_s if tag != OBJECT_IDENTIFIER_TAG
209
+ return decode_object_id_value(value), remainder
210
+ end
209
211
 
210
- def decode_object_id_value(value)
211
- if value.length == 0
212
- object_id = []
213
- else
214
- value0 = value[0].ord
215
- if value0 == 0x2b
216
- object_id = [1,3]
212
+ def decode_object_id_value(value)
213
+ if value.length == 0
214
+ object_id = []
217
215
  else
218
- second = value0 % 40
219
- first = (value0 - second) / 40
220
- raise InvalidObjectId, value.to_s if first > 2
221
- object_id = [first, second]
222
- end
223
- n = 0
224
- for i in 1...value.length
225
- n = (n<<7) + (value[i].ord & 0x7f)
226
- if value[i].ord < 0x80
227
- object_id << n
228
- n = 0
216
+ value0 = value[0].ord
217
+ if value0 == 0x2b
218
+ object_id = [1,3]
219
+ else
220
+ second = value0 % 40
221
+ first = (value0 - second) / 40
222
+ raise InvalidObjectId, value.to_s if first > 2
223
+ object_id = [first, second]
224
+ end
225
+ n = 0
226
+ for i in 1...value.length
227
+ n = (n<<7) + (value[i].ord & 0x7f)
228
+ if value[i].ord < 0x80
229
+ object_id << n
230
+ n = 0
231
+ end
229
232
  end
230
233
  end
234
+ return object_id
231
235
  end
232
- return object_id
236
+
233
237
  end
234
238
 
235
- #
236
- # Encode the length field for TLV data. Returns the length octets
237
- # as a string.
238
- #
239
- def encode_length(length)
240
- raise InvalidLength, length.to_s if length < 0
241
- if length < 0x80
242
- length.chr
243
- else
244
- data = integer_to_octets(length)
245
- (data.size | 0x80).chr << data
239
+ module Encode
240
+
241
+ #
242
+ # Encode the length field for TLV data. Returns the length octets
243
+ # as a string.
244
+ #
245
+ def encode_length(length)
246
+ raise InvalidLength, length.to_s if length < 0
247
+ if length < 0x80
248
+ length.chr
249
+ else
250
+ data = integer_to_octets(length)
251
+ (data.size | 0x80).chr << data
252
+ end
246
253
  end
247
- end
248
254
 
249
- #
250
- # Encode integer
251
- #
252
- def encode_integer(value)
253
- encode_tagged_integer(INTEGER_TAG, value)
254
- end
255
+ #
256
+ # Encode integer
257
+ #
258
+ def encode_integer(value)
259
+ encode_tagged_integer(INTEGER_TAG, value)
260
+ end
255
261
 
256
- def encode_tagged_integer(tag, value)
257
- if value > 0 && value < 0x80
258
- data = value.chr
259
- else
260
- data = integer_to_octets(value)
261
- if value > 0 && data[0].ord > 0x7f
262
- data = "\000" << data
263
- elsif value < 0 && data[0].ord < 0x80
264
- data = "\377" << data
262
+ def encode_tagged_integer(tag, value)
263
+ if value > 0 && value < 0x80
264
+ data = value.chr
265
+ else
266
+ data = integer_to_octets(value)
267
+ if value > 0 && data[0].ord > 0x7f
268
+ data = "\000" << data
269
+ elsif value < 0 && data[0].ord < 0x80
270
+ data = "\377" << data
271
+ end
265
272
  end
273
+ encode_tlv(tag, data)
266
274
  end
267
- encode_tlv(tag, data)
268
- end
269
275
 
270
- #
271
- # Helper method for encoding integer-like things.
272
- #
273
- def integer_to_octets(i)
274
- if i >= 0
275
- done = 0
276
- else
277
- done = -1
276
+ #
277
+ # Helper method for encoding integer-like things.
278
+ #
279
+ def integer_to_octets(i)
280
+ if i >= 0
281
+ done = 0
282
+ else
283
+ done = -1
284
+ end
285
+ octets = ""
286
+ begin
287
+ octets = (i & 0xff).chr << octets
288
+ i = i >> 8
289
+ end until i == done
290
+ octets
278
291
  end
279
- octets = ""
280
- begin
281
- octets = (i & 0xff).chr << octets
282
- i = i >> 8
283
- end until i == done
284
- octets
285
- end
286
292
 
287
- def encode_null
288
- NULL_TAG.chr << "\000"
289
- end
293
+ def encode_null
294
+ NULL_TAG.chr << "\000"
295
+ end
290
296
 
291
- #
292
- # Encode an exception. The encoding is simply the exception tag with
293
- # no data, similar to NULL.
294
- #
295
- def encode_exception(tag)
296
- tag.chr << "\000"
297
- end
297
+ #
298
+ # Encode an exception. The encoding is simply the exception tag with
299
+ # no data, similar to NULL.
300
+ #
301
+ def encode_exception(tag)
302
+ tag.chr << "\000"
303
+ end
298
304
 
299
- #
300
- # Wraps value in a tag and length. This method expects an
301
- # integer tag and a string value.
302
- #
303
- def encode_tlv(tag, value)
304
- data = tag.chr << encode_length(value.length)
305
- data = data << value if value.length > 0
306
- data
307
- end
305
+ #
306
+ # Wraps value in a tag and length. This method expects an
307
+ # integer tag and a string value.
308
+ #
309
+ def encode_tlv(tag, value)
310
+ data = tag.chr << encode_length(value.length)
311
+ data = data << value if value.length > 0
312
+ data
313
+ end
308
314
 
309
- #
310
- # Wrap string in a octet string tag and length.
311
- #
312
- def encode_octet_string(value)
313
- encode_tlv(OCTET_STRING_TAG, value)
314
- end
315
+ #
316
+ # Wrap string in a octet string tag and length.
317
+ #
318
+ def encode_octet_string(value)
319
+ encode_tlv(OCTET_STRING_TAG, value)
320
+ end
315
321
 
316
- #
317
- # Wrap value in a sequence tag and length.
318
- #
319
- def encode_sequence(value)
320
- encode_tlv(SEQUENCE_TAG, value)
321
- end
322
+ #
323
+ # Wrap value in a sequence tag and length.
324
+ #
325
+ def encode_sequence(value)
326
+ encode_tlv(SEQUENCE_TAG, value)
327
+ end
322
328
 
323
- #
324
- # Encode an object id. The input is assumed to be an array of integers
325
- # representing the object id.
326
- #
327
- def encode_object_id(value)
328
- raise InvalidObjectId, value.to_s if value.length < 1
329
- raise InvalidObjectId, value.to_s if value[0] > 2
330
- data = ""
331
- if (value.length > 1)
332
- raise InvalidObjectId if value[0] < 2 && value[1] > 40
333
- data << (40 * value[0] + value[1]).chr
334
- for i in 2...value.length
335
- if value[i] < 0x80
336
- data << value[i].chr
337
- else
338
- octets = ""
339
- n = value[i]
340
- begin
341
- octets = (n & 0x7f | 0x80).chr << octets
342
- n = n >> 7
343
- end until n == 0
344
- octets[-1] = (octets[-1].ord & 0x7f).chr
345
- data << octets
329
+ #
330
+ # Encode an object id. The input is assumed to be an array of integers
331
+ # representing the object id.
332
+ #
333
+ def encode_object_id(value)
334
+ raise InvalidObjectId, value.to_s if value.length < 1
335
+ raise InvalidObjectId, value.to_s if value[0] > 2
336
+ data = ""
337
+ if (value.length > 1)
338
+ raise InvalidObjectId if value[0] < 2 && value[1] > 40
339
+ data << (40 * value[0] + value[1]).chr
340
+ for i in 2...value.length
341
+ if value[i] < 0x80
342
+ data << value[i].chr
343
+ else
344
+ octets = ""
345
+ n = value[i]
346
+ begin
347
+ octets = (n & 0x7f | 0x80).chr << octets
348
+ n = n >> 7
349
+ end until n == 0
350
+ octets[-1] = (octets[-1].ord & 0x7f).chr
351
+ data << octets
352
+ end
346
353
  end
354
+ elsif (value.length == 1)
355
+ data << (40 * value[0]).chr
347
356
  end
348
- elsif (value.length == 1)
349
- data << (40 * value[0]).chr
357
+ encode_tlv(OBJECT_IDENTIFIER_TAG, data)
350
358
  end
351
- encode_tlv(OBJECT_IDENTIFIER_TAG, data)
352
- end
353
359
 
360
+ end
354
361
  end
355
362
  end
data/lib/snmp/manager.rb CHANGED
@@ -144,6 +144,7 @@ module SNMP
144
144
  option :mib_dir, :MibDir, MIB::DEFAULT_MIB_PATH
145
145
  option :mib_modules, :MibModules, default_modules
146
146
  option :use_IPv6, :use_IPv6, lambda { |c| ipv6_address?(c) }
147
+ option :ignore_oid_order, :IgnoreOidOrder, false
147
148
 
148
149
  def create_transport
149
150
  transport.respond_to?(:new) ? transport.new(socket_address_family) : transport
@@ -183,6 +184,7 @@ module SNMP
183
184
  # :mib_dir MIB::DEFAULT_MIB_PATH
184
185
  # :mib_modules SNMPv2-SMI, SNMPv2-MIB, IF-MIB, IP-MIB, TCP-MIB, UDP-MIB
185
186
  # :use_IPv6 false, unless :host is formatted like an IPv6 address
187
+ # :ignore_oid_order false
186
188
  #
187
189
  # Use {:version => :SNMPv1} for SNMP v1. SNMP v3 is not supported.
188
190
  #
@@ -203,6 +205,7 @@ module SNMP
203
205
  @max_bytes = config.max_recv_bytes
204
206
  @mib = MIB.new
205
207
  load_modules(config.mib_modules, config.mib_dir)
208
+ @ignore_oid_order = config.ignore_oid_order
206
209
  @config = config.applied_config
207
210
  end
208
211
 
@@ -440,7 +443,7 @@ module SNMP
440
443
  index_vb = vb_list[index_column]
441
444
  break if EndOfMibView == index_vb.value
442
445
  stop_oid = index_vb.name
443
- if stop_oid <= last_oid
446
+ if !@ignore_oid_order && stop_oid <= last_oid
444
447
  warn "OIDs are not increasing, #{last_oid} followed by #{stop_oid}"
445
448
  break
446
449
  end
data/lib/snmp/mib.rb CHANGED
@@ -112,7 +112,7 @@ module SNMP
112
112
  # known version of the tool is available.
113
113
  #
114
114
  def import_supported?
115
- `smidump --version` =~ /^smidump 0.4/ && $? == 0
115
+ `smidump --version` =~ /^smidump 0.[45]/ && $? == 0
116
116
  end
117
117
 
118
118
  ##
data/lib/snmp/options.rb CHANGED
File without changes