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
@@ -3,80 +3,80 @@ require 'snmp'
3
3
 
4
4
  class TimeoutManager < SNMP::Manager
5
5
  attr_accessor :response_count
6
-
6
+
7
7
  def initialize(config)
8
8
  super(config)
9
9
  @response_count = 0
10
10
  @raise_on_send = false
11
11
  @raise_on_get = false
12
12
  end
13
-
13
+
14
14
  def raise_send_error
15
- @raise_on_send = true
15
+ @raise_on_send = true
16
16
  end
17
17
 
18
18
  def raise_get_error
19
- @raise_on_get = true
19
+ @raise_on_get = true
20
20
  end
21
-
22
- def send_request(request, community, host, port)
23
- raise RuntimeError if @raise_on_send
21
+
22
+ def send_request(request, community, host, port)
23
+ raise RuntimeError if @raise_on_send
24
24
  end
25
25
 
26
- def get_response(request)
27
- @response_count += 1
28
- raise RuntimeError if @raise_on_get
29
- raise Timeout::Error, "testing retry count"
26
+ def get_response(request)
27
+ @response_count += 1
28
+ raise RuntimeError if @raise_on_get
29
+ raise Timeout::Error, "testing retry count"
30
30
  end
31
31
  end
32
32
 
33
33
  class MismatchIdTransport
34
- def initialize
35
- @data = []
36
- end
37
-
38
- def close
39
- end
40
-
41
- def send(data, host, port)
42
- bad_id_data = data.dup
43
- bad_msg = SNMP::Message.decode(data)
44
- bad_msg.pdu.request_id -= 3 # corrupt request_id
45
- @data << bad_msg.encode # insert corrupted PDU before real data
46
- @data << data
47
- end
48
-
49
- def recv(max_bytes)
50
- raise "receive queue is empty" unless @data.first
51
- SNMP::Message.decode(@data.shift).response.encode[0,max_bytes]
52
- end
34
+ def initialize
35
+ @data = []
36
+ end
37
+
38
+ def close
39
+ end
40
+
41
+ def send(data, host, port)
42
+ bad_id_data = data.dup
43
+ bad_msg = SNMP::Message.decode(data)
44
+ bad_msg.pdu.request_id -= 3 # corrupt request_id
45
+ @data << bad_msg.encode # insert corrupted PDU before real data
46
+ @data << data
47
+ end
48
+
49
+ def recv(max_bytes)
50
+ raise "receive queue is empty" unless @data.first
51
+ SNMP::Message.decode(@data.shift).response.encode[0,max_bytes]
52
+ end
53
53
  end
54
54
 
55
55
 
56
- class TestRetry < Test::Unit::TestCase
57
- def test_retry_count
58
- assert_response_count(0, 1, SNMP::RequestTimeout)
59
- assert_response_count(1, 2, SNMP::RequestTimeout)
60
- assert_response_count(5, 6, SNMP::RequestTimeout)
61
- end
56
+ class TestRetry < Test::Unit::TestCase
57
+ def test_retry_count
58
+ assert_response_count(0, 1, SNMP::RequestTimeout)
59
+ assert_response_count(1, 2, SNMP::RequestTimeout)
60
+ assert_response_count(5, 6, SNMP::RequestTimeout)
61
+ end
62
62
 
63
- def test_retry_on_error
64
- assert_response_count(5, 0, RuntimeError) { |m| m.raise_send_error }
65
- old_verbose = $VERBOSE
66
- $VERBOSE = nil
67
- assert_response_count(5, 6, SNMP::RequestTimeout) { |m| m.raise_get_error }
68
- $VERBOSE = old_verbose
69
- end
63
+ def test_retry_on_error
64
+ assert_response_count(5, 0, RuntimeError) { |m| m.raise_send_error }
65
+ old_verbose = $VERBOSE
66
+ $VERBOSE = nil
67
+ assert_response_count(5, 6, SNMP::RequestTimeout) { |m| m.raise_get_error }
68
+ $VERBOSE = old_verbose
69
+ end
70
70
 
71
- def assert_response_count(retry_count, response_count, exception)
72
- m = TimeoutManager.new( :Retries => retry_count )
73
- yield m if block_given?
74
- assert_raise(exception) { m.get("1.2.3.4") }
75
- assert_equal(response_count, m.response_count)
76
- end
77
-
78
- def test_drop_mismatched_id
79
- m = SNMP::Manager.new(:Transport => MismatchIdTransport)
80
- m.get("1.2.3.4")
81
- end
71
+ def assert_response_count(retry_count, response_count, exception)
72
+ m = TimeoutManager.new( :Retries => retry_count )
73
+ yield m if block_given?
74
+ assert_raise(exception) { m.get("1.2.3.4") }
75
+ assert_equal(response_count, m.response_count)
76
+ end
77
+
78
+ def test_drop_mismatched_id
79
+ m = SNMP::Manager.new(:Transport => MismatchIdTransport.new)
80
+ m.get("1.2.3.4")
81
+ end
82
82
  end
