snmp 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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