snmp 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (295) hide show
  1. data/README.rdoc +179 -0
  2. data/Rakefile +34 -39
  3. data/data/ruby/snmp/mibs/ACCOUNTING-CONTROL-MIB.yaml +33 -32
  4. data/data/ruby/snmp/mibs/ADSL-LINE-EXT-MIB.yaml +57 -56
  5. data/data/ruby/snmp/mibs/ADSL-LINE-MIB.yaml +224 -223
  6. data/data/ruby/snmp/mibs/ADSL-TC-MIB.yaml +1 -0
  7. data/data/ruby/snmp/mibs/ADSL2-LINE-MIB.yaml +321 -0
  8. data/data/ruby/snmp/mibs/ADSL2-LINE-TC-MIB.yaml +3 -0
  9. data/data/ruby/snmp/mibs/AGENTX-MIB.yaml +25 -24
  10. data/data/ruby/snmp/mibs/AGGREGATE-MIB.yaml +28 -0
  11. data/data/ruby/snmp/mibs/ALARM-MIB.yaml +77 -0
  12. data/data/ruby/snmp/mibs/APM-MIB.yaml +75 -74
  13. data/data/ruby/snmp/mibs/APPC-MIB.yaml +261 -260
  14. data/data/ruby/snmp/mibs/APPLETALK-MIB.yaml +255 -254
  15. data/data/ruby/snmp/mibs/APPLICATION-MIB.yaml +138 -137
  16. data/data/ruby/snmp/mibs/APPN-DLUR-MIB.yaml +30 -29
  17. data/data/ruby/snmp/mibs/APPN-MIB.yaml +325 -324
  18. data/data/ruby/snmp/mibs/APPN-TRAP-MIB.yaml +10 -9
  19. data/data/ruby/snmp/mibs/APS-MIB.yaml +50 -49
  20. data/data/ruby/snmp/mibs/ARC-MIB.yaml +19 -0
  21. data/data/ruby/snmp/mibs/ATM-ACCOUNTING-INFORMATION-MIB.yaml +22 -21
  22. data/data/ruby/snmp/mibs/ATM-MIB.yaml +94 -93
  23. data/data/ruby/snmp/mibs/ATM-TC-MIB.yaml +12 -11
  24. data/data/ruby/snmp/mibs/ATM2-MIB.yaml +156 -155
  25. data/data/ruby/snmp/mibs/BGP4-MIB.yaml +48 -41
  26. data/data/ruby/snmp/mibs/BLDG-HVAC-MIB.yaml +25 -24
  27. data/data/ruby/snmp/mibs/BRIDGE-MIB.yaml +50 -44
  28. data/data/ruby/snmp/mibs/CHARACTER-MIB.yaml +35 -34
  29. data/data/ruby/snmp/mibs/CIRCUIT-IF-MIB.yaml +13 -12
  30. data/data/ruby/snmp/mibs/CLNS-MIB.yaml +98 -97
  31. data/data/ruby/snmp/mibs/COFFEE-POT-MIB.yaml +8 -7
  32. data/data/ruby/snmp/mibs/COPS-CLIENT-MIB.yaml +38 -37
  33. data/data/ruby/snmp/mibs/DECNET-PHIV-MIB.yaml +209 -208
  34. data/data/ruby/snmp/mibs/DIAL-CONTROL-MIB.yaml +72 -71
  35. data/data/ruby/snmp/mibs/DIFFSERV-CONFIG-MIB.yaml +11 -10
  36. data/data/ruby/snmp/mibs/DIFFSERV-DSCP-TC.yaml +1 -0
  37. data/data/ruby/snmp/mibs/DIFFSERV-MIB.yaml +151 -150
  38. data/data/ruby/snmp/mibs/DIRECTORY-SERVER-MIB.yaml +35 -34
  39. data/data/ruby/snmp/mibs/DISMAN-EVENT-MIB.yaml +95 -94
  40. data/data/ruby/snmp/mibs/DISMAN-EXPRESSION-MIB.yaml +37 -36
  41. data/data/ruby/snmp/mibs/DISMAN-NSLOOKUP-MIB.yaml +15 -14
  42. data/data/ruby/snmp/mibs/DISMAN-PING-MIB.yaml +43 -42
  43. data/data/ruby/snmp/mibs/DISMAN-SCHEDULE-MIB.yaml +22 -21
  44. data/data/ruby/snmp/mibs/DISMAN-SCRIPT-MIB.yaml +64 -63
  45. data/data/ruby/snmp/mibs/DISMAN-TRACEROUTE-MIB.yaml +59 -58
  46. data/data/ruby/snmp/mibs/DLSW-MIB.yaml +172 -171
  47. data/data/ruby/snmp/mibs/DNS-RESOLVER-MIB.yaml +70 -69
  48. data/data/ruby/snmp/mibs/DNS-SERVER-MIB.yaml +57 -56
  49. data/data/ruby/snmp/mibs/DOCS-BPI-MIB.yaml +81 -80
  50. data/data/ruby/snmp/mibs/DOCS-CABLE-DEVICE-MIB.yaml +114 -89
  51. data/data/ruby/snmp/mibs/DOCS-IETF-BPI2-MIB.yaml +187 -0
  52. data/data/ruby/snmp/mibs/DOCS-IETF-CABLE-DEVICE-NOTIFICATION-MIB.yaml +39 -0
  53. data/data/ruby/snmp/mibs/DOCS-IETF-QOS-MIB.yaml +166 -0
  54. data/data/ruby/snmp/mibs/DOCS-IETF-SUBMGT-MIB.yaml +32 -0
  55. data/data/ruby/snmp/mibs/DOCS-IF-MIB.yaml +208 -119
  56. data/data/ruby/snmp/mibs/DOT12-IF-MIB.yaml +21 -20
  57. data/data/ruby/snmp/mibs/DOT3-EPON-MIB.yaml +101 -0
  58. data/data/ruby/snmp/mibs/DOT3-OAM-MIB.yaml +82 -0
  59. data/data/ruby/snmp/mibs/DS0-MIB.yaml +11 -10
  60. data/data/ruby/snmp/mibs/DS0BUNDLE-MIB.yaml +9 -8
  61. data/data/ruby/snmp/mibs/DS1-MIB.yaml +102 -98
  62. data/data/ruby/snmp/mibs/DS3-MIB.yaml +84 -83
  63. data/data/ruby/snmp/mibs/DSA-MIB.yaml +31 -30
  64. data/data/ruby/snmp/mibs/DSMON-MIB.yaml +193 -192
  65. data/data/ruby/snmp/mibs/EBN-MIB.yaml +32 -31
  66. data/data/ruby/snmp/mibs/EFM-CU-MIB.yaml +113 -0
  67. data/data/ruby/snmp/mibs/ENTITY-MIB.yaml +41 -38
  68. data/data/ruby/snmp/mibs/ENTITY-SENSOR-MIB.yaml +8 -7
  69. data/data/ruby/snmp/mibs/ENTITY-STATE-MIB.yaml +18 -0
  70. data/data/ruby/snmp/mibs/ENTITY-STATE-TC-MIB.yaml +3 -0
  71. data/data/ruby/snmp/mibs/ETHER-CHIPSET-MIB.yaml +61 -60
  72. data/data/ruby/snmp/mibs/ETHER-WIS.yaml +16 -15
  73. data/data/ruby/snmp/mibs/EtherLike-MIB.yaml +43 -42
  74. data/data/ruby/snmp/mibs/FC-MGMT-MIB.yaml +154 -0
  75. data/data/ruby/snmp/mibs/FCIP-MGMT-MIB.yaml +68 -0
  76. data/data/ruby/snmp/mibs/FDDI-SMT73-MIB.yaml +107 -106
  77. data/data/ruby/snmp/mibs/FIBRE-CHANNEL-FE-MIB.yaml +100 -99
  78. data/data/ruby/snmp/mibs/FLOW-METER-MIB.yaml +92 -91
  79. data/data/ruby/snmp/mibs/FR-ATM-PVC-SERVICE-IWF-MIB.yaml +33 -32
  80. data/data/ruby/snmp/mibs/FR-MFR-MIB.yaml +38 -37
  81. data/data/ruby/snmp/mibs/FRAME-RELAY-DTE-MIB.yaml +41 -40
  82. data/data/ruby/snmp/mibs/FRNETSERV-MIB.yaml +92 -91
  83. data/data/ruby/snmp/mibs/FRSLD-MIB.yaml +66 -65
  84. data/data/ruby/snmp/mibs/Finisher-MIB.yaml +38 -37
  85. data/data/ruby/snmp/mibs/GMPLS-LABEL-STD-MIB.yaml +27 -0
  86. data/data/ruby/snmp/mibs/GMPLS-LSR-STD-MIB.yaml +20 -0
  87. data/data/ruby/snmp/mibs/GMPLS-TC-STD-MIB.yaml +3 -0
  88. data/data/ruby/snmp/mibs/GMPLS-TE-STD-MIB.yaml +72 -0
  89. data/data/ruby/snmp/mibs/GSMP-MIB.yaml +75 -74
  90. data/data/ruby/snmp/mibs/HC-ALARM-MIB.yaml +26 -25
  91. data/data/ruby/snmp/mibs/HC-PerfHist-TC-MIB.yaml +1 -0
  92. data/data/ruby/snmp/mibs/HC-RMON-MIB.yaml +164 -163
  93. data/data/ruby/snmp/mibs/HCNUM-TC.yaml +1 -0
  94. data/data/ruby/snmp/mibs/HDSL2-SHDSL-LINE-MIB.yaml +117 -112
  95. data/data/ruby/snmp/mibs/HOST-RESOURCES-MIB.yaml +82 -81
  96. data/data/ruby/snmp/mibs/HOST-RESOURCES-TYPES.yaml +40 -39
  97. data/data/ruby/snmp/mibs/HPR-IP-MIB.yaml +17 -16
  98. data/data/ruby/snmp/mibs/HPR-MIB.yaml +64 -63
  99. data/data/ruby/snmp/mibs/IANA-ITU-ALARM-TC-MIB.yaml +3 -0
  100. data/data/ruby/snmp/mibs/IF-CAP-STACK-MIB.yaml +13 -0
  101. data/data/ruby/snmp/mibs/IF-INVERTED-STACK-MIB.yaml +6 -5
  102. data/data/ruby/snmp/mibs/IF-MIB.yaml +57 -56
  103. data/data/ruby/snmp/mibs/IFCP-MGMT-MIB.yaml +65 -0
  104. data/data/ruby/snmp/mibs/IGMP-STD-MIB.yaml +24 -23
  105. data/data/ruby/snmp/mibs/INET-ADDRESS-MIB.yaml +1 -0
  106. data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-GUARANTEED-MIB.yaml +6 -5
  107. data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-MIB.yaml +29 -28
  108. data/data/ruby/snmp/mibs/INTERFACETOPN-MIB.yaml +21 -20
  109. data/data/ruby/snmp/mibs/IP-FORWARD-MIB.yaml +49 -27
  110. data/data/ruby/snmp/mibs/IP-MIB.yaml +243 -40
  111. data/data/ruby/snmp/mibs/IPATM-IPMC-MIB.yaml +179 -178
  112. data/data/ruby/snmp/mibs/IPMCAST-MIB.yaml +105 -0
  113. data/data/ruby/snmp/mibs/IPMROUTE-STD-MIB.yaml +49 -48
  114. data/data/ruby/snmp/mibs/IPOA-MIB.yaml +74 -73
  115. data/data/ruby/snmp/mibs/IPS-AUTH-MIB.yaml +68 -0
  116. data/data/ruby/snmp/mibs/IPSEC-SPD-MIB.yaml +121 -0
  117. data/data/ruby/snmp/mibs/IPV6-FLOW-LABEL-MIB.yaml +1 -0
  118. data/data/ruby/snmp/mibs/IPV6-ICMP-MIB.yaml +27 -26
  119. data/data/ruby/snmp/mibs/IPV6-MIB.yaml +70 -69
  120. data/data/ruby/snmp/mibs/IPV6-MLD-MIB.yaml +18 -17
  121. data/data/ruby/snmp/mibs/IPV6-TCP-MIB.yaml +7 -6
  122. data/data/ruby/snmp/mibs/IPV6-UDP-MIB.yaml +6 -5
  123. data/data/ruby/snmp/mibs/ISCSI-MIB.yaml +199 -0
  124. data/data/ruby/snmp/mibs/ISDN-MIB.yaml +57 -56
  125. data/data/ruby/snmp/mibs/ISIS-MIB.yaml +247 -0
  126. data/data/ruby/snmp/mibs/ISNS-MIB.yaml +179 -0
  127. data/data/ruby/snmp/mibs/ITU-ALARM-MIB.yaml +34 -0
  128. data/data/ruby/snmp/mibs/ITU-ALARM-TC-MIB.yaml +3 -0
  129. data/data/ruby/snmp/mibs/Job-Monitoring-MIB.yaml +26 -27
  130. data/data/ruby/snmp/mibs/L2TP-MIB.yaml +138 -137
  131. data/data/ruby/snmp/mibs/LANGTAG-TC-MIB.yaml +3 -0
  132. data/data/ruby/snmp/mibs/LMP-MIB.yaml +202 -0
  133. data/data/ruby/snmp/mibs/MALLOC-MIB.yaml +66 -65
  134. data/data/ruby/snmp/mibs/MAU-MIB.yaml +55 -95
  135. data/data/ruby/snmp/mibs/MIDCOM-MIB.yaml +83 -0
  136. data/data/ruby/snmp/mibs/MIOX25-MIB.yaml +28 -27
  137. data/data/ruby/snmp/mibs/MIP-MIB.yaml +157 -156
  138. data/data/ruby/snmp/mibs/MOBILEIPV6-MIB.yaml +189 -0
  139. data/data/ruby/snmp/mibs/MPLS-FTN-STD-MIB.yaml +29 -28
  140. data/data/ruby/snmp/mibs/MPLS-L3VPN-STD-MIB.yaml +88 -0
  141. data/data/ruby/snmp/mibs/MPLS-LC-ATM-STD-MIB.yaml +19 -0
  142. data/data/ruby/snmp/mibs/MPLS-LC-FR-STD-MIB.yaml +16 -0
  143. data/data/ruby/snmp/mibs/MPLS-LDP-ATM-STD-MIB.yaml +23 -22
  144. data/data/ruby/snmp/mibs/MPLS-LDP-FRAME-RELAY-STD-MIB.yaml +17 -16
  145. data/data/ruby/snmp/mibs/MPLS-LDP-GENERIC-STD-MIB.yaml +9 -8
  146. data/data/ruby/snmp/mibs/MPLS-LDP-STD-MIB.yaml +103 -102
  147. data/data/ruby/snmp/mibs/MPLS-LSR-STD-MIB.yaml +85 -84
  148. data/data/ruby/snmp/mibs/MPLS-TC-STD-MIB.yaml +1 -0
  149. data/data/ruby/snmp/mibs/MPLS-TE-STD-MIB.yaml +106 -105
  150. data/data/ruby/snmp/mibs/MSDP-MIB.yaml +71 -0
  151. data/data/ruby/snmp/mibs/MTA-MIB.yaml +42 -41
  152. data/data/ruby/snmp/mibs/Modem-MIB.yaml +87 -86
  153. data/data/ruby/snmp/mibs/NAT-MIB.yaml +116 -0
  154. data/data/ruby/snmp/mibs/NETWORK-SERVICES-MIB.yaml +18 -17
  155. data/data/ruby/snmp/mibs/NHRP-MIB.yaml +140 -139
  156. data/data/ruby/snmp/mibs/NOTIFICATION-LOG-MIB.yaml +37 -36
  157. data/data/ruby/snmp/mibs/OPT-IF-MIB.yaml +394 -393
  158. data/data/ruby/snmp/mibs/OSPF-MIB.yaml +192 -123
  159. data/data/ruby/snmp/mibs/OSPF-TRAP-MIB.yaml +24 -19
  160. data/data/ruby/snmp/mibs/P-BRIDGE-MIB.yaml +37 -35
  161. data/data/ruby/snmp/mibs/PARALLEL-MIB.yaml +16 -15
  162. data/data/ruby/snmp/mibs/PIM-MIB.yaml +47 -46
  163. data/data/ruby/snmp/mibs/PIM-STD-MIB.yaml +235 -0
  164. data/data/ruby/snmp/mibs/PINT-MIB.yaml +38 -37
  165. data/data/ruby/snmp/mibs/PKTC-IETF-MTA-MIB.yaml +81 -0
  166. data/data/ruby/snmp/mibs/PKTC-IETF-SIG-MIB.yaml +128 -0
  167. data/data/ruby/snmp/mibs/POLICY-BASED-MANAGEMENT-MIB.yaml +94 -0
  168. data/data/ruby/snmp/mibs/POWER-ETHERNET-MIB.yaml +27 -26
  169. data/data/ruby/snmp/mibs/PPP-BRIDGE-NCP-MIB.yaml +16 -15
  170. data/data/ruby/snmp/mibs/PPP-IP-NCP-MIB.yaml +7 -6
  171. data/data/ruby/snmp/mibs/PPP-LCP-MIB.yaml +33 -32
  172. data/data/ruby/snmp/mibs/PPP-SEC-MIB.yaml +13 -12
  173. data/data/ruby/snmp/mibs/PTOPO-MIB.yaml +29 -28
  174. data/data/ruby/snmp/mibs/PerfHist-TC-MIB.yaml +1 -0
  175. data/data/ruby/snmp/mibs/Printer-MIB.yaml +185 -184
  176. data/data/ruby/snmp/mibs/Q-BRIDGE-MIB.yaml +96 -82
  177. data/data/ruby/snmp/mibs/RADIUS-ACC-CLIENT-MIB.yaml +34 -16
  178. data/data/ruby/snmp/mibs/RADIUS-ACC-SERVER-MIB.yaml +40 -24
  179. data/data/ruby/snmp/mibs/RADIUS-AUTH-CLIENT-MIB.yaml +38 -18
  180. data/data/ruby/snmp/mibs/RADIUS-AUTH-SERVER-MIB.yaml +40 -23
  181. data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-CLIENT-MIB.yaml +44 -0
  182. data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-SERVER-MIB.yaml +40 -0
  183. data/data/ruby/snmp/mibs/RAQMON-MIB.yaml +90 -0
  184. data/data/ruby/snmp/mibs/RDBMS-MIB.yaml +69 -68
  185. data/data/ruby/snmp/mibs/RFC1065-SMI.yaml +4 -5
  186. data/data/ruby/snmp/mibs/RFC1155-SMI.yaml +4 -5
  187. data/data/ruby/snmp/mibs/RFC1158-MIB.yaml +174 -173
  188. data/data/ruby/snmp/mibs/RFC1213-MIB.yaml +173 -172
  189. data/data/ruby/snmp/mibs/RFC1269-MIB.yaml +20 -19
  190. data/data/ruby/snmp/mibs/RFC1271-MIB.yaml +185 -184
  191. data/data/ruby/snmp/mibs/RFC1285-MIB.yaml +85 -84
  192. data/data/ruby/snmp/mibs/RFC1316-MIB.yaml +30 -29
  193. data/data/ruby/snmp/mibs/RFC1381-MIB.yaml +40 -39
  194. data/data/ruby/snmp/mibs/RFC1382-MIB.yaml +149 -148
  195. data/data/ruby/snmp/mibs/RFC1414-MIB.yaml +4 -3
  196. data/data/ruby/snmp/mibs/RIPv2-MIB.yaml +25 -24
  197. data/data/ruby/snmp/mibs/RMON-MIB.yaml +192 -191
  198. data/data/ruby/snmp/mibs/RMON2-MIB.yaml +253 -252
  199. data/data/ruby/snmp/mibs/ROHC-MIB.yaml +49 -48
  200. data/data/ruby/snmp/mibs/ROHC-RTP-MIB.yaml +19 -18
  201. data/data/ruby/snmp/mibs/ROHC-UNCOMPRESSED-MIB.yaml +6 -5
  202. data/data/ruby/snmp/mibs/RS-232-MIB.yaml +36 -35
  203. data/data/ruby/snmp/mibs/RSTP-MIB.yaml +18 -0
  204. data/data/ruby/snmp/mibs/RSVP-MIB.yaml +137 -136
  205. data/data/ruby/snmp/mibs/RTP-MIB.yaml +42 -41
  206. data/data/ruby/snmp/mibs/SCSI-MIB.yaml +160 -0
  207. data/data/ruby/snmp/mibs/SCTP-MIB.yaml +83 -0
  208. data/data/ruby/snmp/mibs/SFLOW-MIB.yaml +15 -14
  209. data/data/ruby/snmp/mibs/SIP-COMMON-MIB.yaml +112 -0
  210. data/data/ruby/snmp/mibs/SIP-MIB.yaml +56 -55
  211. data/data/ruby/snmp/mibs/SIP-SERVER-MIB.yaml +52 -0
  212. data/data/ruby/snmp/mibs/SIP-TC-MIB.yaml +3 -0
  213. data/data/ruby/snmp/mibs/SIP-UA-MIB.yaml +14 -0
  214. data/data/ruby/snmp/mibs/SLAPM-MIB.yaml +134 -133
  215. data/data/ruby/snmp/mibs/SMON-MIB.yaml +47 -46
  216. data/data/ruby/snmp/mibs/SNA-NAU-MIB.yaml +117 -116
  217. data/data/ruby/snmp/mibs/SNA-SDLC-MIB.yaml +126 -125
  218. data/data/ruby/snmp/mibs/SNMP-COMMUNITY-MIB.yaml +12 -11
  219. data/data/ruby/snmp/mibs/SNMP-FRAMEWORK-MIB.yaml +8 -7
  220. data/data/ruby/snmp/mibs/SNMP-MPD-MIB.yaml +6 -5
  221. data/data/ruby/snmp/mibs/SNMP-NOTIFICATION-MIB.yaml +16 -15
  222. data/data/ruby/snmp/mibs/SNMP-PROXY-MIB.yaml +10 -9
  223. data/data/ruby/snmp/mibs/SNMP-REPEATER-MIB.yaml +120 -119
  224. data/data/ruby/snmp/mibs/SNMP-TARGET-MIB.yaml +19 -18
  225. data/data/ruby/snmp/mibs/SNMP-USER-BASED-SM-MIB.yaml +26 -25
  226. data/data/ruby/snmp/mibs/SNMP-USM-AES-MIB.yaml +4 -0
  227. data/data/ruby/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.yaml +10 -9
  228. data/data/ruby/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.yaml +26 -25
  229. data/data/ruby/snmp/mibs/SNMPv2-MIB.yaml +46 -45
  230. data/data/ruby/snmp/mibs/SNMPv2-SMI.yaml +12 -11
  231. data/data/ruby/snmp/mibs/SNMPv2-TM.yaml +5 -4
  232. data/data/ruby/snmp/mibs/SNMPv2-USEC-MIB.yaml +10 -9
  233. data/data/ruby/snmp/mibs/SONET-MIB.yaml +110 -109
  234. data/data/ruby/snmp/mibs/SOURCE-ROUTING-MIB.yaml +18 -17
  235. data/data/ruby/snmp/mibs/SSPM-MIB.yaml +67 -0
  236. data/data/ruby/snmp/mibs/SYSAPPL-MIB.yaml +65 -64
  237. data/data/ruby/snmp/mibs/T11-FC-FABRIC-ADDR-MGR-MIB.yaml +63 -0
  238. data/data/ruby/snmp/mibs/T11-FC-FABRIC-CONFIG-SERVER-MIB.yaml +100 -0
  239. data/data/ruby/snmp/mibs/T11-FC-FABRIC-LOCK-MIB.yaml +22 -0
  240. data/data/ruby/snmp/mibs/T11-FC-FSPF-MIB.yaml +70 -0
  241. data/data/ruby/snmp/mibs/T11-FC-NAME-SERVER-MIB.yaml +56 -0
  242. data/data/ruby/snmp/mibs/T11-FC-ROUTE-MIB.yaml +27 -0
  243. data/data/ruby/snmp/mibs/T11-FC-RSCN-MIB.yaml +47 -0
  244. data/data/ruby/snmp/mibs/T11-FC-VIRTUAL-FABRIC-MIB.yaml +31 -0
  245. data/data/ruby/snmp/mibs/T11-FC-ZONE-SERVER-MIB.yaml +124 -0
  246. data/data/ruby/snmp/mibs/T11-TC-MIB.yaml +3 -0
  247. data/data/ruby/snmp/mibs/TCP-ESTATS-MIB.yaml +167 -0
  248. data/data/ruby/snmp/mibs/TCP-MIB.yaml +37 -18
  249. data/data/ruby/snmp/mibs/TCPIPX-MIB.yaml +16 -15
  250. data/data/ruby/snmp/mibs/TE-LINK-STD-MIB.yaml +82 -0
  251. data/data/ruby/snmp/mibs/TE-MIB.yaml +81 -0
  252. data/data/ruby/snmp/mibs/TIME-AGGREGATE-MIB.yaml +22 -0
  253. data/data/ruby/snmp/mibs/TN3270E-MIB.yaml +85 -84
  254. data/data/ruby/snmp/mibs/TN3270E-RT-MIB.yaml +33 -32
  255. data/data/ruby/snmp/mibs/TOKEN-RING-RMON-MIB.yaml +159 -158
  256. data/data/ruby/snmp/mibs/TOKENRING-MIB.yaml +42 -41
  257. data/data/ruby/snmp/mibs/TOKENRING-STATION-SR-MIB.yaml +8 -7
  258. data/data/ruby/snmp/mibs/TRANSPORT-ADDRESS-MIB.yaml +13 -12
  259. data/data/ruby/snmp/mibs/TRIP-MIB.yaml +118 -0
  260. data/data/ruby/snmp/mibs/TRIP-TC-MIB.yaml +3 -0
  261. data/data/ruby/snmp/mibs/TUNNEL-MIB.yaml +29 -13
  262. data/data/ruby/snmp/mibs/UDP-MIB.yaml +19 -6
  263. data/data/ruby/snmp/mibs/UDPLITE-MIB.yaml +26 -0
  264. data/data/ruby/snmp/mibs/UPS-MIB.yaml +100 -99
  265. data/data/ruby/snmp/mibs/URI-TC-MIB.yaml +3 -0
  266. data/data/ruby/snmp/mibs/VDSL-LINE-EXT-MCM-MIB.yaml +42 -0
  267. data/data/ruby/snmp/mibs/VDSL-LINE-EXT-SCM-MIB.yaml +27 -0
  268. data/data/ruby/snmp/mibs/VDSL-LINE-MIB.yaml +162 -161
  269. data/data/ruby/snmp/mibs/VPN-TC-STD-MIB.yaml +3 -0
  270. data/data/ruby/snmp/mibs/VRRP-MIB.yaml +39 -38
  271. data/data/ruby/snmp/mibs/WWW-MIB.yaml +75 -74
  272. data/examples/dump.rb +5 -5
  273. data/examples/iftable.rb +4 -4
  274. data/examples/link_down.rb +18 -18
  275. data/examples/log_traps.rb +9 -9
  276. data/examples/walk.rb +4 -4
  277. data/lib/snmp/agent.rb +42 -43
  278. data/lib/snmp/ber.rb +155 -156
  279. data/lib/snmp/manager.rb +412 -372
  280. data/lib/snmp/mib.rb +172 -182
  281. data/lib/snmp/options.rb +64 -0
  282. data/lib/snmp/pdu.rb +245 -245
  283. data/lib/snmp/varbind.rb +346 -341
  284. data/lib/snmp/version.rb +3 -0
  285. data/test/test_ber.rb +232 -233
  286. data/test/test_manager.rb +277 -238
  287. data/test/test_mib.rb +57 -57
  288. data/test/test_pdu.rb +172 -172
  289. data/test/test_retry.rb +54 -54
  290. data/test/test_smi.rb +10 -10
  291. data/test/test_varbind.rb +342 -331
  292. data/test/test_walk.rb +150 -150
  293. metadata +103 -45
  294. data/README +0 -252
  295. data/setup.rb +0 -1360