@@ -1,19 +1,19 @@
1
1
  require 'test/unit'
2
2
 
3
3
  begin
4
- require 'smi'
4
+ require 'smi'
5
5
 
6
- class TestSmi < Test::Unit::TestCase
7
-
8
- include SNMP::SMI
6
+ class TestSmi < Test::Unit::TestCase
9
7
 
10
- def test_load
11
- name, oid_hash = load_smi_module('test/mibs/IF-MIB')
12
- assert_equal("IF-MIB", name)
13
- assert_equal("1.3.6.1.2.1.2.2", oid_hash["ifTable"])
14
- end
8
+ include SNMP::SMI
15
9
 
10
+ def test_load
11
+ name, oid_hash = load_smi_module('test/mibs/IF-MIB')
12
+ assert_equal("IF-MIB", name)
13
+ assert_equal("1.3.6.1.2.1.2.2", oid_hash["ifTable"])
16
14
  end
15
+
16
+ end
17
17
  rescue LoadError
18
- # snmp/smi may not always be available because it is a C extention
18
+ # snmp/smi may not always be available because it is a C extention
19
19
  end
@@ -2,341 +2,352 @@ require 'snmp/varbind'
2
2
  require 'test/unit'
3
3
 
4
4
  class TestVarBind < Test::Unit::TestCase
5
-
6
- include SNMP
7
-
8
- def test_varbind_encode
9
- v = VarBind.new([1,3,6,1], OctetString.new("test"))
10
- assert_equal("0\v\006\003+\006\001\004\004test", v.encode)
11
- assert_not_nil(v.asn1_type)
12
- assert_equal("[name=1.3.6.1, value=test (OCTET STRING)]", v.to_s)
13
- end
14
-
15
- def test_varbind_decode
16
- varbind, remainder = VarBind.decode("0\f\006\010+\006\001\002\001\001\001\000\005\000")
17
- assert_equal(Null, varbind.value)
18
- assert_equal("", remainder)
19
-
20
- varbind, remainder = VarBind.decode("0\f\006\010+\006\001\002\001\001\001\000\005\0000\f\006\010+\006\001\002\001\001\002\000\005\000")
21
- assert_equal(Null, varbind.value)
22
- assert_equal("0\f\006\010+\006\001\002\001\001\002\000\005\000", remainder)
23
- end
24
5
 
25
- def test_varbind_name_alias_oid
26
- vb = VarBind.new("1.2.3.4", OctetString.new("blah"))
27
- assert(ObjectId.new("1.2.3.4"), vb.name)
28
- assert(ObjectId.new("1.2.3.4"), vb.oid)
29
- end
30
-
31
- def test_varbind_list_create
32
- list = VarBindList.new
33
- assert_equal(0, list.length)
34
-
35
- check_varbind_list_create(VarBindList.new(["1.2.3.4.5"]))
36
- check_varbind_list_create(VarBindList.new([ObjectId.new("1.2.3.4.5")]))
37
- check_varbind_list_create(VarBindList.new([VarBind.new("1.2.3.4.5", Null)]))
38
-
39
- check_varbind_list_create(VarBindList.new(
40
- ["1.2.3.4.5", "1.2.3.4.6"]), 2)
41
-
42
- check_varbind_list_create(VarBindList.new(
43
- [ObjectId.new("1.2.3.4.5"),
44
- ObjectId.new("1.2.3.4.6")]
45
- ), 2)
46
-
47
- check_varbind_list_create(VarBindList.new(
48
- [VarBind.new("1.2.3.4.5", Null),
49
- VarBind.new("1.2.3.4.6", Integer.new(123)),
50
- ObjectId.new("1.2.3.4.7")]
51
- ), 3)
52
-
53
- list = VarBindList.new([VarBind.new("1.3.6.2", Integer.new(1))])
54
- assert_equal(1, list.length)
55
- assert_equal("1.3.6.2", list.first.name.to_s)
56
- assert_equal(1, list.first.value.to_i)
57
- end
6
+ include SNMP
58
7
 
