├── .gitignore ├── Base.py ├── Readme.md ├── mibs ├── BRIDGE-MIB.mib ├── HMIOMODULE-SNMP-MIB.mib ├── IANAifType-MIB.mib ├── IF-MIB.mib ├── IP-MIB.mib ├── Mlxraid.mib ├── P-BRIDGE-MIB.mib ├── Q-BRIDGE-MIB.mib ├── RFC-1212.mib ├── RFC-1215.mib ├── RFC1155-SMI.mib ├── RFC1156-SMI.mib ├── RFC1213-MIB.mib ├── RFC1271-MIB.mib ├── RMON-MIB.mib ├── RMON2-MIB.mib ├── SN-ELSTP40-PRIV-MIB.mib ├── SNMP-FRAMEWORK-MIB.mib ├── SNMPv2-CONF.mib ├── SNMPv2-MIB-v1.mib ├── SNMPv2-MIB.mib ├── SNMPv2-SMI-v1.mib ├── SNMPv2-SMI.mib ├── SNMPv2-TC-v1.mib ├── SNMPv2-TC.mib ├── SOLAgent.mib ├── TOKEN-RING-RMON-MIB.mib ├── automationPS.mib ├── automationSmi.mib ├── automationSystem.mib ├── automationTc.mib ├── automationTime.mib ├── hmARC.mib ├── hmDVMRP.mib ├── hmLLDP.mib ├── hmPIM.mib ├── hmPlatform4.mib ├── hmPlatform4Mcast.mib ├── hmPlatform4Qos.mib ├── hmPlatform4Routing.mib ├── hmRingRed.mib ├── hmdhcps.mib ├── hmpriv.mib ├── hmtracking.mib ├── lldp.mib ├── lldp_dot1.mib ├── lldp_dot3.mib ├── lldp_hm.mib ├── lldp_med.mib ├── lldp_pno.mib ├── siemensSmi.mib ├── snAsi.mib ├── snOSM.mib ├── snScalanceX300X400.mib ├── snScalanceX400.mib ├── sncp1604.mib ├── sncp1616.mib ├── sncp1616ob.mib ├── snscalancew.mib └── usrgrp.mib ├── pylintrc └── snmp_set_fuzz.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | logs 3 | output 4 | -------------------------------------------------------------------------------- /Base.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import os 3 | import time 4 | 5 | 6 | 7 | class BaseTarget(object): 8 | ''' 9 | Basic class to ease logging and description of objects. 10 | ''' 11 | _logger = None 12 | log_file_name = './logs/%s.log' % (time.strftime("%Y%m%d-%H%M%S"),) 13 | 14 | @classmethod 15 | def get_logger(cls): 16 | ''' 17 | :return: the class logger 18 | ''' 19 | if BaseTarget._logger is None: 20 | logger = logging.getLogger('target') 21 | logger.setLevel(logging.INFO) 22 | consolehandler = logging.StreamHandler() 23 | console_format = logging.Formatter('[%(levelname)-8s][%(module)s.%(funcName)s] %(message)s') 24 | consolehandler.setFormatter(console_format) 25 | logger.addHandler(consolehandler) 26 | if not os.path.exists('./logs'): 27 | os.mkdir('./logs') 28 | filehandler = logging.FileHandler(BaseTarget.log_file_name) 29 | file_format = logging.Formatter('[%(asctime)s] [%(levelname)s] [%(module)s.%(funcName)s] -> %(message)s') 30 | filehandler.setFormatter(file_format) 31 | logger.addHandler(filehandler) 32 | BaseTarget._logger = logger 33 | return BaseTarget._logger 34 | 35 | @classmethod 36 | def get_log_file_name(cls): 37 | ''' 38 | :return: log file name 39 | ''' 40 | return BaseTarget.log_file_name 41 | 42 | @classmethod 43 | def set_verbosity(cls, verbosity): 44 | ''' 45 | Set verbosity of logger 46 | 47 | :param verbosity: verbosity level. currently, we only support 1 (logging.DEBUG) 48 | ''' 49 | if verbosity > 0: 50 | # currently, we only toggle between INFO, DEBUG 51 | logger = BaseTarget.get_logger() 52 | levels = [logging.DEBUG] 53 | verbosity = min(verbosity, len(levels)) - 1 54 | logger.setLevel(levels[verbosity]) 55 | 56 | def __init__(self, name, logger=None): 57 | ''' 58 | :param name: name of the object 59 | ''' 60 | self.name = name 61 | if logger: 62 | self.logger = logger 63 | else: 64 | self.logger = BaseTarget.get_logger() 65 | 66 | def not_implemented(self, func_name): 67 | ''' 68 | log access to unimplemented method and raise error 69 | 70 | :param func_name: name of unimplemented function. 71 | :raise: NotImplementedError detailing the function the is not implemented. 72 | ''' 73 | msg = '%s is not overridden by %s' % (func_name, type(self).__name__) 74 | self.logger.error(msg) 75 | raise NotImplementedError(msg) 76 | 77 | def get_description(self): 78 | ''' 79 | :rtype: str 80 | :return: the description of the object. by default only prints the object type. 81 | ''' 82 | return type(self).__name__ 83 | 84 | def get_name(self): 85 | ''' 86 | :rtype: str 87 | :return: object's name 88 | ''' 89 | return self.name 90 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | ### Snmp fuzz tools Example 2 | #### Scan writeable oid from target 3 | ```python 4 | >>> from snmp_set_fuzz import * 5 | >>> target = '192.168.70.50' 6 | >>> port = 80 7 | >>> count = 10 8 | >>> nic = conf.route.route(target)[0] 9 | >>> Target = SnmpTarget(name='test', monitor_port=port, oid='.1.3', version=2, target=target, nic=nic, fuzz_count=count) 10 | >>> Target.oid_scan() 11 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.1.1.0 12 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.1.2.0 13 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.1.3.0 14 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.1.4.0 15 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.2.1.1.4.0 is writeable 16 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.1.5.0 17 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.2.1.1.5.0 is writeable 18 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.1.6.0 19 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.2.1.1.6.0 is writeable 20 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.1.7.0 21 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.1.0 22 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.2.1.1.0 23 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.2.1.2.0 24 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.2.1.3.0 25 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.2.1.4.0 26 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.2.1.5.0 27 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.2.1.6.0 28 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.2.1.2.2.1.7.0 29 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.2.1.2.2.1.7.0 is writeable 30 | .............. 31 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.4.1.95.2.3.1.1.1.1.0 is writeable 32 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.4.1.95.2.3.1.1.1.2.0 33 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.4.1.95.2.3.1.1.1.3.0 34 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.4.1.95.2.3.1.1.1.3.0 is writeable 35 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.4.1.95.2.3.1.1.1.4.0 36 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.4.1.95.2.3.1.1.1.4.0 is writeable 37 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.4.1.95.2.4.1.0 38 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.4.1.95.2.4.1.0 is writeable 39 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.4.1.95.2.4.2.0 40 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.4.1.95.2.4.2.0 is writeable 41 | [INFO ][snmp_set_fuzz.oid_scan] Found oid :1.3.6.1.4.1.95.2.4.3.0 42 | [INFO ][snmp_set_fuzz.oid_scan] 1.3.6.1.4.1.95.2.4.3.0 is writeable 43 | [INFO ][snmp_set_fuzz.oid_scan] End of MIB 44 | >>> Target.save_scan_result() 45 | >>> # This cmd will save all result to ./output folder. 46 | ``` 47 | 48 | #### Read test case from pcap file 49 | ```python 50 | >>> from snmp_set_fuzz import * 51 | >>> target = '192.168.70.50' 52 | >>> port = 80 53 | >>> count = 10 54 | >>> nic = conf.route.route(target)[0] 55 | >>> Target = SnmpTarget(name='test', monitor_port=port, oid='.1.3', version=2, target=target, nic=nic, fuzz_count=count) 56 | >>> print(Target.set_packets) 57 | >>> [] 58 | >>> # This time we didn't scan Target 59 | >>> # This cmd will read all packet from pcap file and save to Target.set_packets 60 | >>> Target.read_test_case_from_pcap('./output/192.168.70.50_snmp_set_packet_list.pcap') 61 | >>> print(Target.set_packets) 62 | <192.168.70.50_snmp_set_packet_list.pcap: TCP:0 UDP:37 ICMP:0 Other:0> 63 | ``` 64 | 65 | #### Start fuzz target 66 | 67 | ```python 68 | >>> from snmp_set_fuzz import * 69 | >>> target = '192.168.70.50' 70 | >>> port = 80 71 | >>> count = 10 72 | >>> nic = conf.route.route(target)[0] 73 | >>> Target = SnmpTarget(name='test', monitor_port=port, oid='.1.3', version=2, target=target, nic=nic, fuzz_count=count) 74 | >>> Target.read_test_case_from_pcap('./output/192.168.70.50_snmp_set_packet_list.pcap') 75 | >>> Target.fuzz() 76 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.0 0/10 77 | [WARNING ][snmp_set_fuzz.fuzz] Target not response with snmp set packet in packet NO.0,TestCase No.0 78 | [INFO ][snmp_set_fuzz.fuzz] Target is still alive! 79 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.0 1/10 80 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.0 2/10 81 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.0 3/10 82 | [WARNING ][snmp_set_fuzz.fuzz] Set failed with error code: wrongLength (8) in packet NO.3,TestCase No.0 83 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.0 4/10 84 | [WARNING ][snmp_set_fuzz.fuzz] Set failed with error code: wrongLength (8) in packet NO.4,TestCase No.0 85 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.0 5/10 86 | [WARNING ][snmp_set_fuzz.fuzz] Set failed with error code: wrongLength (8) in packet NO.5,TestCase No.0 87 | ........ 88 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 4/10 89 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 5/10 90 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 6/10 91 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 7/10 92 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 8/10 93 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 9/10 94 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.5 0/10 95 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.5 1/10 96 | [WARNING ][snmp_set_fuzz.fuzz] Target not response with snmp get packet in packet NO.1,TestCase No.5 97 | [ERROR ][snmp_set_fuzz.fuzz] Can't Connect to Target at TCP Port: 80 98 | >>> # Target crash 99 | >>> # This cmd will save crash packet and all sent packet to ./output folder 100 | >>> Target.save_fuzz_result() 101 | ``` 102 | 103 | #### Fuzz specific test case 104 | ``` 105 | >>> from snmp_set_fuzz import * 106 | >>> target = '192.168.70.50' 107 | >>> port = 80 108 | >>> count = 10 109 | >>> nic = conf.route.route(target)[0] 110 | >>> Target = SnmpTarget(name='test', monitor_port=port, oid='.1.3', version=2, target=target, nic=nic, fuzz_count=count) 111 | >>> Target.read_test_case_from_pcap('./output/192.168.70.50_snmp_set_packet_list.pcap') 112 | >>> # Set_test_case_range can set specific test case to fuzz 113 | >>> # If you want only fuzz No.8 test case, you can use this Target.set_test_case_range('8') 114 | >>> # If you want fuzz test case up to No.8, you can use this Target.set_test_case_range('-8') 115 | >>> # If you want fuzz test case from No.8, you can use this Target.set_test_case_range('8-') 116 | >>> # If you want fuzz test case from No.8 to No.10, you can use this Target.set_test_case_range('8-10') 117 | >>> # It's also support combine option, Target.set_test_case_range('-8,10,12,14-15,18-') 118 | >>> Target.set_test_case_range('4-5') 119 | >>> Target.fuzz() 120 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 0/10 121 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 1/10 122 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 2/10 123 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 3/10 124 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 4/10 125 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 5/10 126 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 6/10 127 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 7/10 128 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 8/10 129 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.4 9/10 130 | [INFO ][snmp_set_fuzz.fuzz] Running test case No.5 0/10 131 | [WARNING ][snmp_set_fuzz.fuzz] Target not response with snmp get packet in packet NO.0,TestCase No.5 132 | [ERROR ][snmp_set_fuzz.fuzz] Can't Connect to Target at TCP Port: 80 133 | >>> Target.save_fuzz_result() 134 | ``` 135 | -------------------------------------------------------------------------------- /mibs/HMIOMODULE-SNMP-MIB.mib: -------------------------------------------------------------------------------- 1 | HMIOMODULE-SNMP-MIB DEFINITIONS ::= BEGIN 2 | 3 | IMPORTS 4 | MODULE-IDENTITY, OBJECT-IDENTITY, 5 | OBJECT-TYPE, NOTIFICATION-TYPE, 6 | Integer32, IpAddress FROM SNMPv2-SMI 7 | TEXTUAL-CONVENTION, 8 | DisplayString FROM SNMPv2-TC 9 | hmChassis, hmChassisEvent FROM HMPRIV-MGMT-SNMP-MIB; 10 | 11 | HmEnabledStatus ::= TEXTUAL-CONVENTION 12 | STATUS current 13 | DESCRIPTION "Status of a feature" 14 | SYNTAX INTEGER { 15 | enable(1), -- feature is enabled 16 | disable(2) -- feature is disabled 17 | } 18 | 19 | -- ************************************************************************* 20 | -- Group IO Module 21 | -- ************************************************************************* 22 | hmIOModuleGroup MODULE-IDENTITY 23 | LAST-UPDATED "201011081500Z" -- 08 Nov 2010 15:00:00 GMT 24 | ORGANIZATION "Hirschmann Automation and Control GmbH" 25 | CONTACT-INFO 26 | "Customer Support 27 | Postal: 28 | Hirschmann Automation and Control GmbH 29 | Stuttgarter Str. 45-51 30 | 72654 Neckartenzlingen 31 | Germany 32 | Tel: +49 7127 14 1981 33 | Web: http://www.hicomcenter.com/ 34 | E-Mail: hicomcenter@hirschmann.com" 35 | DESCRIPTION 36 | "The Hirschmann Private IO Module definitions for Platform devices." 37 | -- Revision history. 38 | REVISION 39 | "201011081500Z" -- 08 Nov 2010 15:00:00 GMT 40 | DESCRIPTION 41 | "first release" 42 | ::= { hmChassis 13 } 43 | 44 | -- ************************************************************************* 45 | -- Group Config 46 | -- ************************************************************************* 47 | hmIOModuleConfigGroup OBJECT IDENTIFIER 48 | ::= { hmIOModuleGroup 1 } 49 | 50 | -- ************************************************************************* 51 | -- Goup Common Config 52 | -- ************************************************************************* 53 | hmIOModConfigCommon OBJECT IDENTIFIER 54 | ::= { hmIOModuleConfigGroup 1 } 55 | 56 | hmIOModConfigDigInputAdminState OBJECT-TYPE 57 | SYNTAX HmEnabledStatus 58 | MAX-ACCESS read-write 59 | STATUS current 60 | DESCRIPTION 61 | "enables sending SNMP traps or log events on input change. 62 | (if disable(2) input task will do nothing)." 63 | DEFVAL { disable } 64 | ::= { hmIOModConfigCommon 1 } 65 | 66 | hmIOModConfigDigOutputAdminState OBJECT-TYPE 67 | SYNTAX HmEnabledStatus 68 | MAX-ACCESS read-write 69 | STATUS current 70 | DESCRIPTION 71 | "enables polling of output values (if disable(2) output task will do nothing)." 72 | DEFVAL { disable } 73 | ::= { hmIOModConfigCommon 2 } 74 | 75 | hmIOModConfigDigInputRefreshInterval OBJECT-TYPE 76 | SYNTAX Integer32 (500..10000) 77 | MAX-ACCESS read-write 78 | STATUS current 79 | DESCRIPTION 80 | "The refresh interval (in ms) of the input values. 81 | Minimum 500ms, Maximum 10000ms (10s)." 82 | DEFVAL { 1000 } 83 | ::= { hmIOModConfigCommon 3 } 84 | 85 | hmIOModConfigDigOutputRefreshInterval OBJECT-TYPE 86 | SYNTAX Integer32 (500..10000) 87 | MAX-ACCESS read-write 88 | STATUS current 89 | DESCRIPTION 90 | "The refresh interval (in ms) of the output values. 91 | Minimum 500ms, Maximum 10000ms (10s)." 92 | DEFVAL { 1000 } 93 | ::= { hmIOModConfigCommon 4 } 94 | 95 | hmIOModConfigDigOutputRetryCount OBJECT-TYPE 96 | SYNTAX Integer32 (1..10) 97 | MAX-ACCESS read-write 98 | STATUS current 99 | DESCRIPTION 100 | "The retry count for the output values. 101 | when after the number of configured retries no SNMP get request 102 | was answered, the output value (hmIOModOutputValue) will be 103 | set to invalid (3). Minimum 1, Maximum 10." 104 | DEFVAL { 3 } 105 | ::= { hmIOModConfigCommon 5 } 106 | 107 | -- ************************************************************************* 108 | -- Table Digital Input Config 109 | -- ************************************************************************* 110 | hmIOModConfigDigInputTable OBJECT-TYPE 111 | SYNTAX SEQUENCE OF HmIOModConfigDigInputEntry 112 | MAX-ACCESS not-accessible 113 | STATUS current 114 | DESCRIPTION 115 | "IO module config table for inputs" 116 | ::= { hmIOModuleConfigGroup 2 } 117 | 118 | hmIOModConfigDigInputEntry OBJECT-TYPE 119 | SYNTAX HmIOModConfigDigInputEntry 120 | MAX-ACCESS not-accessible 121 | STATUS current 122 | DESCRIPTION 123 | "IO module config entry for inputs" 124 | INDEX { 125 | hmIOModConfigDigInputModID, 126 | hmIOModConfigDigInputID} 127 | ::= { hmIOModConfigDigInputTable 1 } 128 | 129 | HmIOModConfigDigInputEntry ::= SEQUENCE { 130 | hmIOModConfigDigInputModID Integer32, 131 | hmIOModConfigDigInputID Integer32, 132 | hmIOModConfigDigInputLogEvent HmEnabledStatus, 133 | hmIOModConfigDigInputSnmpTrap HmEnabledStatus 134 | } 135 | 136 | hmIOModConfigDigInputModID OBJECT-TYPE 137 | SYNTAX Integer32 (1..7) 138 | MAX-ACCESS not-accessible 139 | STATUS current 140 | DESCRIPTION 141 | "The module ID of an input." 142 | ::= { hmIOModConfigDigInputEntry 1 } 143 | 144 | hmIOModConfigDigInputID OBJECT-TYPE 145 | SYNTAX Integer32 (1..4) 146 | MAX-ACCESS not-accessible 147 | STATUS current 148 | DESCRIPTION 149 | "The ID of an input." 150 | ::= { hmIOModConfigDigInputEntry 2 } 151 | 152 | hmIOModConfigDigInputLogEvent OBJECT-TYPE 153 | SYNTAX HmEnabledStatus 154 | MAX-ACCESS read-write 155 | STATUS current 156 | DESCRIPTION 157 | "Trigger an event log when input status changes. 158 | If the value is disable (2), no event log entry will be written. 159 | If the value is enable (1), an event log entry will be written when 160 | the input state changes. 161 | The input state will be checked acording to the refresh interval 162 | entered in hmIOModConfigDigInputRefreshInterval." 163 | DEFVAL { disable } 164 | ::= { hmIOModConfigDigInputEntry 3 } 165 | 166 | hmIOModConfigDigInputSnmpTrap OBJECT-TYPE 167 | SYNTAX HmEnabledStatus 168 | MAX-ACCESS read-write 169 | STATUS current 170 | DESCRIPTION 171 | "Trigger an SNMP trap log when input status changes. 172 | If the value is disable (2), no SNMP trap will be sent. 173 | If the value is enable (1), a SNMP trap will be sent when 174 | the input state changes. 175 | The SNMP trap will be sent to all receivers configured 176 | in hmAgentSnmpTrapReceiverConfigTable. 177 | The input state will be checked acording to the refresh interval entered 178 | in hmIOModConfigDigInputRefreshInterval." 179 | DEFVAL { disable } 180 | ::= { hmIOModConfigDigInputEntry 4 } 181 | 182 | -- ************************************************************************* 183 | -- Table Digital Output Config 184 | -- ************************************************************************* 185 | hmIOModConfigDigOutputTable OBJECT-TYPE 186 | SYNTAX SEQUENCE OF HmIOModConfigDigOutputEntry 187 | MAX-ACCESS not-accessible 188 | STATUS current 189 | DESCRIPTION 190 | "IO module config table for outputs" 191 | ::= { hmIOModuleConfigGroup 3 } 192 | 193 | hmIOModConfigDigOutputEntry OBJECT-TYPE 194 | SYNTAX HmIOModConfigDigOutputEntry 195 | MAX-ACCESS not-accessible 196 | STATUS current 197 | DESCRIPTION 198 | "IO module config entry for outputs" 199 | INDEX { 200 | hmIOModConfigDigOutputModID, 201 | hmIOModConfigDigOutputID } 202 | ::= { hmIOModConfigDigOutputTable 1 } 203 | 204 | HmIOModConfigDigOutputEntry ::= SEQUENCE { 205 | hmIOModConfigDigOutputModID Integer32, 206 | hmIOModConfigDigOutputID Integer32, 207 | hmIOModConfigDigOutputLogEvent HmEnabledStatus, 208 | hmIOModConfigDigOutputSnmpTrap HmEnabledStatus, 209 | hmIOModConfigDigOutputSourceIP IpAddress, 210 | hmIOModConfigDigOutputSourceModID Integer32, 211 | hmIOModConfigDigOutputSourceID Integer32} 212 | 213 | hmIOModConfigDigOutputModID OBJECT-TYPE 214 | SYNTAX Integer32 (1..7) 215 | MAX-ACCESS not-accessible 216 | STATUS current 217 | DESCRIPTION 218 | "The module ID of an output." 219 | ::= { hmIOModConfigDigOutputEntry 1 } 220 | 221 | hmIOModConfigDigOutputID OBJECT-TYPE 222 | SYNTAX Integer32 (1..4) 223 | MAX-ACCESS not-accessible 224 | STATUS current 225 | DESCRIPTION 226 | "The ID of an output." 227 | ::= { hmIOModConfigDigOutputEntry 2 } 228 | 229 | hmIOModConfigDigOutputLogEvent OBJECT-TYPE 230 | SYNTAX HmEnabledStatus 231 | MAX-ACCESS read-write 232 | STATUS current 233 | DESCRIPTION 234 | "Trigger an event log when output status changes. 235 | If the value is disable (2), no event log entry will be written. 236 | If the value is enable (1), an event log entry will be written when 237 | the output state changes. 238 | The output state will be checked acording to the refresh interval 239 | entered in hmIOModConfigDigOutputRefreshInterval." 240 | DEFVAL { disable } 241 | ::= { hmIOModConfigDigOutputEntry 3 } 242 | 243 | hmIOModConfigDigOutputSnmpTrap OBJECT-TYPE 244 | SYNTAX HmEnabledStatus 245 | MAX-ACCESS read-write 246 | STATUS current 247 | DESCRIPTION 248 | "Trigger an SNMP trap log when output status changes. 249 | If the value is disable (2), no SNMP trap will be sent. 250 | If the value is enable (1), a SNMP trap will be sent when 251 | the output state changes. 252 | The SNMP trap will be sent to all receivers configured 253 | in hmAgentSnmpTrapReceiverConfigTable. 254 | The output state will be checked acording to the refresh interval 255 | entered in hmIOModConfigDigOutputRefreshInterval." 256 | DEFVAL { disable } 257 | ::= { hmIOModConfigDigOutputEntry 4 } 258 | 259 | hmIOModConfigDigOutputSourceIP OBJECT-TYPE 260 | SYNTAX IpAddress 261 | MAX-ACCESS read-write 262 | STATUS current 263 | DESCRIPTION 264 | "The IP address of an input mirrored to the output. 265 | Use 0.0.0.0 if the output should not be set. 266 | In this case hmIOModOutputValue is invalid (3). 267 | Use 127.0.0.1 if an local input should be used." 268 | DEFVAL { "0.0.0.0" } 269 | ::= { hmIOModConfigDigOutputEntry 5 } 270 | 271 | hmIOModConfigDigOutputSourceModID OBJECT-TYPE 272 | SYNTAX Integer32 (1..7) 273 | MAX-ACCESS read-write 274 | STATUS current 275 | DESCRIPTION 276 | "The module ID of an input mirrored to the output. 277 | Ignored when hmIOModConfigDigOutputSourceIP is 0.0.0.0." 278 | DEFVAL { 1 } 279 | ::= { hmIOModConfigDigOutputEntry 6 } 280 | 281 | hmIOModConfigDigOutputSourceID OBJECT-TYPE 282 | SYNTAX Integer32 (1..4) 283 | MAX-ACCESS read-write 284 | STATUS current 285 | DESCRIPTION 286 | "The ID of an input mirrored to the output. 287 | Ignored when hmIOModConfigDigOutputSourceIP is 0.0.0.0." 288 | DEFVAL { 1 } 289 | ::= { hmIOModConfigDigOutputEntry 7 } 290 | 291 | -- ************************************************************************* 292 | -- Group Value 293 | -- ************************************************************************* 294 | hmIOModuleValueGroup OBJECT IDENTIFIER 295 | ::= { hmIOModuleGroup 2 } 296 | 297 | -- ************************************************************************* 298 | -- Table Digital Input Value 299 | -- ************************************************************************* 300 | hmIOModValueDigInputTable OBJECT-TYPE 301 | SYNTAX SEQUENCE OF HmIOModValueDigInputEntry 302 | MAX-ACCESS not-accessible 303 | STATUS current 304 | DESCRIPTION 305 | "IO module value table for inputs" 306 | ::= { hmIOModuleValueGroup 1 } 307 | 308 | hmIOModValueDigInputEntry OBJECT-TYPE 309 | SYNTAX HmIOModValueDigInputEntry 310 | MAX-ACCESS not-accessible 311 | STATUS current 312 | DESCRIPTION 313 | "IO module value entry for inputs" 314 | INDEX { 315 | hmIOModValueDigInputModID, 316 | hmIOModValueDigInputID} 317 | ::= { hmIOModValueDigInputTable 1 } 318 | 319 | HmIOModValueDigInputEntry ::= SEQUENCE { 320 | hmIOModValueDigInputModID Integer32, 321 | hmIOModValueDigInputID Integer32, 322 | hmIOModValueDigInputValue INTEGER} 323 | 324 | hmIOModValueDigInputModID OBJECT-TYPE 325 | SYNTAX Integer32 (1..7) 326 | MAX-ACCESS not-accessible 327 | STATUS current 328 | DESCRIPTION 329 | "The module ID of an input." 330 | ::= { hmIOModValueDigInputEntry 1 } 331 | 332 | hmIOModValueDigInputID OBJECT-TYPE 333 | SYNTAX Integer32 (1..4) 334 | MAX-ACCESS not-accessible 335 | STATUS current 336 | DESCRIPTION 337 | "The ID of an input." 338 | ::= { hmIOModValueDigInputEntry 2 } 339 | 340 | hmIOModValueDigInputValue OBJECT-TYPE 341 | SYNTAX INTEGER { 342 | not-available (0), 343 | high (1), 344 | low (2)} 345 | MAX-ACCESS read-only 346 | STATUS current 347 | DESCRIPTION 348 | "Status of the input. 349 | If the value is not-available(0), then the IO module is not plugged in, 350 | if the value is high(1), the input has high (+24V) value, 351 | if the value is low(2), the input has low (0V) value." 352 | ::= { hmIOModValueDigInputEntry 3 } 353 | 354 | 355 | -- ************************************************************************* 356 | -- Table Digital Output Value 357 | -- ************************************************************************* 358 | hmIOModValueDigOutputTable OBJECT-TYPE 359 | SYNTAX SEQUENCE OF HmIOModValueDigOutputEntry 360 | MAX-ACCESS not-accessible 361 | STATUS current 362 | DESCRIPTION 363 | "IO module value table for outputs" 364 | ::= { hmIOModuleValueGroup 2 } 365 | 366 | hmIOModValueDigOutputEntry OBJECT-TYPE 367 | SYNTAX HmIOModValueDigOutputEntry 368 | MAX-ACCESS not-accessible 369 | STATUS current 370 | DESCRIPTION 371 | "IO module value entry for outputs" 372 | INDEX { 373 | hmIOModValueDigOutputModID, 374 | hmIOModValueDigOutputID } 375 | ::= { hmIOModValueDigOutputTable 1 } 376 | 377 | HmIOModValueDigOutputEntry ::= SEQUENCE { 378 | hmIOModValueDigOutputModID Integer32, 379 | hmIOModValueDigOutputID Integer32, 380 | hmIOModValueDigOutputValue INTEGER} 381 | 382 | hmIOModValueDigOutputModID OBJECT-TYPE 383 | SYNTAX Integer32 (1..7) 384 | MAX-ACCESS not-accessible 385 | STATUS current 386 | DESCRIPTION 387 | "The module ID of an Output." 388 | ::= { hmIOModValueDigOutputEntry 1 } 389 | 390 | hmIOModValueDigOutputID OBJECT-TYPE 391 | SYNTAX Integer32 (1..4) 392 | MAX-ACCESS not-accessible 393 | STATUS current 394 | DESCRIPTION 395 | "The ID of an Output." 396 | ::= { hmIOModValueDigOutputEntry 2 } 397 | 398 | hmIOModValueDigOutputValue OBJECT-TYPE 399 | SYNTAX INTEGER { 400 | not-available (0), 401 | high (1), 402 | low (2), 403 | invalid (3), 404 | not-configured (4)} 405 | MAX-ACCESS read-only 406 | STATUS current 407 | DESCRIPTION "Status of the output. 408 | If the value is not-available(0), then the IO module is not plugged in, 409 | if the value is high(1), the output has high (+24V) value, 410 | if the value is low(2), the output has low (0V) value. 411 | If the value is invalid (3), the output has low (0V) value and 412 | the IO input source is configured but can not be read. 413 | If the value is not-configured (4), the output has low (0V) value and 414 | has no IO input source configured." 415 | ::= { hmIOModValueDigOutputEntry 3 } 416 | 417 | -- ************************************************************************* 418 | -- TRAP's 419 | -- ************************************************************************* 420 | hmIOModDigInputChangeTrap NOTIFICATION-TYPE 421 | OBJECTS { 422 | hmIOModValueDigInputValue} 423 | STATUS current 424 | DESCRIPTION 425 | "This trap is sent if the state of an input changes. 426 | This trap is sent only when hmIOModConfigDigInputSnmpTrap is set 427 | to enabled (1)." 428 | ::= { hmChassisEvent 16 } 429 | 430 | hmIOModDigOutputChangeTrap NOTIFICATION-TYPE 431 | OBJECTS { 432 | hmIOModValueDigOutputValue} 433 | STATUS current 434 | DESCRIPTION 435 | "This trap is sent if the state of an input changes. 436 | This trap is sent when hmIOModConfigDigOutputSnmpTrap is set 437 | to enabled (1) or when the output value changes from or to invalid (3)" 438 | ::= { hmChassisEvent 17 } 439 | 440 | END 441 | -------------------------------------------------------------------------------- /mibs/RFC-1212.mib: -------------------------------------------------------------------------------- 1 | RFC-1212 DEFINITIONS ::= BEGIN 2 | 3 | OBJECT-TYPE MACRO ::= 4 | BEGIN 5 | TYPE NOTATION ::= 6 | -- must conform to 7 | -- RFC1155's ObjectSyntax 8 | "SYNTAX" type(ObjectSyntax) 9 | "ACCESS" Access 10 | "STATUS" Status 11 | DescrPart 12 | ReferPart 13 | IndexPart 14 | DefValPart 15 | VALUE NOTATION ::= value (VALUE ObjectName) 16 | 17 | Access ::= "read-only" 18 | | "read-write" 19 | | "write-only" 20 | | "not-accessible" 21 | Status ::= "mandatory" 22 | | "optional" 23 | | "obsolete" 24 | | "deprecated" 25 | 26 | DescrPart ::= 27 | "DESCRIPTION" value (description DisplayString) 28 | | empty 29 | 30 | ReferPart ::= 31 | "REFERENCE" value (reference DisplayString) 32 | | empty 33 | 34 | IndexPart ::= 35 | "INDEX" "{" IndexTypes "}" 36 | | empty 37 | IndexTypes ::= 38 | IndexType | IndexTypes "," IndexType 39 | IndexType ::= 40 | -- if indexobject, use the SYNTAX 41 | -- value of the correspondent 42 | -- OBJECT-TYPE invocation 43 | value (indexobject ObjectName) 44 | -- otherwise use named SMI type 45 | -- must conform to IndexSyntax below 46 | | type (indextype) 47 | 48 | DefValPart ::= 49 | "DEFVAL" "{" value (defvalue ObjectSyntax) "}" 50 | | empty 51 | 52 | END 53 | 54 | IndexSyntax ::= 55 | CHOICE { 56 | number 57 | INTEGER (0..MAX), 58 | string 59 | OCTET STRING, 60 | object 61 | OBJECT IDENTIFIER, 62 | address 63 | NetworkAddress, 64 | ipAddress 65 | IpAddress 66 | } 67 | 68 | END 69 | 70 | 71 | -------------------------------------------------------------------------------- /mibs/RFC-1215.mib: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- SIEMENS AG MIB for MIB Compiler OPC SNMP Server SIMATIC NET 3 | -- RFC-1215.mib 4 | -- RFC 1215 5 | -- Version: 1.0 6 | -- Date: 09.04.2002 7 | -- Comment: 8 | ---------------------------------------------------------------------------------------------------- 9 | RFC-1215 DEFINITIONS ::= BEGIN 10 | 11 | 12 | -- Make builtin items known 13 | 14 | --SMI TRAP-TYPE 15 | 16 | TRAP-TYPE MACRO ::= 17 | BEGIN 18 | TYPE NOTATION ::= "ENTERPRISE" value 19 | (enterprise OBJECT IDENTIFIER) 20 | VarPart 21 | DescrPart 22 | ReferPart 23 | VALUE NOTATION ::= value (VALUE INTEGER) 24 | 25 | VarPart ::= 26 | "VARIABLES" "{" VarTypes "}" 27 | | empty 28 | VarTypes ::= 29 | VarType | VarTypes "," VarType 30 | VarType ::= 31 | value (vartype ObjectName) 32 | 33 | DescrPart ::= 34 | "DESCRIPTION" value (description DisplayString) 35 | | empty 36 | 37 | ReferPart ::= 38 | "REFERENCE" value (reference DisplayString) 39 | | empty 40 | 41 | END 42 | 43 | END 44 | -------------------------------------------------------------------------------- /mibs/RFC1155-SMI.mib: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- SIEMENS AG MIB for MIB Compiler OPC SNMP Server SIMATIC NET 3 | -- RFC1155-SMI.mib 4 | -- RFC 1155 5 | -- Version: 1.0 6 | -- Date: 09.04.2002 7 | -- Comment: 8 | ---------------------------------------------------------------------------------------------------- 9 | 10 | RFC1155-SMI DEFINITIONS ::= BEGIN 11 | EXPORTS -- EVERYTHING 12 | internet, directory, mgmt, 13 | experimental, private, enterprises, 14 | OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax, 15 | ApplicationSyntax, NetworkAddress, IpAddress, 16 | Counter, Gauge, TimeTicks, Opaque; 17 | 18 | -- the path to the root 19 | 20 | internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } 21 | 22 | directory OBJECT IDENTIFIER ::= { internet 1 } 23 | 24 | mgmt OBJECT IDENTIFIER ::= { internet 2 } 25 | 26 | experimental OBJECT IDENTIFIER ::= { internet 3 } 27 | 28 | private OBJECT IDENTIFIER ::= { internet 4 } 29 | enterprises OBJECT IDENTIFIER ::= { private 1 } 30 | 31 | 32 | -- definition of object types 33 | 34 | OBJECT-TYPE MACRO ::= 35 | BEGIN 36 | TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax) 37 | "ACCESS" Access 38 | "STATUS" Status 39 | VALUE NOTATION ::= value (VALUE ObjectName) 40 | 41 | Access ::= "read-only" 42 | | "read-write" 43 | | "write-only" 44 | | "not-accessible" 45 | Status ::= "mandatory" 46 | | "optional" 47 | | "obsolete" 48 | END 49 | 50 | -- names of objects in the MIB 51 | 52 | ObjectName ::= 53 | OBJECT IDENTIFIER 54 | -- syntax of objects in the MIB 55 | 56 | ObjectSyntax ::= 57 | CHOICE { 58 | simple 59 | SimpleSyntax, 60 | 61 | -- note that simple SEQUENCEs are not directly 62 | -- mentioned here to keep things simple (i.e., 63 | -- prevent mis-use). However, application-wide 64 | -- types which are IMPLICITly encoded simple 65 | -- SEQUENCEs may appear in the following CHOICE 66 | 67 | application-wide 68 | ApplicationSyntax 69 | } 70 | 71 | SimpleSyntax ::= 72 | CHOICE { 73 | number 74 | INTEGER, 75 | 76 | string 77 | OCTET STRING, 78 | 79 | object 80 | OBJECT IDENTIFIER, 81 | 82 | empty 83 | NULL 84 | } 85 | 86 | ApplicationSyntax ::= 87 | CHOICE { 88 | address 89 | NetworkAddress, 90 | 91 | counter 92 | Counter, 93 | 94 | gauge 95 | Gauge, 96 | 97 | ticks 98 | TimeTicks, 99 | 100 | arbitrary 101 | Opaque 102 | 103 | 104 | 105 | -- other application-wide types, as they are 106 | -- defined, will be added here 107 | } 108 | 109 | 110 | -- application-wide types 111 | 112 | NetworkAddress ::= 113 | CHOICE { 114 | internet 115 | IpAddress 116 | } 117 | 118 | IpAddress ::= 119 | [APPLICATION 0] -- in network-byte order 120 | IMPLICIT OCTET STRING (SIZE (4)) 121 | 122 | Counter ::= 123 | [APPLICATION 1] 124 | IMPLICIT INTEGER (0..4294967295) 125 | 126 | Gauge ::= 127 | [APPLICATION 2] 128 | IMPLICIT INTEGER (0..4294967295) 129 | 130 | TimeTicks ::= 131 | [APPLICATION 3] 132 | IMPLICIT INTEGER (0..4294967295) 133 | 134 | Opaque ::= 135 | [APPLICATION 4] -- arbitrary ASN.1 value, 136 | IMPLICIT OCTET STRING -- "double-wrapped" 137 | 138 | END 139 | 140 | -------------------------------------------------------------------------------- /mibs/RFC1156-SMI.mib: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- SIEMENS AG MIB for MIB Compiler OPC SNMP Server SIMATIC NET 3 | -- RFC1156-SMI.mib 4 | -- RFC 1156 5 | -- Version: 1.0.0.1 6 | -- Date: 05.03.2009 (09.04.2002) 7 | -- Comment: 8 | ---------------------------------------------------------------------------------------------------- 9 | 10 | RFC1156-SMI DEFINITIONS ::= BEGIN 11 | EXPORTS -- EVERYTHING 12 | internet, directory, mgmt, 13 | experimental, private, enterprises, 14 | OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax, 15 | ApplicationSyntax, NetworkAddress, IpAddress, 16 | Counter, Gauge, TimeTicks, Opaque; 17 | 18 | -- the path to the root 19 | 20 | internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } 21 | 22 | directory OBJECT IDENTIFIER ::= { internet 1 } 23 | 24 | mgmt OBJECT IDENTIFIER ::= { internet 2 } 25 | 26 | experimental OBJECT IDENTIFIER ::= { internet 3 } 27 | 28 | private OBJECT IDENTIFIER ::= { internet 4 } 29 | enterprises OBJECT IDENTIFIER ::= { private 1 } 30 | 31 | 32 | -- definition of object types 33 | 34 | OBJECT-TYPE MACRO ::= 35 | BEGIN 36 | TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax) 37 | "ACCESS" Access 38 | "STATUS" Status 39 | VALUE NOTATION ::= value (VALUE ObjectName) 40 | 41 | Access ::= "read-only" 42 | | "read-write" 43 | | "write-only" 44 | | "not-accessible" 45 | Status ::= "mandatory" 46 | | "optional" 47 | | "obsolete" 48 | END 49 | 50 | -- names of objects in the MIB 51 | 52 | ObjectName ::= 53 | OBJECT IDENTIFIER 54 | -- syntax of objects in the MIB 55 | 56 | ObjectSyntax ::= 57 | CHOICE { 58 | simple 59 | SimpleSyntax, 60 | 61 | -- note that simple SEQUENCEs are not directly 62 | -- mentioned here to keep things simple (i.e., 63 | -- prevent mis-use). However, application-wide 64 | -- types which are IMPLICITly encoded simple 65 | -- SEQUENCEs may appear in the following CHOICE 66 | 67 | application-wide 68 | ApplicationSyntax 69 | } 70 | 71 | SimpleSyntax ::= 72 | CHOICE { 73 | number 74 | INTEGER, 75 | 76 | string 77 | OCTET STRING, 78 | 79 | object 80 | OBJECT IDENTIFIER, 81 | 82 | empty 83 | NULL 84 | } 85 | 86 | ApplicationSyntax ::= 87 | CHOICE { 88 | address 89 | NetworkAddress, 90 | 91 | counter 92 | Counter, 93 | 94 | gauge 95 | Gauge, 96 | 97 | ticks 98 | TimeTicks, 99 | 100 | arbitrary 101 | Opaque 102 | 103 | 104 | 105 | -- other application-wide types, as they are 106 | -- defined, will be added here 107 | } 108 | 109 | 110 | -- application-wide types 111 | 112 | NetworkAddress ::= 113 | CHOICE { 114 | internet 115 | IpAddress 116 | } 117 | 118 | IpAddress ::= 119 | [APPLICATION 0] -- in network-byte order 120 | IMPLICIT OCTET STRING (SIZE (4)) 121 | 122 | Counter ::= 123 | [APPLICATION 1] 124 | IMPLICIT INTEGER (0..4294967295) 125 | 126 | Gauge ::= 127 | [APPLICATION 2] 128 | IMPLICIT INTEGER (0..4294967295) 129 | 130 | TimeTicks ::= 131 | [APPLICATION 3] 132 | IMPLICIT INTEGER (0..4294967295) 133 | 134 | Opaque ::= 135 | [APPLICATION 4] -- arbitrary ASN.1 value, 136 | IMPLICIT OCTET STRING -- "double-wrapped" 137 | 138 | END 139 | 140 | -------------------------------------------------------------------------------- /mibs/SN-ELSTP40-PRIV-MIB.mib: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- SIEMENS AG MIB for MIB Compiler OPC SNMP Server SIMATIC NET 3 | -- SN-ELSTP40-PRIV-MIB.mib 4 | -- RFC 5 | -- Version: 1.2 6 | -- Date: 05.03.2009 7 | -- Comment: Private MIB ELS 8 | ---------------------------------------------------------------------------------------------------- 9 | 10 | -- ---------------------------------------------------------------------- 11 | -- snELS.mib 12 | -- SIMATIC NET Industrial Ethernet 13 | -- ELS Private MIB 14 | -- Copyright (c) 2002 Siemens AG 15 | -- ---------------------------------------------------------------------- 16 | -- 17 | -- MIB Module : SN-ELS-PRIV-MIB 18 | -- 19 | -- Revision : V1.0.0.2 20 | -- Date : 2009/03/05 21 | -- 22 | -- ---------------------------------------------------------------------- 23 | 24 | SN-ELSTP40-PRIV-MIB DEFINITIONS ::= BEGIN 25 | 26 | IMPORTS 27 | enterprises, IpAddress, internet, 28 | TimeTicks, Counter FROM RFC1155-SMI 29 | 30 | DisplayString, ifIndex 31 | FROM RFC1213-MIB 32 | 33 | OBJECT-TYPE FROM RFC-1212; 34 | 35 | siemensAD OBJECT IDENTIFIER ::= { enterprises 4196 } 36 | adProductMibs OBJECT IDENTIFIER ::= { siemensAD 1 } 37 | simaticNet OBJECT IDENTIFIER ::= { adProductMibs 1 } 38 | iHub OBJECT IDENTIFIER ::= { simaticNet 1 } 39 | iSwitch OBJECT IDENTIFIER ::= { simaticNet 2 } 40 | iLeanSwitch OBJECT IDENTIFIER ::= { simaticNet 3 } 41 | 42 | -- ------------------------------------------------------------- 43 | -- SIMATIC NET OSM/ESM Products 44 | -- These objects are used as sysObjectID of the products. 45 | -- ------------------------------------------------------------- 46 | elsTP40M OBJECT IDENTIFIER ::= { iLeanSwitch 1 } 47 | 48 | -- ************************************************************ 49 | -- SIMATIC NET OSM/ESM Private MIB 50 | -- ************************************************************ 51 | elsInfo OBJECT IDENTIFIER ::= { elsTP40M 1 } 52 | elsStatus OBJECT IDENTIFIER ::= { elsTP40M 2 } 53 | elsMail OBJECT IDENTIFIER ::= { elsTP40M 3 } 54 | elsTrap OBJECT IDENTIFIER ::= { elsTP40M 4 } 55 | elsEvents OBJECT IDENTIFIER ::= { elsTP40M 5 } 56 | elsIPInfo OBJECT IDENTIFIER ::= { elsTP40M 6 } 57 | 58 | 59 | -- -------------------------------------------------------------- 60 | -- SIMATIC NET ELS/OLS Info Group 61 | -- This group contains all common Switch parameters. 62 | -- -------------------------------------------------------------- 63 | version OBJECT-TYPE 64 | SYNTAX DisplayString (SIZE (0..62)) 65 | ACCESS read-only 66 | STATUS mandatory 67 | DESCRIPTION "Firmware Revision" 68 | DEFVAL {"V1.0.0.0"} 69 | ::= { elsInfo 1 } 70 | 71 | hardware OBJECT-TYPE 72 | SYNTAX DisplayString (SIZE (0..62)) 73 | ACCESS read-only 74 | STATUS mandatory 75 | DESCRIPTION "Hardware Revision" 76 | DEFVAL { "01" } 77 | ::= { elsInfo 2 } 78 | 79 | 80 | -- -------------------------------------------------------------- 81 | -- SIMATIC NET ELS/OLS IP-Info Group 82 | -- This group contains IP-Address related parameters. 83 | -- -------------------------------------------------------------- 84 | 85 | ownIP OBJECT-TYPE 86 | SYNTAX IpAddress 87 | ACCESS read-write 88 | STATUS mandatory 89 | DESCRIPTION "ip address" 90 | DEFVAL { 0 } 91 | ::= { elsIPInfo 1 } 92 | 93 | netMask OBJECT-TYPE 94 | SYNTAX IpAddress 95 | ACCESS read-write 96 | STATUS mandatory 97 | DESCRIPTION "network mask" 98 | DEFVAL { 0 } 99 | ::= { elsIPInfo 2 } 100 | 101 | gateway OBJECT-TYPE 102 | SYNTAX IpAddress 103 | ACCESS read-write 104 | STATUS mandatory 105 | DESCRIPTION "gateway address" 106 | DEFVAL { 0 } 107 | ::= { elsIPInfo 3 } 108 | 109 | fromDHCP OBJECT-TYPE 110 | SYNTAX INTEGER 111 | ACCESS read-write 112 | STATUS mandatory 113 | DESCRIPTION "shows if address is from DHCP" 114 | DEFVAL { 0 } 115 | ::= { elsIPInfo 4 } 116 | 117 | -- -------------------------------------------------------------- 118 | -- SIMATIC NET ELS/OLS Email Group 119 | -- This group contains Email related parameters. 120 | -- -------------------------------------------------------------- 121 | 122 | emailFrom OBJECT-TYPE 123 | SYNTAX DisplayString (SIZE (0..62)) 124 | ACCESS read-write 125 | STATUS mandatory 126 | DESCRIPTION "Mail receiver" 127 | DEFVAL {"owner@anywhere.com"} 128 | ::= { elsMail 1 } 129 | 130 | emailTo OBJECT-TYPE 131 | SYNTAX DisplayString (SIZE (0..62)) 132 | ACCESS read-write 133 | STATUS mandatory 134 | DESCRIPTION "Mail subject" 135 | DEFVAL {"test@els.com"} 136 | ::= { elsMail 2 } 137 | 138 | emailSubject OBJECT-TYPE 139 | SYNTAX DisplayString (SIZE (0..62)) 140 | ACCESS read-only 141 | STATUS mandatory 142 | DESCRIPTION "Mail Sender" 143 | DEFVAL {"test@els.com"} 144 | ::= { elsMail 3 } 145 | 146 | smtpdIP OBJECT-TYPE 147 | SYNTAX IpAddress 148 | ACCESS read-write 149 | STATUS mandatory 150 | DESCRIPTION "ip address of smtp Daemon" 151 | DEFVAL { 0 } 152 | ::= { elsMail 4 } 153 | 154 | -- -------------------------------------------------------------- 155 | -- SIMATIC NET ELS/OLS Trap Group 156 | -- This group contains Trap related parameters. 157 | -- -------------------------------------------------------------- 158 | 159 | trapIP1 OBJECT-TYPE 160 | SYNTAX IpAddress 161 | ACCESS read-write 162 | STATUS mandatory 163 | DESCRIPTION "1. trap receiver's ip address" 164 | DEFVAL { 0 } 165 | ::= { elsTrap 1 } 166 | 167 | trapIP2 OBJECT-TYPE 168 | SYNTAX IpAddress 169 | ACCESS read-write 170 | STATUS mandatory 171 | DESCRIPTION "2. trap receiver's ip address" 172 | DEFVAL { 0 } 173 | ::= { elsTrap 2 } 174 | 175 | -- -------------------------------------------------------------- 176 | -- SIMATIC NET ELS/OLS Event Group 177 | -- This group contains all the Trap / Email-Event related parameters. 178 | -- -------------------------------------------------------------- 179 | emailMask OBJECT-TYPE 180 | SYNTAX INTEGER 181 | ACCESS read-write 182 | STATUS mandatory 183 | DESCRIPTION "used to mask off Switch-Events to be reported 184 | by mail " 185 | DEFVAL { 0 } 186 | ::= { elsEvents 1 } 187 | 188 | trapMask OBJECT-TYPE 189 | SYNTAX INTEGER 190 | ACCESS read-write 191 | STATUS mandatory 192 | DESCRIPTION "used to mask off Switch-events to be reported 193 | by Trap" 194 | DEFVAL { 0 } 195 | ::= { elsEvents 2 } 196 | 197 | otherMask OBJECT-TYPE 198 | SYNTAX INTEGER 199 | ACCESS read-write 200 | STATUS mandatory 201 | DESCRIPTION "used to mask off PST-Request or Power-On events to be reported 202 | by Trap or Email" 203 | DEFVAL { 0 } 204 | ::= { elsEvents 3 } 205 | 206 | -- -------------------------------------------------------------- 207 | -- SIMATIC NET ELS/OLS Status Group 208 | -- This group contains switch related parameters. 209 | -- -------------------------------------------------------------- 210 | receiveError1 OBJECT-TYPE 211 | SYNTAX INTEGER 212 | ACCESS read-only 213 | STATUS mandatory 214 | DESCRIPTION "number of receive errors of port 1" 215 | DEFVAL { 0 } 216 | ::= { elsStatus 1 } 217 | 218 | receiveError2 OBJECT-TYPE 219 | SYNTAX INTEGER 220 | ACCESS read-only 221 | STATUS mandatory 222 | DESCRIPTION "number of receive errors of port 2" 223 | DEFVAL { 0 } 224 | ::= { elsStatus 2 } 225 | 226 | receiveError3 OBJECT-TYPE 227 | SYNTAX INTEGER 228 | ACCESS read-only 229 | STATUS mandatory 230 | DESCRIPTION "number of receive errors of port 3" 231 | DEFVAL { 0 } 232 | ::= { elsStatus 3 } 233 | 234 | receiveError4 OBJECT-TYPE 235 | SYNTAX INTEGER 236 | ACCESS read-only 237 | STATUS mandatory 238 | DESCRIPTION "number of receive errors of port 4" 239 | DEFVAL { 0 } 240 | ::= { elsStatus 4 } 241 | 242 | collisionCount1 OBJECT-TYPE 243 | SYNTAX INTEGER 244 | ACCESS read-only 245 | STATUS mandatory 246 | DESCRIPTION "number of collisions of port 1" 247 | DEFVAL { 0 } 248 | ::= { elsStatus 5 } 249 | 250 | collisionCount2 OBJECT-TYPE 251 | SYNTAX INTEGER 252 | ACCESS read-only 253 | STATUS mandatory 254 | DESCRIPTION "number of collisions of port 2" 255 | DEFVAL { 0 } 256 | ::= { elsStatus 6 } 257 | 258 | collisionCount3 OBJECT-TYPE 259 | SYNTAX INTEGER 260 | ACCESS read-only 261 | STATUS mandatory 262 | DESCRIPTION "number of collisions of port 3" 263 | DEFVAL { 0 } 264 | ::= { elsStatus 7 } 265 | 266 | collisionCount4 OBJECT-TYPE 267 | SYNTAX INTEGER 268 | ACCESS read-only 269 | STATUS mandatory 270 | DESCRIPTION "number of collisions of port 4" 271 | DEFVAL { 0 } 272 | ::= { elsStatus 8 } 273 | 274 | ledStatus OBJECT-TYPE 275 | SYNTAX INTEGER 276 | ACCESS read-only 277 | STATUS mandatory 278 | DESCRIPTION "reflects LEDs of switch" 279 | DEFVAL { 0 } 280 | ::= { elsStatus 9 } 281 | 282 | startBank OBJECT-TYPE 283 | SYNTAX INTEGER 284 | ACCESS read-only 285 | STATUS mandatory 286 | DESCRIPTION "shows startBank " 287 | DEFVAL { 0 } 288 | ::= { elsStatus 10 } 289 | 290 | -- -------------------------------------------------------------- 291 | -- SIMATIC NET ELS/OLS Email Group 292 | -- This group contains Email related parameters. 293 | -- -------------------------------------------------------------- 294 | 295 | 296 | -- ELS 297 | 298 | 299 | 300 | END 301 | -------------------------------------------------------------------------------- /mibs/SNMPv2-CONF.mib: -------------------------------------------------------------------------------- 1 | SNMPv2-CONF DEFINITIONS ::= BEGIN 2 | 3 | IMPORTS ObjectName, NotificationName, ObjectSyntax 4 | FROM SNMPv2-SMI; 5 | 6 | -- definitions for conformance groups 7 | 8 | OBJECT-GROUP MACRO ::= 9 | BEGIN 10 | TYPE NOTATION ::= 11 | ObjectsPart 12 | "STATUS" Status 13 | "DESCRIPTION" Text 14 | ReferPart 15 | 16 | VALUE NOTATION ::= 17 | value(VALUE OBJECT IDENTIFIER) 18 | 19 | ObjectsPart ::= 20 | "OBJECTS" "{" Objects "}" 21 | Objects ::= 22 | Object 23 | | Objects "," Object 24 | Object ::= 25 | value(ObjectName) 26 | 27 | Status ::= 28 | "current" 29 | | "deprecated" 30 | | "obsolete" 31 | 32 | ReferPart ::= 33 | "REFERENCE" Text 34 | | empty 35 | 36 | -- a character string as defined in [2] 37 | Text ::= value(IA5String) 38 | END 39 | 40 | -- more definitions for conformance groups 41 | 42 | NOTIFICATION-GROUP MACRO ::= 43 | BEGIN 44 | TYPE NOTATION ::= 45 | NotificationsPart 46 | "STATUS" Status 47 | "DESCRIPTION" Text 48 | ReferPart 49 | 50 | VALUE NOTATION ::= 51 | value(VALUE OBJECT IDENTIFIER) 52 | 53 | NotificationsPart ::= 54 | "NOTIFICATIONS" "{" Notifications "}" 55 | Notifications ::= 56 | Notification 57 | | Notifications "," Notification 58 | Notification ::= 59 | value(NotificationName) 60 | 61 | Status ::= 62 | "current" 63 | | "deprecated" 64 | | "obsolete" 65 | 66 | ReferPart ::= 67 | "REFERENCE" Text 68 | | empty 69 | 70 | -- a character string as defined in [2] 71 | Text ::= value(IA5String) 72 | END 73 | 74 | -- definitions for compliance statements 75 | 76 | MODULE-COMPLIANCE MACRO ::= 77 | BEGIN 78 | TYPE NOTATION ::= 79 | "STATUS" Status 80 | "DESCRIPTION" Text 81 | ReferPart 82 | ModulePart 83 | 84 | VALUE NOTATION ::= 85 | value(VALUE OBJECT IDENTIFIER) 86 | 87 | Status ::= 88 | "current" 89 | | "deprecated" 90 | | "obsolete" 91 | 92 | ReferPart ::= 93 | "REFERENCE" Text 94 | | empty 95 | 96 | ModulePart ::= 97 | Modules 98 | Modules ::= 99 | Module 100 | | Modules Module 101 | Module ::= 102 | -- name of module -- 103 | "MODULE" ModuleName 104 | MandatoryPart 105 | CompliancePart 106 | 107 | ModuleName ::= 108 | -- identifier must start with uppercase letter 109 | identifier ModuleIdentifier 110 | -- must not be empty unless contained 111 | -- in MIB Module 112 | | empty 113 | ModuleIdentifier ::= 114 | value(OBJECT IDENTIFIER) 115 | | empty 116 | 117 | MandatoryPart ::= 118 | "MANDATORY-GROUPS" "{" Groups "}" 119 | | empty 120 | 121 | Groups ::= 122 | Group 123 | | Groups "," Group 124 | Group ::= 125 | value(OBJECT IDENTIFIER) 126 | 127 | CompliancePart ::= 128 | Compliances 129 | | empty 130 | 131 | Compliances ::= 132 | Compliance 133 | | Compliances Compliance 134 | Compliance ::= 135 | ComplianceGroup 136 | | Object 137 | 138 | ComplianceGroup ::= 139 | "GROUP" value(OBJECT IDENTIFIER) 140 | "DESCRIPTION" Text 141 | 142 | Object ::= 143 | "OBJECT" value(ObjectName) 144 | SyntaxPart 145 | WriteSyntaxPart 146 | AccessPart 147 | "DESCRIPTION" Text 148 | 149 | -- must be a refinement for object's SYNTAX clause 150 | SyntaxPart ::= "SYNTAX" Syntax 151 | | empty 152 | 153 | -- must be a refinement for object's SYNTAX clause 154 | WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax 155 | | empty 156 | 157 | Syntax ::= -- Must be one of the following: 158 | -- a base type (or its refinement), 159 | -- a textual convention (or its refinement), or 160 | -- a BITS pseudo-type 161 | type 162 | | "BITS" "{" NamedBits "}" 163 | 164 | NamedBits ::= NamedBit 165 | | NamedBits "," NamedBit 166 | 167 | NamedBit ::= identifier "(" number ")" -- number is nonnegative 168 | 169 | AccessPart ::= 170 | "MIN-ACCESS" Access 171 | | empty 172 | Access ::= 173 | "not-accessible" 174 | | "accessible-for-notify" 175 | | "read-only" 176 | | "read-write" 177 | | "read-create" 178 | 179 | -- a character string as defined in [2] 180 | Text ::= value(IA5String) 181 | END 182 | 183 | -- definitions for capabilities statements 184 | 185 | AGENT-CAPABILITIES MACRO ::= 186 | BEGIN 187 | TYPE NOTATION ::= 188 | "PRODUCT-RELEASE" Text 189 | "STATUS" Status 190 | "DESCRIPTION" Text 191 | ReferPart 192 | ModulePart 193 | 194 | VALUE NOTATION ::= 195 | value(VALUE OBJECT IDENTIFIER) 196 | 197 | Status ::= 198 | "current" 199 | | "obsolete" 200 | 201 | ReferPart ::= 202 | "REFERENCE" Text 203 | | empty 204 | 205 | ModulePart ::= 206 | Modules 207 | | empty 208 | Modules ::= 209 | Module 210 | | Modules Module 211 | Module ::= 212 | -- name of module -- 213 | "SUPPORTS" ModuleName 214 | "INCLUDES" "{" Groups "}" 215 | VariationPart 216 | 217 | ModuleName ::= 218 | -- identifier must start with uppercase letter 219 | identifier ModuleIdentifier 220 | ModuleIdentifier ::= 221 | value(OBJECT IDENTIFIER) 222 | | empty 223 | 224 | Groups ::= 225 | Group 226 | | Groups "," Group 227 | Group ::= 228 | value(OBJECT IDENTIFIER) 229 | 230 | VariationPart ::= 231 | Variations 232 | | empty 233 | Variations ::= 234 | Variation 235 | | Variations Variation 236 | 237 | Variation ::= 238 | ObjectVariation 239 | | NotificationVariation 240 | 241 | NotificationVariation ::= 242 | "VARIATION" value(NotificationName) 243 | AccessPart 244 | "DESCRIPTION" Text 245 | 246 | ObjectVariation ::= 247 | "VARIATION" value(ObjectName) 248 | SyntaxPart 249 | WriteSyntaxPart 250 | AccessPart 251 | CreationPart 252 | DefValPart 253 | "DESCRIPTION" Text 254 | 255 | -- must be a refinement for object's SYNTAX clause 256 | SyntaxPart ::= "SYNTAX" Syntax 257 | | empty 258 | 259 | WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax 260 | | empty 261 | 262 | Syntax ::= -- Must be one of the following: 263 | -- a base type (or its refinement), 264 | -- a textual convention (or its refinement), or 265 | -- a BITS pseudo-type 266 | type 267 | | "BITS" "{" NamedBits "}" 268 | 269 | NamedBits ::= NamedBit 270 | | NamedBits "," NamedBit 271 | 272 | NamedBit ::= identifier "(" number ")" -- number is nonnegative 273 | 274 | AccessPart ::= 275 | "ACCESS" Access 276 | | empty 277 | 278 | Access ::= 279 | "not-implemented" 280 | -- only "not-implemented" for notifications 281 | | "accessible-for-notify" 282 | | "read-only" 283 | | "read-write" 284 | | "read-create" 285 | -- following is for backward-compatibility only 286 | | "write-only" 287 | 288 | CreationPart ::= 289 | "CREATION-REQUIRES" "{" Cells "}" 290 | | empty 291 | Cells ::= 292 | Cell 293 | | Cells "," Cell 294 | Cell ::= 295 | value(ObjectName) 296 | 297 | DefValPart ::= "DEFVAL" "{" Defvalue "}" 298 | | empty 299 | 300 | Defvalue ::= -- must be valid for the object's syntax 301 | -- in this macro's SYNTAX clause, if present, 302 | -- or if not, in object's OBJECT-TYPE macro 303 | value(ObjectSyntax) 304 | | "{" BitsValue "}" 305 | 306 | BitsValue ::= BitNames 307 | | empty 308 | 309 | BitNames ::= BitName 310 | | BitNames "," BitName 311 | 312 | BitName ::= identifier 313 | 314 | -- a character string as defined in [2] 315 | Text ::= value(IA5String) 316 | END 317 | 318 | END 319 | -------------------------------------------------------------------------------- /mibs/SNMPv2-MIB-v1.mib: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- SIEMENS AG MIB for MIB Compiler OPC SNMP Server SIMATIC NET 3 | -- SNMPv2-MIB-v1.mib 4 | -- RFC 1907 5 | -- Version: 1.0 6 | -- Date: 09.04.2002 7 | -- Comment: Convert to SMIv1 8 | ---------------------------------------------------------------------------------------------------- 9 | 10 | SNMPv2-MIB-v1 DEFINITIONS ::= BEGIN 11 | 12 | IMPORTS 13 | Integer32, Counter32, snmpModules 14 | FROM SNMPv2-SMI-v1 15 | OBJECT-TYPE 16 | FROM RFC-1212 17 | TRAP-TYPE 18 | FROM RFC-1215 19 | TruthValue, DisplayString, TestAndIncr, TimeStamp 20 | FROM SNMPv2-TC-v1 21 | ifIndex, egpNeighAddr 22 | FROM RFC1213-MIB; 23 | 24 | snmpMIB OBJECT IDENTIFIER ::= { snmpModules 1 } 25 | -- MODULE-IDENTITY 26 | -- LastUpdated 27 | -- 9304010000Z 28 | -- OrgName 29 | -- IETF SNMPv2 Working Group 30 | -- ContactInfo 31 | -- Marshall T. Rose 32 | -- 33 | -- Postal: Dover Beach Consulting, Inc. 34 | -- 420 Whisman Court 35 | -- Mountain View, CA 94043-2186 36 | -- US 37 | -- 38 | -- Tel: +1 415 968 1052 39 | -- Fax: +1 415 968 2510 40 | -- 41 | -- E-mail: mrose@dbc.mtview.ca.us 42 | -- Descr 43 | -- The MIB module for SNMPv2 entities. 44 | 45 | snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 } 46 | snmpStats OBJECT IDENTIFIER ::= { snmpMIBObjects 1 } 47 | snmpV1 OBJECT IDENTIFIER ::= { snmpMIBObjects 2 } 48 | snmpOR OBJECT IDENTIFIER ::= { snmpMIBObjects 3 } 49 | snmpTrap OBJECT IDENTIFIER ::= { snmpMIBObjects 4 } 50 | snmpTraps OBJECT IDENTIFIER ::= { snmpMIBObjects 5 } 51 | snmpSet OBJECT IDENTIFIER ::= { snmpMIBObjects 6 } 52 | snmpMIBConformance OBJECT IDENTIFIER ::= { snmpMIB 2 } 53 | snmpMIBCompliances OBJECT IDENTIFIER ::= { snmpMIBConformance 1 } 54 | snmpMIBGroups OBJECT IDENTIFIER ::= { snmpMIBConformance 2 } 55 | 56 | snmpStatsPackets OBJECT-TYPE 57 | SYNTAX Counter32 58 | ACCESS read-only 59 | STATUS mandatory 60 | DESCRIPTION 61 | "The total number of packets received by the 62 | SNMPv2 entity from the transport service." 63 | REFERENCE 64 | "Derived from RFC1213-MIB.snmpInPkts." 65 | ::= { snmpStats 1 } 66 | 67 | snmpStats30Something OBJECT-TYPE 68 | SYNTAX Counter32 69 | ACCESS read-only 70 | STATUS mandatory 71 | DESCRIPTION 72 | "The total number of packets which had an initial 73 | octet with a value of 30 hexadecimal received by a 74 | SNMPv2 entity which does not support SNMPv1. 75 | (Such packets are possibly misdirected SNMPv1 76 | Messages.)" 77 | REFERENCE 78 | "Derived from RFC1213-MIB.snmpInASNParseErrs." 79 | ::= { snmpStats 2 } 80 | 81 | snmpStatsEncodingErrors OBJECT-TYPE 82 | SYNTAX Counter32 83 | ACCESS read-only 84 | STATUS mandatory 85 | DESCRIPTION 86 | "The total number of packets received by the 87 | SNMPv2 entity which were improperly encoded or had 88 | invalid syntax." 89 | REFERENCE 90 | "Derived from RFC1213-MIB.snmpInASNParseErrs." 91 | ::= { snmpStats 3 } 92 | 93 | snmpStatsBadAuths OBJECT-TYPE 94 | SYNTAX Counter32 95 | ACCESS read-only 96 | STATUS mandatory 97 | DESCRIPTION 98 | "The total number of SnmpAuthMsgs delivered to the 99 | SNMPv2 entity which contained an authInfo field 100 | which was inconsistent with the authentication 101 | protocol associated with the source party." 102 | ::= { snmpStats 7 } 103 | 104 | snmpStatsNotInLifetimes OBJECT-TYPE 105 | SYNTAX Counter32 106 | ACCESS read-only 107 | STATUS mandatory 108 | DESCRIPTION 109 | "The total number of SnmpAuthMsgs delivered to the 110 | SNMPv2 entity which were deemed unauthentic due to 111 | their authInfo.authSrcTimestamp field being less 112 | than the source party's clock plus lifetime." 113 | ::= { snmpStats 8 } 114 | 115 | snmpStatsWrongDigestValues OBJECT-TYPE 116 | SYNTAX Counter32 117 | ACCESS read-only 118 | STATUS mandatory 119 | DESCRIPTION 120 | "The total number of SnmpAuthMsgs delivered to the 121 | SNMPv2 entity which were deemed unauthentic due to 122 | their authInfo.authDigest field being unequal to 123 | the expected digest value." 124 | ::= { snmpStats 9 } 125 | 126 | snmpStatsUnknownContexts OBJECT-TYPE 127 | SYNTAX Counter32 128 | ACCESS read-only 129 | STATUS mandatory 130 | DESCRIPTION 131 | "The total number of SnmpMgmtComs delivered to the 132 | SNMPv2 entity for which the context field was not 133 | a known SNMPv2 context." 134 | ::= { snmpStats 10 } 135 | 136 | snmpStatsBadOperations OBJECT-TYPE 137 | SYNTAX Counter32 138 | ACCESS read-only 139 | STATUS mandatory 140 | DESCRIPTION 141 | "The total number of messages delivered to the 142 | SNMPv2 entity which were silently dropped because 143 | the PDU type referred to an operation not allowed 144 | in the aclTable[5]." 145 | ::= { snmpStats 11 } 146 | 147 | snmpStatsSilentDrops OBJECT-TYPE 148 | SYNTAX Counter32 149 | ACCESS read-only 150 | STATUS mandatory 151 | DESCRIPTION 152 | "The total number of GetRequest-PDUs, 153 | GetNextRequest-PDUs, GetBulkRequest-PDUs, 154 | SetRequest-PDUs, and InformRequest-PDUs delivered 155 | to the SNMPv2 entity which were silently dropped 156 | because the size of an reply containing an 157 | alternate Response-PDU with an empty variable- 158 | bindings field was greater than either a local 159 | constraint or the maximum message size of the 160 | request's source party." 161 | ::= { snmpStats 12 } 162 | 163 | snmpV1BadCommunityNames OBJECT-TYPE 164 | SYNTAX Counter32 165 | ACCESS read-only 166 | STATUS mandatory 167 | DESCRIPTION 168 | "The total number of SNMPv1 Messages delivered to 169 | the SNMPv2 entity which used a community name not 170 | known to the SNMPv2 entity." 171 | REFERENCE 172 | "Derived from RFC1213- 173 | MIB.snmpInBadCommunityNames." 174 | ::= { snmpV1 1 } 175 | 176 | snmpV1BadCommunityUses OBJECT-TYPE 177 | SYNTAX Counter32 178 | ACCESS read-only 179 | STATUS mandatory 180 | DESCRIPTION 181 | "The total number of SNMPv1 Messages delivered to 182 | SNMPv2 entity containing an operation which was 183 | not allowed for the community named in the 184 | Message." 185 | REFERENCE 186 | "Derived from RFC1213-MIB.snmpInBadCommunityUses." 187 | ::= { snmpV1 2 } 188 | 189 | snmpORLastChange OBJECT-TYPE 190 | SYNTAX TimeStamp 191 | -- Rsyntax TimeTicks 192 | ACCESS read-only 193 | STATUS mandatory 194 | DESCRIPTION 195 | "The value of sysUpTime at the time of the most 196 | recent change in state or value of any instance of 197 | snmpORID." 198 | ::= { snmpOR 1 } 199 | 200 | snmpORTable OBJECT-TYPE 201 | SYNTAX SEQUENCE OF SnmpOREntry 202 | ACCESS not-accessible 203 | STATUS mandatory 204 | DESCRIPTION 205 | "The (conceptual) table listing the dynamically- 206 | configurable object resources in a SNMPv2 entity 207 | acting in an agent role. SNMPv2 entities which do 208 | not support dynamically-configurable object 209 | resources will never have any instances of the 210 | columnar objects in this table." 211 | ::= { snmpOR 2 } 212 | 213 | snmpOREntry OBJECT-TYPE 214 | SYNTAX SnmpOREntry 215 | ACCESS not-accessible 216 | STATUS mandatory 217 | DESCRIPTION 218 | "An entry (conceptual row) in the snmpORTable." 219 | INDEX { snmpORIndex } 220 | ::= { snmpORTable 1 } 221 | 222 | SnmpOREntry ::= SEQUENCE { 223 | snmpORIndex Integer32 (1..2147483647), 224 | snmpORID OBJECT IDENTIFIER, 225 | snmpORDescr DisplayString 226 | } 227 | 228 | snmpORIndex OBJECT-TYPE 229 | SYNTAX Integer32 (1..2147483647) 230 | ACCESS not-accessible 231 | STATUS mandatory 232 | DESCRIPTION 233 | "The auxiliary variable used for identifying 234 | instances of the columnar objects in the 235 | snmpORTable." 236 | ::= { snmpOREntry 1 } 237 | 238 | snmpORID OBJECT-TYPE 239 | SYNTAX OBJECT IDENTIFIER 240 | ACCESS read-only 241 | STATUS mandatory 242 | DESCRIPTION 243 | "An authoritative identification of one of the 244 | dynamically-configurable object resources in a 245 | SNMPv2 entity acting in an agent role. This is 246 | analogous to the sysObjectID object in MIB-II." 247 | ::= { snmpOREntry 2 } 248 | 249 | snmpORDescr OBJECT-TYPE 250 | SYNTAX DisplayString 251 | -- Rsyntax OCTET STRING(SIZE(0..255)) 252 | ACCESS read-only 253 | STATUS mandatory 254 | DESCRIPTION 255 | "A textual description of one of the dynamically- 256 | configurable object resources in a SNMPv2 entity 257 | acting in an agent role. This is analogous to the 258 | sysDescr object in MIB-II." 259 | ::= { snmpOREntry 3 } 260 | 261 | snmpTrapOID OBJECT-TYPE 262 | SYNTAX OBJECT IDENTIFIER 263 | ACCESS not-accessible 264 | STATUS mandatory 265 | DESCRIPTION 266 | "The authoritative identification of the trap 267 | currently being sent. This variable occurs as the 268 | second varbind of a SNMPv2-Trap-PDU." 269 | ::= { snmpTrap 1 } 270 | 271 | snmpTrapEnterprise OBJECT-TYPE 272 | SYNTAX OBJECT IDENTIFIER 273 | ACCESS not-accessible 274 | STATUS mandatory 275 | DESCRIPTION 276 | "The authoritative identification of the 277 | enterprise associated with the trap currently 278 | being sent. When a SNMPv2 proxy agent is mapping 279 | an RFC1157 Trap-PDU into a SNMPv2-Trap-PDU, this 280 | variable occurs as the last varbind." 281 | ::= { snmpTrap 3 } 282 | 283 | snmpV2EnableAuthenTraps OBJECT-TYPE 284 | SYNTAX TruthValue 285 | -- Rsyntax INTEGER { 286 | -- true(1), 287 | -- false(2) 288 | -- } 289 | ACCESS read-write 290 | STATUS mandatory 291 | DESCRIPTION 292 | "Indicates whether the SNMPv2 entity, when acting 293 | in an agent role, is permitted to generate 294 | authenticationFailure traps. The value of this 295 | object overrides any configuration information; as 296 | such, it provides a means whereby all 297 | authenticationFailure traps may be disabled. 298 | 299 | Note that it is strongly recommended that this 300 | object be stored in non-volatile memory so that it 301 | remains constant between re-initializations of the 302 | network management system." 303 | REFERENCE 304 | "Derived from RFC1213-MIB.snmpEnableAuthenTraps." 305 | ::= { snmpTrap 4 } 306 | 307 | snmpSetSerialNo OBJECT-TYPE 308 | SYNTAX TestAndIncr 309 | -- Rsyntax INTEGER(0..2147483647) 310 | ACCESS read-write 311 | STATUS mandatory 312 | DESCRIPTION 313 | "An advisory lock used to allow several 314 | cooperating SNMPv2 entities, all acting in a 315 | manager role, to coordinate their use of the 316 | SNMPv2 set operation. 317 | 318 | This object is used for coarse-grain coordination. 319 | To achieve fine-grain coordination, one or more 320 | similar objects might be defined within each MIB 321 | group, as appropriate." 322 | ::= { snmpSet 1 } 323 | 324 | coldStart TRAP-TYPE 325 | --?? Non-reverse mappable trap 326 | ENTERPRISE snmpTraps 327 | -- Status 328 | -- mandatory 329 | DESCRIPTION 330 | "A coldStart trap signifies that the SNMPv2 331 | entity, acting in an agent role, is reinitializing 332 | itself such that its configuration may be 333 | altered." 334 | ::= 1 335 | 336 | warmStart TRAP-TYPE 337 | --?? Non-reverse mappable trap 338 | ENTERPRISE snmpTraps 339 | -- Status 340 | -- mandatory 341 | DESCRIPTION 342 | "A warmStart trap signifies that the SNMPv2 343 | entity, acting in an agent role, is reinitializing 344 | itself such that its configuration is unaltered." 345 | ::= 2 346 | 347 | -- note: linkDown and linkUp have been redefined in IF-MIB-V1SMI.my. 348 | -- having them here too causes some mib compilers problems 349 | -- when IF-MIB-V1SMI imports this mib 350 | 351 | --linkDown TRAP-TYPE 352 | -- ENTERPRISE snmpTraps 353 | -- VARIABLES { 354 | -- ifIndex } 355 | -- Status 356 | -- mandatory 357 | -- DESCRIPTION 358 | -- "A linkDown trap signifies that the SNMPv2 entity, 359 | -- acting in an agent role, recognizes a failure in 360 | -- one of the communication links represented in its 361 | -- configuration." 362 | -- ::= 3 363 | -- 364 | --linkUp TRAP-TYPE 365 | -- ENTERPRISE snmpTraps 366 | -- VARIABLES { 367 | -- ifIndex } 368 | -- Status 369 | -- mandatory 370 | -- DESCRIPTION 371 | -- "A linkUp trap signifies that the SNMPv2 entity, 372 | -- acting in an agent role, recognizes that one of 373 | -- the communication links represented in its 374 | -- configuration has come up." 375 | -- ::= 4 376 | 377 | authenticationFailure TRAP-TYPE 378 | --?? Non-reverse mappable trap 379 | ENTERPRISE snmpTraps 380 | -- Status 381 | -- mandatory 382 | DESCRIPTION 383 | "An authenticationFailure trap signifies that the 384 | SNMPv2 entity, acting in an agent role, has 385 | received a protocol message that is not properly 386 | authenticated. While all implementations of the 387 | SNMPv2 must be capable of generating this trap, 388 | the snmpV2EnableAuthenTraps object indicates 389 | whether this trap will be generated." 390 | ::= 5 391 | 392 | egpNeighborLoss TRAP-TYPE 393 | --?? Non-reverse mappable trap 394 | ENTERPRISE snmpTraps 395 | VARIABLES { 396 | egpNeighAddr } 397 | -- Status 398 | -- mandatory 399 | DESCRIPTION 400 | "An egpNeighborLoss trap signifies that an EGP 401 | neighbor has been marked down and the EGP peer 402 | relationship no longer obtains." 403 | ::= 6 404 | 405 | snmpStatsGroup OBJECT IDENTIFIER ::= { snmpMIBGroups 1 } 406 | -- OBJECT-GROUP 407 | -- Status 408 | -- mandatory 409 | -- Descr 410 | -- A collection of objects providing basic 411 | -- instrumentation of the SNMPv2 entity. 412 | -- objects 413 | -- snmpStatsPackets, snmpStats30Something, 414 | -- snmpStatsEncodingErrors, snmpStatsBadAuths, 415 | -- snmpStatsNotInLifetimes, snmpStatsWrongDigestValues, 416 | -- snmpStatsUnknownContexts, snmpStatsBadOperations, 417 | -- snmpStatsSilentDrops 418 | 419 | snmpV1Group OBJECT IDENTIFIER ::= { snmpMIBGroups 2 } 420 | -- OBJECT-GROUP 421 | -- Status 422 | -- mandatory 423 | -- Descr 424 | -- A collection of objects providing basic 425 | -- instrumentation of a SNMPv2 entity which also 426 | -- implements SNMPv1. 427 | -- objects 428 | -- snmpV1BadCommunityNames, snmpV1BadCommunityUses 429 | 430 | snmpORGroup OBJECT IDENTIFIER ::= { snmpMIBGroups 3 } 431 | -- OBJECT-GROUP 432 | -- Status 433 | -- mandatory 434 | -- Descr 435 | -- A collection of objects allowing a SNMPv2 entity 436 | -- acting in an agent role to describe its 437 | -- dynamically-configurable object resources. 438 | -- objects 439 | -- snmpORLastChange, snmpORID, snmpORDescr 440 | 441 | snmpTrapGroup OBJECT IDENTIFIER ::= { snmpMIBGroups 4 } 442 | -- OBJECT-GROUP 443 | -- Status 444 | -- mandatory 445 | -- Descr 446 | -- A collection of objects which allow the SNMPv2 447 | -- entity, when acting in an agent role, to be 448 | -- configured to generate SNMPv2-Trap-PDUs. 449 | -- objects 450 | -- snmpV2EnableAuthenTraps 451 | 452 | snmpSetGroup OBJECT IDENTIFIER ::= { snmpMIBGroups 5 } 453 | -- OBJECT-GROUP 454 | -- Status 455 | -- mandatory 456 | -- Descr 457 | -- A collection of objects which allow several 458 | -- cooperating SNMPv2 entities, all acting in a 459 | -- manager role, to coordinate their use of the 460 | -- SNMPv2 set operation. 461 | -- objects 462 | -- snmpSetSerialNo 463 | 464 | snmpMIBCompliance OBJECT IDENTIFIER ::= { snmpMIBCompliances 1 } 465 | -- MODULE-COMPLIANCE 466 | -- Status 467 | -- mandatory 468 | -- Descr 469 | -- The compliance statement for SNMPv2 entities 470 | -- which implement the SNMPv2 MIB. 471 | -- Module 472 | -- RFC1213-MIB 473 | -- MandGroup 474 | -- system 475 | -- Module 476 | -- >>current<< 477 | -- MandGroup 478 | -- snmpStatsGroup 479 | -- MandGroup 480 | -- snmpORGroup 481 | -- MandGroup 482 | -- snmpTrapGroup 483 | -- MandGroup 484 | -- snmpSetGroup 485 | -- OptGroup 486 | -- snmpV1Group 487 | 488 | 489 | END 490 | 491 | -------------------------------------------------------------------------------- /mibs/SNMPv2-SMI-v1.mib: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------------------------- 2 | -- SIEMENS AG MIB for MIB Compiler OPC SNMP Server SIMATIC NET 3 | -- SNMPv2-SMI-v1.mib 4 | -- RFC 1902 5 | -- Version: 1.0 6 | -- Date: 23.04.2002 7 | -- Comment: Convert to SMIv1 8 | ---------------------------------------------------------------------------------------------------- 9 | SNMPv2-SMI-v1 DEFINITIONS ::= BEGIN 10 | 11 | Counter32 ::= Counter 12 | Gauge32 ::= Gauge 13 | Integer32 ::= INTEGER (-2147483648..2147483647) 14 | 15 | org OBJECT IDENTIFIER ::= { iso 3 } 16 | dod OBJECT IDENTIFIER ::= { org 6 } 17 | internet OBJECT IDENTIFIER ::= { dod 1 } 18 | directory OBJECT IDENTIFIER ::= { internet 1 } 19 | mgmt OBJECT IDENTIFIER ::= { internet 2 } 20 | mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } 21 | transmission OBJECT IDENTIFIER ::= { mib-2 10 } 22 | experimental OBJECT IDENTIFIER ::= { internet 3 } 23 | private OBJECT IDENTIFIER ::= { internet 4 } 24 | enterprises OBJECT IDENTIFIER ::= { private 1 } 25 | security OBJECT IDENTIFIER ::= { internet 5 } 26 | snmpV2 OBJECT IDENTIFIER ::= { internet 6 } 27 | snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 } 28 | snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 } 29 | snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 } 30 | 31 | 32 | END 33 | 34 | -------------------------------------------------------------------------------- /mibs/SNMPv2-SMI.mib: -------------------------------------------------------------------------------- 1 | SNMPv2-SMI DEFINITIONS ::= BEGIN 2 | 3 | 4 | -- the path to the root 5 | 6 | org OBJECT IDENTIFIER ::= { iso 3 } -- "iso" = 1 7 | dod OBJECT IDENTIFIER ::= { org 6 } 8 | internet OBJECT IDENTIFIER ::= { dod 1 } 9 | 10 | directory OBJECT IDENTIFIER ::= { internet 1 } 11 | 12 | mgmt OBJECT IDENTIFIER ::= { internet 2 } 13 | mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } 14 | transmission OBJECT IDENTIFIER ::= { mib-2 10 } 15 | 16 | experimental OBJECT IDENTIFIER ::= { internet 3 } 17 | 18 | private OBJECT IDENTIFIER ::= { internet 4 } 19 | enterprises OBJECT IDENTIFIER ::= { private 1 } 20 | 21 | security OBJECT IDENTIFIER ::= { internet 5 } 22 | 23 | snmpV2 OBJECT IDENTIFIER ::= { internet 6 } 24 | 25 | -- transport domains 26 | snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 } 27 | 28 | -- transport proxies 29 | snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 } 30 | 31 | -- module identities 32 | snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 } 33 | 34 | -- Extended UTCTime, to allow dates with four-digit years 35 | -- (Note that this definition of ExtUTCTime is not to be IMPORTed 36 | -- by MIB modules.) 37 | ExtUTCTime ::= OCTET STRING(SIZE(11 | 13)) 38 | -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ 39 | -- where: YY - last two digits of year (only years 40 | -- between 1900-1999) 41 | -- YYYY - last four digits of the year (any year) 42 | -- MM - month (01 through 12) 43 | -- DD - day of month (01 through 31) 44 | -- HH - hours (00 through 23) 45 | -- MM - minutes (00 through 59) 46 | -- Z - denotes GMT (the ASCII character Z) 47 | -- 48 | -- For example, "9502192015Z" and "199502192015Z" represent 49 | -- 8:15pm GMT on 19 February 1995. Years after 1999 must use 50 | -- the four digit year format. Years 1900-1999 may use the 51 | -- two or four digit format. 52 | 53 | -- definitions for information modules 54 | 55 | MODULE-IDENTITY MACRO ::= 56 | BEGIN 57 | TYPE NOTATION ::= 58 | "LAST-UPDATED" value(Update ExtUTCTime) 59 | "ORGANIZATION" Text 60 | "CONTACT-INFO" Text 61 | "DESCRIPTION" Text 62 | RevisionPart 63 | 64 | VALUE NOTATION ::= 65 | value(VALUE OBJECT IDENTIFIER) 66 | 67 | RevisionPart ::= 68 | Revisions 69 | | empty 70 | Revisions ::= 71 | Revision 72 | | Revisions Revision 73 | Revision ::= 74 | "REVISION" value(Update ExtUTCTime) 75 | "DESCRIPTION" Text 76 | 77 | -- a character string as defined in section 3.1.1 78 | Text ::= value(IA5String) 79 | END 80 | 81 | 82 | OBJECT-IDENTITY MACRO ::= 83 | BEGIN 84 | TYPE NOTATION ::= 85 | "STATUS" Status 86 | "DESCRIPTION" Text 87 | ReferPart 88 | 89 | VALUE NOTATION ::= 90 | value(VALUE OBJECT IDENTIFIER) 91 | 92 | Status ::= 93 | "current" 94 | | "deprecated" 95 | | "obsolete" 96 | 97 | ReferPart ::= 98 | "REFERENCE" Text 99 | | empty 100 | 101 | -- a character string as defined in section 3.1.1 102 | Text ::= value(IA5String) 103 | END 104 | 105 | 106 | -- names of objects 107 | -- (Note that these definitions of ObjectName and NotificationName 108 | -- are not to be IMPORTed by MIB modules.) 109 | 110 | ObjectName ::= 111 | OBJECT IDENTIFIER 112 | 113 | NotificationName ::= 114 | OBJECT IDENTIFIER 115 | 116 | -- syntax of objects 117 | 118 | -- the "base types" defined here are: 119 | -- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER 120 | -- 8 application-defined types: Integer32, IpAddress, Counter32, 121 | -- Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64 122 | 123 | ObjectSyntax ::= 124 | CHOICE { 125 | simple 126 | SimpleSyntax, 127 | 128 | -- note that SEQUENCEs for conceptual tables and 129 | -- rows are not mentioned here... 130 | 131 | application-wide 132 | ApplicationSyntax 133 | } 134 | 135 | -- built-in ASN.1 types 136 | 137 | SimpleSyntax ::= 138 | CHOICE { 139 | -- INTEGERs with a more restrictive range 140 | -- may also be used 141 | integer-value -- includes Integer32 142 | INTEGER (-2147483648..2147483647), 143 | 144 | -- OCTET STRINGs with a more restrictive size 145 | -- may also be used 146 | string-value 147 | OCTET STRING (SIZE (0..65535)), 148 | 149 | objectID-value 150 | OBJECT IDENTIFIER 151 | } 152 | 153 | -- indistinguishable from INTEGER, but never needs more than 154 | -- 32-bits for a two's complement representation 155 | Integer32 ::= 156 | INTEGER (-2147483648..2147483647) 157 | 158 | 159 | -- application-wide types 160 | 161 | ApplicationSyntax ::= 162 | CHOICE { 163 | ipAddress-value 164 | IpAddress, 165 | 166 | counter-value 167 | Counter32, 168 | 169 | timeticks-value 170 | TimeTicks, 171 | 172 | arbitrary-value 173 | Opaque, 174 | 175 | big-counter-value 176 | Counter64, 177 | 178 | unsigned-integer-value -- includes Gauge32 179 | Unsigned32 180 | } 181 | 182 | -- in network-byte order 183 | 184 | -- (this is a tagged type for historical reasons) 185 | IpAddress ::= 186 | [APPLICATION 0] 187 | IMPLICIT OCTET STRING (SIZE (4)) 188 | 189 | -- this wraps 190 | Counter32 ::= 191 | [APPLICATION 1] 192 | IMPLICIT INTEGER (0..4294967295) 193 | 194 | -- this doesn't wrap 195 | Gauge32 ::= 196 | [APPLICATION 2] 197 | IMPLICIT INTEGER (0..4294967295) 198 | 199 | -- an unsigned 32-bit quantity 200 | -- indistinguishable from Gauge32 201 | Unsigned32 ::= 202 | [APPLICATION 2] 203 | IMPLICIT INTEGER (0..4294967295) 204 | 205 | -- hundredths of seconds since an epoch 206 | TimeTicks ::= 207 | [APPLICATION 3] 208 | IMPLICIT INTEGER (0..4294967295) 209 | 210 | -- for backward-compatibility only 211 | Opaque ::= 212 | [APPLICATION 4] 213 | IMPLICIT OCTET STRING 214 | 215 | -- for counters that wrap in less than one hour with only 32 bits 216 | Counter64 ::= 217 | [APPLICATION 6] 218 | IMPLICIT INTEGER (0..18446744073709551615) 219 | 220 | 221 | -- definition for objects 222 | 223 | OBJECT-TYPE MACRO ::= 224 | BEGIN 225 | TYPE NOTATION ::= 226 | "SYNTAX" Syntax 227 | UnitsPart 228 | "MAX-ACCESS" Access 229 | "STATUS" Status 230 | "DESCRIPTION" Text 231 | ReferPart 232 | IndexPart 233 | DefValPart 234 | 235 | VALUE NOTATION ::= 236 | value(VALUE ObjectName) 237 | 238 | Syntax ::= -- Must be one of the following: 239 | -- a base type (or its refinement), 240 | -- a textual convention (or its refinement), or 241 | -- a BITS pseudo-type 242 | type 243 | | "BITS" "{" NamedBits "}" 244 | 245 | NamedBits ::= NamedBit 246 | | NamedBits "," NamedBit 247 | 248 | NamedBit ::= identifier "(" number ")" -- number is nonnegative 249 | 250 | UnitsPart ::= 251 | "UNITS" Text 252 | | empty 253 | 254 | Access ::= 255 | "not-accessible" 256 | | "accessible-for-notify" 257 | | "read-only" 258 | | "read-write" 259 | | "read-create" 260 | 261 | Status ::= 262 | "current" 263 | | "deprecated" 264 | | "obsolete" 265 | 266 | ReferPart ::= 267 | "REFERENCE" Text 268 | | empty 269 | 270 | IndexPart ::= 271 | "INDEX" "{" IndexTypes "}" 272 | | "AUGMENTS" "{" Entry "}" 273 | | empty 274 | IndexTypes ::= 275 | IndexType 276 | | IndexTypes "," IndexType 277 | IndexType ::= 278 | "IMPLIED" Index 279 | | Index 280 | 281 | 282 | Index ::= 283 | -- use the SYNTAX value of the 284 | -- correspondent OBJECT-TYPE invocation 285 | value(ObjectName) 286 | Entry ::= 287 | -- use the INDEX value of the 288 | -- correspondent OBJECT-TYPE invocation 289 | value(ObjectName) 290 | 291 | DefValPart ::= "DEFVAL" "{" Defvalue "}" 292 | | empty 293 | 294 | Defvalue ::= -- must be valid for the type specified in 295 | -- SYNTAX clause of same OBJECT-TYPE macro 296 | value(ObjectSyntax) 297 | | "{" BitsValue "}" 298 | 299 | BitsValue ::= BitNames 300 | | empty 301 | 302 | BitNames ::= BitName 303 | | BitNames "," BitName 304 | 305 | BitName ::= identifier 306 | 307 | -- a character string as defined in section 3.1.1 308 | Text ::= value(IA5String) 309 | END 310 | 311 | 312 | -- definitions for notifications 313 | 314 | NOTIFICATION-TYPE MACRO ::= 315 | BEGIN 316 | TYPE NOTATION ::= 317 | ObjectsPart 318 | "STATUS" Status 319 | "DESCRIPTION" Text 320 | ReferPart 321 | 322 | VALUE NOTATION ::= 323 | value(VALUE NotificationName) 324 | 325 | ObjectsPart ::= 326 | "OBJECTS" "{" Objects "}" 327 | | empty 328 | Objects ::= 329 | Object 330 | | Objects "," Object 331 | Object ::= 332 | value(ObjectName) 333 | 334 | Status ::= 335 | "current" 336 | | "deprecated" 337 | | "obsolete" 338 | 339 | ReferPart ::= 340 | "REFERENCE" Text 341 | | empty 342 | 343 | -- a character string as defined in section 3.1.1 344 | Text ::= value(IA5String) 345 | END 346 | 347 | -- definitions of administrative identifiers 348 | 349 | zeroDotZero OBJECT-IDENTITY 350 | STATUS current 351 | DESCRIPTION 352 | "A value used for null identifiers." 353 | ::= { 0 0 } 354 | 355 | END 356 | -------------------------------------------------------------------------------- /mibs/SOLAgent.mib: -------------------------------------------------------------------------------- 1 | -- ---------------------------------------------------------------------- 2 | -- SOLAgent.mib 3 | -- Siemens 4 | -- Copyright (c) 2004-2009 Siemens AG 5 | -- ---------------------------------------------------------------------- 6 | -- 7 | -- MIB Module : SOL-MIB 8 | -- 9 | -- Revision : V1.0.0.0 10 | -- Date : 2009/03/05 11 | -- 12 | -- ---------------------------------------------------------------------- 13 | SOL-MIB DEFINITIONS ::= BEGIN 14 | 15 | 16 | 17 | IMPORTS 18 | enterprises 19 | FROM RFC1155-SMI 20 | OBJECT-TYPE 21 | FROM RFC-1212 22 | DisplayString 23 | FROM RFC1213-MIB; 24 | 25 | -- SOL tree structure definition 26 | 27 | -- the following should reside in the simaticPC (siemensAD, adProductMibs) MIB 28 | siemensAD OBJECT IDENTIFIER ::= { enterprises 4196 } 29 | adProductMibs OBJECT IDENTIFIER ::= { siemensAD 1 } 30 | simaticPC OBJECT IDENTIFIER ::= { adProductMibs 2 } 31 | 32 | -- now this is SOL 33 | sol OBJECT IDENTIFIER ::= { simaticPC 1 } 34 | 35 | -- SOL system info 36 | solSystem OBJECT IDENTIFIER ::= { sol 1 } -- system info 37 | solSystemType OBJECT IDENTIFIER ::= { solSystem 1 } -- system type 38 | solSystemStatus OBJECT IDENTIFIER ::= { solSystem 2 } -- system status 39 | solSystemWatchdog OBJECT IDENTIFIER ::= { solSystem 3 } -- system watchdog 40 | solSystemHeartbeat OBJECT IDENTIFIER ::= { solSystem 4 } -- system heartbeat 41 | solSystemInterrupt OBJECT IDENTIFIER ::= { solSystem 5 } 42 | solSystemHibernate OBJECT IDENTIFIER ::= { solSystem 6 } -- system hibernate 43 | 44 | solSensor OBJECT IDENTIFIER ::= { sol 2 } -- sensor info 45 | solDisc OBJECT IDENTIFIER ::= { sol 3 } -- disc info 46 | 47 | solEnd OBJECT IDENTIFIER ::= { sol 10 } -- just to mark the end for convenience 48 | 49 | --------------------------------------------- 50 | -- System 51 | --------------------------------------------- 52 | 53 | name OBJECT-TYPE 54 | SYNTAX DisplayString 55 | ACCESS read-only 56 | STATUS mandatory 57 | DESCRIPTION "System name" 58 | ::= { solSystemType 1 } 59 | 60 | -- status 61 | statusValue OBJECT-TYPE 62 | SYNTAX INTEGER 63 | ACCESS read-write 64 | STATUS mandatory 65 | DESCRIPTION "Status value, set this value to 0 to reset status" 66 | ::= { solSystemStatus 1 } 67 | 68 | -- watchdog 69 | watchdogActive OBJECT-TYPE 70 | SYNTAX INTEGER (0..1) 71 | ACCESS read-write 72 | STATUS mandatory 73 | DESCRIPTION "Is watchdog activated?. Set this value to 1/0 to 74 | activate/deactivate the watchdog." 75 | ::= { solSystemWatchdog 1 } 76 | 77 | watchdogTime OBJECT-TYPE 78 | SYNTAX INTEGER (3..255) 79 | ACCESS read-write 80 | STATUS mandatory 81 | DESCRIPTION "Watchdog interval in seconds." 82 | ::= { solSystemWatchdog 2 } 83 | 84 | watchdogResetEnable OBJECT-TYPE 85 | SYNTAX INTEGER (0..1) 86 | ACCESS read-write 87 | STATUS mandatory 88 | DESCRIPTION "Is watchdog reset enabled?. If activated then a watchdog 89 | timeout will hard-reset the system. Set this value 90 | to 1/0 to activate/deactivate the automatic reset." 91 | ::= { solSystemWatchdog 3 } 92 | 93 | -- heartbeat 94 | heartbeatInterval OBJECT-TYPE 95 | SYNTAX INTEGER (1..255) 96 | ACCESS read-write 97 | STATUS mandatory 98 | DESCRIPTION "Heartbeat interval in seconds." 99 | ::= { solSystemHeartbeat 1 } 100 | 101 | heartbeatEnable OBJECT-TYPE 102 | SYNTAX INTEGER (0..1) 103 | ACCESS read-write 104 | STATUS mandatory 105 | DESCRIPTION "Is heartbeat activated? Set this value to 1/0 to 106 | activate/deactivate the heartbeat. If activated then 107 | a heartbeat trap will be triggered every heartbeat interval." 108 | ::= { solSystemHeartbeat 2 } 109 | 110 | -- interrupt 111 | interruptActive OBJECT-TYPE 112 | SYNTAX INTEGER (0..1) 113 | ACCESS read-write 114 | STATUS mandatory 115 | DESCRIPTION "Is interrupt activatec? Set this value to 1/0 to 116 | activate/deactivate the interrupt. If activated then 117 | an interrupt trap will be triggered on every SOM 118 | interrupt." 119 | ::= { solSystemInterrupt 1 } 120 | 121 | -- hibernate 122 | systemHibernate OBJECT-TYPE 123 | SYNTAX INTEGER (0..255) 124 | ACCESS read-write 125 | STATUS mandatory 126 | DESCRIPTION "Is hibernate activated? Set this value is initially 0 if the system 127 | doesn't support hibernate mode. Switch bit 1 to toggle 128 | between enable/disable hibernate" 129 | ::= { solSystemHibernate 0 } 130 | 131 | -- sensor table 132 | sensorTable OBJECT-TYPE 133 | SYNTAX SEQUENCE OF SensorList 134 | ACCESS not-accessible 135 | STATUS mandatory 136 | DESCRIPTION "Table of sensor information. This is no sparse table. 137 | Sensor[1] to Sensor[3] are thermometers, Sensor[4] 138 | to Sensor[6] are fans." 139 | ::= { solSensor 1 } 140 | 141 | SensorList ::= SEQUENCE { 142 | sensorIndex INTEGER (1..6), 143 | sensorEnable INTEGER (0..1), 144 | sensorType INTEGER (1..2), 145 | sensorSubType INTEGER (1..3), 146 | sensorCurrent INTEGER, 147 | sensorUpper INTEGER, 148 | sensorLower INTEGER, 149 | sensorUpperMax INTEGER, 150 | sensorLowerMin INTEGER, 151 | sensorMin INTEGER, 152 | sensorMax INTEGER, 153 | sensorStatus INTEGER, 154 | sensorUpperMaxLimit INTEGER 155 | } 156 | 157 | sensorEntry OBJECT-TYPE 158 | SYNTAX SensorList 159 | ACCESS not-accessible 160 | STATUS mandatory 161 | DESCRIPTION "A sensor" 162 | INDEX { sensorIndex } 163 | ::= { sensorTable 1 } 164 | 165 | sensorIndex OBJECT-TYPE 166 | SYNTAX INTEGER (1..6) 167 | ACCESS read-only 168 | STATUS mandatory 169 | DESCRIPTION "Sensor index." 170 | ::= { sensorEntry 1 } 171 | 172 | sensorType OBJECT-TYPE 173 | SYNTAX INTEGER (1..2) 174 | ACCESS read-only 175 | STATUS mandatory 176 | DESCRIPTION "Type of sensor. A thermometer is a sensor of type 1, 177 | a fan is a sensor of type 2." 178 | ::= { sensorEntry 2 } 179 | 180 | sensorSubType OBJECT-TYPE 181 | SYNTAX INTEGER (1..3) 182 | ACCESS read-only 183 | STATUS mandatory 184 | DESCRIPTION "Subtype of sensor." 185 | ::= { sensorEntry 3 } 186 | 187 | sensorEnable OBJECT-TYPE 188 | SYNTAX INTEGER (0..1) 189 | ACCESS read-only 190 | STATUS mandatory 191 | DESCRIPTION "1 if sensor is enabled, 0 otherwise." 192 | ::= { sensorEntry 4 } 193 | 194 | sensorCurrent OBJECT-TYPE 195 | SYNTAX INTEGER 196 | ACCESS read-only 197 | STATUS mandatory 198 | DESCRIPTION "Current sensor value." 199 | ::= { sensorEntry 5 } 200 | 201 | sensorUpper OBJECT-TYPE 202 | SYNTAX INTEGER 203 | ACCESS read-write 204 | STATUS mandatory 205 | DESCRIPTION "Upper sensor threshold." 206 | ::= { sensorEntry 6 } 207 | 208 | sensorLower OBJECT-TYPE 209 | SYNTAX INTEGER 210 | ACCESS read-write 211 | STATUS mandatory 212 | DESCRIPTION "Lower sensor threshold." 213 | ::= { sensorEntry 7 } 214 | 215 | sensorUpperMax OBJECT-TYPE 216 | SYNTAX INTEGER 217 | ACCESS read-only 218 | STATUS mandatory 219 | DESCRIPTION "Max upper sensor threshold." 220 | ::= { sensorEntry 8 } 221 | 222 | sensorLowerMin OBJECT-TYPE 223 | SYNTAX INTEGER 224 | ACCESS read-only 225 | STATUS mandatory 226 | DESCRIPTION "Min lower sensor threshold." 227 | ::= { sensorEntry 9 } 228 | 229 | sensorMin OBJECT-TYPE 230 | SYNTAX INTEGER 231 | ACCESS read-only 232 | STATUS mandatory 233 | DESCRIPTION "Min sensor value. The minimum value measured since 234 | agent startup." 235 | ::= { sensorEntry 10 } 236 | 237 | sensorMax OBJECT-TYPE 238 | SYNTAX INTEGER 239 | ACCESS read-only 240 | STATUS mandatory 241 | DESCRIPTION "Max sensor value. The maximum value measured since 242 | agent startup." 243 | ::= { sensorEntry 11 } 244 | 245 | sensorStatus OBJECT-TYPE 246 | SYNTAX INTEGER 247 | ACCESS read-only 248 | STATUS mandatory 249 | DESCRIPTION "sensor status. A non-zero value means alarm condition. 250 | See SOM-specification for details." 251 | ::= { sensorEntry 12 } 252 | 253 | sensorUpperMaxLimit OBJECT-TYPE 254 | SYNTAX INTEGER 255 | ACCESS read-only 256 | STATUS mandatory 257 | DESCRIPTION "Max upper sensor threshold limit." 258 | ::= { sensorEntry 13 } 259 | 260 | -- disc table 261 | discTable OBJECT-TYPE 262 | SYNTAX SEQUENCE OF DiscList 263 | ACCESS not-accessible 264 | STATUS mandatory 265 | DESCRIPTION "Table of disc information. This is no sparse table. 266 | This table contains up to 4 discs. If a disc is a S.M.A.R.T.- 267 | disc then every value is accessible. If not, only 268 | discIndex, discIsOk, discCapIsIDE, discCapIsSmart are 269 | accessible. In this case, the disc is assumed to be not ok. 270 | On Windows NT/2000, the discCapIsIDE is broken." 271 | ::= { solDisc 1 } 272 | 273 | DiscList ::= SEQUENCE 274 | { 275 | discIndex INTEGER (1..4), 276 | discIsOk INTEGER (0..1), 277 | discCapIsIDE INTEGER (0..1), 278 | discCapIsSmart INTEGER (0..1), 279 | discIdModelNumber OCTET STRING (SIZE(40)), 280 | discIdFirmwareRev OCTET STRING (SIZE(8)), 281 | discIdSerialNumber OCTET STRING (SIZE(20)), 282 | discIdNumCyls INTEGER, 283 | discIdNumHeads INTEGER, 284 | discIdBytesPerTrack INTEGER, 285 | discIdBytesPerSector INTEGER 286 | } 287 | 288 | discEntry OBJECT-TYPE 289 | SYNTAX DiscList 290 | ACCESS not-accessible 291 | STATUS mandatory 292 | DESCRIPTION "A disc." 293 | INDEX { discIndex } 294 | ::= { discTable 1 } 295 | 296 | discIndex OBJECT-TYPE 297 | SYNTAX INTEGER (1..4) 298 | ACCESS read-only 299 | STATUS mandatory 300 | DESCRIPTION "Disc index." 301 | ::= { discEntry 1 } 302 | 303 | discIsOk OBJECT-TYPE 304 | SYNTAX INTEGER (0..1) 305 | ACCESS read-only 306 | STATUS mandatory 307 | DESCRIPTION "1 if disc is ok, 0 if disc is about to crash and should 308 | be replaced." 309 | ::= { discEntry 2 } 310 | 311 | discCapIsIDE OBJECT-TYPE 312 | SYNTAX INTEGER (0..1) 313 | ACCESS read-only 314 | STATUS mandatory 315 | DESCRIPTION "1 if disc is an IDE disc, 0 otherwise. On Windows NT, 316 | this is broken." 317 | ::= { discEntry 3 } 318 | 319 | discCapIsSmart OBJECT-TYPE 320 | SYNTAX INTEGER (0..1) 321 | ACCESS read-only 322 | STATUS mandatory 323 | DESCRIPTION "1 if disc is a S.M.A.R.T. disc, 0 otherwise." 324 | ::= { discEntry 4 } 325 | 326 | discIdModelNumber OBJECT-TYPE 327 | SYNTAX OCTET STRING (SIZE(40)) 328 | ACCESS read-only 329 | STATUS mandatory 330 | DESCRIPTION "Disc model number." 331 | ::= { discEntry 11 } 332 | 333 | discIdFirmwareRev OBJECT-TYPE 334 | SYNTAX OCTET STRING (SIZE(8)) 335 | ACCESS read-only 336 | STATUS mandatory 337 | DESCRIPTION "Disc firmware revision." 338 | ::= { discEntry 12 } 339 | 340 | discIdSerialNumber OBJECT-TYPE 341 | SYNTAX OCTET STRING (SIZE(20)) 342 | ACCESS read-only 343 | STATUS mandatory 344 | DESCRIPTION "Disc serial number." 345 | ::= { discEntry 13 } 346 | 347 | discIdNumCyls OBJECT-TYPE 348 | SYNTAX INTEGER 349 | ACCESS read-only 350 | STATUS mandatory 351 | DESCRIPTION "Number of cylinders." 352 | ::= { discEntry 21 } 353 | 354 | discIdNumHeads OBJECT-TYPE 355 | SYNTAX INTEGER 356 | ACCESS read-only 357 | STATUS mandatory 358 | DESCRIPTION "Number of heads." 359 | ::= { discEntry 22 } 360 | 361 | discIdBytesPerTrack OBJECT-TYPE 362 | SYNTAX INTEGER 363 | ACCESS read-only 364 | STATUS mandatory 365 | DESCRIPTION "Number of bytes/track." 366 | ::= { discEntry 23 } 367 | 368 | discIdBytesPerSector OBJECT-TYPE 369 | SYNTAX INTEGER 370 | ACCESS read-only 371 | STATUS mandatory 372 | DESCRIPTION "Number of bytes/sector." 373 | ::= { discEntry 24 } 374 | 375 | -- end sol 376 | solEndMarker OBJECT-TYPE 377 | SYNTAX INTEGER (0..1) 378 | ACCESS read-only 379 | STATUS mandatory 380 | DESCRIPTION "End marker (for convenience)." 381 | ::= { solEnd 1 } 382 | 383 | -- Traps 384 | Heartbeat TRAP-TYPE 385 | ENTERPRISE sol 386 | DESCRIPTION "Heartbeat failed." 387 | ::= 1 388 | 389 | SOMInterrupt TRAP-TYPE 390 | ENTERPRISE sol 391 | DESCRIPTION "SOM driver interrupt occurred." 392 | ::= 2 393 | 394 | SOMCreateThreadError TRAP-TYPE 395 | ENTERPRISE sol 396 | DESCRIPTION "SOM driver create-thread-error occurred." 397 | ::= 3 398 | 399 | SOMIOCTLError TRAP-TYPE 400 | ENTERPRISE sol 401 | DESCRIPTION "SOM driver IOCTL-error occurred." 402 | ::= 4 403 | 404 | SOMWatchdog TRAP-TYPE 405 | ENTERPRISE sol 406 | DESCRIPTION "SOM watchdog timeout occurred." 407 | ::= 5 408 | 409 | END -------------------------------------------------------------------------------- /mibs/automationPS.mib: -------------------------------------------------------------------------------- 1 | -- ------------------------------------------------------------------------ 2 | -- automationPS.mib 3 | -- 4 | -- SIEMENS AG 5 | -- Industry Sector 6 | -- 7 | -- object definitions to manage the 8 | -- power supplies of a Siemens A&D system 9 | -- 10 | -- Copyright (c) 2005-2008 Siemens AG 11 | -- All rights reserved. 12 | -- ------------------------------------------------------------------------ 13 | 14 | AUTOMATION-PS-MIB DEFINITIONS ::= BEGIN 15 | 16 | IMPORTS 17 | automationMgmt FROM AUTOMATION-SMI 18 | DisplayString FROM SNMPv2-TC 19 | Unsigned32, 20 | OBJECT-TYPE, 21 | NOTIFICATION-TYPE, 22 | MODULE-IDENTITY FROM SNMPv2-SMI 23 | MODULE-COMPLIANCE, 24 | OBJECT-GROUP, 25 | NOTIFICATION-GROUP FROM SNMPv2-CONF; 26 | 27 | automationPSMIB MODULE-IDENTITY 28 | LAST-UPDATED "200811100000Z" 29 | ORGANIZATION "Siemens AG" 30 | CONTACT-INFO " 31 | Siemens AG 32 | Industry Sector 33 | I IA SC IC RD 5 34 | Ingo Landgraf 35 | 36 | Postal: Gleiwitzer Strasse 555 37 | Nuremberg-Moorenbrunn 38 | D-90475 39 | Tel: +49 911 895 3765 40 | E-mail: ingo.landgraf@siemens.com 41 | " 42 | DESCRIPTION " 43 | Definition of management objects to 44 | manage the power supplies A&D product. 45 | " 46 | REVISION "200811100000Z" 47 | DESCRIPTION "Update the contact information." 48 | 49 | REVISION "200804290000Z" 50 | DESCRIPTION "Bugfixes, automationPSIndex not in 51 | automationHwPSStatusChanged anymore." 52 | REVISION "200511010000Z" 53 | DESCRIPTION "Initial Version of the MIB module." 54 | ::= { automationMgmt 5 } 55 | 56 | -- ------------------------------------------------------------------------ 57 | -- groups of mib module 58 | -- ------------------------------------------------------------------------ 59 | automationPSObjects OBJECT IDENTIFIER ::= { automationPSMIB 1 } 60 | automationPSNotifications OBJECT IDENTIFIER ::= { automationPSMIB 2 } 61 | automationPSConformance OBJECT IDENTIFIER ::= { automationPSMIB 3 } 62 | 63 | -- ------------------------------------------------------------------------ 64 | -- status of the power supply units 65 | -- ------------------------------------------------------------------------ 66 | automationPSTable OBJECT-TYPE 67 | SYNTAX SEQUENCE OF AutomationPSEntry 68 | MAX-ACCESS not-accessible 69 | STATUS current 70 | DESCRIPTION "A table which contains information about 71 | the systems power supplies." 72 | ::= { automationPSObjects 1 } 73 | 74 | automationPSEntry OBJECT-TYPE 75 | SYNTAX AutomationPSEntry 76 | MAX-ACCESS not-accessible 77 | STATUS current 78 | DESCRIPTION " 79 | A row in the power supply table. Entries 80 | cannot be created or deleted via SNMP 81 | operations. 82 | " 83 | INDEX { automationPSIndex } 84 | ::= { automationPSTable 1 } 85 | 86 | AutomationPSEntry ::= SEQUENCE { 87 | automationPSIndex Unsigned32, 88 | automationPSStatus INTEGER, 89 | automationPSMask INTEGER, 90 | automationPSVoltageOutput DisplayString 91 | } 92 | 93 | automationPSIndex OBJECT-TYPE 94 | SYNTAX Unsigned32 95 | MAX-ACCESS not-accessible 96 | STATUS current 97 | DESCRIPTION "The unique value which identifies this 98 | entry." 99 | ::= { automationPSEntry 1 } 100 | 101 | automationPSStatus OBJECT-TYPE 102 | SYNTAX INTEGER { inactive(1), active(2) } 103 | MAX-ACCESS read-only 104 | STATUS current 105 | DESCRIPTION "The status of the correspondig PSU." 106 | ::= { automationPSEntry 2 } 107 | 108 | automationPSMask OBJECT-TYPE 109 | SYNTAX INTEGER { not-checked(1), checked(2) } 110 | MAX-ACCESS read-write 111 | STATUS current 112 | DESCRIPTION "The mask status of the corresponding PSU." 113 | DEFVAL { not-checked } 114 | ::= { automationPSEntry 3 } 115 | 116 | automationPSVoltageOutput OBJECT-TYPE 117 | SYNTAX DisplayString 118 | MAX-ACCESS read-only 119 | STATUS current 120 | DESCRIPTION " 121 | The nominal voltage output of the 122 | power supply as marked at 123 | front panel, e. g. DC24V, AC220V 124 | " 125 | ::= { automationPSEntry 4 } 126 | 127 | -- ------------------------------------------------------------------------ 128 | -- events 129 | -- ------------------------------------------------------------------------ 130 | automationPSNotificationsV2 OBJECT IDENTIFIER 131 | ::= { automationPSNotifications 0 } 132 | 133 | automationHwPSStatusChanged NOTIFICATION-TYPE 134 | OBJECTS { automationPSStatus } 135 | STATUS current 136 | DESCRIPTION " 137 | The system triggers this event in case the 138 | status of a PSU changes. 139 | The variable bindings contain the status 140 | of of the affected PSU. 141 | " 142 | ::= { automationPSNotificationsV2 1 } 143 | 144 | -- ------------------------------------------------------------------------ 145 | -- conformance statements 146 | -- ------------------------------------------------------------------------ 147 | -- 148 | -- MIB groupings 149 | -- 150 | automationPSGroups OBJECT IDENTIFIER 151 | ::= { automationPSConformance 1 } 152 | 153 | automationPSInfoGroup OBJECT-GROUP 154 | OBJECTS { 155 | automationPSStatus, 156 | automationPSVoltageOutput 157 | } 158 | STATUS current 159 | DESCRIPTION "Status and voltage of a PSU." 160 | ::= { automationPSGroups 1 } 161 | 162 | automationPSMonitorGroup OBJECT-GROUP 163 | OBJECTS { automationPSMask } 164 | STATUS current 165 | DESCRIPTION "Enable monitoring of power supplies." 166 | ::= { automationPSGroups 2 } 167 | 168 | automationPSStatusEvents NOTIFICATION-GROUP 169 | NOTIFICATIONS { automationHwPSStatusChanged } 170 | STATUS current 171 | DESCRIPTION "Notifications about status changes of 172 | the PSUs." 173 | ::= { automationPSGroups 8 } 174 | 175 | -- 176 | -- compliance specifications 177 | -- 178 | automationPSCompliances OBJECT IDENTIFIER 179 | ::= { automationPSConformance 2 } 180 | 181 | automationPSInfoCompliance MODULE-COMPLIANCE 182 | STATUS current 183 | DESCRIPTION "Basic requirements. Contains 184 | read-only objects." 185 | MODULE -- compliance to the containing MIB module 186 | MANDATORY-GROUPS { automationPSInfoGroup } 187 | ::= { automationPSCompliances 1 } 188 | 189 | automationPSMonitorCompliance MODULE-COMPLIANCE 190 | STATUS current 191 | DESCRIPTION "Enables monitoring of power supplies. 192 | Support of notifications required." 193 | MODULE -- compliance to the containing MIB module 194 | MANDATORY-GROUPS { automationPSInfoGroup, 195 | automationPSMonitorGroup, 196 | automationPSStatusEvents } 197 | ::= { automationPSCompliances 2 } 198 | END 199 | -------------------------------------------------------------------------------- /mibs/automationSmi.mib: -------------------------------------------------------------------------------- 1 | -- ---------------------------------------------------------------------- 2 | -- automationSmi.mib 3 | -- 4 | -- SIEMENS AG 5 | -- Industry Sector 6 | -- 7 | -- Siemens A&D Enterprise Structure of Management Information 8 | -- 9 | -- Copyright (c) 2005-2008 Siemens AG 10 | -- All rights reserved. 11 | -- ---------------------------------------------------------------------- 12 | 13 | AUTOMATION-SMI DEFINITIONS ::= BEGIN 14 | 15 | IMPORTS 16 | siemens FROM SIEMENS-SMI 17 | MODULE-IDENTITY, 18 | OBJECT-IDENTITY FROM SNMPv2-SMI; 19 | 20 | automation MODULE-IDENTITY 21 | LAST-UPDATED "200811100000Z" 22 | ORGANIZATION "Siemens AG" 23 | CONTACT-INFO " 24 | Siemens AG 25 | Industry Sector 26 | I IA SC IC RD 5 27 | Ingo Landgraf 28 | 29 | Postal: Gleiwitzer Strasse 555 30 | Nuremberg-Moorenbrunn 31 | D-90475 32 | Tel: +49 911 895 3765 33 | E-mail: ingo.landgraf@siemens.com 34 | " 35 | DESCRIPTION " 36 | The root object identifier of Siemens A&D. 37 | The MIB module provides the structure of 38 | management information of Siemens AG, 39 | Department Automation & Drives. 40 | " 41 | REVISION "200811100000Z" 42 | DESCRIPTION "Update the contact information" 43 | 44 | REVISION "200806020000Z" 45 | DESCRIPTION "declaration of siemens node will be imported 46 | now from SIEMENS-SMI" 47 | 48 | REVISION "200804290000Z" 49 | DESCRIPTION "declaration of siemens node moved into 50 | declaration of MODULE IDENTITY." 51 | 52 | REVISION "200501120000Z" 53 | DESCRIPTION "Initial Version of the MIB module." 54 | ::= { siemens 6 } 55 | 56 | automationProducts OBJECT-IDENTITY 57 | STATUS current 58 | DESCRIPTION " 59 | automationProducts is the product specific 60 | subtree. The root OIDs of the product 61 | subtrees are used as sysObjectID as well. 62 | " 63 | ::= { automation 1 } 64 | 65 | automationPlc OBJECT-IDENTITY 66 | STATUS current 67 | DESCRIPTION "Subtree for SIMATIC S7 PLC products." 68 | ::= { automationProducts 1 } 69 | 70 | automationSimaticNet OBJECT-IDENTITY 71 | STATUS current 72 | DESCRIPTION "Subtree for SIMATIC NET products." 73 | ::= { automationProducts 2 } 74 | 75 | automationMotionControl OBJECT-IDENTITY 76 | STATUS current 77 | DESCRIPTION "Subtree for motion control products of 78 | Siemens." 79 | ::= { automationProducts 3 } 80 | 81 | automationHmi OBJECT-IDENTITY 82 | STATUS current 83 | DESCRIPTION "Subtree for SIMATIC HMI products." 84 | ::= { automationProducts 4 } 85 | 86 | automationModules OBJECT-IDENTITY 87 | STATUS current 88 | DESCRIPTION " 89 | This subtree is reserved for 90 | administratively assigned 91 | OBJECT IDENTIFIERS,i.e. those which 92 | are not associated with MIB objects. 93 | These could be TEXTUAL CONVENTIONS, 94 | module registration and so on. 95 | " 96 | ::= { automation 2 } 97 | 98 | automationMgmt OBJECT-IDENTITY 99 | STATUS current 100 | DESCRIPTION "The subtree which contains the MIB 101 | modules to manage a Siemens 102 | A&D system." 103 | ::= { automation 3 } 104 | 105 | automationAgentCapability OBJECT-IDENTITY 106 | STATUS current 107 | DESCRIPTION "Subtree for agent profiles." 108 | ::= { automation 4 } 109 | 110 | automationPlcAgentCapability OBJECT-IDENTITY 111 | STATUS current 112 | DESCRIPTION "Subtree for SIMATIC S7 agent profiles." 113 | ::= { automationAgentCapability 1 } 114 | 115 | automationSimaticNetAgentCapability OBJECT-IDENTITY 116 | STATUS current 117 | DESCRIPTION "Subtree for SIMATIC NET agent profiles." 118 | ::= { automationAgentCapability 2 } 119 | 120 | automationMotionControlAgentCapability OBJECT-IDENTITY 121 | STATUS current 122 | DESCRIPTION "Subtree for motion control agent profiles." 123 | ::= { automationAgentCapability 3 } 124 | 125 | automationHmiAgentCapability OBJECT-IDENTITY 126 | STATUS current 127 | DESCRIPTION "Subtree for HMI agent profiles." 128 | ::= { automationAgentCapability 4 } 129 | 130 | END -------------------------------------------------------------------------------- /mibs/automationTc.mib: -------------------------------------------------------------------------------- 1 | -- ---------------------------------------------------------------------- 2 | -- automationTc.mib 3 | -- 4 | -- SIEMENS AG 5 | -- Industry Sector 6 | -- 7 | -- general textual conventions 8 | -- 9 | -- Copyright (c) 2005-2008 Siemens AG 10 | -- All rights reserved. 11 | -- ---------------------------------------------------------------------- 12 | 13 | AUTOMATION-TC DEFINITIONS ::= BEGIN 14 | 15 | IMPORTS 16 | automationModules FROM AUTOMATION-SMI 17 | MODULE-IDENTITY FROM SNMPv2-SMI 18 | DisplayString, 19 | TEXTUAL-CONVENTION FROM SNMPv2-TC; 20 | 21 | automationTcModule MODULE-IDENTITY 22 | LAST-UPDATED "200811100000Z" 23 | ORGANIZATION "Siemens AG" 24 | CONTACT-INFO " 25 | Siemens AG 26 | Industry Sector 27 | I IA SC IC RD 5 28 | Ingo Landgraf 29 | 30 | Postal: Gleiwitzer Strasse 555 31 | Nuremberg-Moorenbrunn 32 | D-90475 33 | Tel: +49 911 895 3765 34 | E-mail: ingo.landgraf@siemens.com 35 | " 36 | DESCRIPTION "Definition of general TEXTUAL CONVENTIONS 37 | for Siemens Industry Sector." 38 | 39 | REVISION "200811100000Z" 40 | DESCRIPTION "Update the contact information." 41 | 42 | REVISION "200804290000Z" 43 | DESCRIPTION "textual convention for 44 | AutomationLocationString and 45 | AutomationFunctionString added according 46 | IEC61158-6-10." 47 | 48 | REVISION "200501120000Z" 49 | DESCRIPTION "Initial Version of the MIB module." 50 | ::= { automationModules 1 } 51 | 52 | AutomationOrderNumber ::= TEXTUAL-CONVENTION 53 | STATUS current 54 | DESCRIPTION "The format of type identification / order 55 | numbers of Siemens A&D products." 56 | SYNTAX OCTET STRING (SIZE (16..32)) 57 | 58 | AutomationSerialNumber ::= TEXTUAL-CONVENTION 59 | STATUS current 60 | DESCRIPTION "The format of serial numbers of 61 | Siemens A&D products." 62 | SYNTAX OCTET STRING (SIZE (32)) 63 | 64 | AutomationVersionNumber ::= TEXTUAL-CONVENTION 65 | STATUS current 66 | DESCRIPTION "The version format of Siemens A&D in a 67 | simplified OSLO form : 68 | [RCSTBPVKD][0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2} 69 | " 70 | SYNTAX OCTET STRING (SIZE (32)) 71 | 72 | AutomationMacAddress ::= TEXTUAL-CONVENTION 73 | STATUS current 74 | DESCRIPTION " 75 | A six octet string (48-bit), using the 76 | hexadecimal representation, in canonical 77 | order specified by IEEE Std 802 78 | (Overview and Architecture, 79 | formerly IEEE Std 802.1a). 80 | 81 | Shorter MAC address values than 48 bits, if 82 | used, are represented by setting their 83 | unused upper octets to all 0's, i.e., 84 | the 16-bit address AAFF shall be 85 | represented as 00000000AAFF. 86 | " 87 | SYNTAX OCTET STRING (SIZE (6)) 88 | 89 | AutomationIpAddress ::= TEXTUAL-CONVENTION 90 | STATUS current 91 | DESCRIPTION " 92 | An octet string which represents either a 93 | IPv4 address or a IPv6a ddress or 94 | a DNS compliant name. 95 | " 96 | SYNTAX OCTET STRING 97 | 98 | AutomationStatus ::= TEXTUAL-CONVENTION 99 | STATUS current 100 | DESCRIPTION "A uniform representation of status values." 101 | SYNTAX INTEGER { invalid(0), enable(1), disable(2) } 102 | 103 | AutomationTrigger ::= TEXTUAL-CONVENTION 104 | STATUS current 105 | DESCRIPTION "A uniform representation of trigger values" 106 | SYNTAX INTEGER { trigger(1), notTriggered(2) } 107 | 108 | AutomationFunctionString ::= TEXTUAL-CONVENTION 109 | STATUS current 110 | DESCRIPTION " 111 | The format of function tags according 112 | IEC 61158-6-10, chapter 6.2.4.83.13. 113 | The value shall be filled with blanks 114 | if it is shorter than 32. 115 | Non-printable characters and 116 | control sequences are not allowed. 117 | " 118 | SYNTAX DisplayString (SIZE (32)) 119 | 120 | AutomationLocationString ::= TEXTUAL-CONVENTION 121 | STATUS current 122 | DESCRIPTION " 123 | The format of function tags according 124 | IEC 61158-6-10, chapter 6.2.4.83.14. 125 | The value shall be filled with blanks 126 | if it is shorter than 22. 127 | Non-printable characters and 128 | control sequences are not allowed. 129 | " 130 | SYNTAX DisplayString (SIZE (22)) 131 | 132 | END -------------------------------------------------------------------------------- /mibs/automationTime.mib: -------------------------------------------------------------------------------- 1 | -- ------------------------------------------------------------------------ 2 | -- automationTime.mib 3 | -- 4 | -- SIEMENS AG 5 | -- Industry Sector 6 | -- 7 | -- object definitions to manage the 8 | -- system time and time sync 9 | -- 10 | -- Copyright (c) 2005-2008 Siemens AG 11 | -- All rights reserved. 12 | -- ------------------------------------------------------------------------ 13 | 14 | AUTOMATION-TIME-MIB DEFINITIONS ::= BEGIN 15 | 16 | IMPORTS 17 | automationMgmt FROM AUTOMATION-SMI 18 | AutomationStatus FROM AUTOMATION-TC 19 | DateAndTime, 20 | DisplayString FROM SNMPv2-TC 21 | Unsigned32, 22 | OBJECT-TYPE, 23 | NOTIFICATION-TYPE, 24 | MODULE-IDENTITY FROM SNMPv2-SMI 25 | MODULE-COMPLIANCE, 26 | OBJECT-GROUP, 27 | NOTIFICATION-GROUP FROM SNMPv2-CONF; 28 | 29 | automationTimeMIB MODULE-IDENTITY 30 | LAST-UPDATED "200811100000Z" 31 | ORGANIZATION "Siemens AG" 32 | CONTACT-INFO " 33 | Siemens AG 34 | Industry Sector 35 | I IA SC IC RD 5 36 | Ingo Landgraf 37 | 38 | Postal: Gleiwitzer Strasse 555 39 | Nuremberg-Moorenbrunn 40 | D-90475 41 | Tel: +49 911 895 3765 42 | E-mail: ingo.landgraf@siemens.com 43 | " 44 | DESCRIPTION " 45 | Definition of management objects to 46 | display and change the system time 47 | of a A&D product and to manage 48 | the sync mechanisms. 49 | " 50 | 51 | REVISION "200811100000Z" 52 | DESCRIPTION "Update the contact information." 53 | 54 | REVISION "200804290000Z" 55 | DESCRIPTION "Bugfix. automationTimeSyncName used in 56 | automationTimeChanged instead 57 | automationTimeIndex now. 58 | " 59 | 60 | REVISION "200511010000Z" 61 | DESCRIPTION "Initial Version of the MIB module." 62 | ::= { automationMgmt 3 } 63 | 64 | -- ------------------------------------------------------------------------ 65 | -- groups of mib module 66 | -- ------------------------------------------------------------------------ 67 | automationTimeObjects OBJECT IDENTIFIER ::= { automationTimeMIB 1 } 68 | automationTimeNotifications OBJECT IDENTIFIER ::= { automationTimeMIB 2 } 69 | automationTimeConformance OBJECT IDENTIFIER ::= { automationTimeMIB 3 } 70 | 71 | -- ------------------------------------------------------------------------ 72 | -- time objects 73 | -- ------------------------------------------------------------------------ 74 | automationTime OBJECT-TYPE 75 | SYNTAX DateAndTime 76 | MAX-ACCESS read-only 77 | STATUS current 78 | DESCRIPTION "The systems absolute time 79 | (not the uptime !)." 80 | ::= { automationTimeObjects 1 } 81 | 82 | automationTimeLastSync OBJECT-TYPE 83 | SYNTAX OBJECT IDENTIFIER 84 | MAX-ACCESS read-only 85 | STATUS current 86 | DESCRIPTION " 87 | A link into the sync table. Identifies the 88 | mechanism which was used for the last 89 | synchronization. 90 | " 91 | ::= { automationTimeObjects 2 } 92 | 93 | automationTimeSyncTable OBJECT-TYPE 94 | SYNTAX SEQUENCE OF AutomationTimeSyncEntry 95 | MAX-ACCESS not-accessible 96 | STATUS current 97 | DESCRIPTION "The table allows controlling of the sync 98 | mechanims." 99 | ::= { automationTimeObjects 3 } 100 | 101 | automationTimeSyncEntry OBJECT-TYPE 102 | SYNTAX AutomationTimeSyncEntry 103 | MAX-ACCESS not-accessible 104 | STATUS current 105 | DESCRIPTION " 106 | A row in the time sync table. Each row 107 | represents a sync mechanism and contains 108 | objects to monitor and control this 109 | mechanism. 110 | Entries cannot be created or deleted 111 | via SNMP operations. 112 | " 113 | INDEX { automationTimeSyncIndex } 114 | ::= { automationTimeSyncTable 1 } 115 | 116 | AutomationTimeSyncEntry ::= SEQUENCE { 117 | automationTimeSyncIndex Unsigned32, 118 | automationTimeSyncName DisplayString, 119 | automationTimeAdminStatus AutomationStatus 120 | } 121 | 122 | automationTimeSyncIndex OBJECT-TYPE 123 | SYNTAX Unsigned32 124 | MAX-ACCESS not-accessible 125 | STATUS current 126 | DESCRIPTION "The unique value which identifies this 127 | entry." 128 | ::= { automationTimeSyncEntry 1 } 129 | 130 | automationTimeSyncName OBJECT-TYPE 131 | SYNTAX DisplayString 132 | MAX-ACCESS read-only 133 | STATUS current 134 | DESCRIPTION "The name of the sync mechanism." 135 | ::= { automationTimeSyncEntry 2 } 136 | 137 | automationTimeAdminStatus OBJECT-TYPE 138 | SYNTAX AutomationStatus 139 | MAX-ACCESS read-write 140 | STATUS current 141 | DESCRIPTION " 142 | Controls whether the system shall accept 143 | synchronization events over this mechanism. 144 | 145 | If the agent restricts the write access, no 146 | matter what reason (e.g. an active PROFINET 147 | configuration), it must reject write 148 | requests by responding with 'badValue'. 149 | " 150 | DEFVAL { disable } 151 | ::= { automationTimeSyncEntry 3 } 152 | 153 | -- ------------------------------------------------------------------------ 154 | -- events 155 | -- ------------------------------------------------------------------------ 156 | automationTimeNotificationsV2 OBJECT IDENTIFIER 157 | ::= { automationTimeNotifications 0 } 158 | 159 | automationTimeChanged NOTIFICATION-TYPE 160 | OBJECTS { automationTimeSyncName, automationTime } 161 | STATUS current 162 | DESCRIPTION " 163 | The system triggers this event in case 164 | the value of automationTime was changed. 165 | The event contains the new time of the 166 | system and the mechanism used to change it. 167 | " 168 | ::= { automationTimeNotificationsV2 1 } 169 | 170 | -- ------------------------------------------------------------------------ 171 | -- conformance statements 172 | -- ------------------------------------------------------------------------ 173 | -- 174 | -- MIB groupings 175 | -- 176 | automationTimeSyncGroups OBJECT IDENTIFIER 177 | ::= { automationTimeConformance 1 } 178 | 179 | automationTimeInfoGroup OBJECT-GROUP 180 | OBJECTS { automationTime } 181 | STATUS current 182 | DESCRIPTION "The system time." 183 | ::= { automationTimeSyncGroups 1 } 184 | 185 | automationTimeSyncControlGroup OBJECT-GROUP 186 | OBJECTS { 187 | automationTimeLastSync, 188 | automationTimeSyncName, 189 | automationTimeAdminStatus 190 | } 191 | STATUS current 192 | DESCRIPTION "Controlling of the time synchronization." 193 | ::= { automationTimeSyncGroups 2 } 194 | 195 | automationTimeSyncEvents NOTIFICATION-GROUP 196 | NOTIFICATIONS { automationTimeChanged } 197 | STATUS current 198 | DESCRIPTION "Notifications about time changes of 199 | the system." 200 | ::= { automationTimeSyncGroups 3 } 201 | 202 | -- 203 | -- compliance specifications 204 | -- 205 | automationTimeCompliances OBJECT IDENTIFIER 206 | ::= { automationTimeConformance 2 } 207 | 208 | automationTimeInfoCompliance MODULE-COMPLIANCE 209 | STATUS current 210 | DESCRIPTION "Basic requirements, displays only time." 211 | MODULE -- compliance to the containing MIB module 212 | MANDATORY-GROUPS { automationTimeInfoGroup } 213 | ::= { automationTimeCompliances 1 } 214 | 215 | automationTimeSyncCompliance MODULE-COMPLIANCE 216 | STATUS current 217 | DESCRIPTION " 218 | Enables controlling of the time 219 | synchronization. 220 | Support of notifications is required. 221 | " 222 | MODULE -- compliance to the containing MIB module 223 | MANDATORY-GROUPS { 224 | automationTimeInfoGroup, 225 | automationTimeSyncControlGroup, 226 | automationTimeSyncEvents 227 | } 228 | ::= { automationTimeCompliances 2 } 229 | 230 | END 231 | -------------------------------------------------------------------------------- /mibs/hmARC.mib: -------------------------------------------------------------------------------- 1 | HMRINGARC-MGMT-SNMP-MIB DEFINITIONS ::= BEGIN 2 | 3 | IMPORTS 4 | MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, OBJECT-IDENTITY, 5 | IpAddress, Integer32, Unsigned32 FROM SNMPv2-SMI 6 | DisplayString FROM SNMPv2-TC 7 | hmRingRedundancy FROM HMRING-MGMT-SNMP-MIB; 8 | 9 | 10 | hmARC MODULE-IDENTITY 11 | LAST-UPDATED "201009011200Z" -- 01 Sept 2010 12:00:00 GMT 12 | ORGANIZATION "Hirschmann Automation and Control GmbH" 13 | CONTACT-INFO 14 | " Contact: Customer Support 15 | Postal: Hirschmann Automation and Control GmbH 16 | Stuttgarter Strasse 45-51 17 | DE-72654 Neckartenzlingen 18 | Germany 19 | Tel: +49-7127-14-1981 20 | Fax: +49-7127-14-1542 21 | URL: www.hicomcenter.com 22 | E-mail: hicomcenter@hirschmann.com" 23 | DESCRIPTION 24 | "The Hirschmann Private Automatic Ring Configuration MIB definitions." 25 | 26 | -- Revision history. 27 | REVISION 28 | "201009011200Z" -- 01 Sept 2010 12:00:00 GMT 29 | DESCRIPTION 30 | "Initial Release" 31 | ::= { hmRingRedundancy 7 } 32 | 33 | -- 34 | -- ARC Automatic Ring Configuration Variables -- 35 | -- 36 | 37 | hmArcManagerConfig OBJECT IDENTIFIER ::= { hmARC 1 } 38 | hmArcManagerStatus OBJECT IDENTIFIER ::= { hmARC 2 } 39 | hmArcClientConfig OBJECT IDENTIFIER ::= { hmARC 3 } 40 | hmArcClientStatus OBJECT IDENTIFIER ::= { hmARC 4 } 41 | 42 | -- 43 | -- ARC Manager Config -- 44 | -- 45 | 46 | hmArcManagerAdminStatus OBJECT-TYPE 47 | SYNTAX INTEGER { 48 | enabled(1), 49 | disabled(2) 50 | } 51 | MAX-ACCESS read-write 52 | STATUS current 53 | DESCRIPTION 54 | "The administratively desired status of the ARC manager. 55 | 56 | enabled(1): ARC manager is active, the device can check and configure other ARC devices. 57 | disabled(2): ARC manager is inactive, neither checking nor automatic configuring can be done." 58 | DEFVAL { disabled } 59 | ::= { hmArcManagerConfig 1 } 60 | 61 | hmArcManagerRedProtocol OBJECT-TYPE 62 | SYNTAX INTEGER { 63 | mrp(1) 64 | } 65 | MAX-ACCESS read-write 66 | STATUS current 67 | DESCRIPTION 68 | "The ring redundancy protocol the clients will be configured for. Parameters like VLAN ID 69 | and timings are taken from the current redundancy manager configuration. 70 | 71 | mrp(1): Media Redundancy Protocol, according to IEC62439-2." 72 | ::= { hmArcManagerConfig 2 } 73 | 74 | hmArcManagerPrimGroupID OBJECT-TYPE 75 | SYNTAX Integer32 76 | MAX-ACCESS read-only 77 | STATUS current 78 | DESCRIPTION "Unique index to identify the slot number of 79 | the primary link of the ARC manager. This value is never 80 | greater than hmSysGroupCapacity. " 81 | ::= { hmArcManagerConfig 3 } 82 | 83 | hmArcManagerPrimIfIndex OBJECT-TYPE 84 | SYNTAX Integer32 85 | MAX-ACCESS read-only 86 | STATUS current 87 | DESCRIPTION "Interface index of the primary link of the ARC manager." 88 | ::= { hmArcManagerConfig 4 } 89 | 90 | hmArcManagerRedGroupID OBJECT-TYPE 91 | SYNTAX Integer32 92 | MAX-ACCESS read-only 93 | STATUS current 94 | DESCRIPTION "Unique index to identify the slot number of 95 | the redundant link of the ARC manager. This value is never 96 | greater than hmSysGroupCapacity. " 97 | ::= { hmArcManagerConfig 5 } 98 | 99 | hmArcManagerRedIfIndex OBJECT-TYPE 100 | SYNTAX Integer32 101 | MAX-ACCESS read-only 102 | STATUS current 103 | DESCRIPTION "Interface index of the redundant link of the ARC manager." 104 | ::= { hmArcManagerConfig 6 } 105 | 106 | hmArcManagerVlanID OBJECT-TYPE 107 | SYNTAX Integer32 108 | MAX-ACCESS read-only 109 | STATUS current 110 | DESCRIPTION 111 | "VLAN identifier of the ARC manager. 112 | If value is set to 0 no VLAN is assigned." 113 | ::= { hmArcManagerConfig 7 } 114 | 115 | hmArcManagerAction OBJECT-TYPE 116 | SYNTAX INTEGER { 117 | noAction(1), 118 | checkTopology(2), 119 | configureRing(3) 120 | } 121 | MAX-ACCESS read-write 122 | STATUS current 123 | DESCRIPTION 124 | "The actions the ARC manager is able to activate. 125 | 126 | This object, when read, returns noAction(1) if no action is currently running. 127 | checkTopology(2): Checks the topology connected to the given primary and redundant 128 | port and also fills the hmArcCheckResultTable, especially if an invalid topology 129 | was found. 130 | configureRing(3): Automatically configures the ring devices connected to the given 131 | primary and redundant port. A successful checkTopology is prerequisite." 132 | ::= { hmArcManagerConfig 8 } 133 | 134 | hmArcManagerActionResult OBJECT-TYPE 135 | SYNTAX INTEGER { 136 | noAction(1), 137 | pending(2), 138 | closedRing(3), 139 | configuredRing(4), 140 | openRing(5), 141 | invalidTopology(6), 142 | configFailed(7), 143 | configSuccessful(8) 144 | } 145 | MAX-ACCESS read-only 146 | STATUS current 147 | DESCRIPTION 148 | "Result of the last activated action. 149 | 150 | noAction(1): Initial state, no action started. 151 | pending(2): A topology check or a configuration process is going on. 152 | closedRing(3): The topology check detected a ring topology which is ready for automatic configuration. 153 | configuredRing(4): The topology check detected a partly or fully configured ring. 154 | See the hmArcCheckResultTable for details. You may reconfigure it using ARC. 155 | openRing(5): The topology check detected an open ring. It cannot be configured by ARC. 156 | invalidTopology(6): An invalid topology was detected. See the hmArcCheckResultTable for details. 157 | configFailed(7): One or more devices in the ring could not activate the configuration and are not 158 | properly configured. 159 | configSuccessful(8): The automatic configuration process was successful." 160 | ::= { hmArcManagerConfig 9 } 161 | 162 | -- 163 | -- ARC Manager Status -- 164 | -- 165 | 166 | hmArcCheckResultTable OBJECT-TYPE 167 | SYNTAX SEQUENCE OF HmArcCheckResultEntry 168 | MAX-ACCESS not-accessible 169 | STATUS current 170 | DESCRIPTION 171 | "Every entry in this table contains information about 172 | the status of the network topology reported by the ARC devices." 173 | ::= { hmArcManagerStatus 1 } 174 | 175 | hmArcCheckResultEntry OBJECT-TYPE 176 | SYNTAX HmArcCheckResultEntry 177 | MAX-ACCESS not-accessible 178 | STATUS current 179 | DESCRIPTION 180 | "An entry in the hmArcCheckResultTable." 181 | INDEX { hmArcCheckStatusIndex, hmArcCheckStatusDeviceMac } 182 | ::= { hmArcCheckResultTable 1 } 183 | 184 | HmArcCheckResultEntry ::= SEQUENCE { 185 | hmArcCheckStatusIndex Integer32, 186 | hmArcCheckStatusDeviceMac OCTET STRING, 187 | hmArcCheckStatusDeviceIp IpAddress, 188 | hmArcCheckStatusType INTEGER, 189 | hmArcCheckStatusInfo DisplayString, 190 | hmArcCheckStatusClassification INTEGER 191 | } 192 | 193 | hmArcCheckStatusIndex OBJECT-TYPE 194 | SYNTAX Integer32 195 | MAX-ACCESS read-only 196 | STATUS current 197 | DESCRIPTION 198 | "Index for the table" 199 | ::= { hmArcCheckResultEntry 1 } 200 | 201 | hmArcCheckStatusDeviceMac OBJECT-TYPE 202 | SYNTAX OCTET STRING (SIZE(6)) 203 | MAX-ACCESS read-only 204 | STATUS current 205 | DESCRIPTION 206 | "The MAC address of the ARC device that reported 207 | the status." 208 | ::= { hmArcCheckResultEntry 2 } 209 | 210 | hmArcCheckStatusDeviceIp OBJECT-TYPE 211 | SYNTAX IpAddress 212 | MAX-ACCESS read-only 213 | STATUS current 214 | DESCRIPTION 215 | "The IP address of the ARC device that reported 216 | the status." 217 | ::= { hmArcCheckResultEntry 3 } 218 | 219 | hmArcCheckStatusType OBJECT-TYPE 220 | SYNTAX INTEGER { 221 | otherRm(1), 222 | loop(2), 223 | alreadyConfigured(3), 224 | unsupportedOption(4), 225 | openRing(5), 226 | configFailed(6), 227 | duplexMode(7), 228 | noArcDevices(8), 229 | portState(9), 230 | info(10) 231 | } 232 | MAX-ACCESS read-only 233 | STATUS current 234 | DESCRIPTION 235 | "The status an ARC device in the connected topology reported. 236 | 237 | otherRm(1): the device detected another active Redundancy Manager. 238 | loop(2): unclear topology detected. This may be a loop or a net segment 239 | which is connected to the ring with Rapid Spanning Tree. 240 | alreadyConfigured(3): the device already has a ring configured. 241 | unsupportedOption(4): the device does not support one of the ARC Manager options. 242 | openRing(5): the ARC Manager has detected an open Ring. 243 | configFailed(6): the configuration of the device failed. 244 | duplexMode(7): at least one Ring Port of the device is not in full duplex mode. 245 | noArcDevices(8): there is no device in the ring which supports the ARC Protocol, 246 | or all devices have hmArcClientAdminStatus set to disabled. 247 | portState(9): at least one Ring Port of the device is not properly configured. 248 | info(10): the device reported just additional information." 249 | ::= { hmArcCheckResultEntry 4 } 250 | 251 | hmArcCheckStatusInfo OBJECT-TYPE 252 | SYNTAX DisplayString 253 | MAX-ACCESS read-only 254 | STATUS current 255 | DESCRIPTION "Additional information about the ARC device status. 256 | The device may provide this information for each value in hmArcCheckStatusType." 257 | ::= { hmArcCheckResultEntry 5 } 258 | 259 | hmArcCheckStatusClassification OBJECT-TYPE 260 | SYNTAX INTEGER{ 261 | error(1), 262 | warning(2), 263 | ok(3) 264 | } 265 | MAX-ACCESS read-only 266 | STATUS current 267 | DESCRIPTION 268 | "Classification of the status the ARC device reported. 269 | 270 | error(1): the reported status is an error. 271 | warning(2): the reported status is a warning. 272 | ok(3): the reported status is an information." 273 | ::= { hmArcCheckResultEntry 6 } 274 | 275 | 276 | -- 277 | -- ARC Client Config -- 278 | -- 279 | 280 | hmArcClientAdminStatus OBJECT-TYPE 281 | SYNTAX INTEGER { 282 | enabled(1), 283 | disabled(2), 284 | checkOnly(3) 285 | } 286 | MAX-ACCESS read-write 287 | STATUS current 288 | DESCRIPTION 289 | "The administratively desired status of the ARC client. 290 | 291 | enabled(1): ARC client is active, the device can be configured automatically and can return 292 | a status on a topology check. 293 | disabled(2): ARC client is inactive, neither checking nor automatic configuring can be done. 294 | checkOnly(3): The ARC client returns a status on a topology check but it's not possible 295 | to configure the device automatically." 296 | DEFVAL { enabled } 297 | ::= { hmArcClientConfig 1 } 298 | 299 | -- 300 | -- ARC Client Status -- 301 | -- 302 | 303 | hmArcClientManagerDeviceMac OBJECT-TYPE 304 | SYNTAX OCTET STRING (SIZE(6)) 305 | MAX-ACCESS read-only 306 | STATUS current 307 | DESCRIPTION 308 | "The MAC address of the ARC manager that last checked or configured the device." 309 | ::= { hmArcClientStatus 1 } 310 | 311 | hmArcClientManagerDeviceIp OBJECT-TYPE 312 | SYNTAX IpAddress 313 | MAX-ACCESS read-only 314 | STATUS current 315 | DESCRIPTION 316 | "The IP address of the ARC manager that last checked or configured the device." 317 | ::= { hmArcClientStatus 2 } 318 | 319 | hmArcClientPrimGroupID OBJECT-TYPE 320 | SYNTAX Integer32 321 | MAX-ACCESS read-only 322 | STATUS current 323 | DESCRIPTION "Unique index to identify the slot number of 324 | the to be configured primary link port. This value is never 325 | greater than hmSysGroupCapacity. " 326 | ::= { hmArcClientStatus 3 } 327 | 328 | hmArcClientPrimIfIndex OBJECT-TYPE 329 | SYNTAX Integer32 330 | MAX-ACCESS read-only 331 | STATUS current 332 | DESCRIPTION "Interface index of the to be configured primary link." 333 | ::= { hmArcClientStatus 4 } 334 | 335 | hmArcClientRedGroupID OBJECT-TYPE 336 | SYNTAX Integer32 337 | MAX-ACCESS read-only 338 | STATUS current 339 | DESCRIPTION "Unique index to identify the slot number of 340 | the to be configured redundant link port. This value is never 341 | greater than hmSysGroupCapacity. " 342 | ::= { hmArcClientStatus 5 } 343 | 344 | hmArcClientRedIfIndex OBJECT-TYPE 345 | SYNTAX Integer32 346 | MAX-ACCESS read-only 347 | STATUS current 348 | DESCRIPTION "Interface index of the to be configured redundant link." 349 | ::= { hmArcClientStatus 6 } 350 | 351 | 352 | END 353 | -------------------------------------------------------------------------------- /mibs/hmLLDP.mib: -------------------------------------------------------------------------------- 1 | -- ************************************************************************** 2 | -- * * 3 | -- * * 4 | -- * Hirschmann Automation and Control GmbH * 5 | -- * * 6 | -- * PLATFORM SNMP PRIVATE MIB * 7 | -- * * 8 | -- * LLDP * 9 | -- * * 10 | -- * * 11 | -- %************************************************************************* 12 | -- * * 13 | -- * Dies ist eine SNMP MIB fuer Hirschmann Platform Geraete. * 14 | -- * * 15 | -- * Sollten Sie weitere Fragen haben, wenden Sie sich bitte an ihren * 16 | -- * Hirschmann-Vertragspartner. * 17 | -- * * 18 | -- * Aktuelle Hirschmann-Infos zu unseren Produkten erhalten Sie ueber * 19 | -- * unseren WWW-Server unter http://www.hirschmann.com * 20 | -- * * 21 | -- * This is a SNMP MIB for the Hirschmann Platform devices. * 22 | -- * * 23 | -- * If you have any further questions please contact your * 24 | -- * Hirschmann contractual partner. * 25 | -- * * 26 | -- * You can access current information about Hirschmann products * 27 | -- * via our WWW server on http://www.hirschmann.com * 28 | -- * * 29 | -- ************************************************************************** 30 | HMLLDP-MIB DEFINITIONS ::= BEGIN 31 | 32 | IMPORTS 33 | MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32 34 | FROM SNMPv2-SMI 35 | hmConfiguration 36 | FROM HMPRIV-MGMT-SNMP-MIB; 37 | 38 | 39 | hmLLDP MODULE-IDENTITY 40 | LAST-UPDATED "200411220000Z" -- November 22, 2004 41 | ORGANIZATION "Hirschmann Automation and Control GmbH" 42 | CONTACT-INFO 43 | "Customer Support 44 | Postal: 45 | Hirschmann Automation and Control GmbH 46 | Stuttgarter Str. 45-51 47 | 72654 Neckartenzlingen 48 | Germany 49 | Tel: +49 7127 14 1981 50 | Web: http://www.hicomcenter.com/ 51 | E-Mail: hicomcenter@hirschmann.com" 52 | DESCRIPTION 53 | "The Hirschmann Private LLDP MIB definitions for Platform devices." 54 | 55 | REVISION "200411220000Z" -- November 22, 2004 56 | DESCRIPTION 57 | "Published as is." 58 | ::= { hmConfiguration 7 } 59 | 60 | hmLLDPConfig OBJECT IDENTIFIER ::= { hmLLDP 1 } 61 | hmLLDPStatistics OBJECT IDENTIFIER ::= { hmLLDP 2 } 62 | 63 | hmLLDPAdminStatus OBJECT-TYPE 64 | SYNTAX INTEGER { 65 | enable(1), 66 | disable(2) 67 | } 68 | MAX-ACCESS read-write 69 | STATUS current 70 | DESCRIPTION 71 | "DURABLE: 72 | Enables/disables the IEEE802.1AB functionality 73 | on this device. 74 | If disabled(2), the LLDP protocol is inactive, 75 | but the LLDP MIBs can be accessed." 76 | DEFVAL { 1 } 77 | ::= { hmLLDPConfig 1 } 78 | 79 | hmLLDPInterfaceTable OBJECT-TYPE 80 | SYNTAX SEQUENCE OF HmLLDPIfEntry 81 | MAX-ACCESS not-accessible 82 | STATUS current 83 | DESCRIPTION 84 | "This table contains variables for each interface of 85 | the switch." 86 | ::= { hmLLDPConfig 2 } 87 | 88 | hmLLDPIfEntry OBJECT-TYPE 89 | SYNTAX HmLLDPIfEntry 90 | MAX-ACCESS not-accessible 91 | STATUS current 92 | DESCRIPTION "The entry of the hmLLDPInterfaceTable." 93 | INDEX { hmLLDPIfaceGroupID, hmLLDPIfaceID } 94 | ::= { hmLLDPInterfaceTable 1 } 95 | 96 | HmLLDPIfEntry ::= SEQUENCE { 97 | hmLLDPIfaceGroupID Integer32, 98 | hmLLDPIfaceID Integer32, 99 | hmLLDPIfaceHirmaMode INTEGER, 100 | hmLLDPIfaceFDBMode INTEGER, 101 | hmLLDPIfaceMaxNeighbors Integer32 102 | } 103 | 104 | hmLLDPIfaceGroupID OBJECT-TYPE 105 | SYNTAX Integer32 (1..5) 106 | MAX-ACCESS read-only 107 | STATUS current 108 | DESCRIPTION 109 | "index to identify an interface card. This value is never 110 | greater than hmSysGroupCapacity." 111 | ::= { hmLLDPIfEntry 1 } 112 | 113 | hmLLDPIfaceID OBJECT-TYPE 114 | SYNTAX Integer32 (1..128) 115 | MAX-ACCESS read-only 116 | STATUS current 117 | DESCRIPTION 118 | "index to identify an interface within an interface card." 119 | ::= { hmLLDPIfEntry 2 } 120 | 121 | hmLLDPIfaceHirmaMode OBJECT-TYPE 122 | SYNTAX INTEGER { 123 | txOnly(1), 124 | rxOnly(2), 125 | txAndRx(3), 126 | disabled(4) 127 | } 128 | MAX-ACCESS read-write 129 | STATUS current 130 | DESCRIPTION 131 | " Configure Hirschmann LLDP on this physical port. 132 | If an IEEE802.1AB capable device not manufactured by Hirschmann 133 | is connected to a port, 134 | hmLLDPIfaceHirmaMode should be set to disabled (4) for this port." 135 | DEFVAL { 3 } 136 | ::= { hmLLDPIfEntry 3 } 137 | 138 | hmLLDPIfaceFDBMode OBJECT-TYPE 139 | SYNTAX INTEGER { 140 | lldpOnly(1), 141 | macOnly(2), 142 | both(3), 143 | autoDetect(4) 144 | } 145 | MAX-ACCESS read-write 146 | STATUS current 147 | DESCRIPTION 148 | " If configured to lldpOnly(1), only received LLDP messages 149 | will be used to populate the LLDP-MIB's remTable. 150 | If configured to macOnly(2), learned mac addresses out of the switch's forwarding database (FDB) 151 | will be used to populate the LLDP-MIB's remTable. 152 | If configured to both(3), both received LLDP messages 153 | and learned mac addresses out of the switch's forwarding database (FDB) 154 | will be used to populate the LLDP-MIB's remTable. 155 | If configured to autoDetect(4) and LLDP messages are received on this port, 156 | this mode will behave like lldpOnly(1), otherwise it will behave like macOnly(2)." 157 | DEFVAL { 1 } 158 | ::= { hmLLDPIfEntry 4 } 159 | 160 | hmLLDPIfaceMaxNeighbors OBJECT-TYPE 161 | SYNTAX Integer32 (1..50) 162 | MAX-ACCESS read-write 163 | STATUS current 164 | DESCRIPTION 165 | " Configure Hirschmann LLDP on this physical port. 166 | This value limits the number of entries in the remTable for this port." 167 | DEFVAL { 10 } 168 | ::= { hmLLDPIfEntry 5 } 169 | 170 | 171 | hmLLDPStatsIfTable OBJECT-TYPE 172 | SYNTAX SEQUENCE OF HmLLDPStatsIfEntry 173 | MAX-ACCESS not-accessible 174 | STATUS current 175 | DESCRIPTION 176 | "This table contains variables for each interface of 177 | the switch." 178 | ::= { hmLLDPStatistics 1 } 179 | 180 | hmLLDPStatsIfEntry OBJECT-TYPE 181 | SYNTAX HmLLDPStatsIfEntry 182 | MAX-ACCESS not-accessible 183 | STATUS current 184 | DESCRIPTION "The entry of the hmLLDPStatsIfTable." 185 | INDEX { hmLLDPStatsIfaceGroupID, hmLLDPStatsIfaceID } 186 | ::= { hmLLDPStatsIfTable 1 } 187 | 188 | HmLLDPStatsIfEntry ::= SEQUENCE { 189 | hmLLDPStatsIfaceGroupID Integer32, 190 | hmLLDPStatsIfaceID Integer32, 191 | hmLLDPStatsIfaceTotalFDBEntryCount Counter32, 192 | hmLLDPStatsIfaceTotalEntryCount Counter32, 193 | hmLLDPStatsIfaceIEEEEntryCount Counter32, 194 | hmLLDPStatsIfaceHirmaEntryCount Counter32, 195 | hmLLDPStatsIfaceFDBEntryCount Counter32 196 | } 197 | 198 | hmLLDPStatsIfaceGroupID OBJECT-TYPE 199 | SYNTAX Integer32 (1..5) 200 | MAX-ACCESS read-only 201 | STATUS current 202 | DESCRIPTION 203 | "index to identify an interface card. This value is never 204 | greater than hmSysGroupCapacity." 205 | ::= { hmLLDPStatsIfEntry 1 } 206 | 207 | hmLLDPStatsIfaceID OBJECT-TYPE 208 | SYNTAX Integer32 (1..32) 209 | MAX-ACCESS read-only 210 | STATUS current 211 | DESCRIPTION 212 | "index to identify an interface within an interface card." 213 | ::= { hmLLDPStatsIfEntry 2 } 214 | 215 | hmLLDPStatsIfaceTotalFDBEntryCount OBJECT-TYPE 216 | SYNTAX Counter32 217 | MAX-ACCESS read-only 218 | STATUS current 219 | DESCRIPTION 220 | "The total number of learned entries in the forwarding database (FDB) for this port." 221 | ::= { hmLLDPStatsIfEntry 3 } 222 | 223 | hmLLDPStatsIfaceTotalEntryCount OBJECT-TYPE 224 | SYNTAX Counter32 225 | MAX-ACCESS read-only 226 | STATUS current 227 | DESCRIPTION 228 | "The total number of remote connections in the LLDP MIB's remTable for this port." 229 | ::= { hmLLDPStatsIfEntry 4 } 230 | 231 | hmLLDPStatsIfaceIEEEEntryCount OBJECT-TYPE 232 | SYNTAX Counter32 233 | MAX-ACCESS read-only 234 | STATUS current 235 | DESCRIPTION 236 | "The number of remote connections in the LLDP MIB's remTable for this port 237 | that were detected because an LLDP message from an IEEE source was received." 238 | ::= { hmLLDPStatsIfEntry 5 } 239 | 240 | hmLLDPStatsIfaceHirmaEntryCount OBJECT-TYPE 241 | SYNTAX Counter32 242 | MAX-ACCESS read-only 243 | STATUS current 244 | DESCRIPTION 245 | "The number of remote connections in the LLDP MIB's remTable for this port 246 | that were detected because an LLDP message from an Hirschmann source was received." 247 | ::= { hmLLDPStatsIfEntry 6 } 248 | 249 | hmLLDPStatsIfaceFDBEntryCount OBJECT-TYPE 250 | SYNTAX Counter32 251 | MAX-ACCESS read-only 252 | STATUS current 253 | DESCRIPTION 254 | "The number of remote connections in the LLDP MIB's remTable for this port 255 | that were detected in the forwarding database (FDB) for this port." 256 | ::= { hmLLDPStatsIfEntry 7 } 257 | 258 | END 259 | -------------------------------------------------------------------------------- /mibs/hmtracking.mib: -------------------------------------------------------------------------------- 1 | -- ************************************************************************** 2 | -- * * 3 | -- * * 4 | -- * Hirschmann Automation and Control GmbH * 5 | -- * * 6 | -- * PLATFORM SNMP PRIVATE MIB * 7 | -- * * 8 | -- * Tracking * 9 | -- * * 10 | -- * * 11 | -- %************************************************************************* 12 | -- * * 13 | -- * Dies ist eine SNMP MIB fuer Hirschmann Platform Geraete. * 14 | -- * * 15 | -- * Sollten Sie weitere Fragen haben, wenden Sie sich bitte an ihren * 16 | -- * Hirschmann-Vertragspartner. * 17 | -- * * 18 | -- * Aktuelle Hirschmann-Infos zu unseren Produkten erhalten Sie ueber * 19 | -- * unseren WWW-Server unter http://www.hirschmann.com * 20 | -- * * 21 | -- * This is a SNMP MIB for the Hirschmann Platform devices. * 22 | -- * * 23 | -- * If you have any further questions please contact your * 24 | -- * Hirschmann contractual partner. * 25 | -- * * 26 | -- * You can access current information about Hirschmann products * 27 | -- * via our WWW server on http://www.hirschmann.com * 28 | -- * * 29 | -- ************************************************************************** 30 | 31 | HMTRACKING-SNMP-MIB DEFINITIONS ::= BEGIN 32 | 33 | IMPORTS 34 | MODULE-IDENTITY, OBJECT-IDENTITY, 35 | OBJECT-TYPE, NOTIFICATION-TYPE, 36 | Integer32, TimeTicks, IpAddress FROM SNMPv2-SMI 37 | RowStatus, DisplayString FROM SNMPv2-TC 38 | InterfaceIndexOrZero FROM IF-MIB 39 | hmConfiguration FROM HMPRIV-MGMT-SNMP-MIB; 40 | 41 | 42 | hmTracking MODULE-IDENTITY 43 | LAST-UPDATED "200709131200Z" -- 13 Sep 2007 12:00:00 GMT 44 | ORGANIZATION "Hirschmann Automation and Control GmbH" 45 | CONTACT-INFO 46 | "Customer Support 47 | Postal: 48 | Hirschmann Automation and Control GmbH 49 | Stuttgarter Str. 45-51 50 | 72654 Neckartenzlingen 51 | Germany 52 | Tel: +49 7127 14 1981 53 | Web: http://www.hicomcenter.com/ 54 | E-Mail: hicomcenter@hirschmann.com" 55 | DESCRIPTION 56 | "The Hirschmann Private Tracking MIB definitions for Platform devices." 57 | 58 | -- Revision history. 59 | REVISION 60 | "200709131200Z" -- 13 Sep 2007 12:00:00 GMT 61 | DESCRIPTION 62 | "First release in SMIv2" 63 | ::= { hmConfiguration 15 } 64 | 65 | 66 | hmTrackingGroup OBJECT IDENTIFIER ::= { hmTracking 1 } 67 | 68 | hmTrackingTable OBJECT-TYPE 69 | SYNTAX SEQUENCE OF HmTrackingEntry 70 | MAX-ACCESS not-accessible 71 | STATUS current 72 | DESCRIPTION "This table contains variables to define 73 | an entry in the Hirschmann Tracking database." 74 | ::= { hmTrackingGroup 1 } 75 | 76 | hmTrackingEntry OBJECT-TYPE 77 | SYNTAX HmTrackingEntry 78 | MAX-ACCESS not-accessible 79 | STATUS current 80 | DESCRIPTION "The entry of the hmTrackingTable." 81 | INDEX { hmTrackId } 82 | ::= { hmTrackingTable 1 } 83 | 84 | HmTrackingEntry ::= SEQUENCE { 85 | hmTrackId Integer32, 86 | hmTrackRowStatus RowStatus, 87 | hmTrackType INTEGER, 88 | hmTrackState INTEGER, 89 | hmTrackNumberOfChanges Integer32, 90 | hmTrackTimeSinceLastChange TimeTicks, 91 | hmTrackIfNumber InterfaceIndexOrZero, 92 | hmTrackIfLinkUpDelay Integer32, 93 | hmTrackIfLinkDownDelay Integer32, 94 | hmTrackPingIpAddress IpAddress, 95 | hmTrackPingInterval Integer32, 96 | hmTrackPingMiss Integer32, 97 | hmTrackPingSuccess Integer32, 98 | hmTrackPingTimeout Integer32, 99 | hmTrackPingTTL Integer32, 100 | hmTrackPingBestRouteIfNumber InterfaceIndexOrZero, 101 | hmTrackLogicalOperator INTEGER, 102 | hmTrackSendStateChangeTrap INTEGER 103 | } 104 | 105 | hmTrackId OBJECT-TYPE 106 | SYNTAX Integer32 107 | MAX-ACCESS read-only 108 | STATUS current 109 | DESCRIPTION "The id of an object being tracked." 110 | ::= { hmTrackingEntry 1 } 111 | 112 | 113 | hmTrackRowStatus 114 | OBJECT-TYPE 115 | SYNTAX RowStatus 116 | MAX-ACCESS read-create 117 | STATUS current 118 | DESCRIPTION "Defines the status of the Tracking database entry. 119 | Set to createAndWait(5) to create a new row. 120 | Set to destroy(6) to delete an entry. 121 | Set to notInService(2) to change an entry. 122 | Reads as active(1) if the tracked object exists and is trackable, 123 | notReady(3) otherwise." 124 | DEFVAL { notReady } 125 | ::= { hmTrackingEntry 2 } 126 | 127 | 128 | hmTrackType OBJECT-TYPE 129 | SYNTAX INTEGER { 130 | undefined(1), 131 | interface(2), 132 | ping(3), 133 | logical(4) 134 | } 135 | MAX-ACCESS read-write 136 | STATUS current 137 | DESCRIPTION "The kind of an object being tracked." 138 | DEFVAL { undefined } 139 | ::= { hmTrackingEntry 3 } 140 | 141 | 142 | hmTrackState OBJECT-TYPE 143 | SYNTAX INTEGER { 144 | up(1), 145 | down(2) 146 | } 147 | MAX-ACCESS read-only 148 | STATUS current 149 | DESCRIPTION "Shows if the tracked object is currently UP or DOWN." 150 | DEFVAL { up } 151 | ::= { hmTrackingEntry 4 } 152 | 153 | 154 | hmTrackNumberOfChanges 155 | OBJECT-TYPE 156 | SYNTAX Integer32 157 | MAX-ACCESS read-only 158 | STATUS current 159 | DESCRIPTION "The number of state changes after an object being 160 | tracked, entered its operational state. 161 | If the current state was entered prior to the last 162 | re-initialization of the local network management 163 | subsystem, then this object contains a zero 164 | value." 165 | DEFVAL { 0 } 166 | ::= { hmTrackingEntry 5 } 167 | 168 | hmTrackTimeSinceLastChange 169 | OBJECT-TYPE 170 | SYNTAX TimeTicks 171 | MAX-ACCESS read-only 172 | STATUS current 173 | DESCRIPTION "The time difference to the last state change of an object being 174 | tracked (in hundredths of a second). 175 | If the current state was entered prior to the last 176 | re-initialization of the local network management 177 | subsystem, then this object contains a zero 178 | value." 179 | DEFVAL { 0 } 180 | ::= { hmTrackingEntry 6 } 181 | 182 | 183 | hmTrackIfNumber 184 | OBJECT-TYPE 185 | SYNTAX InterfaceIndexOrZero 186 | MAX-ACCESS read-write 187 | STATUS current 188 | DESCRIPTION "The number of the interface being tracked. 189 | The number of the interface to send ping 190 | packets. For ping objects the value 65535 191 | is used to show that no valid interface 192 | number has been set. It cannot be written." 193 | DEFVAL { 0 } 194 | ::= { hmTrackingEntry 7 } 195 | 196 | 197 | hmTrackIfLinkUpDelay 198 | OBJECT-TYPE 199 | SYNTAX Integer32 (0..255) 200 | UNITS "seconds" 201 | MAX-ACCESS read-write 202 | STATUS current 203 | DESCRIPTION "If a link-up recovers within this delay, 204 | the tracked object is not considered as up." 205 | DEFVAL { 0 } 206 | ::= { hmTrackingEntry 8 } 207 | 208 | 209 | hmTrackIfLinkDownDelay 210 | OBJECT-TYPE 211 | SYNTAX Integer32 (0..255) 212 | UNITS "seconds" 213 | MAX-ACCESS read-write 214 | STATUS current 215 | DESCRIPTION "If a link-down recovers within this delay, 216 | the tracked object is not considered as down." 217 | DEFVAL { 0 } 218 | ::= { hmTrackingEntry 9 } 219 | 220 | 221 | hmTrackPingIpAddress 222 | OBJECT-TYPE 223 | SYNTAX IpAddress 224 | MAX-ACCESS read-write 225 | STATUS current 226 | DESCRIPTION "The IP address of the router being monitored." 227 | ::= { hmTrackingEntry 10 } 228 | 229 | 230 | hmTrackPingInterval 231 | OBJECT-TYPE 232 | SYNTAX Integer32 (1..10) 233 | UNITS "seconds" 234 | MAX-ACCESS read-write 235 | STATUS current 236 | DESCRIPTION "The number of seconds between the pings to the 237 | target IP address." 238 | DEFVAL { 1 } 239 | ::= { hmTrackingEntry 11 } 240 | 241 | hmTrackPingMiss 242 | OBJECT-TYPE 243 | SYNTAX Integer32 (1..10) 244 | MAX-ACCESS read-write 245 | STATUS current 246 | DESCRIPTION "This specifies the number of consecutive ping 247 | misses until the tracked object is considered 248 | to be down." 249 | DEFVAL { 3 } 250 | ::= { hmTrackingEntry 12 } 251 | 252 | 253 | hmTrackPingSuccess 254 | OBJECT-TYPE 255 | SYNTAX Integer32 (1..10) 256 | MAX-ACCESS read-write 257 | STATUS current 258 | DESCRIPTION "This specifies the number of consecutive ping 259 | successes until the tracked object is considered 260 | to be up." 261 | DEFVAL { 2 } 262 | ::= { hmTrackingEntry 13 } 263 | 264 | hmTrackPingTimeout 265 | OBJECT-TYPE 266 | SYNTAX Integer32 (10..10000) 267 | UNITS "milliseconds" 268 | MAX-ACCESS read-write 269 | STATUS current 270 | DESCRIPTION "This specifies the timeout in milliseconds for 271 | a ping reply. After the timeout the ping reply 272 | is considered as lost." 273 | DEFVAL { 100 } 274 | ::= { hmTrackingEntry 14 } 275 | 276 | hmTrackPingTTL 277 | OBJECT-TYPE 278 | SYNTAX Integer32 (1..255) 279 | MAX-ACCESS read-write 280 | STATUS current 281 | DESCRIPTION "This specifies the time to live for a ping request 282 | packet." 283 | DEFVAL { 128 } 284 | ::= { hmTrackingEntry 15 } 285 | 286 | hmTrackPingBestRouteIfNumber 287 | OBJECT-TYPE 288 | SYNTAX InterfaceIndexOrZero 289 | MAX-ACCESS read-only 290 | STATUS current 291 | DESCRIPTION "This shows the number of the interface which 292 | belongs to the best route. The interface number 293 | is zero if the best route is not used to send 294 | ping packets." 295 | DEFVAL { 0 } 296 | ::= { hmTrackingEntry 16 } 297 | 298 | hmTrackLogicalOperator OBJECT-TYPE 299 | SYNTAX INTEGER { 300 | and(1), 301 | or(2) 302 | } 303 | MAX-ACCESS read-write 304 | STATUS current 305 | DESCRIPTION "Defines the logical operation performed on the instances" 306 | DEFVAL { or } 307 | ::= { hmTrackingEntry 17 } 308 | 309 | hmTrackSendStateChangeTrap OBJECT-TYPE 310 | SYNTAX INTEGER { 311 | enable(1), 312 | disable(2) 313 | } 314 | MAX-ACCESS read-write 315 | STATUS current 316 | DESCRIPTION "Enables or disables the sending of a trap when hmTrackState changes" 317 | DEFVAL { disable } 318 | ::= { hmTrackingEntry 18 } 319 | 320 | 321 | 322 | -- ####################################################### 323 | 324 | hmTrackingApplicationTable 325 | OBJECT-TYPE 326 | SYNTAX SEQUENCE OF HmTrackingApplicationEntry 327 | MAX-ACCESS not-accessible 328 | STATUS current 329 | DESCRIPTION "This table contains information about registered 330 | applications, for each object being tracked." 331 | ::= { hmTrackingGroup 2 } 332 | 333 | 334 | hmTrackingApplicationEntry 335 | OBJECT-TYPE 336 | SYNTAX HmTrackingApplicationEntry 337 | MAX-ACCESS not-accessible 338 | STATUS current 339 | DESCRIPTION "The entry of the hmTrackingApplicationTable." 340 | INDEX { hmTrackId, hmTrackAppId } 341 | ::= { hmTrackingApplicationTable 1 } 342 | 343 | 344 | HmTrackingApplicationEntry ::= SEQUENCE { 345 | hmTrackAppId Integer32, 346 | hmTrackAppName DisplayString 347 | } 348 | 349 | 350 | 351 | hmTrackAppId 352 | OBJECT-TYPE 353 | SYNTAX Integer32 354 | MAX-ACCESS not-accessible 355 | STATUS current 356 | DESCRIPTION "The id of an application which tracks an object." 357 | ::= { hmTrackingApplicationEntry 2 } 358 | 359 | 360 | hmTrackAppName 361 | OBJECT-TYPE 362 | SYNTAX DisplayString (SIZE (0..255)) 363 | MAX-ACCESS read-only 364 | STATUS current 365 | DESCRIPTION "The name of the registered application." 366 | ::= { hmTrackingApplicationEntry 3 } 367 | 368 | -- ####################################################### 369 | 370 | hmTrackLogicalInstanceTable 371 | OBJECT-TYPE 372 | SYNTAX SEQUENCE OF HmTrackLogicalInstanceEntry 373 | MAX-ACCESS not-accessible 374 | STATUS current 375 | DESCRIPTION "This table contains information the tracking 376 | instances that are combined into a logical 377 | tracking instance." 378 | ::= { hmTrackingGroup 3 } 379 | 380 | 381 | hmTrackLogicalInstanceEntry 382 | OBJECT-TYPE 383 | SYNTAX HmTrackLogicalInstanceEntry 384 | MAX-ACCESS not-accessible 385 | STATUS current 386 | DESCRIPTION "The entry of the hmTrackLogicalInstanceTable." 387 | INDEX { hmTrackId, hmTrackLogicalInstanceId } 388 | ::= { hmTrackLogicalInstanceTable 1 } 389 | 390 | 391 | HmTrackLogicalInstanceEntry ::= SEQUENCE { 392 | hmTrackLogicalInstanceId Integer32, 393 | hmTrackLogicInstRowStatus RowStatus 394 | } 395 | 396 | hmTrackLogicalInstanceId 397 | OBJECT-TYPE 398 | SYNTAX Integer32 399 | MAX-ACCESS not-accessible 400 | STATUS current 401 | DESCRIPTION "The id of an object that is a member of the logical tracking object." 402 | ::= { hmTrackLogicalInstanceEntry 2 } 403 | 404 | 405 | hmTrackLogicInstRowStatus 406 | OBJECT-TYPE 407 | SYNTAX RowStatus 408 | MAX-ACCESS read-create 409 | STATUS current 410 | DESCRIPTION "Defines the status of the Logic Tracking member entry. 411 | Set to createAndGo(4) to create a new row. 412 | Set to destroy(6) to delete an entry. 413 | Reads as active(1) if the row exists." 414 | DEFVAL { notReady } 415 | ::= { hmTrackLogicalInstanceEntry 3 } 416 | 417 | --************************************************************************************** 418 | -- Tracking Traps 419 | -- 420 | --************************************************************************************** 421 | hmTrackEvent OBJECT-IDENTITY 422 | STATUS current 423 | DESCRIPTION "The events of hmTrackEvent." 424 | ::= { hmTrackingGroup 0 } 425 | 426 | hmTrackStatusChangeEvent NOTIFICATION-TYPE 427 | OBJECTS { hmTrackId, hmTrackRowStatus, hmTrackState } 428 | STATUS current 429 | DESCRIPTION 430 | "Sent when the state of a tracking instance changes between up and down." 431 | ::= { hmTrackEvent 1 } 432 | 433 | 434 | END 435 | -------------------------------------------------------------------------------- /mibs/siemensSmi.mib: -------------------------------------------------------------------------------- 1 | -- ---------------------------------------------------------------------- 2 | -- siemensSmi.mib 3 | -- 4 | -- SIEMENS AG 5 | -- Industry Sector 6 | -- 7 | -- Siemens Structure of Management Information 8 | -- 9 | -- Copyright (c) 2005-2008 Siemens AG 10 | -- All rights reserved. 11 | -- ---------------------------------------------------------------------- 12 | 13 | SIEMENS-SMI DEFINITIONS ::= BEGIN 14 | 15 | IMPORTS 16 | MODULE-IDENTITY, 17 | enterprises FROM SNMPv2-SMI; 18 | 19 | siemens MODULE-IDENTITY 20 | LAST-UPDATED "200811100000Z" 21 | ORGANIZATION "Siemens AG" 22 | CONTACT-INFO " 23 | Siemens AG 24 | Industry Sector 25 | I IA SC IC RD 5 26 | Ingo Landgraf 27 | 28 | Postal: Gleiwitzer Strasse 555 29 | Nuremberg-Moorenbrunn 30 | D-90475 31 | Tel: +49 911 895 3765 32 | E-mail: ingo.landgraf@siemens.com 33 | " 34 | DESCRIPTION " 35 | The root object identifier of Siemens. The 36 | MIB module provides the structure of 37 | management information of Siemens AG. 38 | " 39 | 40 | REVISION "200811100000Z" 41 | DESCRIPTION "Update the contact information." 42 | 43 | REVISION "200806020000Z" 44 | DESCRIPTION "Initial Version of the MIB module." 45 | ::= { enterprises 4329 } 46 | 47 | END -------------------------------------------------------------------------------- /mibs/sncp1604.mib: -------------------------------------------------------------------------------- 1 | -- ---------------------------------------------------------------------- 2 | -- snCP1604.mib 3 | -- Siemens SIMATIC NET 4 | -- CP1604 Private MIB 5 | -- Copyright (c) 2004 Siemens AG 6 | -- ---------------------------------------------------------------------- 7 | -- 8 | -- MIB Module : SN-CP1604-PRIV-MIB 9 | -- 10 | -- Revision : V0.1.0 11 | -- Date : 2005/03/09 12 | -- 13 | -- ---------------------------------------------------------------------- 14 | 15 | SN-CP1604-PRIV-MIB DEFINITIONS ::= BEGIN 16 | 17 | IMPORTS 18 | enterprises FROM RFC1155-SMI 19 | OBJECT-TYPE FROM RFC-1212; 20 | 21 | DisplayString ::= 22 | OCTET STRING 23 | 24 | siemensAD OBJECT IDENTIFIER ::= { enterprises 4196 } 25 | adProductMibs OBJECT IDENTIFIER ::= { siemensAD 1 } 26 | simaticNet OBJECT IDENTIFIER ::= { adProductMibs 1 } 27 | iCP OBJECT IDENTIFIER ::= { simaticNet 9 } 28 | iCP1604 OBJECT IDENTIFIER ::= { iCP 2 } 29 | 30 | -- ------------------------------------------------------------- 31 | -- SIMATIC NET CP1604 Objects 32 | -- ------------------------------------------------------------- 33 | snCommon OBJECT IDENTIFIER ::= { iCP1604 1 } 34 | snProductSpecific OBJECT IDENTIFIER ::= { iCP1604 2 } 35 | 36 | 37 | -- ------------------------------------------------------------- 38 | -- SIMATIC NET CP1604 Report Objects 39 | -- ------------------------------------------------------------- 40 | snCP1604Report OBJECT IDENTIFIER ::= { snProductSpecific 2 } 41 | 42 | 43 | -- -------------------------------------------------------------- 44 | -- SIMATIC NET CP1604 Report Group 45 | -- -------------------------------------------------------------- 46 | snCp1604BFLedVal OBJECT-TYPE 47 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 48 | ACCESS read-only 49 | STATUS mandatory 50 | DESCRIPTION "State of BF LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 51 | ::= { snCP1604Report 1 } 52 | 53 | snCp1604SFLedVal OBJECT-TYPE 54 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 55 | ACCESS read-only 56 | STATUS mandatory 57 | DESCRIPTION "State of SF LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 58 | ::= { snCP1604Report 2 } 59 | 60 | snCp1604RunLedVal OBJECT-TYPE 61 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 62 | ACCESS read-only 63 | STATUS mandatory 64 | DESCRIPTION "State of run LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 65 | ::= { snCP1604Report 3 } 66 | 67 | snCp1604StopLedVal OBJECT-TYPE 68 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 69 | ACCESS read-only 70 | STATUS mandatory 71 | DESCRIPTION "State of stop LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 72 | ::= { snCP1604Report 4 } 73 | 74 | snCp1604BFLed OBJECT-TYPE 75 | SYNTAX DisplayString (SIZE (0..255)) 76 | ACCESS read-only 77 | STATUS mandatory 78 | DESCRIPTION "Textual description of the BF LED state" 79 | ::= { snCP1604Report 5 } 80 | 81 | snCp1604SFLed OBJECT-TYPE 82 | SYNTAX DisplayString (SIZE (0..255)) 83 | ACCESS read-only 84 | STATUS mandatory 85 | DESCRIPTION "Textual description of the SF LED state" 86 | ::= { snCP1604Report 6 } 87 | 88 | snCp1604RunLed OBJECT-TYPE 89 | SYNTAX DisplayString (SIZE (0..255)) 90 | ACCESS read-only 91 | STATUS mandatory 92 | DESCRIPTION "Textual description of the run LED state" 93 | ::= { snCP1604Report 7 } 94 | 95 | snCp1604StopLed OBJECT-TYPE 96 | SYNTAX DisplayString (SIZE (0..255)) 97 | ACCESS read-only 98 | STATUS mandatory 99 | DESCRIPTION "Textual description of the stop LED state" 100 | ::= { snCP1604Report 8 } 101 | 102 | END 103 | 104 | -------------------------------------------------------------------------------- /mibs/sncp1616.mib: -------------------------------------------------------------------------------- 1 | -- ---------------------------------------------------------------------- 2 | -- snCP1616.mib 3 | -- Siemens SIMATIC NET 4 | -- CP1616 Private MIB 5 | -- Copyright (c) 2004 Siemens AG 6 | -- ---------------------------------------------------------------------- 7 | -- 8 | -- MIB Module : SN-CP1616-PRIV-MIB 9 | -- 10 | -- Revision : V0.1.0 11 | -- Date : 2005/03/09 12 | -- 13 | -- ---------------------------------------------------------------------- 14 | 15 | SN-CP1616-PRIV-MIB DEFINITIONS ::= BEGIN 16 | 17 | IMPORTS 18 | enterprises FROM RFC1155-SMI 19 | OBJECT-TYPE FROM RFC-1212; 20 | 21 | DisplayString ::= 22 | OCTET STRING 23 | 24 | siemensAD OBJECT IDENTIFIER ::= { enterprises 4196 } 25 | adProductMibs OBJECT IDENTIFIER ::= { siemensAD 1 } 26 | simaticNet OBJECT IDENTIFIER ::= { adProductMibs 1 } 27 | iCP OBJECT IDENTIFIER ::= { simaticNet 9 } 28 | iCP1616 OBJECT IDENTIFIER ::= { iCP 1 } 29 | 30 | -- ------------------------------------------------------------- 31 | -- SIMATIC NET CP1616 Objects 32 | -- ------------------------------------------------------------- 33 | snCommon OBJECT IDENTIFIER ::= { iCP1616 1 } 34 | snProductSpecific OBJECT IDENTIFIER ::= { iCP1616 2 } 35 | 36 | 37 | -- ------------------------------------------------------------- 38 | -- SIMATIC NET CP1616 Report Objects 39 | -- ------------------------------------------------------------- 40 | snCP1616Report OBJECT IDENTIFIER ::= { snProductSpecific 2 } 41 | 42 | 43 | -- -------------------------------------------------------------- 44 | -- SIMATIC NET CP1616 Report Group 45 | -- -------------------------------------------------------------- 46 | snCp1616BFLedVal OBJECT-TYPE 47 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 48 | ACCESS read-only 49 | STATUS mandatory 50 | DESCRIPTION "State of BF LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 51 | ::= { snCP1616Report 1 } 52 | 53 | snCp1616SFLedVal OBJECT-TYPE 54 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 55 | ACCESS read-only 56 | STATUS mandatory 57 | DESCRIPTION "State of SF LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 58 | ::= { snCP1616Report 2 } 59 | 60 | snCp1616RunLedVal OBJECT-TYPE 61 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 62 | ACCESS read-only 63 | STATUS mandatory 64 | DESCRIPTION "State of run LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 65 | ::= { snCP1616Report 3 } 66 | 67 | snCp1616StopLedVal OBJECT-TYPE 68 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 69 | ACCESS read-only 70 | STATUS mandatory 71 | DESCRIPTION "State of stop LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 72 | ::= { snCP1616Report 4 } 73 | 74 | snCp1616BFLed OBJECT-TYPE 75 | SYNTAX DisplayString (SIZE (0..255)) 76 | ACCESS read-only 77 | STATUS mandatory 78 | DESCRIPTION "Textual description of the BF LED state" 79 | ::= { snCP1616Report 5 } 80 | 81 | snCp1616SFLed OBJECT-TYPE 82 | SYNTAX DisplayString (SIZE (0..255)) 83 | ACCESS read-only 84 | STATUS mandatory 85 | DESCRIPTION "Textual description of the SF LED state" 86 | ::= { snCP1616Report 6 } 87 | 88 | snCp1616RunLed OBJECT-TYPE 89 | SYNTAX DisplayString (SIZE (0..255)) 90 | ACCESS read-only 91 | STATUS mandatory 92 | DESCRIPTION "Textual description of the run LED state" 93 | ::= { snCP1616Report 7 } 94 | 95 | snCp1616StopLed OBJECT-TYPE 96 | SYNTAX DisplayString (SIZE (0..255)) 97 | ACCESS read-only 98 | STATUS mandatory 99 | DESCRIPTION "Textual description of the stop LED state" 100 | ::= { snCP1616Report 8 } 101 | 102 | END 103 | 104 | -------------------------------------------------------------------------------- /mibs/sncp1616ob.mib: -------------------------------------------------------------------------------- 1 | -- ---------------------------------------------------------------------- 2 | -- snCP1616Onboard.mib 3 | -- Siemens SIMATIC NET 4 | -- CP1616 onboard Private MIB 5 | -- Copyright (c) 2004 Siemens AG 6 | -- ---------------------------------------------------------------------- 7 | -- 8 | -- MIB Module : SN-CP1616-ONBOARD-PRIV-MIB 9 | -- 10 | -- Revision : V0.1.0 11 | -- Date : 2007/05/08 12 | -- 13 | -- ---------------------------------------------------------------------- 14 | 15 | SN-CP1616-ONBOARD-PRIV-MIB DEFINITIONS ::= BEGIN 16 | 17 | IMPORTS 18 | enterprises FROM RFC1155-SMI 19 | OBJECT-TYPE FROM RFC-1212; 20 | 21 | DisplayString ::= 22 | OCTET STRING 23 | 24 | siemensAD OBJECT IDENTIFIER ::= { enterprises 4196 } 25 | adProductMibs OBJECT IDENTIFIER ::= { siemensAD 1 } 26 | simaticNet OBJECT IDENTIFIER ::= { adProductMibs 1 } 27 | iCP OBJECT IDENTIFIER ::= { simaticNet 9 } 28 | iCP1616Onboard OBJECT IDENTIFIER ::= { iCP 5 } 29 | 30 | -- ------------------------------------------------------------- 31 | -- SIMATIC NET CP1616 ONBOARD Objects 32 | -- ------------------------------------------------------------- 33 | snCommon OBJECT IDENTIFIER ::= { iCP1616Onboard 1 } 34 | snProductSpecific OBJECT IDENTIFIER ::= { iCP1616Onboard 2 } 35 | 36 | 37 | -- ------------------------------------------------------------- 38 | -- SIMATIC NET CP1616 ONBOARD Report Objects 39 | -- ------------------------------------------------------------- 40 | snCP1616OnboardReport OBJECT IDENTIFIER ::= { snProductSpecific 2 } 41 | 42 | 43 | -- -------------------------------------------------------------- 44 | -- SIMATIC NET CP1616 ONBOARD Report Group 45 | -- -------------------------------------------------------------- 46 | snCP1616OnboardBFLedVal OBJECT-TYPE 47 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 48 | ACCESS read-only 49 | STATUS mandatory 50 | DESCRIPTION "State of BF LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 51 | ::= { snCP1616OnboardReport 1 } 52 | 53 | snCP1616OnboardSFLedVal OBJECT-TYPE 54 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 55 | ACCESS read-only 56 | STATUS mandatory 57 | DESCRIPTION "State of SF LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 58 | ::= { snCP1616OnboardReport 2 } 59 | 60 | snCP1616OnboardRunLedVal OBJECT-TYPE 61 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 62 | ACCESS read-only 63 | STATUS mandatory 64 | DESCRIPTION "State of run LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 65 | ::= { snCP1616OnboardReport 3 } 66 | 67 | snCP1616OnboardStopLedVal OBJECT-TYPE 68 | SYNTAX INTEGER { off(1), on(2), blink(3), fastBlink(4) } 69 | ACCESS read-only 70 | STATUS mandatory 71 | DESCRIPTION "State of stop LED. Value list: off(1), on(2), blink(3), fastBlink(4)" 72 | ::= { snCP1616OnboardReport 4 } 73 | 74 | snCP1616OnboardBFLed OBJECT-TYPE 75 | SYNTAX DisplayString (SIZE (0..255)) 76 | ACCESS read-only 77 | STATUS mandatory 78 | DESCRIPTION "Textual description of the BF LED state" 79 | ::= { snCP1616OnboardReport 5 } 80 | 81 | snCP1616OnboardSFLed OBJECT-TYPE 82 | SYNTAX DisplayString (SIZE (0..255)) 83 | ACCESS read-only 84 | STATUS mandatory 85 | DESCRIPTION "Textual description of the SF LED state" 86 | ::= { snCP1616OnboardReport 6 } 87 | 88 | snCP1616OnboardRunLed OBJECT-TYPE 89 | SYNTAX DisplayString (SIZE (0..255)) 90 | ACCESS read-only 91 | STATUS mandatory 92 | DESCRIPTION "Textual description of the run LED state" 93 | ::= { snCP1616OnboardReport 7 } 94 | 95 | snCP1616OnboardStopLed OBJECT-TYPE 96 | SYNTAX DisplayString (SIZE (0..255)) 97 | ACCESS read-only 98 | STATUS mandatory 99 | DESCRIPTION "Textual description of the stop LED state" 100 | ::= { snCP1616OnboardReport 8 } 101 | 102 | END 103 | 104 | -------------------------------------------------------------------------------- /pylintrc: -------------------------------------------------------------------------------- 1 | [MASTER] 2 | 3 | # Specify a configuration file. 4 | #rcfile= 5 | 6 | # Python code to execute, usually for sys.path manipulation such as 7 | # pygtk.require(). 8 | #init-hook= 9 | 10 | # Profiled execution. 11 | # profile=no 12 | 13 | # Add files or directories to the blacklist. They should be base names, not 14 | # paths. 15 | ignore=CVS 16 | 17 | # Pickle collected data for later comparisons. 18 | persistent=yes 19 | 20 | # List of plugins (as comma separated values of python modules names) to load, 21 | # usually to register additional checkers. 22 | load-plugins= 23 | 24 | 25 | [MESSAGES CONTROL] 26 | 27 | # Enable the message, report, category or checker with the given id(s). You can 28 | # either give multiple identifier separated by comma (,) or put this option 29 | # multiple time. See also the "--disable" option for examples. 30 | #enable= 31 | 32 | # Disable the message, report, category or checker with the given id(s). You 33 | # can either give multiple identifiers separated by comma (,) or put this 34 | # option multiple times (only on the command line, not in the configuration 35 | # file where it should appear only once).You can also use "--disable=all" to 36 | # disable everything first and then reenable specific checks. For example, if 37 | # you want to run only the similarities checker, you can use "--disable=all 38 | # --enable=similarities". If you want to run only the classes checker, but have 39 | # no Warning level messages displayed, use"--disable=all --enable=classes 40 | # --disable=W" 41 | disable=C0325, C0103, R0903, R0913 ,W0614 ,W0401 42 | 43 | 44 | [REPORTS] 45 | 46 | # Set the output format. Available formats are text, parseable, colorized, msvs 47 | # (visual studio) and html. You can also give a reporter class, eg 48 | # mypackage.mymodule.MyReporterClass. 49 | output-format=text 50 | 51 | # Put messages in a separate file for each module / package specified on the 52 | # command line instead of printing them on stdout. Reports (if any) will be 53 | # written in a file name "pylint_global.[txt|html]". 54 | files-output=no 55 | 56 | # Tells whether to display a full report or only the messages 57 | reports=yes 58 | 59 | # Python expression which should return a note less than 10 (10 is the highest 60 | # note). You have access to the variables errors warning, statement which 61 | # respectively contain the number of errors / warnings messages and the total 62 | # number of statements analyzed. This is used by the global evaluation report 63 | # (RP0004). 64 | evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) 65 | 66 | # Add a comment according to your evaluation note. This is used by the global 67 | # evaluation report (RP0004). 68 | # comment=no 69 | 70 | # Template used to display messages. This is a python new-style format string 71 | # used to format the message information. See doc for all details 72 | #msg-template= 73 | 74 | 75 | [FORMAT] 76 | 77 | # Maximum number of characters on a single line. 78 | max-line-length=160 79 | 80 | # Regexp for a line that is allowed to be longer than the limit. 81 | ignore-long-lines=^\s*(# )??$ 82 | 83 | # Allow the body of an if to be on the same line as the test if there is no 84 | # else. 85 | single-line-if-stmt=no 86 | 87 | # List of optional constructs for which whitespace checking is disabled 88 | no-space-check=trailing-comma,dict-separator 89 | 90 | # Maximum number of lines in a module 91 | max-module-lines=1000 92 | 93 | # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 94 | # tab). 95 | indent-string=' ' 96 | 97 | 98 | [BASIC] 99 | 100 | # Required attributes for module, separated by a comma 101 | # required-attributes= 102 | 103 | # List of builtins function names that should not be used, separated by a comma 104 | bad-functions=map,filter,apply,input 105 | 106 | # Regular expression which should only match correct module names 107 | module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ 108 | 109 | # Regular expression which should only match correct module level names 110 | const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ 111 | 112 | # Regular expression which should only match correct class names 113 | class-rgx=[A-Z_][a-zA-Z0-9]+$ 114 | 115 | # Regular expression which should only match correct function names 116 | function-rgx=[a-z_][a-z0-9_]{2,30}$ 117 | 118 | # Regular expression which should only match correct method names 119 | method-rgx=[a-z_][a-z0-9_]{2,30}$ 120 | 121 | # Regular expression which should only match correct instance attribute names 122 | attr-rgx=[a-z_][a-z0-9_]{2,30}$ 123 | 124 | # Regular expression which should only match correct argument names 125 | argument-rgx=[a-z_][a-z0-9_]{2,30}$ 126 | 127 | # Regular expression which should only match correct variable names 128 | variable-rgx=[a-z_][a-z0-9_]{2,30}$ 129 | 130 | # Regular expression which should only match correct attribute names in class 131 | # bodies 132 | class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ 133 | 134 | # Regular expression which should only match correct list comprehension / 135 | # generator expression variable names 136 | inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ 137 | 138 | # Good variable names which should always be accepted, separated by a comma 139 | good-names=i,j,k,ex,Run,_ 140 | 141 | # Bad variable names which should always be refused, separated by a comma 142 | bad-names=foo,bar,baz,toto,tutu,tata 143 | 144 | # Regular expression which should only match function or class names that do 145 | # not require a docstring. 146 | no-docstring-rgx=^_ 147 | 148 | # Minimum line length for functions/classes that require docstrings, shorter 149 | # ones are exempt. 150 | docstring-min-length=-1 151 | 152 | 153 | [SIMILARITIES] 154 | 155 | # Minimum lines number of a similarity. 156 | min-similarity-lines=4 157 | 158 | # Ignore comments when computing similarities. 159 | ignore-comments=yes 160 | 161 | # Ignore docstrings when computing similarities. 162 | ignore-docstrings=yes 163 | 164 | # Ignore imports when computing similarities. 165 | ignore-imports=no 166 | 167 | 168 | [VARIABLES] 169 | 170 | # Tells whether we should check for unused import in __init__ files. 171 | init-import=no 172 | 173 | # A regular expression matching the beginning of the name of dummy variables 174 | # (i.e. not used). 175 | dummy-variables-rgx=_$|dummy 176 | 177 | # List of additional names supposed to be defined in builtins. Remember that 178 | # you should avoid to define new builtins when possible. 179 | additional-builtins= 180 | 181 | 182 | [MISCELLANEOUS] 183 | 184 | # List of note tags to take in consideration, separated by a comma. 185 | notes=FIXME,XXX,TODO 186 | 187 | 188 | [TYPECHECK] 189 | 190 | # Tells whether missing members accessed in mixin class should be ignored. A 191 | # mixin class is detected if its name ends with "mixin" (case insensitive). 192 | ignore-mixin-members=yes 193 | 194 | # List of classes names for which member attributes should not be checked 195 | # (useful for classes with attributes dynamically set). 196 | ignored-classes=SQLObject 197 | 198 | # When zope mode is activated, add a predefined set of Zope acquired attributes 199 | # to generated-members. 200 | # zope=no 201 | 202 | # List of members which are set dynamically and missed by pylint inference 203 | # system, and so shouldn't trigger E0201 when accessed. Python regular 204 | # expressions are accepted. 205 | generated-members=REQUEST,acl_users,aq_parent 206 | 207 | 208 | [CLASSES] 209 | 210 | # List of interface methods to ignore, separated by a comma. This is used for 211 | # instance to not check methods defines in Zope's Interface base class. 212 | # ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by 213 | 214 | # List of method names used to declare (i.e. assign) instance attributes. 215 | defining-attr-methods=__init__,__new__,setUp 216 | 217 | # List of valid names for the first argument in a class method. 218 | valid-classmethod-first-arg=cls 219 | 220 | # List of valid names for the first argument in a metaclass class method. 221 | valid-metaclass-classmethod-first-arg=mcs 222 | 223 | 224 | [IMPORTS] 225 | 226 | # Deprecated modules which should not be used, separated by a comma 227 | deprecated-modules=regsub,TERMIOS,Bastion,rexec 228 | 229 | # Create a graph of every (i.e. internal and external) dependencies in the 230 | # given file (report RP0402 must not be disabled) 231 | import-graph= 232 | 233 | # Create a graph of external dependencies in the given file (report RP0402 must 234 | # not be disabled) 235 | ext-import-graph= 236 | 237 | # Create a graph of internal dependencies in the given file (report RP0402 must 238 | # not be disabled) 239 | int-import-graph= 240 | 241 | 242 | [DESIGN] 243 | 244 | # Maximum number of arguments for function / method 245 | max-args=5 246 | 247 | # Argument names that match this expression will be ignored. Default to name 248 | # with leading underscore 249 | ignored-argument-names=_.* 250 | 251 | # Maximum number of locals for function / method body 252 | max-locals=15 253 | 254 | # Maximum number of return / yield for function / method body 255 | max-returns=6 256 | 257 | # Maximum number of branch for function / method body 258 | max-branches=12 259 | 260 | # Maximum number of statements in function / method body 261 | max-statements=50 262 | 263 | # Maximum number of parents for a class (see R0901). 264 | max-parents=7 265 | 266 | # Maximum number of attributes for a class (see R0902). 267 | max-attributes=7 268 | 269 | # Minimum number of public methods for a class (see R0903). 270 | min-public-methods=2 271 | 272 | # Maximum number of public methods for a class (see R0904). 273 | max-public-methods=20 274 | 275 | 276 | [EXCEPTIONS] 277 | 278 | # Exceptions that will emit a warning when being caught. Defaults to 279 | # "Exception" 280 | overgeneral-exceptions=Exception 281 | -------------------------------------------------------------------------------- /snmp_set_fuzz.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding:utf-8 3 | from scapy.all import * 4 | 5 | from Base import BaseTarget 6 | # loading mibs 7 | load_mib("mibs/*") 8 | 9 | snmp_error_id = [2, 3, 4, 5, 6, 17, 10, 12, 14] 10 | 11 | ASN1_Type = { 12 | 0: [scapy.asn1.asn1.ASN1_IPADDRESS, RandIP()], 13 | 1: [scapy.asn1.asn1.ASN1_STRING, RandBin()], 14 | 2: [scapy.asn1.asn1.ASN1_INTEGER, RandInt()], 15 | 3: [scapy.asn1.asn1.ASN1_GAUGE32, RandInt()] 16 | } 17 | 18 | SNMP_Error_code = { 19 | 0: [0, 'noError (0)'], 20 | 1: [1, 'tooBig (1)'], 21 | 2: [2, 'noSuchName (2)'], 22 | 3: [3, 'badValue (3)'], 23 | 4: [4, 'readOnly (4)'], 24 | 5: [5, 'genErr (5)'], 25 | 6: [6, 'noAccess (6)'], 26 | 7: [7, 'wrongType (7)'], 27 | 8: [8, 'wrongLength (8)'], 28 | 9: [9, 'wrongEncoding (9)'], 29 | 10: [10, 'wrongValue (10)'], 30 | 11: [11, 'noCreation (11)'], 31 | 12: [12, 'inconsistentValue (12)'], 32 | 13: [13, 'resourceUnavailable (13)'], 33 | 14: [14, 'commitFailed (14)'], 34 | 15: [15, 'undoFailed (15)'], 35 | 16: [16, 'authorizationError (16)'], 36 | 17: [17, 'notWritable (17)'], 37 | 18: [18, 'inconsistentName (18)'] 38 | } 39 | 40 | 41 | class SnmpTarget(BaseTarget): 42 | 43 | def __init__(self, name, target, monitor_port=None, community='private', version=2, oid='.1', output_path='./output', fuzz_count=100, timeout=1, nic=None, logger=None): 44 | ''' 45 | :param name: Name of target 46 | :param target: IP address of target 47 | :param monitor_port: Tcp port used to check target alive 48 | :param community: Snmp community with write privilege, default:'private' 49 | :param version: Snmp version only support version 1 and 2 50 | :param oid: Snmp scan start oid, default: '.1' 51 | :param output_path: Path to store scan result 52 | :param fuzz_count: Fuzz count of each writable oid 53 | :param timeout: Timeout for connect 54 | :param nic: Network interface name which used to connect to target 55 | :param logger: Logger of this target 56 | ''' 57 | super(SnmpTarget, self).__init__(name, logger) 58 | self._target = target 59 | self._monitor_port = monitor_port 60 | self._community = community 61 | self._oid = oid 62 | self._nic = nic 63 | self._timeout = timeout 64 | self.oid_list = [] 65 | self.oid_write_list = [] 66 | self.set_packets = [] 67 | self._test_cases = [] 68 | self._sent_packets = [] 69 | self._crash_packets = [] 70 | self._fuzz_count = fuzz_count 71 | self._output_path = output_path 72 | self._sent_packets_file_count = 0 73 | if version == 1: 74 | self._version = 'v1' 75 | elif version == 2: 76 | self._version = 'v2c' 77 | if not os.path.exists(self._output_path): 78 | os.mkdir(self._output_path) 79 | self._oid_list_file = open("%s/%s_oid_list_file.txt" % 80 | (self._output_path, self._target), 'w') 81 | self._oid_writeable_list_file = open( 82 | "%s/%s_oid_writeable_list_file.txt" % 83 | (self._output_path, self._target), 'w') 84 | self._snmp_set_packets_file = "%s/%s_snmp_set_packet_list.pcap" % ( 85 | self._output_path, self._target) 86 | self._snmp_crash_packets_file = "%s/%s_snmp_crash_packets.pcap" % ( 87 | self._output_path, self._target) 88 | self._snmp_sent_packets_file = "%s/%s_snmp_sent_packets_%s.pcap" % ( 89 | self._output_path, self._target, 90 | str(self._sent_packets_file_count)) 91 | 92 | def _create_get_request(self, my_oid): 93 | get_payload = IP(dst=self._target) / UDP(sport=161, dport=161) / SNMP( 94 | version=self._version, community=self._community, 95 | PDU=SNMPnext(varbindlist=[SNMPvarbind(oid=ASN1_OID(my_oid))])) 96 | return get_payload 97 | 98 | def _create_set_request(self, varbindlist): 99 | set_payload = IP(dst=self._target) / UDP(sport=161, dport=161) / SNMP( 100 | version=self._version, 101 | community=self._community, 102 | PDU=SNMPset(varbindlist=[varbindlist])) 103 | return set_payload 104 | 105 | def _create_get_request_by_packet(self, packet): 106 | my_oid = packet[SNMP].PDU[SNMPvarbind].oid 107 | get_payload = copy.deepcopy(packet) 108 | get_payload[SNMP].PDU = SNMPget( 109 | varbindlist=[SNMPvarbind( 110 | oid=my_oid)]) 111 | # fix the packet 112 | del (get_payload[IP].chksum) 113 | del (get_payload[IP].len) 114 | del (get_payload[UDP].chksum) 115 | del (get_payload[UDP].len) 116 | del (get_payload.len) 117 | return get_payload 118 | 119 | def _create_get_next_request_by_packet(self, packet): 120 | my_oid = packet[SNMP].PDU[SNMPvarbind].oid 121 | get_next_payload = copy.deepcopy(packet) 122 | get_next_payload[SNMP].PDU = SNMPnext( 123 | varbindlist=[SNMPvarbind( 124 | oid=my_oid)]) 125 | # fix the packet 126 | del (get_next_payload[IP].chksum) 127 | del (get_next_payload[IP].len) 128 | del (get_next_payload[UDP].chksum) 129 | del (get_next_payload[UDP].len) 130 | del (get_next_payload.len) 131 | return get_next_payload 132 | 133 | def _create_fuzz_packet(self, packet): 134 | my_valtype = packet[SNMP].PDU[SNMPvarbind].value 135 | if isinstance(my_valtype, ASN1_Type[2][0]): 136 | packet[SNMP].PDU[SNMPvarbind].value.val = self._get_asn_value_type( 137 | my_valtype) 138 | else: 139 | packet[SNMP].PDU[SNMPvarbind].value.val = str( 140 | self._get_asn_value_type(my_valtype)) 141 | # fix the packet 142 | del (packet[IP].chksum) 143 | del (packet[IP].len) 144 | del (packet[UDP].chksum) 145 | del (packet[UDP].len) 146 | del (packet.len) 147 | return packet 148 | 149 | def oid_scan(self): 150 | while True: 151 | get_payload = self._create_get_request(self._oid) 152 | get_rsp_payload = sr1(get_payload, 153 | timeout=self._timeout, 154 | verbose=0, 155 | iface=self._nic) 156 | if get_rsp_payload: 157 | self.logger.debug(str(get_rsp_payload).encode('hex')) 158 | self.logger.debug(get_rsp_payload.show(dump=True)) 159 | try: 160 | if self._oid == get_rsp_payload[SNMP].PDU[SNMPvarbind].oid.val: 161 | self.logger.info('End of MIB') 162 | break 163 | except Exception as e: 164 | self.logger.error(e) 165 | break 166 | else: 167 | self._oid = get_rsp_payload[SNMP].PDU[SNMPvarbind].oid.val 168 | self.logger.info('Found oid :%s' % self._oid) 169 | oid_display = conf.mib._oidname(self._oid) 170 | value_type = get_rsp_payload[SNMP].PDU[SNMPvarbind].value 171 | value = get_rsp_payload[SNMP].PDU[SNMPvarbind].value.val 172 | varbindlist = get_rsp_payload[SNMP].PDU[SNMPvarbind] 173 | set_payload = self._create_set_request(varbindlist) 174 | try: 175 | set_rsp = sr1(set_payload, 176 | timeout=self._timeout, 177 | verbose=0, 178 | iface=self._nic) 179 | if set_rsp[SNMP].PDU.error.val not in snmp_error_id: 180 | self.logger.info("%s is writeable" % self._oid) 181 | self.oid_write_list.append( 182 | (oid_display, self._oid, type(value_type), value)) 183 | self.set_packets.append(set_payload) 184 | except: 185 | self.logger.error('Time Out') 186 | self.oid_list.append( 187 | (oid_display, self._oid, type(value_type), value)) 188 | time.sleep(0.3) 189 | 190 | def set_test_case_range(self, test_case_range=None): 191 | if test_case_range is None: 192 | self._test_cases = range(len(self.set_packets)) 193 | else: 194 | p_single = re.compile(r'(\d+)$') 195 | p_open_left = re.compile(r'-(\d+)$') 196 | p_open_right = re.compile(r'(\d+)-$') 197 | p_closed = re.compile(r'(\d+)-(\d+)$') 198 | open_left_found = False 199 | open_right_found = False 200 | open_end_start = None 201 | for entry in test_case_range.split(','): 202 | entry = entry.strip() 203 | 204 | # single number 205 | match = p_single.match(entry) 206 | if match: 207 | self._test_cases.append(int(match.groups()[0])) 208 | # self._list.append(int(match.groups()[0])) 209 | continue 210 | 211 | # open left 212 | match = p_open_left.match(entry) 213 | if match: 214 | if open_left_found: 215 | raise Exception( 216 | 'You have two test ranges that start from zero') 217 | open_left_found = True 218 | end = int(match.groups()[0]) 219 | self._test_cases.extend(list(range(0, end + 1))) 220 | # self._list.extend(list(range(0, end + 1))) 221 | continue 222 | 223 | # open right 224 | match = p_open_right.match(entry) 225 | if match: 226 | if open_right_found: 227 | raise Exception( 228 | 'You have two test ranges that does not end') 229 | open_right_found = True 230 | open_end_start = int(match.groups()[0]) 231 | continue 232 | 233 | # closed range 234 | match = p_closed.match(entry) 235 | if match: 236 | start = int(match.groups()[0]) 237 | end = int(match.groups()[1]) 238 | self._test_cases.extend(list(range(start, end + 1))) 239 | continue 240 | 241 | # invalid expression 242 | raise Exception('Invalid range found: %s' % entry) 243 | as_set = set(self._test_cases) 244 | if len(as_set) < len(self._test_cases): 245 | raise Exception('Overlapping ranges in range list') 246 | self._test_cases = sorted(list(as_set)) 247 | if open_end_start and len(self._test_cases) and self._test_cases[ 248 | -1] >= open_end_start: 249 | raise Exception('Overlapping ranges in range list') 250 | pass 251 | 252 | def save_scan_result(self): 253 | for i in range(len(self.oid_list)): 254 | self._oid_list_file.write(str(self.oid_list[i])) 255 | self._oid_list_file.write('\r') 256 | 257 | for i in range(len(self.oid_write_list)): 258 | self._oid_writeable_list_file.write(str(self.oid_write_list[i])) 259 | self._oid_writeable_list_file.write('\r') 260 | 261 | wrpcap(self._snmp_set_packets_file, self.set_packets) 262 | self._oid_writeable_list_file.close() 263 | self._oid_list_file.close() 264 | 265 | def save_fuzz_result(self): 266 | wrpcap(self._snmp_sent_packets_file, self._sent_packets) 267 | wrpcap(self._snmp_crash_packets_file, self._crash_packets) 268 | 269 | def _save_sent_packet(self, packet): 270 | self._sent_packets.append(packet) 271 | if len(self._sent_packets) >= 200: 272 | wrpcap(self._snmp_sent_packets_file, self._sent_packets) 273 | self._sent_packets = [] 274 | self._sent_packets_file_count += 1 275 | self._snmp_sent_packets_file = "%s/%s_snmp_sent_packets_%s.pcap" % ( 276 | self._output_path, self._target, 277 | str(self._sent_packets_file_count)) 278 | 279 | def read_test_case_from_pcap(self, pcap_file): 280 | self.set_packets = rdpcap(pcap_file) 281 | 282 | def _get_asn_value_type(self, value_type): 283 | for i in range(len(ASN1_Type)): 284 | if isinstance(value_type, ASN1_Type[i][0]) is True: 285 | return ASN1_Type[i][1] 286 | 287 | def _get_errror_code(self, code): 288 | for i in range(len(SNMP_Error_code)): 289 | if SNMP_Error_code[i][0] == code: 290 | return SNMP_Error_code[i][1] 291 | self.logger.error('Unknown Error Code: %s' % code) 292 | 293 | def _is_target_alive(self): 294 | try: 295 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 296 | s.settimeout(self._timeout) 297 | s.connect((self._target, self._monitor_port)) 298 | s.close() 299 | except: 300 | return False 301 | return True 302 | 303 | def fuzz(self): 304 | if not self._test_cases: 305 | self.set_test_case_range() 306 | for test_case in self._test_cases: 307 | try: 308 | for i in range(self._fuzz_count): 309 | # send set packet 310 | set_payload = copy.deepcopy(self.set_packets[test_case]) 311 | set_payload = self._create_fuzz_packet(set_payload) 312 | self.logger.info("Running test case No.%s %s/%s" % 313 | (test_case, i, self._fuzz_count)) 314 | self._save_sent_packet(set_payload) 315 | set_rsp = sr1(set_payload, 316 | timeout=self._timeout, 317 | verbose=0, 318 | iface=self._nic) 319 | if set_rsp is None: 320 | self.logger.warning( 321 | "Target not response with snmp set packet in packet NO.%s,TestCase No.%s" 322 | % (i, test_case)) 323 | if self._is_target_alive(): 324 | self.logger.info("Target is still alive!") 325 | else: 326 | self.logger.error( 327 | "Can't Connect to Target at TCP Port: %s" % 328 | self._monitor_port) 329 | self._crash_packets.append(set_payload) 330 | return 331 | else: 332 | self._save_sent_packet(set_rsp) 333 | if set_rsp[SNMP].PDU.error.val != 0: 334 | self.logger.warning( 335 | "Set failed with error code: %s in packet NO.%s,TestCase No.%s" 336 | % (self._get_errror_code(set_rsp[ 337 | SNMP].PDU.error.val), i, test_case)) 338 | # send get packet 339 | get_payload = copy.deepcopy(self.set_packets[test_case]) 340 | get_payload = self._create_get_request_by_packet( 341 | get_payload) 342 | self._save_sent_packet(get_payload) 343 | get_rsp = sr1(get_payload, 344 | timeout=self._timeout, 345 | verbose=0, 346 | iface=self._nic) 347 | if get_rsp is None: 348 | self.logger.warning( 349 | "Target not response with snmp get packet in packet NO.%s,TestCase No.%s" 350 | % (i, test_case)) 351 | if self._is_target_alive(): 352 | self.logger.info("Target is still alive!") 353 | else: 354 | self.logger.error( 355 | "Can't Connect to Target at TCP Port: %s" % 356 | self._monitor_port) 357 | self._crash_packets.append(set_payload) 358 | return 359 | else: 360 | self._save_sent_packet(get_rsp) 361 | if get_rsp.haslayer(SNMP): 362 | if get_rsp[SNMP].PDU.error.val != 0: 363 | self.logger.info( 364 | "Get failed with error code %s in packet NO.%s,TestCase No.%s" 365 | % (self._get_errror_code(get_rsp[ 366 | SNMP].PDU.error.val), i, test_case)) 367 | 368 | # send get_next packet 369 | get_next_payload = copy.deepcopy(self.set_packets[ 370 | test_case]) 371 | get_next_payload = self._create_get_next_request_by_packet( 372 | get_next_payload) 373 | self._save_sent_packet(get_next_payload) 374 | get_next_rsp = sr1(get_next_payload, 375 | timeout=self._timeout, 376 | verbose=0, 377 | iface=self._nic) 378 | if get_next_rsp is None: 379 | self.logger.warning( 380 | "Target not response with snmp get_next packet in packet NO.%s,TestCase No.%s" 381 | % (i, test_case)) 382 | if self._is_target_alive(): 383 | self.logger.info("Target is still alive!") 384 | else: 385 | self.logger.error( 386 | "Can't Connect to Target at TCP Port: %s" % 387 | self._monitor_port) 388 | self._crash_packets.append(set_payload) 389 | return 390 | else: 391 | self._save_sent_packet(get_next_rsp) 392 | if get_rsp.haslayer(SNMP): 393 | if get_next_rsp[SNMP].PDU.error.val != 0: 394 | self.logger.info( 395 | "Get_next failed with error code %s in packet NO.%s,TestCase No.%s" 396 | % (self._get_errror_code(get_next_rsp[SNMP].PDU.error.val), i, test_case)) 397 | 398 | except KeyboardInterrupt: 399 | self.save_fuzz_result() 400 | time.sleep(1) 401 | return 402 | 403 | except: 404 | self.save_fuzz_result() 405 | self.logger.error("Unexpected error: %s" % sys.exc_info()[0]) 406 | return 407 | --------------------------------------------------------------------------------