@@ -13,190 +13,190 @@ include SNMP::BER
13
13
 
14
14
  module SNMP
15
15
 
16
- class UnsupportedValueTag < RuntimeError; end
17
- class InvalidIpAddress < ArgumentError; end
16
+ class UnsupportedValueTag < RuntimeError; end
17
+ class InvalidIpAddress < ArgumentError; end
18
18
 
19
- class VarBindList < Array
19
+ class VarBindList < Array
20
20
  def self.decode(data)
21
- list = VarBindList.new
22
- varbind_data, remainder = decode_sequence(data)
23
- while varbind_data != ""
24
- varbind, varbind_data = VarBind.decode(varbind_data)
25
- list << varbind
26
- end
27
- return list, remainder
21
+ list = VarBindList.new
22
+ varbind_data, remainder = decode_sequence(data)
23
+ while varbind_data != ""
24
+ varbind, varbind_data = VarBind.decode(varbind_data)
25
+ list << varbind
26
+ end
27
+ return list, remainder
28
28
  end
29
29
 
30
30
  def initialize(varbind_list=[])
31
- super()
32
- if varbind_list.respond_to? :to_str
33
- self << ObjectId.new(varbind_list.to_str).to_varbind
34
- elsif varbind_list.respond_to? :to_varbind
35
- self << varbind_list.to_varbind
36
- else
37
- varbind_list.each do |item|
38
- if item.respond_to? :to_str
39
- self << ObjectId.new(item.to_str).to_varbind
40
- else
41
- self << item.to_varbind
42
- end
43
- end
31
+ super()
32
+ if varbind_list.respond_to? :to_str
33
+ self << ObjectId.new(varbind_list.to_str).to_varbind
34
+ elsif varbind_list.respond_to? :to_varbind
35
+ self << varbind_list.to_varbind
36
+ else
37
+ varbind_list.each do |item|
38
+ if item.respond_to? :to_str
39
+ self << ObjectId.new(item.to_str).to_varbind
40
+ else
41
+ self << item.to_varbind
42
+ end
44
43
  end