59
- def check_varbind_list_create(list, n=1)
60
- assert_equal(n, list.length)
61
- assert_equal("1.2.3.4.5", list.first.name.to_s)
62
- assert_equal(Null, list.first.value)
63
- end
64
-
65
- def test_varbind_list_encode
66
- list = VarBindList.new
67
- assert_equal("0\000", list.encode)
68
- assert_not_nil(list.asn1_type)
69
-
70
- list << VarBind.new([1,3,6,1], OctetString.new("test"))
71
- assert_equal("0\r0\v\006\003+\006\001\004\004test", list.encode)
72
-
73
- list << VarBind.new([1,3,6,1], OctetString.new("blah"))
74
- assert_equal("0\0320\v\006\003+\006\001\004\004test0\v\006\003+\006\001\004\004blah", list.encode)
75
- end
8
+ def test_varbind_encode
9
+ v = VarBind.new([1,3,6,1], OctetString.new("test"))
10
+ assert_equal("0\v\006\003+\006\001\004\004test", v.encode)
11
+ assert_not_nil(v.asn1_type)
12
+ assert_equal("[name=1.3.6.1, value=test (OCTET STRING)]", v.to_s)
13
+ end
76
14
 
77
- def test_varbind_list_decode
78
- list, remainder = VarBindList.decode("0\r0\v\006\003+\006\001\004\004test")
79
- assert_equal(1, list.length)
80
- assert_equal("", remainder)
81
-
82
- list, remainder = VarBindList.decode("0\0320\v\006\003+\006\001\004\004test0\v\006\003+\006\001\004\004blah")
83
- assert_equal(2, list.length)
84
- assert_equal("", remainder)
85
-
86
- list, remainder = VarBindList.decode("0\000")
87
- assert_equal(0, list.length)
88
- assert_equal("", remainder)
89
- end
90
-
91
- def test_octet_string
92
- string = OctetString.new("test")
93
- assert_equal("test", string.to_s)
94
- assert_equal("\004\004test", string.encode)
95
- assert_not_nil(string.asn1_type)
96
- end
97
-
98
- def test_octet_string_equals
99
- s1 = OctetString.new("test")
100
- s2 = "test"
101
- s3 = OctetString.new("test")
102
- assert_equal(s1, s2)
103
- assert(s1 == s2)
104
- assert_not_same(s1, s3)
105
- assert_equal(s1, s3)
106
- end
107
-
108
- def test_octet_string_to_oid
109
- s = OctetString.new("test")
110
- assert_equal(ObjectId.new([116, 101, 115, 116]), s.to_oid)
111
- end
112
-
113
- def test_object_id
114
- id = ObjectId.new([1,3,6,1])
115
- assert_equal("1.3.6.1", id.to_s)
116
- assert_equal("\006\003+\006\001", id.encode)
117
- assert_not_nil(id.asn1_type)
118
- assert_equal("1.3.6.1", id.to_varbind.name.to_s)
119
-
120
- assert_raise(ArgumentError) {
121
- ObjectId.new("xyzzy")
122
- }
123
-
124
- assert_equal("", ObjectId.new.to_s)
125
- end
126
-
127
- def test_object_id_create
128
- assert_equal("1.3.6.1", ObjectId.new("1.3.6.1").to_s)
129
- assert_equal("1.3.6.1", ObjectId.new([1,3,6,1]).to_s)
130
- assert_equal("1.3.6.1", ObjectId.new(ObjectId.new("1.3.6.1")).to_s)
131
- end
132
-
133
- def test_object_id_equals
134
- id1 = ObjectId.new("1.3.3.4")
135
- id2 = ObjectId.new([1,3,3,4])
136
- assert_not_same(id1, id2)
137
- assert(id1 == id2)
138
- assert_equal(id1, id2)
139
- end
140
-
141
- def test_object_id_comparable
142
- id1 = ObjectId.new("1.3.3.4")
143
- id2 = ObjectId.new("1.3.3.4.1")
144
- id3 = ObjectId.new("1.3.3.4.5")
145
- id4 = ObjectId.new("1.3.3.5")
146
- assert(id1 < id2)
147
- assert(id2 > id1)
148
- assert(id2 < id3)
149
- assert(id3 > id2)
150
- assert(id3 < id4)
151
- assert(id4 > id3)
152
- end
153
-
154
- def test_object_id_subtree
155
- id1 = ObjectId.new("1.3.3.4")
156
- id2 = ObjectId.new("1.3.3.4.1")
157
- id3 = ObjectId.new("1.3.3.4.5")
158
- id4 = ObjectId.new("1.3.3.5")
159
- assert(id2.subtree_of?(id1))
160
- assert(id3.subtree_of?(id1))
161
- assert(!id3.subtree_of?(id2))
162
- assert(!id1.subtree_of?(id2))
163
- assert(!id4.subtree_of?(id1))
164
- assert(!id4.subtree_of?(id3))
165
- assert(id1.subtree_of?("1.3.3.4"))
166
- assert(!id4.subtree_of?("1.3.3.4"))
167
- end
15
+ def test_varbind_decode
16
+ varbind, remainder = VarBind.decode("0\f\006\010+\006\001\002\001\001\001\000\005\000")
17
+ assert_equal(Null, varbind.value)
18
+ assert_equal("", remainder)
168
19
 
