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.
- data/README.rdoc +179 -0
- data/Rakefile +34 -39
- data/data/ruby/snmp/mibs/ACCOUNTING-CONTROL-MIB.yaml +33 -32
- data/data/ruby/snmp/mibs/ADSL-LINE-EXT-MIB.yaml +57 -56
- data/data/ruby/snmp/mibs/ADSL-LINE-MIB.yaml +224 -223
- data/data/ruby/snmp/mibs/ADSL-TC-MIB.yaml +1 -0
- data/data/ruby/snmp/mibs/ADSL2-LINE-MIB.yaml +321 -0
- data/data/ruby/snmp/mibs/ADSL2-LINE-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/AGENTX-MIB.yaml +25 -24
- data/data/ruby/snmp/mibs/AGGREGATE-MIB.yaml +28 -0
- data/data/ruby/snmp/mibs/ALARM-MIB.yaml +77 -0
- data/data/ruby/snmp/mibs/APM-MIB.yaml +75 -74
- data/data/ruby/snmp/mibs/APPC-MIB.yaml +261 -260
- data/data/ruby/snmp/mibs/APPLETALK-MIB.yaml +255 -254
- data/data/ruby/snmp/mibs/APPLICATION-MIB.yaml +138 -137
- data/data/ruby/snmp/mibs/APPN-DLUR-MIB.yaml +30 -29
- data/data/ruby/snmp/mibs/APPN-MIB.yaml +325 -324
- data/data/ruby/snmp/mibs/APPN-TRAP-MIB.yaml +10 -9
- data/data/ruby/snmp/mibs/APS-MIB.yaml +50 -49
- data/data/ruby/snmp/mibs/ARC-MIB.yaml +19 -0
- data/data/ruby/snmp/mibs/ATM-ACCOUNTING-INFORMATION-MIB.yaml +22 -21
- data/data/ruby/snmp/mibs/ATM-MIB.yaml +94 -93
- data/data/ruby/snmp/mibs/ATM-TC-MIB.yaml +12 -11
- data/data/ruby/snmp/mibs/ATM2-MIB.yaml +156 -155
- data/data/ruby/snmp/mibs/BGP4-MIB.yaml +48 -41
- data/data/ruby/snmp/mibs/BLDG-HVAC-MIB.yaml +25 -24
- data/data/ruby/snmp/mibs/BRIDGE-MIB.yaml +50 -44
- data/data/ruby/snmp/mibs/CHARACTER-MIB.yaml +35 -34
- data/data/ruby/snmp/mibs/CIRCUIT-IF-MIB.yaml +13 -12
- data/data/ruby/snmp/mibs/CLNS-MIB.yaml +98 -97
- data/data/ruby/snmp/mibs/COFFEE-POT-MIB.yaml +8 -7
- data/data/ruby/snmp/mibs/COPS-CLIENT-MIB.yaml +38 -37
- data/data/ruby/snmp/mibs/DECNET-PHIV-MIB.yaml +209 -208
- data/data/ruby/snmp/mibs/DIAL-CONTROL-MIB.yaml +72 -71
- data/data/ruby/snmp/mibs/DIFFSERV-CONFIG-MIB.yaml +11 -10
- data/data/ruby/snmp/mibs/DIFFSERV-DSCP-TC.yaml +1 -0
- data/data/ruby/snmp/mibs/DIFFSERV-MIB.yaml +151 -150
- data/data/ruby/snmp/mibs/DIRECTORY-SERVER-MIB.yaml +35 -34
- data/data/ruby/snmp/mibs/DISMAN-EVENT-MIB.yaml +95 -94
- data/data/ruby/snmp/mibs/DISMAN-EXPRESSION-MIB.yaml +37 -36
- data/data/ruby/snmp/mibs/DISMAN-NSLOOKUP-MIB.yaml +15 -14
- data/data/ruby/snmp/mibs/DISMAN-PING-MIB.yaml +43 -42
- data/data/ruby/snmp/mibs/DISMAN-SCHEDULE-MIB.yaml +22 -21
- data/data/ruby/snmp/mibs/DISMAN-SCRIPT-MIB.yaml +64 -63
- data/data/ruby/snmp/mibs/DISMAN-TRACEROUTE-MIB.yaml +59 -58
- data/data/ruby/snmp/mibs/DLSW-MIB.yaml +172 -171
- data/data/ruby/snmp/mibs/DNS-RESOLVER-MIB.yaml +70 -69
- data/data/ruby/snmp/mibs/DNS-SERVER-MIB.yaml +57 -56
- data/data/ruby/snmp/mibs/DOCS-BPI-MIB.yaml +81 -80
- data/data/ruby/snmp/mibs/DOCS-CABLE-DEVICE-MIB.yaml +114 -89
- data/data/ruby/snmp/mibs/DOCS-IETF-BPI2-MIB.yaml +187 -0
- data/data/ruby/snmp/mibs/DOCS-IETF-CABLE-DEVICE-NOTIFICATION-MIB.yaml +39 -0
- data/data/ruby/snmp/mibs/DOCS-IETF-QOS-MIB.yaml +166 -0
- data/data/ruby/snmp/mibs/DOCS-IETF-SUBMGT-MIB.yaml +32 -0
- data/data/ruby/snmp/mibs/DOCS-IF-MIB.yaml +208 -119
- data/data/ruby/snmp/mibs/DOT12-IF-MIB.yaml +21 -20
- data/data/ruby/snmp/mibs/DOT3-EPON-MIB.yaml +101 -0
- data/data/ruby/snmp/mibs/DOT3-OAM-MIB.yaml +82 -0
- data/data/ruby/snmp/mibs/DS0-MIB.yaml +11 -10
- data/data/ruby/snmp/mibs/DS0BUNDLE-MIB.yaml +9 -8
- data/data/ruby/snmp/mibs/DS1-MIB.yaml +102 -98
- data/data/ruby/snmp/mibs/DS3-MIB.yaml +84 -83
- data/data/ruby/snmp/mibs/DSA-MIB.yaml +31 -30
- data/data/ruby/snmp/mibs/DSMON-MIB.yaml +193 -192
- data/data/ruby/snmp/mibs/EBN-MIB.yaml +32 -31
- data/data/ruby/snmp/mibs/EFM-CU-MIB.yaml +113 -0
- data/data/ruby/snmp/mibs/ENTITY-MIB.yaml +41 -38
- data/data/ruby/snmp/mibs/ENTITY-SENSOR-MIB.yaml +8 -7
- data/data/ruby/snmp/mibs/ENTITY-STATE-MIB.yaml +18 -0
- data/data/ruby/snmp/mibs/ENTITY-STATE-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/ETHER-CHIPSET-MIB.yaml +61 -60
- data/data/ruby/snmp/mibs/ETHER-WIS.yaml +16 -15
- data/data/ruby/snmp/mibs/EtherLike-MIB.yaml +43 -42
- data/data/ruby/snmp/mibs/FC-MGMT-MIB.yaml +154 -0
- data/data/ruby/snmp/mibs/FCIP-MGMT-MIB.yaml +68 -0
- data/data/ruby/snmp/mibs/FDDI-SMT73-MIB.yaml +107 -106
- data/data/ruby/snmp/mibs/FIBRE-CHANNEL-FE-MIB.yaml +100 -99
- data/data/ruby/snmp/mibs/FLOW-METER-MIB.yaml +92 -91
- data/data/ruby/snmp/mibs/FR-ATM-PVC-SERVICE-IWF-MIB.yaml +33 -32
- data/data/ruby/snmp/mibs/FR-MFR-MIB.yaml +38 -37
- data/data/ruby/snmp/mibs/FRAME-RELAY-DTE-MIB.yaml +41 -40
- data/data/ruby/snmp/mibs/FRNETSERV-MIB.yaml +92 -91
- data/data/ruby/snmp/mibs/FRSLD-MIB.yaml +66 -65
- data/data/ruby/snmp/mibs/Finisher-MIB.yaml +38 -37
- data/data/ruby/snmp/mibs/GMPLS-LABEL-STD-MIB.yaml +27 -0
- data/data/ruby/snmp/mibs/GMPLS-LSR-STD-MIB.yaml +20 -0
- data/data/ruby/snmp/mibs/GMPLS-TC-STD-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/GMPLS-TE-STD-MIB.yaml +72 -0
- data/data/ruby/snmp/mibs/GSMP-MIB.yaml +75 -74
- data/data/ruby/snmp/mibs/HC-ALARM-MIB.yaml +26 -25
- data/data/ruby/snmp/mibs/HC-PerfHist-TC-MIB.yaml +1 -0
- data/data/ruby/snmp/mibs/HC-RMON-MIB.yaml +164 -163
- data/data/ruby/snmp/mibs/HCNUM-TC.yaml +1 -0
- data/data/ruby/snmp/mibs/HDSL2-SHDSL-LINE-MIB.yaml +117 -112
- data/data/ruby/snmp/mibs/HOST-RESOURCES-MIB.yaml +82 -81
- data/data/ruby/snmp/mibs/HOST-RESOURCES-TYPES.yaml +40 -39
- data/data/ruby/snmp/mibs/HPR-IP-MIB.yaml +17 -16
- data/data/ruby/snmp/mibs/HPR-MIB.yaml +64 -63
- data/data/ruby/snmp/mibs/IANA-ITU-ALARM-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/IF-CAP-STACK-MIB.yaml +13 -0
- data/data/ruby/snmp/mibs/IF-INVERTED-STACK-MIB.yaml +6 -5
- data/data/ruby/snmp/mibs/IF-MIB.yaml +57 -56
- data/data/ruby/snmp/mibs/IFCP-MGMT-MIB.yaml +65 -0
- data/data/ruby/snmp/mibs/IGMP-STD-MIB.yaml +24 -23
- data/data/ruby/snmp/mibs/INET-ADDRESS-MIB.yaml +1 -0
- data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-GUARANTEED-MIB.yaml +6 -5
- data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-MIB.yaml +29 -28
- data/data/ruby/snmp/mibs/INTERFACETOPN-MIB.yaml +21 -20
- data/data/ruby/snmp/mibs/IP-FORWARD-MIB.yaml +49 -27
- data/data/ruby/snmp/mibs/IP-MIB.yaml +243 -40
- data/data/ruby/snmp/mibs/IPATM-IPMC-MIB.yaml +179 -178
- data/data/ruby/snmp/mibs/IPMCAST-MIB.yaml +105 -0
- data/data/ruby/snmp/mibs/IPMROUTE-STD-MIB.yaml +49 -48
- data/data/ruby/snmp/mibs/IPOA-MIB.yaml +74 -73
- data/data/ruby/snmp/mibs/IPS-AUTH-MIB.yaml +68 -0
- data/data/ruby/snmp/mibs/IPSEC-SPD-MIB.yaml +121 -0
- data/data/ruby/snmp/mibs/IPV6-FLOW-LABEL-MIB.yaml +1 -0
- data/data/ruby/snmp/mibs/IPV6-ICMP-MIB.yaml +27 -26
- data/data/ruby/snmp/mibs/IPV6-MIB.yaml +70 -69
- data/data/ruby/snmp/mibs/IPV6-MLD-MIB.yaml +18 -17
- data/data/ruby/snmp/mibs/IPV6-TCP-MIB.yaml +7 -6
- data/data/ruby/snmp/mibs/IPV6-UDP-MIB.yaml +6 -5
- data/data/ruby/snmp/mibs/ISCSI-MIB.yaml +199 -0
- data/data/ruby/snmp/mibs/ISDN-MIB.yaml +57 -56
- data/data/ruby/snmp/mibs/ISIS-MIB.yaml +247 -0
- data/data/ruby/snmp/mibs/ISNS-MIB.yaml +179 -0
- data/data/ruby/snmp/mibs/ITU-ALARM-MIB.yaml +34 -0
- data/data/ruby/snmp/mibs/ITU-ALARM-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/Job-Monitoring-MIB.yaml +26 -27
- data/data/ruby/snmp/mibs/L2TP-MIB.yaml +138 -137
- data/data/ruby/snmp/mibs/LANGTAG-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/LMP-MIB.yaml +202 -0
- data/data/ruby/snmp/mibs/MALLOC-MIB.yaml +66 -65
- data/data/ruby/snmp/mibs/MAU-MIB.yaml +55 -95
- data/data/ruby/snmp/mibs/MIDCOM-MIB.yaml +83 -0
- data/data/ruby/snmp/mibs/MIOX25-MIB.yaml +28 -27
- data/data/ruby/snmp/mibs/MIP-MIB.yaml +157 -156
- data/data/ruby/snmp/mibs/MOBILEIPV6-MIB.yaml +189 -0
- data/data/ruby/snmp/mibs/MPLS-FTN-STD-MIB.yaml +29 -28
- data/data/ruby/snmp/mibs/MPLS-L3VPN-STD-MIB.yaml +88 -0
- data/data/ruby/snmp/mibs/MPLS-LC-ATM-STD-MIB.yaml +19 -0
- data/data/ruby/snmp/mibs/MPLS-LC-FR-STD-MIB.yaml +16 -0
- data/data/ruby/snmp/mibs/MPLS-LDP-ATM-STD-MIB.yaml +23 -22
- data/data/ruby/snmp/mibs/MPLS-LDP-FRAME-RELAY-STD-MIB.yaml +17 -16
- data/data/ruby/snmp/mibs/MPLS-LDP-GENERIC-STD-MIB.yaml +9 -8
- data/data/ruby/snmp/mibs/MPLS-LDP-STD-MIB.yaml +103 -102
- data/data/ruby/snmp/mibs/MPLS-LSR-STD-MIB.yaml +85 -84
- data/data/ruby/snmp/mibs/MPLS-TC-STD-MIB.yaml +1 -0
- data/data/ruby/snmp/mibs/MPLS-TE-STD-MIB.yaml +106 -105
- data/data/ruby/snmp/mibs/MSDP-MIB.yaml +71 -0
- data/data/ruby/snmp/mibs/MTA-MIB.yaml +42 -41
- data/data/ruby/snmp/mibs/Modem-MIB.yaml +87 -86
- data/data/ruby/snmp/mibs/NAT-MIB.yaml +116 -0
- data/data/ruby/snmp/mibs/NETWORK-SERVICES-MIB.yaml +18 -17
- data/data/ruby/snmp/mibs/NHRP-MIB.yaml +140 -139
- data/data/ruby/snmp/mibs/NOTIFICATION-LOG-MIB.yaml +37 -36
- data/data/ruby/snmp/mibs/OPT-IF-MIB.yaml +394 -393
- data/data/ruby/snmp/mibs/OSPF-MIB.yaml +192 -123
- data/data/ruby/snmp/mibs/OSPF-TRAP-MIB.yaml +24 -19
- data/data/ruby/snmp/mibs/P-BRIDGE-MIB.yaml +37 -35
- data/data/ruby/snmp/mibs/PARALLEL-MIB.yaml +16 -15
- data/data/ruby/snmp/mibs/PIM-MIB.yaml +47 -46
- data/data/ruby/snmp/mibs/PIM-STD-MIB.yaml +235 -0
- data/data/ruby/snmp/mibs/PINT-MIB.yaml +38 -37
- data/data/ruby/snmp/mibs/PKTC-IETF-MTA-MIB.yaml +81 -0
- data/data/ruby/snmp/mibs/PKTC-IETF-SIG-MIB.yaml +128 -0
- data/data/ruby/snmp/mibs/POLICY-BASED-MANAGEMENT-MIB.yaml +94 -0
- data/data/ruby/snmp/mibs/POWER-ETHERNET-MIB.yaml +27 -26
- data/data/ruby/snmp/mibs/PPP-BRIDGE-NCP-MIB.yaml +16 -15
- data/data/ruby/snmp/mibs/PPP-IP-NCP-MIB.yaml +7 -6
- data/data/ruby/snmp/mibs/PPP-LCP-MIB.yaml +33 -32
- data/data/ruby/snmp/mibs/PPP-SEC-MIB.yaml +13 -12
- data/data/ruby/snmp/mibs/PTOPO-MIB.yaml +29 -28
- data/data/ruby/snmp/mibs/PerfHist-TC-MIB.yaml +1 -0
- data/data/ruby/snmp/mibs/Printer-MIB.yaml +185 -184
- data/data/ruby/snmp/mibs/Q-BRIDGE-MIB.yaml +96 -82
- data/data/ruby/snmp/mibs/RADIUS-ACC-CLIENT-MIB.yaml +34 -16
- data/data/ruby/snmp/mibs/RADIUS-ACC-SERVER-MIB.yaml +40 -24
- data/data/ruby/snmp/mibs/RADIUS-AUTH-CLIENT-MIB.yaml +38 -18
- data/data/ruby/snmp/mibs/RADIUS-AUTH-SERVER-MIB.yaml +40 -23
- data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-CLIENT-MIB.yaml +44 -0
- data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-SERVER-MIB.yaml +40 -0
- data/data/ruby/snmp/mibs/RAQMON-MIB.yaml +90 -0
- data/data/ruby/snmp/mibs/RDBMS-MIB.yaml +69 -68
- data/data/ruby/snmp/mibs/RFC1065-SMI.yaml +4 -5
- data/data/ruby/snmp/mibs/RFC1155-SMI.yaml +4 -5
- data/data/ruby/snmp/mibs/RFC1158-MIB.yaml +174 -173
- data/data/ruby/snmp/mibs/RFC1213-MIB.yaml +173 -172
- data/data/ruby/snmp/mibs/RFC1269-MIB.yaml +20 -19
- data/data/ruby/snmp/mibs/RFC1271-MIB.yaml +185 -184
- data/data/ruby/snmp/mibs/RFC1285-MIB.yaml +85 -84
- data/data/ruby/snmp/mibs/RFC1316-MIB.yaml +30 -29
- data/data/ruby/snmp/mibs/RFC1381-MIB.yaml +40 -39
- data/data/ruby/snmp/mibs/RFC1382-MIB.yaml +149 -148
- data/data/ruby/snmp/mibs/RFC1414-MIB.yaml +4 -3
- data/data/ruby/snmp/mibs/RIPv2-MIB.yaml +25 -24
- data/data/ruby/snmp/mibs/RMON-MIB.yaml +192 -191
- data/data/ruby/snmp/mibs/RMON2-MIB.yaml +253 -252
- data/data/ruby/snmp/mibs/ROHC-MIB.yaml +49 -48
- data/data/ruby/snmp/mibs/ROHC-RTP-MIB.yaml +19 -18
- data/data/ruby/snmp/mibs/ROHC-UNCOMPRESSED-MIB.yaml +6 -5
- data/data/ruby/snmp/mibs/RS-232-MIB.yaml +36 -35
- data/data/ruby/snmp/mibs/RSTP-MIB.yaml +18 -0
- data/data/ruby/snmp/mibs/RSVP-MIB.yaml +137 -136
- data/data/ruby/snmp/mibs/RTP-MIB.yaml +42 -41
- data/data/ruby/snmp/mibs/SCSI-MIB.yaml +160 -0
- data/data/ruby/snmp/mibs/SCTP-MIB.yaml +83 -0
- data/data/ruby/snmp/mibs/SFLOW-MIB.yaml +15 -14
- data/data/ruby/snmp/mibs/SIP-COMMON-MIB.yaml +112 -0
- data/data/ruby/snmp/mibs/SIP-MIB.yaml +56 -55
- data/data/ruby/snmp/mibs/SIP-SERVER-MIB.yaml +52 -0
- data/data/ruby/snmp/mibs/SIP-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/SIP-UA-MIB.yaml +14 -0
- data/data/ruby/snmp/mibs/SLAPM-MIB.yaml +134 -133
- data/data/ruby/snmp/mibs/SMON-MIB.yaml +47 -46
- data/data/ruby/snmp/mibs/SNA-NAU-MIB.yaml +117 -116
- data/data/ruby/snmp/mibs/SNA-SDLC-MIB.yaml +126 -125
- data/data/ruby/snmp/mibs/SNMP-COMMUNITY-MIB.yaml +12 -11
- data/data/ruby/snmp/mibs/SNMP-FRAMEWORK-MIB.yaml +8 -7
- data/data/ruby/snmp/mibs/SNMP-MPD-MIB.yaml +6 -5
- data/data/ruby/snmp/mibs/SNMP-NOTIFICATION-MIB.yaml +16 -15
- data/data/ruby/snmp/mibs/SNMP-PROXY-MIB.yaml +10 -9
- data/data/ruby/snmp/mibs/SNMP-REPEATER-MIB.yaml +120 -119
- data/data/ruby/snmp/mibs/SNMP-TARGET-MIB.yaml +19 -18
- data/data/ruby/snmp/mibs/SNMP-USER-BASED-SM-MIB.yaml +26 -25
- data/data/ruby/snmp/mibs/SNMP-USM-AES-MIB.yaml +4 -0
- data/data/ruby/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.yaml +10 -9
- data/data/ruby/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.yaml +26 -25
- data/data/ruby/snmp/mibs/SNMPv2-MIB.yaml +46 -45
- data/data/ruby/snmp/mibs/SNMPv2-SMI.yaml +12 -11
- data/data/ruby/snmp/mibs/SNMPv2-TM.yaml +5 -4
- data/data/ruby/snmp/mibs/SNMPv2-USEC-MIB.yaml +10 -9
- data/data/ruby/snmp/mibs/SONET-MIB.yaml +110 -109
- data/data/ruby/snmp/mibs/SOURCE-ROUTING-MIB.yaml +18 -17
- data/data/ruby/snmp/mibs/SSPM-MIB.yaml +67 -0
- data/data/ruby/snmp/mibs/SYSAPPL-MIB.yaml +65 -64
- data/data/ruby/snmp/mibs/T11-FC-FABRIC-ADDR-MGR-MIB.yaml +63 -0
- data/data/ruby/snmp/mibs/T11-FC-FABRIC-CONFIG-SERVER-MIB.yaml +100 -0
- data/data/ruby/snmp/mibs/T11-FC-FABRIC-LOCK-MIB.yaml +22 -0
- data/data/ruby/snmp/mibs/T11-FC-FSPF-MIB.yaml +70 -0
- data/data/ruby/snmp/mibs/T11-FC-NAME-SERVER-MIB.yaml +56 -0
- data/data/ruby/snmp/mibs/T11-FC-ROUTE-MIB.yaml +27 -0
- data/data/ruby/snmp/mibs/T11-FC-RSCN-MIB.yaml +47 -0
- data/data/ruby/snmp/mibs/T11-FC-VIRTUAL-FABRIC-MIB.yaml +31 -0
- data/data/ruby/snmp/mibs/T11-FC-ZONE-SERVER-MIB.yaml +124 -0
- data/data/ruby/snmp/mibs/T11-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/TCP-ESTATS-MIB.yaml +167 -0
- data/data/ruby/snmp/mibs/TCP-MIB.yaml +37 -18
- data/data/ruby/snmp/mibs/TCPIPX-MIB.yaml +16 -15
- data/data/ruby/snmp/mibs/TE-LINK-STD-MIB.yaml +82 -0
- data/data/ruby/snmp/mibs/TE-MIB.yaml +81 -0
- data/data/ruby/snmp/mibs/TIME-AGGREGATE-MIB.yaml +22 -0
- data/data/ruby/snmp/mibs/TN3270E-MIB.yaml +85 -84
- data/data/ruby/snmp/mibs/TN3270E-RT-MIB.yaml +33 -32
- data/data/ruby/snmp/mibs/TOKEN-RING-RMON-MIB.yaml +159 -158
- data/data/ruby/snmp/mibs/TOKENRING-MIB.yaml +42 -41
- data/data/ruby/snmp/mibs/TOKENRING-STATION-SR-MIB.yaml +8 -7
- data/data/ruby/snmp/mibs/TRANSPORT-ADDRESS-MIB.yaml +13 -12
- data/data/ruby/snmp/mibs/TRIP-MIB.yaml +118 -0
- data/data/ruby/snmp/mibs/TRIP-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/TUNNEL-MIB.yaml +29 -13
- data/data/ruby/snmp/mibs/UDP-MIB.yaml +19 -6
- data/data/ruby/snmp/mibs/UDPLITE-MIB.yaml +26 -0
- data/data/ruby/snmp/mibs/UPS-MIB.yaml +100 -99
- data/data/ruby/snmp/mibs/URI-TC-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/VDSL-LINE-EXT-MCM-MIB.yaml +42 -0
- data/data/ruby/snmp/mibs/VDSL-LINE-EXT-SCM-MIB.yaml +27 -0
- data/data/ruby/snmp/mibs/VDSL-LINE-MIB.yaml +162 -161
- data/data/ruby/snmp/mibs/VPN-TC-STD-MIB.yaml +3 -0
- data/data/ruby/snmp/mibs/VRRP-MIB.yaml +39 -38
- data/data/ruby/snmp/mibs/WWW-MIB.yaml +75 -74
- data/examples/dump.rb +5 -5
- data/examples/iftable.rb +4 -4
- data/examples/link_down.rb +18 -18
- data/examples/log_traps.rb +9 -9
- data/examples/walk.rb +4 -4
- data/lib/snmp/agent.rb +42 -43
- data/lib/snmp/ber.rb +155 -156
- data/lib/snmp/manager.rb +412 -372
- data/lib/snmp/mib.rb +172 -182
- data/lib/snmp/options.rb +64 -0
- data/lib/snmp/pdu.rb +245 -245
- data/lib/snmp/varbind.rb +346 -341
- data/lib/snmp/version.rb +3 -0
- data/test/test_ber.rb +232 -233
- data/test/test_manager.rb +277 -238
- data/test/test_mib.rb +57 -57
- data/test/test_pdu.rb +172 -172
- data/test/test_retry.rb +54 -54
- data/test/test_smi.rb +10 -10
- data/test/test_varbind.rb +342 -331
- data/test/test_walk.rb +150 -150
- metadata +103 -45
- data/README +0 -252
- data/setup.rb +0 -1360
data/lib/snmp/mib.rb
CHANGED
|
@@ -8,160 +8,150 @@
|
|
|
8
8
|
#
|
|
9
9
|
|
|
10
10
|
require 'snmp/varbind'
|
|
11
|
-
require 'rbconfig'
|
|
12
11
|
require 'fileutils'
|
|
13
12
|
require 'yaml'
|
|
14
13
|
|
|
15
14
|
module SNMP
|
|
16
15
|
|
|
17
|
-
class MIB
|
|
16
|
+
class MIB
|
|
18
17
|
|
|
19
18
|
#:stopdoc:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
)
|
|
24
|
-
if (File.exist?(share_path) && File.exist?(data_path))
|
|
25
|
-
warn "Found two MIB directories:\n #{share_path}\n #{data_path}\n" +
|
|
26
|
-
"Using MIB::DEFAULT_MIB_PATH=#{data_path}"
|
|
27
|
-
DEFAULT_MIB_PATH = data_path
|
|
28
|
-
elsif (File.exist?(data_path))
|
|
29
|
-
DEFAULT_MIB_PATH = data_path
|
|
30
|
-
elsif (File.exist?(share_path))
|
|
31
|
-
DEFAULT_MIB_PATH = share_path
|
|
19
|
+
data_path = File.expand_path(File.dirname(__FILE__) + "/../../data/ruby/snmp/mibs")
|
|
20
|
+
DEFAULT_MIB_PATH = if (File.exist?(data_path))
|
|
21
|
+
data_path
|
|
32
22
|
else
|
|
33
|
-
|
|
34
|
-
|
|
23
|
+
warn "Could not find default MIB directory, tried:\n #{data_path}"
|
|
24
|
+
nil
|
|
35
25
|
end
|
|
36
26
|
#:startdoc:
|
|
37
|
-
|
|
27
|
+
|
|
38
28
|
MODULE_EXT = 'yaml'
|
|
39
|
-
|
|
29
|
+
|
|
40
30
|
class ModuleNotLoadedError < RuntimeError; end
|
|
41
|
-
|
|
31
|
+
|
|
42
32
|
class << self
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
end
|
|
87
|
-
module_name
|
|
88
|
-
else
|
|
89
|
-
warn "*** No nodes defined in: #{module_file} ***"
|
|
90
|
-
nil
|
|
91
|
-
end
|
|
92
|
-
else
|
|
93
|
-
warn "*** Import failed for: #{module_file} ***"
|
|
94
|
-
nil
|
|
33
|
+
##
|
|
34
|
+
# Import an SMIv2 MIB file for later loading. A module only needs to
|
|
35
|
+
# be installed once.
|
|
36
|
+
#
|
|
37
|
+
# module_file - the filename of the module to be imported
|
|
38
|
+
# mib_dir - the output directory for the serialized MIB data
|
|
39
|
+
#
|
|
40
|
+
# NOTE: This implementation requires that the 'smidump' tool is available
|
|
41
|
+
# in the PATH. This tool can be obtained from the libsmi website at
|
|
42
|
+
# http://http://www.ibr.cs.tu-bs.de/projects/libsmi/ .
|
|
43
|
+
#
|
|
44
|
+
# ALSO NOTE: The file format in future releases is subject to
|
|
45
|
+
# change. For now, it is a simple YAML hash with the MIB symbol
|
|
46
|
+
# as the key and the OID as the value. These files could be
|
|
47
|
+
# generated manually if 'smidump' is not available.
|
|
48
|
+
#
|
|
49
|
+
# Here is an example of the contents of an output file:
|
|
50
|
+
#
|
|
51
|
+
# ---
|
|
52
|
+
# ipDefaultTTL: 1.3.6.1.2.1.4.2
|
|
53
|
+
# ipForwDatagrams: 1.3.6.1.2.1.4.6
|
|
54
|
+
# ipOutRequests: 1.3.6.1.2.1.4.10
|
|
55
|
+
# ipOutNoRoutes: 1.3.6.1.2.1.4.12
|
|
56
|
+
# ipReasmTimeout: 1.3.6.1.2.1.4.13
|
|
57
|
+
# icmpInDestUnreachs: 1.3.6.1.2.1.5.3
|
|
58
|
+
#
|
|
59
|
+
def import_module(module_file, mib_dir=DEFAULT_MIB_PATH)
|
|
60
|
+
raise "smidump tool must be installed" unless import_supported?
|
|
61
|
+
FileUtils.makedirs mib_dir
|
|
62
|
+
mib_hash = `smidump -k -f python #{module_file}`
|
|
63
|
+
mib = eval_mib_data(mib_hash)
|
|
64
|
+
if mib
|
|
65
|
+
module_name = mib["moduleName"]
|
|
66
|
+
raise "#{module_file}: invalid file format; no module name" unless module_name
|
|
67
|
+
if mib["nodes"]
|
|
68
|
+
oid_hash = {}
|
|
69
|
+
mib["nodes"].each { |key, value| oid_hash[key] = value["oid"] }
|
|
70
|
+
if mib["notifications"]
|
|
71
|
+
mib["notifications"].each { |key, value| oid_hash[key] = value["oid"] }
|
|
72
|
+
end
|
|
73
|
+
File.open(module_file_name(module_name, mib_dir), 'w') do |file|
|
|
74
|
+
YAML.dump(oid_hash, file)
|
|
75
|
+
file.puts
|
|
95
76
|
end
|
|
77
|
+
module_name
|
|
78
|
+
else
|
|
79
|
+
warn "*** No nodes defined in: #{module_file} ***"
|
|
80
|
+
nil
|
|
81
|
+
end
|
|
82
|
+
else
|
|
83
|
+
warn "*** Import failed for: #{module_file} ***"
|
|
84
|
+
nil
|
|
96
85
|
end
|
|
86
|
+
end
|
|
97
87
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
88
|
+
##
|
|
89
|
+
# Returns the full filename of the imported MIB file for the given
|
|
90
|
+
# module name.
|
|
91
|
+
#
|
|
92
|
+
def module_file_name(module_name, mib_dir=DEFAULT_MIB_PATH)
|
|
93
|
+
File.join(mib_dir, module_name + "." + MODULE_EXT)
|
|
94
|
+
end
|
|
105
95
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
96
|
+
##
|
|
97
|
+
# The MIB.import_module method is only supported if the external
|
|
98
|
+
# 'smidump' tool is available. This method returns true if a
|
|
99
|
+
# known version of the tool is available.
|
|
100
|
+
#
|
|
101
|
+
def import_supported?
|
|
102
|
+
`smidump --version` =~ /^smidump 0.4/ && $? == 0
|
|
103
|
+
end
|
|
114
104
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
end
|
|
129
|
-
list
|
|
105
|
+
##
|
|
106
|
+
# Returns a list of MIB modules that have been imported. All of
|
|
107
|
+
# the current IETF MIBs should be available from the default
|
|
108
|
+
# MIB directory.
|
|
109
|
+
#
|
|
110
|
+
# If a regex is provided, then the module names are matched
|
|
111
|
+
# against that pattern.
|
|
112
|
+
#
|
|
113
|
+
def list_imported(regex=//, mib_dir=DEFAULT_MIB_PATH)
|
|
114
|
+
list = []
|
|
115
|
+
Dir["#{mib_dir}/*.#{MODULE_EXT}"].each do |name|
|
|
116
|
+
module_name = File.basename(name, ".*")
|
|
117
|
+
list << module_name if module_name =~ regex
|
|
130
118
|
end
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
119
|
+
list
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
private
|
|
123
|
+
|
|
134
124
|
def eval_mib_data(mib_hash)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
125
|
+
ruby_hash = mib_hash.
|
|
126
|
+
gsub(':', '=>'). # fix hash syntax
|
|
127
|
+
gsub('(', '[').gsub(')', ']'). # fix tuple syntax
|
|
128
|
+
sub('FILENAME =', 'filename ='). # get rid of constants
|
|
129
|
+
sub('MIB =', 'mib =')
|
|
130
|
+
mib = nil
|
|
131
|
+
eval(ruby_hash)
|
|
132
|
+
mib
|
|
143
133
|
end
|
|
144
134
|
end # class methods
|
|
145
|
-
|
|
135
|
+
|
|
146
136
|
def initialize
|
|
147
|
-
|
|
148
|
-
|
|
137
|
+
@by_name = {}
|
|
138
|
+
@by_module_by_name = {}
|
|
149
139
|
end
|
|
150
|
-
|
|
140
|
+
|
|
151
141
|
##
|
|
152
142
|
# Loads a module into this MIB. The module must be imported before it
|
|
153
143
|
# can be loaded. See MIB.import_module .
|
|
154
144
|
#
|
|
155
145
|
def load_module(module_name, mib_dir=DEFAULT_MIB_PATH)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
146
|
+
oid_hash = nil
|
|
147
|
+
File.open(MIB.module_file_name(module_name, mib_dir)) do |file|
|
|
148
|
+
oid_hash = YAML.load(file.read)
|
|
149
|
+
end
|
|
150
|
+
@by_name.merge!(oid_hash) do |key, old, value|
|
|
151
|
+
warn "warning: overwriting old MIB name '#{key}'"
|
|
152
|
+
end
|
|
153
|
+
@by_module_by_name[module_name] = {}
|
|
154
|
+
@by_module_by_name[module_name].merge!(oid_hash)
|
|
165
155
|
end
|
|
166
156
|
|
|
167
157
|
##
|
|
@@ -174,36 +164,36 @@ class MIB
|
|
|
174
164
|
# - list of string object IDs
|
|
175
165
|
# - list of ObjectIds
|
|
176
166
|
# - list of VarBinds
|
|
177
|
-
#
|
|
167
|
+
#
|
|
178
168
|
def varbind_list(object_list, option=:KeepValue)
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
end
|
|
169
|
+
vb_list = VarBindList.new
|
|
170
|
+
if object_list.respond_to? :to_str
|
|
171
|
+
vb_list << oid(object_list).to_varbind
|
|
172
|
+
elsif object_list.respond_to? :to_varbind
|
|
173
|
+
vb_list << apply_option(object_list.to_varbind, option)
|
|
174
|
+
else
|
|
175
|
+
object_list.each do |item|
|
|
176
|
+
if item.respond_to? :to_str
|
|
177
|
+
varbind = oid(item).to_varbind
|
|
178
|
+
else
|
|
179
|
+
varbind = item.to_varbind
|
|
180
|
+
end
|
|
181
|
+
vb_list << apply_option(varbind, option)
|
|
193
182
|
end
|
|
194
|
-
|
|
183
|
+
end
|
|
184
|
+
vb_list
|
|
195
185
|
end
|
|
196
186
|
|
|
197
187
|
def apply_option(varbind, option)
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
188
|
+
if option == :NullValue
|
|
189
|
+
varbind.value = Null
|
|
190
|
+
elsif option != :KeepValue
|
|
191
|
+
raise ArgumentError, "invalid option: #{option.to_s}", caller
|
|
192
|
+
end
|
|
193
|
+
varbind
|
|
204
194
|
end
|
|
205
195
|
private :apply_option
|
|
206
|
-
|
|
196
|
+
|
|
207
197
|
##
|
|
208
198
|
# Returns a VarBind object for the given name and value. The name
|
|
209
199
|
# can be a String, ObjectId, or anything that responds to :to_varbind.
|
|
@@ -212,52 +202,52 @@ class MIB
|
|
|
212
202
|
# ModuleName and Index being optional.
|
|
213
203
|
#
|
|
214
204
|
def varbind(name, value=Null)
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
205
|
+
if name.respond_to? :to_str
|
|
206
|
+
vb = VarBind.new(oid(name), value)
|
|
207
|
+
else
|
|
208
|
+
vb = name.to_varbind
|
|
209
|
+
vb.value = value
|
|
210
|
+
end
|
|
211
|
+
vb
|
|
222
212
|
end
|
|
223
|
-
|
|
213
|
+
|
|
224
214
|
##
|
|
225
215
|
# Returns an ObjectId for the given name. Names are in the format
|
|
226
216
|
# <ModuleName>::<NodeName>.<Index> with ModuleName and Index being
|
|
227
217
|
# optional.
|
|
228
|
-
#
|
|
218
|
+
#
|
|
229
219
|
def oid(name)
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
else
|
|
240
|
-
raise ModuleNotLoadedError, "module '#{module_name}' not loaded"
|
|
241
|
-
end
|
|
220
|
+
module_parts = name.to_str.split("::")
|
|
221
|
+
if module_parts.length == 1
|
|
222
|
+
parse_oid(@by_name, name.to_str)
|
|
223
|
+
elsif module_parts.length == 2
|
|
224
|
+
module_name = module_parts[0]
|
|
225
|
+
oid = module_parts[1]
|
|
226
|
+
module_hash = @by_module_by_name[module_name]
|
|
227
|
+
if module_hash
|
|
228
|
+
parse_oid(module_hash, oid)
|
|
242
229
|
else
|
|
243
|
-
|
|
230
|
+
raise ModuleNotLoadedError, "module '#{module_name}' not loaded"
|
|
244
231
|
end
|
|
232
|
+
else
|
|
233
|
+
raise ArgumentError, "invalid format: #{name.to_str}"
|
|
234
|
+
end
|
|
245
235
|
end
|
|
246
236
|
|
|
247
237
|
def parse_oid(node_hash, name)
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
238
|
+
oid_parts = name.split(".")
|
|
239
|
+
first_part = oid_parts.shift
|
|
240
|
+
oid_string = node_hash[first_part]
|
|
241
|
+
if oid_string
|
|
242
|
+
oid_array = oid_string.split(".")
|
|
243
|
+
else
|
|
244
|
+
oid_array = [first_part]
|
|
245
|
+
end
|
|
246
|
+
oid_array.concat(oid_parts)
|
|
247
|
+
ObjectId.new(oid_array)
|
|
258
248
|
end
|
|
259
249
|
private :parse_oid
|
|
260
|
-
|
|
261
|
-
end
|
|
250
|
+
|
|
251
|
+
end
|
|
262
252
|
|
|
263
253
|
end # module SNMP
|
data/lib/snmp/options.rb
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright (c) 2004 David R. Halliday
|
|
3
|
+
# All rights reserved.
|
|
4
|
+
#
|
|
5
|
+
# This SNMP library is free software. Redistribution is permitted under the
|
|
6
|
+
# same terms and conditions as the standard Ruby distribution. See the
|
|
7
|
+
# COPYING file in the Ruby distribution for details.
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
module SNMP
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
# Helper class for processing options Hash.
|
|
14
|
+
#
|
|
15
|
+
class Options #:nodoc:
|
|
16
|
+
|
|
17
|
+
class << self
|
|
18
|
+
attr_reader :alternates
|
|
19
|
+
|
|
20
|
+
def option(symbol, alternate, defaulter=nil)
|
|
21
|
+
@alternates = {} unless @alternates
|
|
22
|
+
@alternates[symbol] = alternate
|
|
23
|
+
define_method(symbol) do
|
|
24
|
+
alternate_symbol = self.class.alternates[symbol]
|
|
25
|
+
option_value = @config[symbol] || @config[alternate_symbol] ||
|
|
26
|
+
(defaulter.kind_of?(Proc) ? defaulter.call(self) : defaulter)
|
|
27
|
+
@applied_config[symbol] = @applied_config[alternate_symbol] = option_value
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def default_modules
|
|
32
|
+
["SNMPv2-SMI", "SNMPv2-MIB", "IF-MIB", "IP-MIB", "TCP-MIB", "UDP-MIB"]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def choose_transport(klass, config)
|
|
36
|
+
address_family = config.use_IPv6 ? Socket::AF_INET6 : Socket::AF_INET
|
|
37
|
+
klass.new(address_family)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def ipv6_address?(config)
|
|
41
|
+
hostname = config.host.to_s
|
|
42
|
+
hostname.include?("::") || hostname.split(":").size == 8
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
attr_reader :applied_config
|
|
47
|
+
|
|
48
|
+
def initialize(config)
|
|
49
|
+
@config = validate_keys(config)
|
|
50
|
+
@applied_config = {}
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def validate_keys(config)
|
|
54
|
+
valid_symbols = self.class.alternates.keys + self.class.alternates.values
|
|
55
|
+
config.each_key { |k| raise "Invalid option: #{k}" unless valid_symbols.include? k }
|
|
56
|
+
config
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def socket_address_family
|
|
60
|
+
use_IPv6 ? Socket::AF_INET6 : Socket::AF_INET
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|