44
+ end
45
45
  end
46
-
46
+
47
47
  def asn1_type
48
- "VarBindList"
48
+ "VarBindList"
49
49
  end
50
-
50
+
51
51
  def encode
52
- varbind_data = ""
53
- self.each do |varbind|
54
- varbind_data << varbind.encode
55
- end
56
- encode_sequence(varbind_data)
52
+ varbind_data = ""
53
+ self.each do |varbind|
54
+ varbind_data << varbind.encode
55
+ end
56
+ encode_sequence(varbind_data)
57
57
  end
58
- end
58
+ end
59
59
 
60
- class Integer
60
+ class Integer
61
61
  include Comparable
62
-
62
+
63
63
  def self.decode(value_data)
64
- Integer.new(decode_integer_value(value_data))
64
+ Integer.new(decode_integer_value(value_data))
65
65
  end
66
-
66
+
67
67
  def asn1_type
68
- "INTEGER"
68
+ "INTEGER"
69
69
  end
70
70
 
71
71
  def initialize(value)
72
- @value = value.to_i
72
+ @value = value.to_i
73
73
  end
74
74
 
75
75
  def <=>(other)
76
- @value <=> other.to_i
76
+ @value <=> other.to_i
77
77
  end
78
-
78
+
79
79
  def coerce(other)
