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/pdu.rb
CHANGED
|
@@ -14,257 +14,257 @@ include SNMP::BER
|
|
|
14
14
|
|
|
15
15
|
module SNMP
|
|
16
16
|
|
|
17
|
-
# Exceptions thrown during message/pdu decoding
|
|
18
|
-
class UnsupportedVersion < RuntimeError; end
|
|
19
|
-
class UnsupportedPduTag < RuntimeError; end
|
|
20
|
-
class InvalidPduTag < RuntimeError; end
|
|
21
|
-
class ParseError < RuntimeError; end
|
|
22
|
-
class InvalidErrorStatus < RuntimeError; end
|
|
23
|
-
class InvalidTrapVarbind < RuntimeError; end
|
|
24
|
-
class InvalidGenericTrap < RuntimeError; end
|
|
25
|
-
|
|
26
|
-
SYS_UP_TIME_OID = ObjectId.new("1.3.6.1.2.1.1.3.0")
|
|
27
|
-
SNMP_TRAP_OID_OID = ObjectId.new("1.3.6.1.6.3.1.1.4.1.0")
|
|
28
|
-
|
|
29
|
-
class Message
|
|
17
|
+
# Exceptions thrown during message/pdu decoding
|
|
18
|
+
class UnsupportedVersion < RuntimeError; end
|
|
19
|
+
class UnsupportedPduTag < RuntimeError; end
|
|
20
|
+
class InvalidPduTag < RuntimeError; end
|
|
21
|
+
class ParseError < RuntimeError; end
|
|
22
|
+
class InvalidErrorStatus < RuntimeError; end
|
|
23
|
+
class InvalidTrapVarbind < RuntimeError; end
|
|
24
|
+
class InvalidGenericTrap < RuntimeError; end
|
|
25
|
+
|
|
26
|
+
SYS_UP_TIME_OID = ObjectId.new("1.3.6.1.2.1.1.3.0")
|
|
27
|
+
SNMP_TRAP_OID_OID = ObjectId.new("1.3.6.1.6.3.1.1.4.1.0")
|
|
28
|
+
|
|
29
|
+
class Message
|
|
30
30
|
attr_reader :version
|
|
31
31
|
attr_reader :community
|
|
32
32
|
attr_reader :pdu
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
class << self
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
def decode(data)
|
|
36
|
+
message_data, remainder = decode_sequence(data)
|
|
37
|
+
assert_no_remainder(remainder)
|
|
38
|
+
version, remainder = decode_version(message_data)
|
|
39
|
+
community, remainder = decode_octet_string(remainder)
|
|
40
|
+
pdu, remainder = decode_pdu(version, remainder)
|
|
41
|
+
assert_no_remainder(remainder)
|
|
42
|
+
Message.new(version, community, pdu)
|
|
43
|
+
end
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
end
|
|
54
|
-
return version, remainder
|
|
45
|
+
def decode_version(data)
|
|
46
|
+
version_data, remainder = decode_integer(data)
|
|
47
|
+
if version_data == SNMP_V1
|
|
48
|
+
version = :SNMPv1
|
|
49
|
+
elsif version_data == SNMP_V2C
|
|
50
|
+
version = :SNMPv2c
|
|
51
|
+
else
|
|
52
|
+
raise UnsupportedVersion, version_data.to_s
|
|
55
53
|
end
|
|
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
|
-
|
|
54
|
+
return version, remainder
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def decode_pdu(version, data)
|
|
58
|
+
pdu_tag, pdu_data, remainder = decode_tlv(data)
|
|
59
|
+
case pdu_tag
|
|
60
|
+
when GetRequest_PDU_TAG
|
|
61
|
+
pdu = PDU.decode(GetRequest, pdu_data)
|
|
62
|
+
when GetNextRequest_PDU_TAG
|
|
63
|
+
pdu = PDU.decode(GetNextRequest, pdu_data)
|
|
64
|
+
when Response_PDU_TAG
|
|
65
|
+
pdu = PDU.decode(Response, pdu_data)
|
|
66
|
+
when SetRequest_PDU_TAG
|
|
67
|
+
pdu = PDU.decode(SetRequest, pdu_data)
|
|
68
|
+
when SNMPv1_Trap_PDU_TAG
|
|
69
|
+
raise InvalidPduTag, "SNMPv1-trap not valid for #{version.to_s}" if version != :SNMPv1
|
|
70
|
+
pdu = SNMPv1_Trap.decode(pdu_data)
|
|
71
|
+
when GetBulkRequest_PDU_TAG
|
|
72
|
+
raise InvalidPduTag, "get-bulk not valid for #{version.to_s}" if version != :SNMPv2c
|
|
73
|
+
pdu = PDU.decode(GetBulkRequest, pdu_data)
|
|
74
|
+
when InformRequest_PDU_TAG
|
|
75
|
+
raise InvalidPduTag, "inform not valid for #{version.to_s}" if version != :SNMPv2c
|
|
76
|
+
pdu = PDU.decode(InformRequest, pdu_data)
|
|
77
|
+
when SNMPv2_Trap_PDU_TAG
|
|
78
|
+
raise InvalidPduTag, "SNMPv2c-trap not valid for #{version.to_s}" if version != :SNMPv2c
|
|
79
|
+
pdu = PDU.decode(SNMPv2_Trap, pdu_data)
|
|
80
|
+
else
|
|
81
|
+
raise UnsupportedPduTag, pdu_tag.to_s
|
|
84
82
|
end
|
|
83
|
+
return pdu, remainder
|
|
84
|
+
end
|
|
85
85
|
end
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
def initialize(version, community, pdu)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
@version = version
|
|
89
|
+
@community = community
|
|
90
|
+
@pdu = pdu
|
|
91
91
|
end
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
def response
|
|
94
|
-
|
|
94
|
+
Message.new(@version, @community, Response.from_pdu(@pdu))
|
|
95
95
|
end
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
def encode_version(version)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
if version == :SNMPv1
|
|
99
|
+
encode_integer(SNMP_V1)
|
|
100
|
+
elsif version == :SNMPv2c
|
|
101
|
+
encode_integer(SNMP_V2C)
|
|
102
|
+
else
|
|
103
|
+
raise UnsupportedVersion, version.to_s
|
|
104
|
+
end
|
|
105
105
|
end
|
|
106
|
-
|
|
106
|
+
|
|
107
107
|
def encode
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
data = encode_version(@version)
|
|
109
|
+
data << encode_octet_string(@community)
|
|
110
|
+
data << @pdu.encode
|
|
111
|
+
encode_sequence(data)
|
|
112
112
|
end
|
|
113
|
-
end
|
|
113
|
+
end
|
|
114
114
|
|
|
115
|
-
class PDU
|
|
115
|
+
class PDU
|
|
116
116
|
attr_accessor :request_id
|
|
117
117
|
attr_accessor :error_index
|
|
118
118
|
attr_accessor :varbind_list
|
|
119
|
-
|
|
119
|
+
|
|
120
120
|
alias vb_list varbind_list
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
def self.decode(pdu_class, pdu_data)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
request_id, remainder = decode_integer(pdu_data)
|
|
124
|
+
error_status, remainder = decode_integer(remainder)
|
|
125
|
+
error_index, remainder = decode_integer(remainder)
|
|
126
|
+
varbind_list, remainder = VarBindList.decode(remainder)
|
|
127
|
+
assert_no_remainder(remainder)
|
|
128
|
+
pdu_class.new(request_id, varbind_list, error_status, error_index)
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
ERROR_STATUS_NAME = {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
132
|
+
0 => :noError,
|
|
133
|
+
1 => :tooBig,
|
|
134
|
+
2 => :noSuchName,
|
|
135
|
+
3 => :badValue,
|
|
136
|
+
4 => :readOnly,
|
|
137
|
+
5 => :genErr,
|
|
138
|
+
6 => :noAccess,
|
|
139
|
+
7 => :wrongType,
|
|
140
|
+
8 => :wrongLength,
|
|
141
|
+
9 => :wrongEncoding,
|
|
142
|
+
10 => :wrongValue,
|
|
143
|
+
11 => :noCreation,
|
|
144
|
+
12 => :inconsistentValue,
|
|
145
|
+
13 => :resourceUnavailable,
|
|
146
|
+
14 => :commitFailed,
|
|
147
|
+
15 => :undoFailed,
|
|
148
|
+
16 => :authorizationError,
|
|
149
|
+
17 => :notWritable,
|
|
150
|
+
18 => :inconsistentName
|
|
151
151
|
}
|
|
152
|
-
|
|
152
|
+
|
|
153
153
|
ERROR_STATUS_CODE = ERROR_STATUS_NAME.invert
|
|
154
|
-
|
|
154
|
+
|
|
155
155
|
def initialize(request_id, varbind_list, error_status=0, error_index=0)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
156
|
+
@request_id = request_id
|
|
157
|
+
self.error_status = error_status
|
|
158
|
+
@error_index = error_index.to_int
|
|
159
|
+
@varbind_list = varbind_list
|
|
160
160
|
end
|
|
161
|
-
|
|
161
|
+
|
|
162
162
|
def error_status=(status)
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
end
|
|
163
|
+
@error_status = ERROR_STATUS_CODE[status]
|
|
164
|
+
unless @error_status
|
|
165
|
+
if status.respond_to?(:to_int) && ERROR_STATUS_NAME[status.to_int]
|
|
166
|
+
@error_status = status
|
|
167
|
+
else
|
|
168
|
+
raise InvalidErrorStatus, status.to_s
|
|
170
169
|
end
|
|
170
|
+
end
|
|
171
171
|
end
|
|
172
|
-
|
|
172
|
+
|
|
173
173
|
def error_status
|
|
174
|
-
|
|
174
|
+
ERROR_STATUS_NAME[@error_status]
|
|
175
175
|
end
|
|
176
|
-
|
|
176
|
+
|
|
177
177
|
def encode_pdu(pdu_tag)
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
178
|
+
pdu_data = encode_integer(@request_id)
|
|
179
|
+
pdu_data << encode_integer(@error_status)
|
|
180
|
+
pdu_data << encode_integer(@error_index)
|
|
181
|
+
pdu_data << @varbind_list.encode
|
|
182
|
+
encode_tlv(pdu_tag, pdu_data)
|
|
183
183
|
end
|
|
184
|
-
|
|
184
|
+
|
|
185
185
|
def each_varbind(&block)
|
|
186
|
-
|
|
186
|
+
@varbind_list.each(&block)
|
|
187
187
|
end
|
|
188
|
-
end
|
|
188
|
+
end
|
|
189
189
|
|
|
190
|
-
class GetRequest < PDU
|
|
190
|
+
class GetRequest < PDU
|
|
191
191
|
def encode
|
|
192
|
-
|
|
192
|
+
encode_pdu(GetRequest_PDU_TAG)
|
|
193
193
|
end
|
|
194
|
-
end
|
|
194
|
+
end
|
|
195
195
|
|
|
196
|
-
class GetNextRequest < PDU
|
|
196
|
+
class GetNextRequest < PDU
|
|
197
197
|
def encode
|
|
198
|
-
|
|
198
|
+
encode_pdu(GetNextRequest_PDU_TAG)
|
|
199
199
|
end
|
|
200
|
-
end
|
|
200
|
+
end
|
|
201
201
|
|
|
202
|
-
class SetRequest < PDU
|
|
202
|
+
class SetRequest < PDU
|
|
203
203
|
def encode
|
|
204
|
-
|
|
204
|
+
encode_pdu(SetRequest_PDU_TAG)
|
|
205
205
|
end
|
|
206
|
-
end
|
|
206
|
+
end
|
|
207
207
|
|
|
208
|
-
class GetBulkRequest < PDU
|
|
208
|
+
class GetBulkRequest < PDU
|
|
209
209
|
alias max_repetitions error_index
|
|
210
210
|
alias max_repetitions= error_index=
|
|
211
|
-
|
|
211
|
+
|
|
212
212
|
def encode
|
|
213
|
-
|
|
213
|
+
encode_pdu(GetBulkRequest_PDU_TAG)
|
|
214
214
|
end
|
|
215
|
-
|
|
215
|
+
|
|
216
216
|
def non_repeaters=(number)
|
|
217
|
-
|
|
217
|
+
@error_status = number
|
|
218
218
|
end
|
|
219
|
-
|
|
219
|
+
|
|
220
220
|
def non_repeaters
|
|
221
|
-
|
|
221
|
+
@error_status
|
|
222
222
|
end
|
|
223
|
-
end
|
|
223
|
+
end
|
|
224
224
|
|
|
225
|
-
class Response < PDU
|
|
225
|
+
class Response < PDU
|
|
226
226
|
class << self
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
227
|
+
def from_pdu(request)
|
|
228
|
+
Response.new(request.request_id, request.varbind_list,
|
|
229
|
+
:noError, 0)
|
|
230
|
+
end
|
|
231
231
|
end
|
|
232
|
-
|
|
232
|
+
|
|
233
233
|
def encode
|
|
234
|
-
|
|
234
|
+
encode_pdu(Response_PDU_TAG)
|
|
235
235
|
end
|
|
236
|
-
end
|
|
236
|
+
end
|
|
237
237
|
|
|
238
|
-
##
|
|
239
|
-
# The PDU class for traps in SNMPv2c. Methods are provided for retrieving
|
|
240
|
-
# the values of the mandatory varbinds: the system uptime and the OID of the
|
|
241
|
-
# trap. The complete varbind list is available through the usual varbind_list
|
|
242
|
-
# method. The first two varbinds in this list will always be the uptime
|
|
243
|
-
# and trap OID varbinds.
|
|
244
|
-
#
|
|
245
|
-
class SNMPv2_Trap < PDU
|
|
238
|
+
##
|
|
239
|
+
# The PDU class for traps in SNMPv2c. Methods are provided for retrieving
|
|
240
|
+
# the values of the mandatory varbinds: the system uptime and the OID of the
|
|
241
|
+
# trap. The complete varbind list is available through the usual varbind_list
|
|
242
|
+
# method. The first two varbinds in this list will always be the uptime
|
|
243
|
+
# and trap OID varbinds.
|
|
244
|
+
#
|
|
245
|
+
class SNMPv2_Trap < PDU
|
|
246
246
|
def encode
|
|
247
|
-
|
|
247
|
+
encode_pdu(SNMPv2_Trap_PDU_TAG)
|
|
248
248
|
end
|
|
249
249
|
|
|
250
250
|
##
|
|
251
251
|
# Returns the source IP address for the trap, usually derived from the
|
|
252
252
|
# source IP address of the packet that delivered the trap.
|
|
253
|
-
#
|
|
253
|
+
#
|
|
254
254
|
attr_accessor :source_ip
|
|
255
|
-
|
|
255
|
+
|
|
256
256
|
##
|
|
257
257
|
# Returns the value of the mandatory sysUpTime varbind for this trap.
|
|
258
258
|
#
|
|
259
259
|
# Throws InvalidTrapVarbind if the sysUpTime varbind is not present.
|
|
260
260
|
#
|
|
261
261
|
def sys_up_time
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
262
|
+
varbind = @varbind_list[0]
|
|
263
|
+
if varbind && (varbind.name == SYS_UP_TIME_OID)
|
|
264
|
+
return varbind.value
|
|
265
|
+
else
|
|
266
|
+
raise InvalidTrapVarbind, "Expected sysUpTime.0, found " + varbind.to_s
|
|
267
|
+
end
|
|
268
268
|
end
|
|
269
269
|
|
|
270
270
|
##
|
|
@@ -273,33 +273,33 @@ class SNMPv2_Trap < PDU
|
|
|
273
273
|
# Throws InvalidTrapVarbind if the snmpTrapOID varbind is not present.
|
|
274
274
|
#
|
|
275
275
|
def trap_oid
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
276
|
+
varbind = @varbind_list[1]
|
|
277
|
+
if varbind && (varbind.name == SNMP_TRAP_OID_OID)
|
|
278
|
+
return varbind.value
|
|
279
|
+
else
|
|
280
|
+
raise InvalidTrapVarbind, "Expected snmpTrapOID.0, found " + varbind.to_s
|
|
281
|
+
end
|
|
282
282
|
end
|
|
283
|
-
end
|
|
283
|
+
end
|
|
284
284
|
|
|
285
|
-
##
|
|
286
|
-
# The PDU class for SNMPv2 Inform notifications. This class is identical
|
|
287
|
-
# to SNMPv2_Trap.
|
|
288
|
-
#
|
|
289
|
-
class InformRequest < SNMPv2_Trap
|
|
285
|
+
##
|
|
286
|
+
# The PDU class for SNMPv2 Inform notifications. This class is identical
|
|
287
|
+
# to SNMPv2_Trap.
|
|
288
|
+
#
|
|
289
|
+
class InformRequest < SNMPv2_Trap
|
|
290
290
|
def encode
|
|
291
|
-
|
|
291
|
+
encode_pdu(InformRequest_PDU_TAG)
|
|
292
292
|
end
|
|
293
|
-
end
|
|
293
|
+
end
|
|
294
294
|
|
|
295
|
-
##
|
|
296
|
-
# The PDU class for traps in SNMPv1.
|
|
297
|
-
#
|
|
298
|
-
class SNMPv1_Trap
|
|
295
|
+
##
|
|
296
|
+
# The PDU class for traps in SNMPv1.
|
|
297
|
+
#
|
|
298
|
+
class SNMPv1_Trap
|
|
299
299
|
##
|
|
300
300
|
# Returns the source IP address for the trap, usually derived from the
|
|
301
301
|
# source IP address of the packet that delivered the trap.
|
|
302
|
-
#
|
|
302
|
+
#
|
|
303
303
|
attr_accessor :source_ip
|
|
304
304
|
|
|
305
305
|
attr_accessor :enterprise
|
|
@@ -307,75 +307,75 @@ class SNMPv1_Trap
|
|
|
307
307
|
attr_accessor :specific_trap
|
|
308
308
|
attr_accessor :timestamp
|
|
309
309
|
attr_accessor :varbind_list
|
|
310
|
-
|
|
310
|
+
|
|
311
311
|
alias :vb_list :varbind_list
|
|
312
|
-
|
|
312
|
+
|
|
313
313
|
def self.decode(pdu_data)
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
314
|
+
oid_data, remainder = decode_object_id(pdu_data)
|
|
315
|
+
enterprise = ObjectId.new(oid_data)
|
|
316
|
+
ip_data, remainder = decode_ip_address(remainder)
|
|
317
|
+
agent_addr = IpAddress.new(ip_data)
|
|
318
|
+
generic_trap, remainder = decode_integer(remainder)
|
|
319
|
+
specific_trap, remainder = decode_integer(remainder)
|
|
320
|
+
time_data, remainder = decode_timeticks(remainder)
|
|
321
|
+
timestamp = TimeTicks.new(time_data)
|
|
322
|
+
varbind_list, remainder = VarBindList.decode(remainder)
|
|
323
|
+
assert_no_remainder(remainder)
|
|
324
|
+
SNMPv1_Trap.new(enterprise, agent_addr, generic_trap, specific_trap,
|
|
325
|
+
timestamp, varbind_list)
|
|
326
326
|
end
|
|
327
327
|
|
|
328
328
|
def initialize(enterprise, agent_addr, generic_trap, specific_trap, timestamp, varbind_list)
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
329
|
+
@enterprise = enterprise
|
|
330
|
+
@agent_addr = agent_addr
|
|
331
|
+
self.generic_trap = generic_trap
|
|
332
|
+
@specific_trap = specific_trap
|
|
333
|
+
@timestamp = timestamp
|
|
334
|
+
@varbind_list = varbind_list
|
|
335
335
|
end
|
|
336
|
-
|
|
336
|
+
|
|
337
337
|
# Name map for all of the generic traps defined in RFC 1157.
|
|
338
338
|
GENERIC_TRAP_NAME = {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
339
|
+
0 => :coldStart,
|
|
340
|
+
1 => :warmStart,
|
|
341
|
+
2 => :linkDown,
|
|
342
|
+
3 => :linkUp,
|
|
343
|
+
4 => :authenticationFailure,
|
|
344
|
+
5 => :egpNeighborLoss,
|
|
345
|
+
6 => :enterpriseSpecific
|
|
346
346
|
}
|
|
347
|
-
|
|
347
|
+
|
|
348
348
|
# Code map for all of the generic traps defined in RFC 1157.
|
|
349
349
|
GENERIC_TRAP_CODE = GENERIC_TRAP_NAME.invert
|
|
350
|
-
|
|
350
|
+
|
|
351
351
|
def generic_trap=(trap)
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
end
|
|
352
|
+
@generic_trap = GENERIC_TRAP_CODE[trap]
|
|
353
|
+
unless @generic_trap
|
|
354
|
+
if trap.respond_to?(:to_i) && GENERIC_TRAP_NAME[trap.to_i]
|
|
355
|
+
@generic_trap = trap
|
|
356
|
+
else
|
|
357
|
+
raise InvalidGenericTrap, trap.to_s
|
|
359
358
|
end
|
|
359
|
+
end
|
|
360
360
|
end
|
|
361
|
-
|
|
361
|
+
|
|
362
362
|
def generic_trap
|
|
363
|
-
|
|
363
|
+
GENERIC_TRAP_NAME[@generic_trap]
|
|
364
364
|
end
|
|
365
|
-
|
|
365
|
+
|
|
366
366
|
def encode
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
367
|
+
pdu_data = @enterprise.encode <<
|
|
368
|
+
@agent_addr.encode <<
|
|
369
|
+
encode_integer(@generic_trap) <<
|
|
370
|
+
encode_integer(@specific_trap) <<
|
|
371
|
+
@timestamp.encode <<
|
|
372
|
+
@varbind_list.encode
|
|
373
|
+
encode_tlv(SNMPv1_Trap_PDU_TAG, pdu_data)
|
|
374
374
|
end
|
|
375
|
-
|
|
375
|
+
|
|
376
376
|
def each_varbind(&block)
|
|
377
|
-
|
|
377
|
+
@varbind_list.each(&block)
|
|
378
378
|
end
|
|
379
|
-
end
|
|
379
|
+
end
|
|
380
380
|
|
|
381
381
|
end
|