169
- def test_object_id_index
170
- id1 = ObjectId.new("1.3.3.4")
171
- id2 = ObjectId.new("1.3.3.4.1")
172
- id3 = ObjectId.new("1.3.3.4.1.2")
173
- assert(ObjectId.new("1"), id2.index(id1))
174
- assert(ObjectId.new("1.2"), id3.index(id1))
175
- assert(ObjectId.new("1.2"), id3.index("1.3.3.4"))
176
- assert_raise(ArgumentError) { id1.index(id3) }
177
- assert_raise(ArgumentError) { id1.index(id1) }
178
- end
179
-
180
- def test_object_name_from_string
181
- id = ObjectName.new("1.3.4.5.6")
182
- assert_equal("1.3.4.5.6", id.to_s)
183
- assert_equal("\006\004+\004\005\006", id.encode)
184
- end
185
-
186
- def test_integer_create
187
- i = Integer.new(12345)
188
- assert_equal("12345", i.to_s)
189
- assert_equal(12345, i.to_i)
190
- assert_equal("\002\00209", i.encode)
191
- assert_not_nil(i.asn1_type)
192
- end
193
-
194
- def test_integer_decode
195
- i = Integer.decode("09")
196
- assert_equal(12345, i.to_i)
197
- end
198
-
199
- def test_integer_equal
200
- i1 = Integer.new(12345)
201
- i2 = Integer.new(12345)
202
- i3 = 12345.2
203
- i4 = 12345
204
- assert_not_same(i1, i2)
205
- assert_equal(i1, i2)
206
- assert_equal(i4, i1)
207
- assert_equal(i1, i4)
208
- assert_equal(i1, i3)
209
- end
210
-
211
- def test_integer_comparable
212
- i1 = Integer.new(12345)
213
- i2 = Integer.new(54321.0)
214
- assert(i1 < i2)
215
- assert(i2 > i1)
216
- assert(123 < i1)
217
- assert(123.0 < i1)
218
- assert(i2 > 54000)
219
- end
220
-
221
- def test_integer_to_oid
222
- assert(ObjectId.new("123"), Integer.new(123).to_oid)
223
- assert(ObjectId.new("0"), Integer.new(0).to_oid)
224
-
225
- i = Integer.new(-1)
226
- assert_raise(RangeError) { i.to_oid }
227
- end
228
-
229
- def test_ip_address_from_string
230
- ip = IpAddress.new("10.0.255.1")
231
- assert_equal("10.0.255.1", ip.to_s)
232
- assert_raise(InvalidIpAddress) { IpAddress.new("1233.2.3.4") }
233
- assert_raise(InvalidIpAddress) { IpAddress.new("1.2.3.-1") }
234
- assert_raise(InvalidIpAddress) { IpAddress.new("1.2.3") }
235
- end
20
+ varbind, remainder = VarBind.decode("0\f\006\010+\006\001\002\001\001\001\000\005\0000\f\006\010+\006\001\002\001\001\002\000\005\000")
21
+ assert_equal(Null, varbind.value)
22
+ assert_equal("0\f\006\010+\006\001\002\001\001\002\000\005\000", remainder)
23
+ end
236
24
 
237
- def test_ip_address_from_self
238
- ip1 = IpAddress.new("1.2.3.4")
239
- ip2 = IpAddress.new(ip1)
240
- assert_equal(ip1, ip2)
241
- end
242
-
243
- def test_ip_address_create
244
- ip = IpAddress.new("\001\002\003\004")
245
- assert_equal("1.2.3.4", ip.to_s)
246
- assert_equal("\001\002\003\004", ip.to_str)
247
- assert_equal("@\004\001\002\003\004", ip.encode)
248
- assert_not_nil(ip.asn1_type)
249
- end
250
-
251
- def test_ip_address_decode
252
- ip = IpAddress.decode("\001\002\003\004")
253
- assert_equal("1.2.3.4", ip.to_s)
254
- end
25
+ def test_varbind_name_alias_oid
26
+ vb = VarBind.new("1.2.3.4", OctetString.new("blah"))
27
+ assert_equal(ObjectId.new("1.2.3.4"), vb.name)
28
+ assert_equal(ObjectId.new("1.2.3.4"), vb.oid)
29
+ end
255
30
 