80
- if other.kind_of? Fixnum
81
- return [other, @value]
82
- else
83
- return [other.to_f, self.to_f]
84
- end
80
+ if other.kind_of? Fixnum
81
+ return [other, @value]
82
+ else
83
+ return [other.to_f, self.to_f]
84
+ end
85
85
  end
86
-
86
+
87
87
  def to_s
88
- @value.to_s
88
+ @value.to_s
89
89
  end
90
90
 
91
91
  def to_i
92
- @value
92
+ @value
93
93
  end
94
-
94
+
95
95
  def to_f
96
- @value.to_f
96
+ @value.to_f
97
97
  end
98
-
98
+
99
99
  def encode
100
- encode_integer(@value)
100
+ encode_integer(@value)
101
101
  end
102
-
102
+
103
103
  def to_oid
104
- raise RangeError, "@{value} cannot be an OID (must be >0)" if @value < 0
105
- ObjectId.new([@value])
104
+ raise RangeError, "@{value} cannot be an OID (must be >0)" if @value < 0
105
+ ObjectId.new([@value])
106
106
  end
107
- end
107
+ end
108
108
 
109
- class Integer32 < Integer
109
+ class Integer32 < Integer
110
110
  def initialize(value)
111
- super(value)
112
- raise ArgumentError, "Out of range: #{value}" if value < -2147483648
113
- raise ArgumentError, "Out of range: #{value}" if value > 2147483647
111
+ super(value)
112
+ raise ArgumentError, "Out of range: #{value}" if value < -2147483648
113
+ raise ArgumentError, "Out of range: #{value}" if value > 2147483647
114
114
  end
