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