256
- def test_ip_address_equals
257
- ip1 = IpAddress.new("1.2.3.4")
258
- ip2 = IpAddress.new("1.2.3.4")
259
- ip3 = IpAddress.new("10.2.3.4")
260
- assert(ip1 == ip2)
261
- assert(ip1.eql?(ip2))
262
- assert(!ip1.equal?(ip2))
263
- assert(ip1 != ip3)
264
- assert(ip1.hash == ip2.hash)
265
- assert(ip1.hash != ip3.hash)
266
- assert(!ip1.eql?(12))
267
- end
268
-
269
- def test_ip_address_to_oid
270
- ip = IpAddress.new("1.2.3.4")
271
- assert_equal(ObjectId.new("1.2.3.4"), ip.to_oid)
272
- end
273
-
274
- def test_counter32_create
275
- i = Counter32.new(12345)
276
- assert_equal("12345", i.to_s)
277
- assert_equal(12345, i.to_i)
278
- assert_equal("\x41\00209", i.encode)
279
- assert_not_nil(i.asn1_type)
280
- end
281
-
282
- def test_counter32_decode
283
- i = Counter32.decode("09")
284
- assert_equal(12345, i.to_i)
285
- end
286
-
287
- # Decode as a positive number even though high bit is set.
288
- # Not strict ASN.1, but implemented in some agents.
289
- def test_unsigned_decode
290
- i = Counter32.decode("\201\264\353\331")
291
- assert_equal(2176117721, i.to_i)
292
-
293
- i = TimeTicks.decode("\201\264\353\331")
294
- assert_equal(2176117721, i.to_i)
295
- end
296
-
297
- def test_counter64
298
- i = Counter64.new(18446744073709551615)
299
- assert_equal(18446744073709551615, i.to_i)
300
- assert_equal("18446744073709551615", i.to_s)
301
- assert_equal("F\t\000\377\377\377\377\377\377\377\377", i.encode)
302
- assert_equal(i, Counter64.decode("\000\377\377\377\377\377\377\377\377"))
303
- assert_not_nil(i.asn1_type)
304
- end
305
-
306
- def test_opaque
307
- q = Opaque.new("test")
308
- assert_equal("D\004test", q.encode)
309
- assert_equal("test", Opaque.decode("test"))
310
- assert_equal("test", q.to_s)
311
- assert_not_nil(q.asn1_type)
312
- end
313
-
314
- def test_exception_methods
315
- exception_types = [NoSuchObject, NoSuchInstance, EndOfMibView]
316
- exception_types.each do |type|
317
- assert(type.respond_to?(:decode))
318
- assert(type.respond_to?(:encode))
319
- assert_equal(type.asn1_type, type.to_s)
320
- end
321
- end
31
+ def test_varbind_list_create
32
+ list = VarBindList.new
33
+ assert_equal(0, list.length)
322
34
 