115
- end
115
+ end
116
116
 
117
- class OctetString < String
117
+ class OctetString < String
118
118
  def self.decode(value_data)
119
- OctetString.new(value_data)
119
+ OctetString.new(value_data)
120
120
  end
121
121
 
122
122
  def asn1_type
123
- "OCTET STRING"
123
+ "OCTET STRING"
124
124
  end
125
-
125
+
126
126
  def encode
127
- encode_octet_string(self)
127
+ encode_octet_string(self)
128
128
  end
129
-
129
+
130
130
  def to_oid
131
- oid = ObjectId.new
132
- each_byte { |b| oid << b }
133
- oid
131
+ oid = ObjectId.new
132
+ each_byte { |b| oid << b }
133
+ oid
134
134
  end
135
- end
135
+ end
136
136
 
137
- class ObjectId < Array
137
+ class ObjectId < Array
138
138
  include Comparable
139
-
139
+
140
140
  def self.decode(value_data)
141
- ObjectId.new(decode_object_id_value(value_data))
141
+ ObjectId.new(decode_object_id_value(value_data))
142
142
  end
143
143
 
144
144
  def asn1_type
145
- "OBJECT IDENTIFIER"
145
+ "OBJECT IDENTIFIER"
146
146
  end
147
-
147
+
148
148
  ##
149
149
  # Create an object id. The input is expected to be either a string
150
150
  # in the format "n.n.n.n.n.n" or an array of integers.
151
151
  #
152
152
  def initialize(id=[])
153
- if id.nil?
154
- raise ArgumentError
155
- elsif id.respond_to? :to_str
156
- super(make_integers(id.to_str.split(".")))
157
- else
158
- super(make_integers(id.to_ary))
159
- end
153
+ if id.nil?
154
+ raise ArgumentError
155
+ elsif id.respond_to? :to_str
156
+ super(make_integers(id.to_str.split(".")))
157
+ else
158
+ super(make_integers(id.to_ary))
159
+ end
160
160
  rescue ArgumentError
161
- raise ArgumentError, "#{id.inspect}:#{id.class} not a valid object ID"
161
+ raise ArgumentError, "#{id.inspect}:#{id.class} not a valid object ID"
162
162
  end
163
-
163
+
164
164
  def to_varbind
165
- VarBind.new(self, Null)
165
+ VarBind.new(self, Null)
166
166
  end
167
-
167
+
168
168
  def to_oid
169
- self
169
+ self
170
170
  end
171
-
171
+
172
172
  def to_s
173
- self.join('.')
173
+ self.join('.')
174
174
  end
175
-
175
+
176
176
  def inspect
177
- "[#{self.to_s}]"
177
+ "[#{self.to_s}]"
178
178
  end
179
-
179
+
180
180
  def encode
181
- encode_object_id(self)
181
+ encode_object_id(self)
182
182
  end
183
-
183
+
184
184
  ##
185
185
  # Returns true if this ObjectId is a subtree of the provided parent tree
186
186
  # ObjectId. For example, "1.3.6.1.5" is a subtree of "1.3.6.1".
187
187
  #
188
188
  def subtree_of?(parent_tree)
189
- parent_tree = make_object_id(parent_tree)
190
- if parent_tree.length > self.length
191
- false
192
- else
193
- parent_tree.each_index do |i|
194
- return false if parent_tree[i] != self[i]
195
- end
196
- true
189
+ parent_tree = make_object_id(parent_tree)
190
+ if parent_tree.length > self.length
191
+ false
192
+ else
193
+ parent_tree.each_index do |i|
194
+ return false if parent_tree[i] != self[i]
197
195
  end
196
+ true
197
+ end
198
198
  end
199
-
199
+
200
200
  ##
201
201
  # Returns an index based on the difference between this ObjectId
202
202
  # and the provided parent ObjectId.
@@ -205,375 +205,380 @@ class ObjectId < Array
205
205
  # ObjectId of "5".
206
206
  #
207
207
  def index(parent_tree)
208
- parent_tree = make_object_id(parent_tree)
209
- if not subtree_of?(parent_tree)
210
- raise ArgumentError, "#{self.to_s} not a subtree of #{parent_tree.to_s}"
211
- elsif self.length == parent_tree.length
212
- raise ArgumentError, "OIDs are the same"
213
- else
214
- ObjectId.new(self[parent_tree.length..-1])
215
- end
208
+ parent_tree = make_object_id(parent_tree)
209
+ if not subtree_of?(parent_tree)
210
+ raise ArgumentError, "#{self.to_s} not a subtree of #{parent_tree.to_s}"
211
+ elsif self.length == parent_tree.length
212
+ raise ArgumentError, "OIDs are the same"
213
+ else
214
+ ObjectId.new(self[parent_tree.length..-1])
215
+ end
216
216
  end
217
-
217
+
218
218
  private
219
-
220
- def make_integers(list)
219
+
220
+ def make_integers(list)
221
221
  list.collect{|n| Integer(n)}
222
- end
223
-
224
- def make_object_id(oid)
222
+ end
223
+
224
+ def make_object_id(oid)
225
225
  oid.kind_of?(ObjectId) ? oid : ObjectId.new(oid)
226
- end
227
-
228
- end
226
+ end
229
227
 
230
- class IpAddress
228
+ end
229
+
230
+ class IpAddress
231
231
  class << self
232
- def decode(value_data)
233
- IpAddress.new(value_data)
234
- end
232
+ def decode(value_data)
233
+ IpAddress.new(value_data, false)
234
+ end
235
235
  end
236
236
 
237
237
  def asn1_type
238
- "IpAddress"
238
+ "IpAddress"
239
239
  end
240
240
 
241
241
  ##
242
242
  # Create an IpAddress object. The constructor accepts either a raw
243
243
  # four-octet string or a formatted string of integers separated by dots
244
- # (i.e. "10.1.2.3").
244
+ # (i.e. "10.1.2.3"). Validation of the format can be disabled by setting
245
+ # the 'validate' flag to false.
245
246
  #
246
- def initialize(value_data)
247
- ip = value_data.to_str
247
+ def initialize(value_data, validate=true)
248
+ ip = value_data.to_str
249
+ if (validate)
248
250
  if ip.length > 4
249
- ip = parse_string(ip)
251
+ ip = parse_string(ip)
250
252
  elsif ip.length != 4
251
- raise InvalidIpAddress, "Expected 4 octets or formatted string, got #{value_data.inspect}"
253
+ raise InvalidIpAddress, "Expected 4 octets or formatted string, got #{value_data.inspect}"
252
254
  end
253
- @value = ip
255
+ end
256
+ @value = ip
254
257
  end
255
-
258
+
256
259
  ##
257
260
  # Returns a raw four-octet string representing this IpAddress.
258
261
  #
259
262
  def to_str
260
- @value.dup
263
+ @value.dup
261
264
  end
262
-
265
+
263
266
  ##
264
267
  # Returns a formatted, dot-separated string representing this IpAddress.
265
268
  #
266
269
  def to_s
267
- octets = []
268
- @value.each_byte { |b| octets << b.to_s }
269
- octets.join('.')
270
+ octets = []
271
+ @value.each_byte { |b| octets << b.to_s }
272
+ octets.join('.')
270
273
  end
271
-
274
+
272
275
  def to_oid
273
- oid = ObjectId.new
274
- @value.each_byte { |b| oid << b }
275
- oid
276
+ oid = ObjectId.new
277
+ @value.each_byte { |b| oid << b }
278
+ oid
276
279
  end
277
-
280
+
278
281
  def ==(other)
279
- if other.respond_to? :to_str
280
- return @value.eql?(other.to_str)
281
- else
282
- return false
283
- end
282
+ if other.respond_to? :to_str
283
+ return @value.eql?(other.to_str)
284
+ else
285
+ return false
286
+ end
284
287
  end
285
-
288
+
286
289
  def eql?(other)
287
- self == other
290
+ self == other
288
291
  end
289
-
292
+
290
293
  def hash
291
- @value.hash
294
+ @value.hash
292
295
  end
293
-
296
+
294
297
  def encode
295
- encode_tlv(IpAddress_TAG, @value)
298
+ encode_tlv(IpAddress_TAG, @value)
296
299
  end
297
300
 
298
301
  private
299
- def parse_string(ip_string)
302
+ def parse_string(ip_string)
300
303
  parts = ip_string.split(".")
301
- raise InvalidIpAddress, ip_string.inspect if parts.length != 4
304
+ if parts.length != 4
305
+ raise InvalidIpAddress, "Expected four octets separated by dots, not #{ip_string.inspect}"
306
+ end
302
307
  value_data = ""