323
- def test_timeticks
324
- assert_equal("00:00:00.00", TimeTicks.new(0).to_s)
325
- assert_equal("00:00:00.01", TimeTicks.new(1).to_s)
326
- assert_equal("00:00:01.00", TimeTicks.new(100).to_s)
327
- assert_equal("00:01:00.00", TimeTicks.new(60 * 100).to_s)
328
- assert_equal("01:00:00.00", TimeTicks.new(60 * 60 * 100).to_s)
329
- assert_equal("23:59:59.99", TimeTicks.new(24 * 60 * 60 * 100 - 1).to_s)
330
- assert_equal("1 day, 00:00:00.00", TimeTicks.new(24 * 60 * 60 * 100).to_s)
331
- assert_equal("1 day, 23:59:59.99", TimeTicks.new(48 * 60 * 60 * 100 - 1).to_s)
332
- assert_equal("2 days, 00:00:00.00", TimeTicks.new(48 * 60 * 60 * 100).to_s)
333
- assert_equal("497 days, 02:27:52.95", TimeTicks.new(4294967295).to_s)
334
- assert_equal(4294967295, TimeTicks.new(4294967295).to_i)
335
- assert_raise(ArgumentError) {
336
- TimeTicks.new(4294967296)
337
- }
338
- assert_raise(ArgumentError) {
339
- TimeTicks.new(-1)
340
- }
341
- end
342
- end
35
+ check_varbind_list_create(VarBindList.new(["1.2.3.4.5"]))
36
+ check_varbind_list_create(VarBindList.new([ObjectId.new("1.2.3.4.5")]))
37
+ check_varbind_list_create(VarBindList.new([VarBind.new("1.2.3.4.5", Null)]))
38
+
39
+ check_varbind_list_create(VarBindList.new(
40
+ ["1.2.3.4.5", "1.2.3.4.6"]), 2)
41
+
42
+ check_varbind_list_create(VarBindList.new(
43
+ [ObjectId.new("1.2.3.4.5"),
44
+ ObjectId.new("1.2.3.4.6")]
45
+ ), 2)
46
+
47
+ check_varbind_list_create(VarBindList.new(
48
+ [VarBind.new("1.2.3.4.5", Null),
49
+ VarBind.new("1.2.3.4.6", Integer.new(123)),
50
+ ObjectId.new("1.2.3.4.7")]
51
+ ), 3)
52
+
53
+ list = VarBindList.new([VarBind.new("1.3.6.2", Integer.new(1))])
54
+ assert_equal(1, list.length)
55
+ assert_equal("1.3.6.2", list.first.name.to_s)
56
+ assert_equal(1, list.first.value.to_i)
57
+ end
58
+
59
+ def check_varbind_list_create(list, n=1)
60
+ assert_equal(n, list.length)
61
+ assert_equal("1.2.3.4.5", list.first.name.to_s)
62
+ assert_equal(Null, list.first.value)
63
+ end
64
+
65
+ def test_varbind_list_encode
66
+ list = VarBindList.new
67
+ assert_equal("0\000", list.encode)
68
+ assert_not_nil(list.asn1_type)
69
+
70
+ list << VarBind.new([1,3,6,1], OctetString.new("test"))
71
+ assert_equal("0\r0\v\006\003+\006\001\004\004test", list.encode)
72
+
73
+ list << VarBind.new([1,3,6,1], OctetString.new("blah"))
74
+ assert_equal("0\0320\v\006\003+\006\001\004\004test0\v\006\003+\006\001\004\004blah", list.encode)
75
+ end
76
+
77
+ def test_varbind_list_decode
78
+ list, remainder = VarBindList.decode("0\r0\v\006\003+\006\001\004\004test")
79
+ assert_equal(1, list.length)
80
+ assert_equal("", remainder)
81
+
82
+ list, remainder = VarBindList.decode("0\0320\v\006\003+\006\001\004\004test0\v\006\003+\006\001\004\004blah")
83
+ assert_equal(2, list.length)
84
+ assert_equal("", remainder)
85
+
86
+ list, remainder = VarBindList.decode("0\000")
87
+ assert_equal(0, list.length)
88
+ assert_equal("", remainder)
89
+ end
90
+
91
+ def test_octet_string
92
+ string = OctetString.new("test")
93
+ assert_equal("test", string.to_s)
94
+ assert_equal("\004\004test", string.encode)
95
+ assert_not_nil(string.asn1_type)
96
+ end
97
+
98
+ def test_octet_string_equals
99
+ s1 = OctetString.new("test")
100
+ s2 = "test"
101
+ s3 = OctetString.new("test")
102
+ assert_equal(s1, s2)
103
+ assert(s1 == s2)
104
+ assert_not_same(s1, s3)
105
+ assert_equal(s1, s3)
106
+ end
107
+
108
+ def test_octet_string_to_oid
109
+ s = OctetString.new("test")
110
+ assert_equal(ObjectId.new([116, 101, 115, 116]), s.to_oid)
111
+ end
112
+
113
+ def test_object_id
114
+ id = ObjectId.new([1,3,6,1])
115
+ assert_equal("1.3.6.1", id.to_s)
116
+ assert_equal("\006\003+\006\001", id.encode)
117
+ assert_not_nil(id.asn1_type)
118
+ assert_equal("1.3.6.1", id.to_varbind.name.to_s)
119
+
120
+ assert_raise(ArgumentError) {
121
+ ObjectId.new("xyzzy")
122
+ }
123
+
124
+ assert_equal("", ObjectId.new.to_s)
125
+ end
126
+
127
+ def test_object_id_create
128
+ assert_equal("1.3.6.1", ObjectId.new("1.3.6.1").to_s)
129
+ assert_equal("1.3.6.1", ObjectId.new([1,3,6,1]).to_s)
130
+ assert_equal("1.3.6.1", ObjectId.new(ObjectId.new("1.3.6.1")).to_s)
131
+ end
132
+
133
+ def test_object_id_equals
134
+ id1 = ObjectId.new("1.3.3.4")
135
+ id2 = ObjectId.new([1,3,3,4])
136
+ assert_not_same(id1, id2)
137
+ assert(id1 == id2)
138
+ assert_equal(id1, id2)
139
+ end
140
+
141
+ def test_object_id_comparable
142
+ id1 = ObjectId.new("1.3.3.4")
143
+ id2 = ObjectId.new("1.3.3.4.1")
144
+ id3 = ObjectId.new("1.3.3.4.5")
145
+ id4 = ObjectId.new("1.3.3.5")
146
+ assert(id1 < id2)
147
+ assert(id2 > id1)
148
+ assert(id2 < id3)
149
+ assert(id3 > id2)
150
+ assert(id3 < id4)
151
+ assert(id4 > id3)
152
+ end
153
+
154
+ def test_object_id_subtree
155
+ id1 = ObjectId.new("1.3.3.4")
156
+ id2 = ObjectId.new("1.3.3.4.1")
157
+ id3 = ObjectId.new("1.3.3.4.5")
158
+ id4 = ObjectId.new("1.3.3.5")
159
+ assert(id2.subtree_of?(id1))
160
+ assert(id3.subtree_of?(id1))
161
+ assert(!id3.subtree_of?(id2))
162
+ assert(!id1.subtree_of?(id2))
163
+ assert(!id4.subtree_of?(id1))
164
+ assert(!id4.subtree_of?(id3))
165
+ assert(id1.subtree_of?("1.3.3.4"))
166
+ assert(!id4.subtree_of?("1.3.3.4"))
167
+ end
168
+
169
+ def test_object_id_index
170
+ id1 = ObjectId.new("1.3.3.4")
171
+ id2 = ObjectId.new("1.3.3.4.1")
172
+ id3 = ObjectId.new("1.3.3.4.1.2")
173
+ assert_equal(ObjectId.new("1"), id2.index(id1))
174
+ assert_equal(ObjectId.new("1.2"), id3.index(id1))
175
+ assert_equal(ObjectId.new("1.2"), id3.index("1.3.3.4"))
176
+ assert_raise(ArgumentError) { id1.index(id3) }
177
+ assert_raise(ArgumentError) { id1.index(id1) }
178
+ end
179
+
180
+ def test_object_name_from_string
181
+ id = ObjectName.new("1.3.4.5.6")
182
+ assert_equal("1.3.4.5.6", id.to_s)
183
+ assert_equal("\006\004+\004\005\006", id.encode)
184
+ end
185
+
186
+ def test_integer_create
187
+ i = Integer.new(12345)
188
+ assert_equal("12345", i.to_s)
189
+ assert_equal(12345, i.to_i)
190
+ assert_equal("\002\00209", i.encode)
191
+ assert_not_nil(i.asn1_type)
192
+ end
193
+
194
+ def test_integer_decode
195
+ i = Integer.decode("09")
196
+ assert_equal(12345, i.to_i)
197
+ end
198
+
199
+ def test_integer_equal
200
+ i1 = Integer.new(12345)
201
+ i2 = Integer.new(12345)
202
+ i3 = 12345.2
203
+ i4 = 12345
204
+ assert_not_same(i1, i2)
205
+ assert_equal(i1, i2)
206
+ assert_equal(i4, i1)
207
+ assert_equal(i1, i4)
208
+ assert_equal(i1, i3)
209
+ end
210
+
211
+ def test_integer_comparable
212
+ i1 = Integer.new(12345)
213
+ i2 = Integer.new(54321.0)
214
+ assert(i1 < i2)
215
+ assert(i2 > i1)
216
+ assert(123 < i1)
217
+ assert(123.0 < i1)
218
+ assert(i2 > 54000)
219
+ end
220
+
221
+ def test_integer_to_oid
222
+ assert_equal(ObjectId.new("123"), Integer.new(123).to_oid)
223
+ assert_equal(ObjectId.new("0"), Integer.new(0).to_oid)
224
+
225
+ i = Integer.new(-1)
226
+ assert_raise(RangeError) { i.to_oid }
227
+ end
228
+
229
+ def test_ip_address_from_string
230
+ ip = IpAddress.new("10.0.255.1")
231
+ assert_equal("10.0.255.1", ip.to_s)
232
+ assert_raise(InvalidIpAddress) { IpAddress.new("1233.2.3.4") }
233
+ assert_raise(InvalidIpAddress) { IpAddress.new("1.2.3.-1") }
234
+ assert_raise(InvalidIpAddress) { IpAddress.new("1.2.3") }
235
+ end
236
+
237
+ def test_ip_address_from_self
238
+ ip1 = IpAddress.new("1.2.3.4")
239
+ ip2 = IpAddress.new(ip1)
240
+ assert_equal(ip1, ip2)
241
+ end
242
+
243
+ def test_ip_address_create
244
+ ip = IpAddress.new("\001\002\003\004")
245
+ assert_equal("1.2.3.4", ip.to_s)
246
+ assert_equal("\001\002\003\004", ip.to_str)
247
+ assert_equal("@\004\001\002\003\004", ip.encode)
248
+ assert_not_nil(ip.asn1_type)
249
+ end
250
+
251
+ def test_ip_address_decode
252
+ ip = IpAddress.decode("\001\002\003\004")
253
+ assert_equal("1.2.3.4", ip.to_s)
254
+ end
255
+
256
+ def test_ip_address_decode_extra_octets
257
+ ip = IpAddress.decode("\000\000\000\000\000\000\000\000")
258
+ assert_equal("0.0.0.0.0.0.0.0", ip.to_s)
259
+
260
+ ip = IpAddress.decode("\001\002\003")
261
+ assert_equal("1.2.3", ip.to_s)
262
+
263
+ ip = IpAddress.decode("\001\002\003\004\005")
264
+ assert_equal("1.2.3.4.5", ip.to_s)
265
+ end
266
+
267
+ def test_ip_address_equals
268
+ ip1 = IpAddress.new("1.2.3.4")
269
+ ip2 = IpAddress.new("1.2.3.4")
270
+ ip3 = IpAddress.new("10.2.3.4")
271
+ assert(ip1 == ip2)
272
+ assert(ip1.eql?(ip2))
273
+ assert(!ip1.equal?(ip2))
274
+ assert(ip1 != ip3)
275
+ assert(ip1.hash == ip2.hash)
276
+ assert(ip1.hash != ip3.hash)
277
+ assert(!ip1.eql?(12))
278
+ end
279
+
280
+ def test_ip_address_to_oid
281
+ ip = IpAddress.new("1.2.3.4")
282
+ assert_equal(ObjectId.new("1.2.3.4"), ip.to_oid)
283
+ end
284
+
285
+ def test_counter32_create
286
+ i = Counter32.new(12345)
287
+ assert_equal("12345", i.to_s)
288
+ assert_equal(12345, i.to_i)
289
+ assert_equal("\x41\00209", i.encode)
290
+ assert_not_nil(i.asn1_type)
291
+ end
292
+
293
+ def test_counter32_decode
294
+ i = Counter32.decode("09")
295
+ assert_equal(12345, i.to_i)
296
+ end
297
+
298
+ # Decode as a positive number even though high bit is set.
299
+ # Not strict ASN.1, but implemented in some agents.
300
+ def test_unsigned_decode
301
+ i = Counter32.decode("\201\264\353\331")
302
+ assert_equal(2176117721, i.to_i)
303
+
304
+ i = TimeTicks.decode("\201\264\353\331")
305
+ assert_equal(2176117721, i.to_i)
306
+ end
307
+
308
+ def test_counter64
309
+ i = Counter64.new(18446744073709551615)
310
+ assert_equal(18446744073709551615, i.to_i)
311
+ assert_equal("18446744073709551615", i.to_s)
312
+ assert_equal("F\t\000\377\377\377\377\377\377\377\377", i.encode)
313
+ assert_equal(i, Counter64.decode("\000\377\377\377\377\377\377\377\377"))
314
+ assert_not_nil(i.asn1_type)
315
+ end
316
+
317
+ def test_opaque
318
+ q = Opaque.new("test")
319
+ assert_equal("D\004test", q.encode)
320
+ assert_equal("test", Opaque.decode("test"))
321
+ assert_equal("test", q.to_s)
322
+ assert_not_nil(q.asn1_type)
323
+ end
324
+
325
+ def test_exception_methods
326
+ exception_types = [NoSuchObject, NoSuchInstance, EndOfMibView]
327
+ exception_types.each do |type|
328
+ assert(type.respond_to?(:decode))
329
+ assert(type.respond_to?(:encode))
330
+ assert_equal(type.asn1_type, type.to_s)
331
+ end
332
+ end
333
+
334
+ def test_timeticks
335
+ assert_equal("00:00:00.00", TimeTicks.new(0).to_s)
336
+ assert_equal("00:00:00.01", TimeTicks.new(1).to_s)
337
+ assert_equal("00:00:01.00", TimeTicks.new(100).to_s)
338
+ assert_equal("00:01:00.00", TimeTicks.new(60 * 100).to_s)
339
+ assert_equal("01:00:00.00", TimeTicks.new(60 * 60 * 100).to_s)
340
+ assert_equal("23:59:59.99", TimeTicks.new(24 * 60 * 60 * 100 - 1).to_s)
341
+ assert_equal("1 day, 00:00:00.00", TimeTicks.new(24 * 60 * 60 * 100).to_s)
342
+ assert_equal("1 day, 23:59:59.99", TimeTicks.new(48 * 60 * 60 * 100 - 1).to_s)
343
+ assert_equal("2 days, 00:00:00.00", TimeTicks.new(48 * 60 * 60 * 100).to_s)
344
+ assert_equal("497 days, 02:27:52.95", TimeTicks.new(4294967295).to_s)
345
+ assert_equal(4294967295, TimeTicks.new(4294967295).to_i)
346
+ assert_raise(ArgumentError) {
347
+ TimeTicks.new(4294967296)
348
+ }
349
+ assert_raise(ArgumentError) {
350
+ TimeTicks.new(-1)
351
+ }
352
+ end
353
+ end