303
- parts.each do |s|
304
- octet = s.to_i
305
- raise InvalidIpAddress, ip_string.inspect if octet > 255
306
- raise InvalidIpAddress, ip_string.inspect if octet < 0
307
- value_data << octet.chr
308
+ parts.each do |s|
309
+ octet = s.to_i
310
+ raise InvalidIpAddress, "Octets cannot be greater than 255: #{ip_string.inspect}" if octet > 255
311
+ raise InvalidIpAddress, "Octets cannot be negative: #{ip_string.inspect}" if octet < 0
312
+ value_data << octet.chr
308
313
  end
309
314
  value_data
310
- end
315
+ end
311
316
 
312
- end
317
+ end
313
318
 
314
- class UnsignedInteger < Integer
319
+ class UnsignedInteger < Integer
315
320
  def initialize(value)
316
- super(value)
317
- raise ArgumentError, "Negative integer invalid: #{value}" if value < 0
318
- raise ArgumentError, "Out of range: #{value}" if value > 4294967295
321
+ super(value)
322
+ raise ArgumentError, "Negative integer invalid: #{value}" if value < 0
323
+ raise ArgumentError, "Out of range: #{value}" if value > 4294967295
319
324
  end
320
-
325
+
321
326
  def self.decode(value_data)
322
- self.new(decode_uinteger_value(value_data))
327
+ self.new(decode_uinteger_value(value_data))
323
328
  end
324
- end
329
+ end
325
330
 
326
- class Counter32 < UnsignedInteger
331
+ class Counter32 < UnsignedInteger
327
332
  def asn1_type
328
- "Counter32"
333
+ "Counter32"
329
334
  end
330
335
 
331
336
  def encode
332
- encode_tagged_integer(Counter32_TAG, @value)
337
+ encode_tagged_integer(Counter32_TAG, @value)
333
338
  end
334
- end
339
+ end
335
340
 
336
- class Gauge32 < UnsignedInteger
341
+ class Gauge32 < UnsignedInteger
337
342
  def asn1_type
338
- "Gauge32"
343
+ "Gauge32"
339
344
  end
340
345
 
341
346
  def encode
342
- encode_tagged_integer(Gauge32_TAG, @value)
347
+ encode_tagged_integer(Gauge32_TAG, @value)
343
348
  end
344
- end
349
+ end
345
350
 
346
- class Unsigned32 < UnsignedInteger
351
+ class Unsigned32 < UnsignedInteger
347
352
  def asn1_type
348
- "Unsigned32"
353
+ "Unsigned32"
349
354
  end
350
355
 
351
356
  def encode
352
- encode_tagged_integer(Unsigned32_TAG, @value)
357
+ encode_tagged_integer(Unsigned32_TAG, @value)
353
358
  end
354
- end
359
+ end
355
360
 
356
- class TimeTicks < UnsignedInteger
361
+ class TimeTicks < UnsignedInteger
357
362
  def asn1_type
358
- "TimeTicks"
363
+ "TimeTicks"
359
364
  end
360
365
 
361
366
  def encode
362
- encode_tagged_integer(TimeTicks_TAG, @value)
367
+ encode_tagged_integer(TimeTicks_TAG, @value)
363
368
  end
364
-
365
- def to_s
366
- days, remainder = @value.divmod(8640000)
367
- hours, remainder = remainder.divmod(360000)
368
- minutes, remainder = remainder.divmod(6000)
369
- seconds, hundredths = remainder.divmod(100)
370
- case
371
- when days < 1
372
- sprintf('%02d:%02d:%02d.%02d',
373
- hours, minutes, seconds, hundredths)
374
- when days == 1
375
- sprintf('1 day, %02d:%02d:%02d.%02d',
376
- hours, minutes, seconds, hundredths)
377
- when days > 1
378
- sprintf('%d days, %02d:%02d:%02d.%02d',
379
- days, hours, minutes, seconds, hundredths)
380
- end
381
- end
382
- end
383
369
 
384
- class Opaque < OctetString
370
+ def to_s
371
+ days, remainder = @value.divmod(8640000)
372
+ hours, remainder = remainder.divmod(360000)
373
+ minutes, remainder = remainder.divmod(6000)
374
+ seconds, hundredths = remainder.divmod(100)
375
+ case
376
+ when days < 1
377
+ sprintf('%02d:%02d:%02d.%02d',
378
+ hours, minutes, seconds, hundredths)
379
+ when days == 1
380
+ sprintf('1 day, %02d:%02d:%02d.%02d',
381
+ hours, minutes, seconds, hundredths)
382
+ when days > 1
383
+ sprintf('%d days, %02d:%02d:%02d.%02d',
384
+ days, hours, minutes, seconds, hundredths)
385
+ end
386
+ end
387
+ end
388
+
389
+ class Opaque < OctetString
385
390
  def self.decode(value_data)
386
- Opaque.new(value_data)
391
+ Opaque.new(value_data)
387
392
  end
388
-
393
+
389
394
  def asn1_type
390
- "Opaque"
395
+ "Opaque"
391
396
  end
392
-
397
+
393
398
  def encode
394
- encode_tlv(Opaque_TAG, self)
399
+ encode_tlv(Opaque_TAG, self)
395
400
  end
396
- end
401
+ end
397
402
 
398
- class Counter64 < Integer
403
+ class Counter64 < Integer
399
404
  def self.decode(value_data)
400
- Counter64.new(decode_integer_value(value_data))
405
+ Counter64.new(decode_integer_value(value_data))
401
406
  end
402
407
 
403
408
  def asn1_type
404
- "Counter64"
409
+ "Counter64"
405
410
  end
406
411
 
407
412
  def initialize(value)
408
- super(value)
409
- raise ArgumentError, "Negative integer invalid: #{value}" if value < 0
410
- raise ArgumentError, "Out of range: #{value}" if value > 18446744073709551615
411
- end
412
-
413
+ super(value)
414
+ raise ArgumentError, "Negative integer invalid: #{value}" if value < 0
415
+ raise ArgumentError, "Out of range: #{value}" if value > 18446744073709551615
416
+ end
417
+
413
418
  def encode
414
- encode_tagged_integer(Counter64_TAG, @value)
419
+ encode_tagged_integer(Counter64_TAG, @value)
415
420
  end
416
- end
421
+ end
417
422
 
418
- class Null
423
+ class Null
419
424
  class << self
420
- def decode(value_data)
421
- Null
422
- end
425
+ def decode(value_data)
426
+ Null
427
+ end
423
428
 
424
- def encode
425
- encode_null
426
- end
427
-
428
- def asn1_type
429
- 'Null'
430
- end
429
+ def encode
430
+ encode_null
431
+ end
431
432
 
432
- def to_s
433
- asn1_type
434
- end
433
+ def asn1_type
434
+ 'Null'
435
+ end
436
+
437
+ def to_s
438
+ asn1_type
439
+ end
435
440
  end
436
- end
441
+ end
437
442
 
438
- class NoSuchObject
443
+ class NoSuchObject
439
444
  class << self
440
- def decode(value_data)
441
- NoSuchObject
442
- end
445
+ def decode(value_data)
446
+ NoSuchObject
447
+ end
443
448
 
444
- def encode
445
- encode_exception(NoSuchObject_TAG)
446
- end
449
+ def encode
450
+ encode_exception(NoSuchObject_TAG)
451
+ end
447
452
 
448
- def asn1_type
449
- 'noSuchObject'
450
- end
451
-
452
- def to_s
453
- asn1_type
454
- end
453
+ def asn1_type
454
+ 'noSuchObject'
455
+ end
456
+
457
+ def to_s
458
+ asn1_type
459
+ end
455
460
  end
456
- end
461
+ end
457
462
 
458
- class NoSuchInstance
463
+ class NoSuchInstance
459
464
  class << self
460
- def decode(value_data)
461
- NoSuchInstance
462
- end
465
+ def decode(value_data)
466
+ NoSuchInstance
467
+ end
463
468
 
464
- def encode
465
- encode_exception(NoSuchInstance_TAG)
466
- end
467
-
468
- def asn1_type
469
- 'noSuchInstance'
470
- end
471
-
472
- def to_s
473
- asn1_type
474
- end
469
+ def encode
470
+ encode_exception(NoSuchInstance_TAG)
471
+ end
472
+
473
+ def asn1_type
474
+ 'noSuchInstance'
475
+ end
476
+
477
+ def to_s
478
+ asn1_type
479
+ end
475
480
  end
476
- end
481
+ end
477
482
 
478
- class EndOfMibView
483
+ class EndOfMibView
479
484
  class << self
480
- def decode(value_data)
481
- EndOfMibView
482
- end
485
+ def decode(value_data)
486
+ EndOfMibView
487
+ end
483
488
 
484
- def encode
485
- encode_exception(EndOfMibView_TAG)
486
- end
487
-
488
- def asn1_type
489
- 'endOfMibView'
490
- end
491
-
492
- def to_s
493
- asn1_type
494
- end
489
+ def encode
490
+ encode_exception(EndOfMibView_TAG)
491
+ end
492
+
493
+ def asn1_type
494
+ 'endOfMibView'
495
+ end
496
+
497
+ def to_s
498
+ asn1_type
499
+ end
495
500
  end
496
- end
501
+ end
497
502
 
498
- class VarBind
503
+ class VarBind
499
504
  attr_accessor :name
500
505
  attr_accessor :value
501
-
506
+
502
507
  alias :oid :name
503
-
504
- class << self
505
- def decode(data)
506
- varbind_data, remaining_varbind_data = decode_sequence(data)
507
- name, remainder = decode_object_id(varbind_data)
508
- value, remainder = decode_value(remainder)
509
- assert_no_remainder(remainder)
510
- return VarBind.new(name, value), remaining_varbind_data
511
- end
512
508
 
513
- ValueDecoderMap = {
514
- INTEGER_TAG => Integer,
515
- OCTET_STRING_TAG => OctetString,
516
- NULL_TAG => Null,
517
- OBJECT_IDENTIFIER_TAG => ObjectId,
518
- IpAddress_TAG => IpAddress,
519
- Counter32_TAG => Counter32,
520
- Gauge32_TAG => Gauge32,
521
- # note Gauge32 tag same as Unsigned32
522
- TimeTicks_TAG => TimeTicks,
523
- Opaque_TAG => Opaque,
524
- Counter64_TAG => Counter64,
525
- NoSuchObject_TAG => NoSuchObject,
526
- NoSuchInstance_TAG => NoSuchInstance,
527
- EndOfMibView_TAG => EndOfMibView
528
- }
529
-
530
- def decode_value(data)
531
- value_tag, value_data, remainder = decode_tlv(data)
532
- decoder_class = ValueDecoderMap[value_tag]
533
- if decoder_class
534
- value = decoder_class.decode(value_data)
535
- else
536
- raise UnsupportedValueTag, value_tag.to_s
537
- end
538
- return value, remainder
509
+ class << self
510
+ def decode(data)
511
+ varbind_data, remaining_varbind_data = decode_sequence(data)
512
+ name, remainder = decode_object_id(varbind_data)
513
+ value, remainder = decode_value(remainder)
514
+ assert_no_remainder(remainder)
515
+ return VarBind.new(name, value), remaining_varbind_data
516
+ end
517
+
518
+ ValueDecoderMap = {
519
+ INTEGER_TAG => Integer,
520
+ OCTET_STRING_TAG => OctetString,
521
+ NULL_TAG => Null,
522
+ OBJECT_IDENTIFIER_TAG => ObjectId,
523
+ IpAddress_TAG => IpAddress,
524
+ Counter32_TAG => Counter32,
525
+ Gauge32_TAG => Gauge32,
526
+ # note Gauge32 tag same as Unsigned32
527
+ TimeTicks_TAG => TimeTicks,
528
+ Opaque_TAG => Opaque,
529
+ Counter64_TAG => Counter64,
530
+ NoSuchObject_TAG => NoSuchObject,
531
+ NoSuchInstance_TAG => NoSuchInstance,
532
+ EndOfMibView_TAG => EndOfMibView
533
+ }
534
+
535
+ def decode_value(data)
536
+ value_tag, value_data, remainder = decode_tlv(data)
537
+ decoder_class = ValueDecoderMap[value_tag]
538
+ if decoder_class
539
+ value = decoder_class.decode(value_data)
540
+ else
541
+ raise UnsupportedValueTag, value_tag.to_s
539
542
  end
543
+ return value, remainder
544
+ end
540
545
  end
541
-
546
+
542
547
  def initialize(name, value=Null)
543
- if name.kind_of? ObjectId
544
- @name = name
545
- else
546
- @name = ObjectName.new(name)
547
- end
548
- @value = value
548
+ if name.kind_of? ObjectId
549
+ @name = name
550
+ else
551
+ @name = ObjectName.new(name)
552
+ end
553
+ @value = value
549
554
  end
550
555
 
551
556
  def asn1_type
552
- "VarBind"
557
+ "VarBind"
553
558
  end
554
-
559
+
555
560
  def to_varbind
556
- self
561
+ self
557
562
  end
558
-
563
+
559
564
  def to_s
560
- "[name=#{@name.to_s}, value=#{@value.to_s} (#{@value.asn1_type})]"
565
+ "[name=#{@name.to_s}, value=#{@value.to_s} (#{@value.asn1_type})]"
561
566
  end
562
-
567
+
563
568
  def each
564
- yield self
569
+ yield self
565
570
  end
566
-
571
+
567
572
  def encode
568
- data = encode_object_id(@name) << value.encode
569
- encode_sequence(data)
573
+ data = encode_object_id(@name) << value.encode
574
+ encode_sequence(data)
570
575
  end
571
- end
576
+ end
572
577
 
573
- class ObjectName < ObjectId
578
+ class ObjectName < ObjectId
574
579
  def asn1_type
575
- "ObjectName"
580
+ "ObjectName"
576
581
  end
577
- end
582
+ end
578
583
 
579
584
  end