diff --git a/html/images/os/glassway.svg b/html/images/os/glassway.svg
new file mode 100644
index 0000000000..63073f7831
--- /dev/null
+++ b/html/images/os/glassway.svg
@@ -0,0 +1 @@
+
diff --git a/includes/definitions/gw-eydfa.yaml b/includes/definitions/gw-eydfa.yaml
new file mode 100644
index 0000000000..034e3f8dc5
--- /dev/null
+++ b/includes/definitions/gw-eydfa.yaml
@@ -0,0 +1,76 @@
+os: gw-eydfa
+text: 'Glass Way WDM EYDFA'
+type: network
+icon: glassway
+over:
+- { graph: device_temperature, text: 'Temperatures' }
+- { graph: device_dbm, text: 'Optics' }
+mib_dir:
+- glassway
+discovery:
+- sysObjectID:
+ - .1.3.6.1.4.1.17409.1.11
+poller_modules:
+ cisco-ace-serverfarms: false
+ cisco-ace-loadbalancer: false
+ applications: false
+ aruba-controller: false
+ bgp-peers: false
+ cipsec-tunnels: false
+ cisco-asa-firewall: false
+ cisco-cbqos: false
+ cisco-cef: false
+ cisco-ipsec-flow-monitor: false
+ cisco-mac-accounting: false
+ cisco-otv: false
+ cisco-remote-access-monitor: false
+ cisco-sla: false
+ cisco-voice: false
+ cisco-vpdn: false
+ entity-physical: false
+ hr-mib: false
+ ipSystemStats: false
+ ipmi: false
+ junose-atm-vp: false
+ loadbalancers: false
+ mef: false
+ mempools: false
+ mib: false
+ netscaler-vsvr: false
+ netstats: false
+ ntp: false
+ ospf: false
+ ports: false
+ processors: false
+ storage: false
+ stp: false
+ toner: false
+ ucd-diskio: false
+ ucd-mib: false
+ wifi: false
+ wireless: false
+discovery_modules:
+ cisco-cef: false
+ cisco-sla: false
+ cisco-mac-accounting: false
+ ports: false
+ ports-stack: false
+ entity-physical: false
+ processors: false
+ mempools: false
+ cisco-vrf-lite: false
+ ipv4-addresses: false
+ ipv6-addresses: false
+ storage: false
+ hr-device: false
+ discovery-protocols: false
+ arp-table: false
+ junose-atm-vp: false
+ bgp-peers: false
+ vlans: false
+ ucd-diskio: false
+ services: false
+ stp: false
+ ntp: false
+ wireless: false
+ fdb-table: false
diff --git a/includes/discovery/sensors.inc.php b/includes/discovery/sensors.inc.php
index e6d0948990..45f7aec7b2 100644
--- a/includes/discovery/sensors.inc.php
+++ b/includes/discovery/sensors.inc.php
@@ -34,6 +34,10 @@ if (strstr($device['hardware'], 'ProLiant')) {
include 'includes/discovery/sensors/state/hp.inc.php';
}
+if ($device['os'] == 'gw-eydfa') {
+ include 'includes/discovery/sensors/gw-eydfa.inc.php';
+}
+
$run_sensors = array(
'airflow',
'current',
diff --git a/includes/discovery/sensors/gw-eydfa.inc.php b/includes/discovery/sensors/gw-eydfa.inc.php
new file mode 100644
index 0000000000..fbf3722ebf
--- /dev/null
+++ b/includes/discovery/sensors/gw-eydfa.inc.php
@@ -0,0 +1,194 @@
+.
+ *
+ * @package LibreNMS
+ * @link http://librenms.org
+ * @copyright 2018 TheGreatDoc
+ * @author TheGreatDoc
+ */
+
+$oids = snmp_walk($device, 'oaPumpTable', '-Osq', 'NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB');
+d_echo($oids."\n");
+
+if ($oids) {
+ echo 'GW EYDFA PUMP ';
+}
+
+foreach (explode("\n", $oids) as $data) {
+ list($oid, $value) = explode(' ', $data);
+ $split_oid = explode('.', $oid);
+ $index = $split_oid[1];
+ // Check for sensor type
+ if ($split_oid[0] == "oaPumpBIAS") { // Current - mA
+ $divisor = 1000;
+ $descr = 'BIAS Pump - ' . $index;
+ $num_oid = '.1.3.6.1.4.1.17409.1.11.4.1.2.' . $index;
+ $sensor_index = 'oaPumpBIAS' . $index;
+ $value = $value / $divisor;
+ if (is_numeric($value)) {
+ $low_limit = snmp_get($device, 'analogAlarmLOLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $low_warn = snmp_get($device, 'analogAlarmLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_warn = snmp_get($device, 'analogAlarmHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_limit = snmp_get($device, 'analogAlarmHIHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ }
+ discover_sensor($valid['sensor'], 'current', $device, $num_oid, $sensor_index, 'gw-eydfa', $descr, $divisor, 1, $low_limit, $low_warn, $high_warn, $high_limit, $value);
+ }
+ if ($split_oid[0] == "oaPumpTEC" && $index = 1) { // Current - A
+ $divisor = 100;
+ $descr = 'TEC Pump - ' . $index;
+ $num_oid = '.1.3.6.1.4.1.17409.1.11.4.1.3.' . $index;
+ $value = $value / $divisor;
+ if (is_numeric($value)) {
+ $low_limit = snmp_get($device, 'analogAlarmLOLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $low_warn = snmp_get($device, 'analogAlarmLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_warn = snmp_get($device, 'analogAlarmHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_limit = snmp_get($device, 'analogAlarmHIHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ }
+ $sensor_index = 'oaPumpTEC' . $index;
+ discover_sensor($valid['sensor'], 'current', $device, $num_oid, $sensor_index, 'gw-eydfa', $descr, $divisor, 1, $low_limit, $low_warn, $high_warn, $high_limit, $value);
+ }
+ if ($split_oid[0] == "oaPumpTemp" && $index = 1) { // Temperature - C
+ $divisor = 10;
+ $descr = 'Temperature Pump - ' . $index;
+ $num_oid = '.1.3.6.1.4.1.17409.1.11.4.1.4.' . $index;
+ $value = $value / $divisor;
+ if (is_numeric($value)) {
+ $low_limit = snmp_get($device, 'analogAlarmLOLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $low_warn = snmp_get($device, 'analogAlarmLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_warn = snmp_get($device, 'analogAlarmHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_limit = snmp_get($device, 'analogAlarmHIHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ }
+ $sensor_index = 'oaPumpTemp' . $index;
+ discover_sensor($valid['sensor'], 'temperature', $device, $num_oid, $sensor_index, 'gw-eydfa', $descr, $divisor, 1, $low_limit, $low_warn, $high_warn, $high_limit, $value);
+ }
+ unset($oids, $split_oid, $index, $divisor, $descr, $low_limit, $low_warn, $high_warn, $sensor_index);
+}
+
+
+
+$oids = snmp_walk($device, 'oaDCPowerTable', '-Osq', 'NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB');
+d_echo($oids."\n");
+
+if ($oids) {
+ echo 'GW EYDFA DC POWER ';
+}
+
+foreach (explode("\n", $oids) as $data) {
+ list($oid, $value) = explode(' ', $data);
+ $split_oid = explode('.', $oid);
+ $index = $split_oid[1];
+ // Check for sensor type
+ if ($split_oid[0] == "oaDCPowerVoltage") { // Voltage - V
+ $divisor = 10;
+ $descr = 'DC +5V - ' . $index;
+ $num_oid = '.1.3.6.1.4.1.17409.1.11.7.1.2.' . $index;
+ if (is_numeric($value)) {
+ $low_limit = snmp_get($device, 'analogAlarmLOLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $low_warn = snmp_get($device, 'analogAlarmLO.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_warn = snmp_get($device, 'analogAlarmHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_limit = snmp_get($device, 'analogAlarmHIHI.13' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ }
+ $sensor_index = 'oaDCPowerVoltage'.$index;
+ $value = $value / $divisor;
+ discover_sensor($valid['sensor'], 'voltage', $device, $num_oid, $sensor_index, 'gw-eydfa', $descr, $divisor, 1, $low_limit, $low_warn, $high_warn, $high_limit, $value);
+ }
+}
+
+unset($oids, $split_oid, $index, $divisor, $descr, $low_limit, $low_warn, $high_warn, $sensor_index);
+
+// Internal Temperature
+
+echo 'GW EYDFA Internal Temp ';
+
+$num_oid = '.1.3.6.1.4.1.17409.1.3.3.2.2.1.12.1';
+$value = snmp_get($device, 'commonDeviceInternalTemperature.1', '-Ovq', 'NSCRTV-HFCEMS-COMMON-MIB');
+$descr = 'Internal Temp';
+if (is_numeric($value)) {
+ $low_limit = snmp_get($device, 'analogAlarmLOLO.12.1.3.6.1.4.1.17409.1.3.1.13.0', '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB');
+ $low_warn = snmp_get($device, 'analogAlarmLO.12.1.3.6.1.4.1.17409.1.3.1.13.0', '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB');
+ $high_warn = snmp_get($device, 'analogAlarmHI.12.1.3.6.1.4.1.17409.1.3.1.13.0', '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB');
+ $high_limit = snmp_get($device, 'analogAlarmHIHI.12.1.3.6.1.4.1.17409.1.3.1.13.0', '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB');
+}
+$sensor_index = 'commonDeviceInternalTemperature.1';
+discover_sensor($valid['sensor'], 'temperature', $device, $num_oid, $sensor_index, 'gw-eydfa', $descr, 1, 1, $low_limit, $low_warn, $high_warn, $high_limit, $value);
+
+unset($num_oid, $value, $descr, $low_limit, $low_warn, $high_warn, $sensor_index);
+
+// Per Output Optical Power
+
+echo 'GW EYDFA Per Output Optical Power ';
+
+$num_oid = '.1.3.6.1.4.1.17409.1.11.2.0';
+$value = snmp_get($device, 'oaOutputOpticalPower.0', '-Ovq', 'NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB');
+$divisor = 10;
+$descr = 'Per Output Power';
+if (is_numeric($value)) {
+ $low_limit = snmp_get($device, 'analogAlarmLOLO.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $low_warn = snmp_get($device, 'analogAlarmLO.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_warn = snmp_get($device, 'analogAlarmHI.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_limit = snmp_get($device, 'analogAlarmHIHI.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+}
+$value = $value / $divisor;
+$sensor_index = 'oaOutputOpticalPower.0';
+discover_sensor($valid['sensor'], 'dbm', $device, $num_oid, $sensor_index, 'gw-eydfa', $descr, $divisor, 1, $low_limit, $low_warn, $high_warn, $high_limit, $value);
+
+unset($num_oid, $value, $divisor, $descr, $low_limit, $low_warn, $high_warn, $sensor_index);
+
+// Input Optical Power
+
+echo 'GW EYDFA Input Optical Power ';
+
+$num_oid = '.1.3.6.1.4.1.17409.1.11.3.0';
+$value = snmp_get($device, 'oaInputOpticalPower.0', '-Ovq', 'NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB');
+$divisor = 10;
+$descr = 'Input Power';
+if (is_numeric($value)) {
+ $low_limit = snmp_get($device, 'analogAlarmLOLO.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $low_warn = snmp_get($device, 'analogAlarmLO.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_warn = snmp_get($device, 'analogAlarmHI.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+ $high_limit = snmp_get($device, 'analogAlarmHIHI.11' . $num_oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB') / $divisor;
+}
+$value = $value / $divisor;
+$sensor_index = 'oaInputOpticalPower.0';
+discover_sensor($valid['sensor'], 'dbm', $device, $num_oid, $sensor_index, 'gw-eydfa', $descr, $divisor, 1, $low_limit, $low_warn, $high_warn, $high_limit, $value);
+
+unset($num_oid, $value, $divisor, $descr, $low_limit, $low_warn, $high_warn, $sensor_index);
+
+// Power Supply State
+
+echo 'GW EYDFA PSU State ';
+
+$oids = array('.1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.100.0.2', '.1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.101.0.2');
+
+$state_name = 'PowerSupplyState';
+$states = array(
+ array('value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'normal'),
+ array('value' => 7, 'generic' => 1, 'graph' => 0, 'descr' => 'warning'),
+ array('value' => 6, 'generic' => 2, 'graph' => 0, 'descr' => 'critical'),
+);
+create_state_index($state_name, $states);
+$n = 1;
+foreach ($oids as $oid) {
+ $value = snmp_get($device, $oid, '-Ovq', 'NSCRTV-HFCEMS-PROPERTY-MIB');
+ $descr = 'Power Supply ' . $n;
+ $sensor_index = 'PowerSupplyState' . $n;
+ discover_sensor($valid['sensor'], 'state', $device, $oid, $sensor_index, $state_name, $descr, 1, 1, null, null, null, null, $value, 'snmp');
+ create_sensor_to_state_index($device, $state_name, $sensor_index);
+ $n++;
+}
diff --git a/includes/polling/os/gw-eydfa.inc.php b/includes/polling/os/gw-eydfa.inc.php
new file mode 100644
index 0000000000..bcdbb159dc
--- /dev/null
+++ b/includes/polling/os/gw-eydfa.inc.php
@@ -0,0 +1,30 @@
+.
+ *
+ * @package LibreNMS
+ * @link http://librenms.org
+ * @copyright 2018 TheGreatDoc
+ * @author TheGreatDoc
+ */
+
+$data = snmp_get_multi($device, "commonDeviceModelNumber.1 commonDeviceSerialNumber.1 commonDeviceVendorInfo.1", "-OQUs", 'NSCRTV-HFCEMS-COMMON-MIB');
+
+$hardware = $data['1']['commonDeviceModelNumber'];
+$serial = $data['1']['commonDeviceSerialNumber'];
+$version = $data['1']['commonDeviceVendorInfo'];
diff --git a/mibs/glassway/NSCRTV-EXTENSION-GY b/mibs/glassway/NSCRTV-EXTENSION-GY
new file mode 100644
index 0000000000..806e3e17e3
--- /dev/null
+++ b/mibs/glassway/NSCRTV-EXTENSION-GY
@@ -0,0 +1,137 @@
+NSCRTV-EXTENSION-GY DEFINITIONS ::= BEGIN
+
+-- *****************************************************************************
+-- 国家HFC标准MIB扩充
+-- *****************************************************************************
+
+IMPORTS
+ OBJECT-TYPE
+ FROM RFC-1212
+ TRAP-TYPE
+ FROM RFC-1215
+ IpAddress
+ FROM RFC1155-SMI
+ system, PhysAddress, DisplayString, sysName, sysLocation, sysObjectID
+ FROM RFC1213-MIB;
+
+ gyEntry OBJECT IDENTIFIER ::= { system 1000 }
+ gyCommon OBJECT IDENTIFIER ::= { gyEntry 1 }
+
+
+ gyTrapVersion OBJECT-TYPE
+ SYNTAX INTEGER { TRAPv1(0), TRAPv2(1) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "切换SNMP的TRAP版本。"
+ ::= { system 101 }
+
+ gyAgentStpVersion OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "下行STP协议版本号。"
+ ::= { system 102 }
+
+
+
+ gyUpdateIdentifier OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "在线升级的软件标识。"
+ ::= { gyCommon 2 }
+
+ gyTrapVariables OBJECT IDENTIFIER
+ ::= { gyCommon 99 }
+
+
+
+
+-- *****************************************************************************
+-- 通用TRAP定义(包括心跳包)
+-- *****************************************************************************
+ gyhbMacAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "设备物理地址,映射到国标的commonPhysAddress节点。"
+ ::= { gyTrapVariables 1 }
+
+ gyhbIpAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "设备内网IP地址,映射到国标的commonNetworkAddress节点。"
+ ::= { gyTrapVariables 2 }
+
+ gyhbLogicalID OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "设备的文本标识符,映射到国标的commonNELogicalID节点。"
+ ::= { gyTrapVariables 3 }
+
+ gyhbModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "设备的产品型号,映射到国标的commonNEModelNumber节点。"
+ ::= { gyTrapVariables 4 }
+
+ gyhbSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "设备的产品序列号,映射到国标的commonNESerialNumber节点。"
+ ::= { gyTrapVariables 5 }
+
+ gyhbROCommunity OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "设备的只读团体名。"
+ ::= { gyTrapVariables 6 }
+
+ gyhbRWCommunity OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "设备的读写团体名。"
+ ::= { gyTrapVariables 7 }
+
+
+
+ gyHeartBeat TRAP-TYPE
+ ENTERPRISE gyEntry
+ VARIABLES {
+ gyhbMacAddress,
+ gyhbIpAddress,
+ gyhbLogicalID,
+ gyhbModelNumber,
+ gyhbSerialNumber,
+ gyhbROCommunity,
+ gyhbRWCommunity,
+ sysObjectID,
+ sysLocation,
+ sysName
+ }
+ DESCRIPTION
+ "应答器心跳包,携带多个访问应答器必需的变量。"
+ ::= 0
+
+
+-- *****************************************************************************
+-- MIB文件尾
+-- *****************************************************************************
+
+END
diff --git a/mibs/glassway/NSCRTV-HFCEMS-ALARMS-MIB b/mibs/glassway/NSCRTV-HFCEMS-ALARMS-MIB
new file mode 100644
index 0000000000..82621714e0
--- /dev/null
+++ b/mibs/glassway/NSCRTV-HFCEMS-ALARMS-MIB
@@ -0,0 +1,115 @@
+NSCRTV-HFCEMS-ALARMS-MIB DEFINITIONS ::= BEGIN
+-- *****************************************************************************
+-- 附录D 告警MIB
+-- *****************************************************************************
+
+IMPORTS
+ TRAP-TYPE
+ FROM RFC-1215
+ OBJECT-TYPE
+ FROM RFC-1212
+ DisplayString
+ FROM RFC1213-MIB
+ commonPhysAddress
+ FROM NSCRTV-HFCEMS-COMMON-MIB
+ commonNELogicalID
+ FROM NSCRTV-HFCEMS-COMMON-MIB
+ nscrtvHFCemsTree
+ FROM NSCRTV-ROOT
+ alarmsIdent
+ FROM NSCRTV-ROOT;
+
+alarmLogNumberOfEntries OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "告警记录表中的记录数量。"
+ ::= { alarmsIdent 1 }
+
+alarmLogLastIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "最近一条告警记录的索引值。"
+ ::= { alarmsIdent 2 }
+
+alarmLogTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AlarmLogEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "告警记录表,至少支持16条记录。每次在表中登记一条新的记录时,管理代理(即
+ 应答器)应向管理者发送陷阱消息。"
+ ::= { alarmsIdent 3 }
+
+alarmLogEntry OBJECT-TYPE
+ SYNTAX AlarmLogEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "告警记录表目。"
+ INDEX { alarmLogIndex }
+ ::= { alarmLogTable 1 }
+
+AlarmLogEntry ::=
+ SEQUENCE
+ {
+ alarmLogIndex
+ INTEGER,
+ alarmLogInformation
+ OCTET STRING
+ }
+
+alarmLogIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..32767)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "索引唯一标识告警记录表中的一条记录,索引值从1开始每次增加新纪录时加1,
+ 直到32767,下一条记录索引值重新从1开始。管理代理可根据存储容量选择删除最
+ 早的那些记录,具体实现细节在此不做规定。"
+ ::= { alarmLogEntry 1 }
+
+alarmLogInformation OBJECT-TYPE
+ SYNTAX OCTET STRING ( SIZE ( 17..255 ) )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "告警记录信息,多字节串,定义如下:
+ 字节 1~4: 告警发生时间(POSIX格式,最高有效字节在前)
+ 字节 5: 告警类型(枚举,定义见后)
+ 字节 6: 告警发生后commonNeStatus的值
+ 字节 7~m: 告警参数的对象标识符(基本编码规则(ASN.1))
+ 字节 n~z: 告警参数值 (基本编码规则(ASN.1))
+ 告警枚举类型:
+ 1 NOMINAL
+ 2 HIHI
+ 3 HI
+ 4 LO
+ 5 LOLO
+ 6 Discrete Major
+ 7 Discrete Minor "
+ ::= { alarmLogEntry 2 }
+
+alarmText OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS not-accessible
+ STATUS optional
+ DESCRIPTION
+ "此对象对于需要在陷阱消息中包含一个文本信息字段的应答器是应实现的。
+ 该字段中包含的文本内容取决于告警参数对象的定义,因此是不确定的,所以
+ 规定此对象不能访问。"
+ ::= { alarmsIdent 4 }
+
+hfcAlarmEvent TRAP-TYPE
+ ENTERPRISE nscrtvHFCemsTree
+ VARIABLES { commonPhysAddress, commonNELogicalID, alarmLogInformation, alarmText }
+ DESCRIPTION
+ "当检测到告警事件时发送此陷阱消息,是否绑定alarmText变量根据告警参数对象来确
+ 定。某些参数的告警只需要绑定前三个变量。"
+ ::= 1
+
+-- *****************************************************************************
+END
\ No newline at end of file
diff --git a/mibs/glassway/NSCRTV-HFCEMS-COMMON-MIB b/mibs/glassway/NSCRTV-HFCEMS-COMMON-MIB
new file mode 100644
index 0000000000..e3b799c6d6
--- /dev/null
+++ b/mibs/glassway/NSCRTV-HFCEMS-COMMON-MIB
@@ -0,0 +1,859 @@
+NSCRTV-HFCEMS-COMMON-MIB DEFINITIONS ::= BEGIN
+
+-- *****************************************************************************
+-- 附录E 公用MIB
+-- *****************************************************************************
+
+IMPORTS
+ OBJECT-TYPE FROM RFC-1212
+ TRAP-TYPE FROM RFC-1215
+ Counter FROM RFC1155-SMI
+ NetworkAddress FROM RFC1155-SMI
+ IpAddress FROM RFC1155-SMI
+ DisplayString FROM RFC1213-MIB
+ nscrtvHFCemsTree FROM NSCRTV-ROOT
+ commonIdent FROM NSCRTV-ROOT;
+
+-- *
+-- * Common MIB中使用的分组定义
+-- *
+
+ commonAdminGroup OBJECT IDENTIFIER ::= { commonIdent 1 }
+ commonAdminUseRf OBJECT IDENTIFIER ::= { commonIdent 2 }
+ commonAdminUseEthernet OBJECT IDENTIFIER ::= { commonIdent 3 }
+
+ commonMACGroup OBJECT IDENTIFIER ::= { commonAdminUseRf 1 }
+ commonRfGroup OBJECT IDENTIFIER ::= { commonAdminUseRf 2 }
+
+ commonMacAddress OBJECT IDENTIFIER ::= { commonMACGroup 1 }
+ commonBackoffParams OBJECT IDENTIFIER ::= { commonMACGroup 2 }
+ commonMacStats OBJECT IDENTIFIER ::= { commonMACGroup 3 }
+
+ commonAgentGroup OBJECT IDENTIFIER ::= { commonAdminUseEthernet 1 }
+ commonDeviceGroup OBJECT IDENTIFIER ::= { commonAdminUseEthernet 2 }
+
+-- *
+-- * NE管理组
+-- *
+
+ commonNELogicalID OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..40))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "指定NE的逻辑标识符(LogicID),此值一般与NE的其他属性无关。
+ 此对象值应存放在非易失性存储器中。"
+ ::= { commonAdminGroup 1 }
+
+ commonNEVendor OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "NE设备生产厂家。"
+ ::= { commonAdminGroup 2 }
+
+ commonNEModelNumber OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "NE设备的型号。"
+ ::= { commonAdminGroup 3 }
+
+ commonNESerialNumber OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "NE设备的序列号。"
+ ::= { commonAdminGroup 4 }
+
+ commonNEVendorInfo OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "NE设备供应商的其它特殊指定信息。"
+ ::= { commonAdminGroup 5 }
+
+ commonNEStatus OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(1))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "与7.5.4 STATRESP PDU中的Status参数对应
+ Bit 0: CHNLRQST
+ Bit 1: CNTNRM
+ Bit 2: CNTCUR
+ Bit 3: MAJOR ALARMS
+ Bit 4: MINOR ALARMS
+ Bit 5: RSVD1
+ Bit 6: RSVD2
+ Bit 7: RSVD3"
+ ::= { commonAdminGroup 6 }
+
+ commonReset OBJECT-TYPE
+ SYNTAX INTEGER { reset (1) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "写入'1'将复位NE设备,写入其它值将不起作用。读此对象时返回值'1',对设备无
+ 影响。"
+ ::= { commonAdminGroup 7 }
+
+ commonAlarmDetectionControl OBJECT-TYPE
+ SYNTAX INTEGER {
+ detectionDisabled (1),
+ detectionEnabled (2),
+ detectionEnabledAndRegenerate (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "此对象用于控制NE的告警检测。
+ 当模拟属性表或离散属性表中的一个MIB对象达到设定的门限,就认为告警已发生,并且
+ 作为最新的告警记录在告警记录表(alarmLogTable)中添加一项,告警陷阱将同时产生。
+ 如有一个MIB对象的值不在正常状态,则在当前告警表(currentAlarmTable)中也会添加
+ 一项记录。
+
+ detectionDisabled(1)将停止与模拟属性表/离散属性表相关的告警检测过程,NE将不再
+ 产生告警。detectionEnabled(2)允许告警检测进行,检测从detectionEnabled被设置之
+ 前应答器所处的状态开始继续进行。
+
+ detectionEnabledAndRegenerate(3)清除所有告警信息并且允许告警检测进行。模拟属性
+ 表和离散属性表的所有告警属性将恢复到告警检测运行之前的正常值上。任何仍处于告警
+ 状态的属性将不会产生“恢复正常”告警,设置此值将清除告警记录表alarmLogTable和
+ 当前告警表currentAlarmTable的内容。
+
+ detectionEnabledAndRegenerate的作用是临时的,当将commonAlarmDetectionControl
+ 设置为detectionEnabledAndRegnerate后,其SNMP应答包含此值,以后如果再读此对象值
+ 时,响应为detectionEnabled。
+
+ detectionDisabled值不影响hfcColdStart 或hfcWarmStart 陷阱的产生。
+ 将来新增的陷阱除非在其描述中有专门规定,否则一律不受此对象的影响。
+
+ 此对象应保存在非易失性存储器中,缺省值为detectionEnabled。"
+ ::= { commonAdminGroup 8 }
+
+ commonNetworkAddress OBJECT-TYPE
+ SYNTAX NetworkAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "NE的网络IP地址,NE产生Trap时应包含此地址。此值应保存在非易失性存储器中。此
+ 值可以在注册时通过MAC命令或通过厂商的本地接口来设置。"
+ ::= { commonAdminGroup 9 }
+
+ commonCheckCode OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "此对象用于应答器配置的检测码的报告。检测码的计算包括应答器(包括被管理设备)
+ 的物理配置参数和存放在非易失性存储器中的所有对象参数。计算检测码的算法由厂商
+ 规定。
+ 该对象的值应保存在非易失性存储器中,应答器重启动时,将重新计算检测码并与重启
+ 动前的值进行比较,以决定是否应产生一个hfcColdStart 或 hfcWarmStart陷阱。
+ 当对此对象进行写操作(SetRequest)时,检测码将被重新计算,并填入对SetRequest
+ 作出的GetResponse应答中。此时,将不产生hfcColdStart 或 hfcWarmStart 陷阱。"
+ ::= { commonAdminGroup 10 }
+
+ commonTrapCommunityString OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..64))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "定义Trap中的共同体字符串。缺省值是'public'。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonAdminGroup 11 }
+
+ commonTamperStatus OBJECT-TYPE
+ SYNTAX INTEGER { intact (1), compromised (2) }
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "报告NE设备的安全开关(如盖子是否打开)状态,此对象要求在离散属性表中对应一个
+ 条目。intact表示正常,compromised表示告警。"
+ ::= { commonAdminGroup 12 }
+
+ commonInternalTemperature OBJECT-TYPE
+ SYNTAX INTEGER (-128..127)
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "NE设备的内部温度,单位为摄氏度。此对象要求在属性表中对应一个条目。"
+ ::= { commonAdminGroup 13 }
+
+ commonTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "NE的当前时间的POSIX表示(自1970年1月1日0时以来的秒数)。"
+ ::= { commonAdminGroup 14 }
+
+ commonVarBindings OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "此对象表示能被NE接收的SNMP消息变量绑定表项的最大数目。其值为0表示对绑定最大
+ 数目没有限制。"
+ ::= { commonAdminGroup 15 }
+
+ commonResetCause OBJECT-TYPE
+ SYNTAX INTEGER {
+ other (1),
+ powerup (2),
+ command (3),
+ watchdog (4),
+ craft (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "表示NE最近一次复位的原因。"
+ ::= { commonAdminGroup 16 }
+
+ commonCraftStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ disconnected (1),
+ connected (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "此对象表示NE本地接口(如RS232或RS485接口)的状态。NE并不一定要支持本地接口。
+ NE 本地接口的状态不影响其MAC 接口的功能; 如果不支持本地接口, 其值为
+ disconnected。"
+ ::= { commonAdminGroup 17 }
+
+ commonDeviceOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "此对象为一个OID指针,用于指向被管设备MIB(如光节点、双向放大器等)。 "
+ ::= { commonAdminGroup 18 }
+
+ commonDeviceId OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(32))
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "此对象的内容由被管设备厂商指定,它包含厂商和产品的特殊的ASCII码文本信息。"
+ ::= { commonAdminGroup 19 }
+
+-- *****************************************************************************
+-- * MAC层协议管理组
+-- *****************************************************************************
+
+-- *
+-- * NE地址管理
+-- *
+
+ commonPhysAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "NE的MAC(物理)地址。"
+ ::= { commonMacAddress 1 }
+
+ commonMaxMulticastAddresses OBJECT-TYPE
+ SYNTAX INTEGER (4..255)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "NE设备支持的最大组播地址数目。"
+ ::= { commonMacAddress 2 }
+
+ commonMulticastAddressTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF CommonMulticastAddressEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "组播地址表,此对象的值应保存在非易失性存储器中。"
+ ::= { commonMacAddress 3 }
+
+ commonMulticastAddressEntry OBJECT-TYPE
+ SYNTAX CommonMulticastAddressEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "组播地址表目。"
+ INDEX { commonMulticastAddressIndex }
+ ::= { commonMulticastAddressTable 1 }
+
+ CommonMulticastAddressEntry ::=
+ SEQUENCE{
+ commonMulticastAddressIndex
+ INTEGER,
+ commonMulticastAddressNumber
+ OCTET STRING
+ }
+
+ commonMulticastAddressIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..255)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "组播地址索引。"
+ ::= { commonMulticastAddressEntry 1 }
+
+ commonMulticastAddressNumber OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(6))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "组播地址,I/G位为1有效。"
+ ::= { commonMulticastAddressEntry 2 }
+
+-- *
+-- * backoff算法相关参数
+-- *
+
+ commonBackoffPeriod OBJECT-TYPE
+ SYNTAX INTEGER (0..16383)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Backoff算法的基准时间(ms),初始化缺省值为6ms。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonBackoffParams 1 }
+
+ commonACKTimeoutWindow OBJECT-TYPE
+ SYNTAX INTEGER (0..255)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "NE等待HE发送ACK响应的超时时间(ms),初始化缺省值为19ms。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonBackoffParams 2 }
+
+ commonMaximumMACLayerRetries OBJECT-TYPE
+ SYNTAX INTEGER (0..255)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "NE发送数据包的最大重试次数。初始化缺省值为16。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonBackoffParams 3 }
+
+ commonMaxPayloadSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "上下行信道数据包所支持的最大有效载荷(payload)的长度。"
+ ::= { commonBackoffParams 4 }
+
+ commonBackoffMinimumExponent OBJECT-TYPE
+ SYNTAX INTEGER (0..15)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "本标准正文中MAC层规范定义的backoff算法的最小指数值,缺省值为6。
+ 此值不得大于commonBackoffMaximumValue值。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonBackoffParams 5 }
+
+ commonBackoffMaximumExponent OBJECT-TYPE
+ SYNTAX INTEGER (0..15)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "本标准正文中MAC层规范定义的backoff算法的最大指数值,缺省值为15。
+ 此值不得小于commonBackoffMinimum值。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonBackoffParams 6 }
+
+-- *
+-- * MAC层通信统计
+-- *
+
+ commonForwardPathLOSEvents OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "下行信道LOS发生数目,复位为0。"
+ ::= { commonMacStats 1 }
+
+ commonForwardPathFramingErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "下行信道帧错误数目,复位为0。"
+ ::= { commonMacStats 2 }
+
+ commonForwardPathCRCErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "下行CRC校验错误数目,复位为0。"
+ ::= { commonMacStats 3 }
+
+ commonInvalidMacCmds OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "无效的MAC层命令错误数目,复位为0。"
+ ::= { commonMacStats 4 }
+
+ commonBackwardPathCollisionTimes OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "上行数据包碰撞次数,复位为0。"
+ ::= { commonMacStats 5 }
+
+-- *
+-- * RF接口组
+-- *
+
+ commonReturnPathFrequency OBJECT-TYPE
+ SYNTAX INTEGER (0..1000000000)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "上行信道频率,单位为Hz。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonRfGroup 1 }
+
+ commonForwardPathFrequency OBJECT-TYPE
+ SYNTAX INTEGER (0..1000000000)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "下行信道频率,单位为Hz。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonRfGroup 2 }
+
+ commonProvisionedReturnPowerLevel OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "上行信道功率电平,单位为dBuV。
+ 内部使用时此值将被舍入到最接近的支持值。读此对象时返回实际值而不是舍入值。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonRfGroup 3 }
+
+ commonForwardPathReceiveLevel OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "下行信道接收功率电平,单位为dBuV。"
+ ::= { commonRfGroup 4 }
+
+ commonMaxReturnPower OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "最大上行信道功率电平,单位为dBuV。
+ 此对象的值应保存在非易失性存储器中。"
+ ::= { commonRfGroup 5 }
+
+-- *
+-- * 代理管理组
+-- *
+
+ commonAgentBootWay OBJECT-TYPE
+ SYNTAX INTEGER {
+ bootDefault (1),
+ bootBOOTP (2),
+ bootTFTP (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "代理启动方法"
+ ::= { commonAgentGroup 1 }
+
+ commonAgentReset OBJECT-TYPE
+ SYNTAX INTEGER { reset(1) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "代理重启动,写入'1'将使代理重新启动,写入其它值将不起作用。读此对象时返回
+ 值'1',对代理无影响。"
+ ::= { commonAgentGroup 2 }
+
+ commonAgentMaxTraps OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "代理检测到告警时向管理机发送TRAP的最大次数,0表示采用厂商的预设缺省值。"
+ ::= { commonAgentGroup 3 }
+
+ commonAgentTrapMinInterval OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "代理发送TRAP的最小间隔,单位为s。"
+ ::= { commonAgentGroup 4 }
+
+ commonAgentTrapMaxInterval OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "代理发送TRAP的最大间隔,单位为s。"
+ ::= { commonAgentGroup 5 }
+
+ commonTrapAck OBJECT-TYPE
+ SYNTAX OCTET STRING ( SIZE ( 17..255 ) )
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "该变量用于通知Snmp代理,它所发出的告警Trap信息管理主机已经收到,不用重发。该
+ 变量的内容和告警MIB 中alarmLogInformation 相同。代理收到后通过分析
+ alarmLogInformation 可以明确地知道管理主机应答的是哪一条告警Trap信息,从而停止
+ 该告警Trap信息的重发。"
+ ::= { commonAgentGroup 6 }
+
+ commonAgentTrapTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF CommonAgentTrapEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "代理TRAP信息表。"
+ ::= { commonAgentGroup 7 }
+
+ commonAgentTrapEntry OBJECT-TYPE
+ SYNTAX CommonAgentTrapEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "代理TRAP信息表目。"
+ INDEX { commonAgentTrapIndex }
+ ::= { commonAgentTrapTable 1 }
+
+ CommonAgentTrapEntry ::= SEQUENCE {
+ commonAgentTrapIndex
+ INTEGER,
+ commonAgentTrapIP
+ IpAddress,
+ commonAgentTrapCommunity
+ DisplayString,
+ commonAgentTrapStatus
+ INTEGER
+ }
+
+ commonAgentTrapIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "TRAP表索引。"
+ ::= { commonAgentTrapEntry 1 }
+
+ commonAgentTrapIP OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "发TRAP时目的主机的IP地址。"
+ ::= { commonAgentTrapEntry 2 }
+
+ commonAgentTrapCommunity OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..64))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "发送TRAP时的共同体字符串。"
+ ::= { commonAgentTrapEntry 3 }
+
+ commonAgentTrapStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ commonAgentTrapEnable (1),
+ commonAgentTrapDisable (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "表示该TRAP项是否启用。"
+ ::= { commonAgentTrapEntry 4 }
+
+-- *
+-- * 设备管理组
+-- *
+
+ commonDeviceNum OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "表示该代理当前正在管理的设备数量。"
+ ::= { commonDeviceGroup 1 }
+
+ commonDeviceInfoTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF CommonDeviceInfoEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "代理当前正在管理的设备公共信息列表。"
+ ::= { commonDeviceGroup 2 }
+
+ commonDeviceInfoEntry OBJECT-TYPE
+ SYNTAX CommonDeviceInfoEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "代理当前正在管理的设备公共信息列表表目。"
+ INDEX { commonDeviceSlot }
+ ::= { commonDeviceInfoTable 1 }
+
+ CommonDeviceInfoEntry ::= SEQUENCE {
+ commonDeviceSlot
+ INTEGER,
+ commonDevicesID
+ OCTET STRING,
+ commonDeviceVendor
+ DisplayString,
+ commonDeviceModelNumber
+ DisplayString,
+ commonDeviceSerialNumber
+ DisplayString,
+ commonDeviceVendorInfo
+ DisplayString,
+ commonDeviceStatus
+ OCTET STRING,
+ commonDeviceReset
+ INTEGER,
+ commonDeviceAlarmDetectionControl
+ INTEGER,
+ commonDeviceMACAddress
+ OCTET STRING,
+ commonDeviceTamperStatus
+ INTEGER,
+ commonDeviceInternalTemperature
+ INTEGER,
+ commonDeviceResetCause
+ INTEGER,
+ commonDeviceCraftStatus
+ INTEGER,
+ commonDevicesOID
+ OBJECT IDENTIFIER,
+ commonDeviceAcct
+ Counter,
+ commonDeviceName
+ DisplayString,
+ commonDeviceMFD
+ DisplayString,
+ commonDeviceFW
+ DisplayString
+ }
+
+ commonDeviceSlot OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "代理当前正在管理的设备公共信息列表的表索引。"
+ ::= { commonDeviceInfoEntry 1 }
+
+ commonDevicesID OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..40))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "厂商指定的设备的标识"
+ ::= { commonDeviceInfoEntry 2 }
+
+ commonDeviceVendor OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备生产厂家。"
+ ::= { commonDeviceInfoEntry 3 }
+
+ commonDeviceModelNumber OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备的型号。"
+ ::= { commonDeviceInfoEntry 4 }
+
+ commonDeviceSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备的序列号。"
+ ::= { commonDeviceInfoEntry 5 }
+
+ commonDeviceVendorInfo OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "设备供应商的其它特殊指定信息。"
+ ::= { commonDeviceInfoEntry 6 }
+
+ commonDeviceStatus OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(1))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备状态
+ Bit 0: RSVD0
+ Bit 1: RSVD1
+ Bit 2: RSVD2
+ Bit 3: MAJOR ALARMS
+ Bit 4: MINOR ALARMS
+ Bit 5: RSVD5
+ Bit 6: RSVD6
+ Bit 7: RSVD7"
+ ::= { commonDeviceInfoEntry 7 }
+
+ commonDeviceReset OBJECT-TYPE
+ SYNTAX INTEGER { reset (1) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "写入'1'将复位设备,写入其它值将不起作用。读此对象时返回值'1',对设备无
+ 影响。"
+ ::= { commonDeviceInfoEntry 8 }
+
+ commonDeviceAlarmDetectionControl OBJECT-TYPE
+ SYNTAX INTEGER
+ {
+ detectionDisabled (1),
+ detectionEnabled (2),
+ detectionEnabledAndRegenerate (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "此对象用于控制设备的告警检测。"
+ ::= { commonDeviceInfoEntry 9 }
+
+ commonDeviceMACAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备MAC地址。"
+ ::= { commonDeviceInfoEntry 10 }
+
+ commonDeviceTamperStatus OBJECT-TYPE
+ SYNTAX INTEGER { intact (1), compromised (2) }
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "报告设备的安全开关(如盖子是否打开)状态,此对象要求在离散属性表中对应一个条目。
+ intact表示正常,compromised表示告警。"
+ ::= { commonDeviceInfoEntry 11 }
+
+ commonDeviceInternalTemperature OBJECT-TYPE
+ SYNTAX INTEGER (-128..127)
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "设备的内部温度,单位为摄氏度。此对象要求在属性表中对应一个条目。"
+ ::= { commonDeviceInfoEntry 12 }
+
+ commonDeviceResetCause OBJECT-TYPE
+ SYNTAX INTEGER
+ {
+ other (1),
+ powerup (2),
+ command (3),
+ watchdog (4),
+ craft (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "表示设备最近一次复位的原因。"
+ ::= { commonDeviceInfoEntry 13 }
+
+ commonDeviceCraftStatus OBJECT-TYPE
+ SYNTAX INTEGER
+ {
+ disconnected (1),
+ connected (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "此对象表示设备本地接口(如RS232或RS485接口)的状态。"
+ ::= { commonDeviceInfoEntry 14 }
+
+ commonDevicesOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "目标标识符串,指向该设备的具体实现。"
+ ::= { commonDeviceInfoEntry 15 }
+
+ commonDeviceAcct OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "表示设备的累计工作时间,单位为s。"
+ ::= { commonDeviceInfoEntry 16 }
+
+ commonDeviceName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备名称。"
+ ::= { commonDeviceInfoEntry 17 }
+
+ commonDeviceMFD OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(10))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备生产日期。"
+ ::= { commonDeviceInfoEntry 18 }
+
+ commonDeviceFW OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "设备固件信息。"
+ ::= { commonDeviceInfoEntry 19 }
+
+-- *
+-- * hfcColdStart和 hfcWarmStart 陷阱用于替代标准SNMP陷阱coldStart和warmStart,以便
+-- * 将应答器物理地址包含在陷阱消息中。
+-- * TRAP-TYPE宏由RFC1215定义。
+-- *
+
+ hfcColdStart TRAP-TYPE
+ ENTERPRISE nscrtvHFCemsTree
+ VARIABLES { commonPhysAddress, commonNELogicalID}
+ DESCRIPTION
+ "hfcColdStart陷阱表示发送方协议实体正重新初始化,并且代理配置或协议实体可能有
+ 改变。此陷阱仅在应答器注册成功后发送。"
+ ::= 0
+
+ hfcWarmStart TRAP-TYPE
+ ENTERPRISE nscrtvHFCemsTree
+ VARIABLES { commonPhysAddress, commonNELogicalID }
+ DESCRIPTION
+ "hfcWarmStart陷阱表示发送方协议实体正重新初始化,并且代理配置或协议实体没有任
+ 何改变。此陷阱仅在应答器注册完成后发送。"
+ ::= 2
+
+--******************************************************************************
+END
\ No newline at end of file
diff --git a/mibs/glassway/NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB b/mibs/glassway/NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB
new file mode 100644
index 0000000000..2dda089261
--- /dev/null
+++ b/mibs/glassway/NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB
@@ -0,0 +1,188 @@
+NSCRTV-HFCEMS-OPTICALAMPLIFIER-MIB DEFINITIONS ::= BEGIN
+
+-- *****************************************************************************
+-- 附录M 光放大器MIB
+-- *****************************************************************************
+
+IMPORTS
+ OBJECT-TYPE
+ FROM RFC-1212
+ DisplayString
+ FROM RFC1213-MIB
+ oaIdent
+ FROM NSCRTV-ROOT;
+
+ oaVendorOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "此对象提供厂商对光放大器MIB的扩充。无扩充时此对象应指向光放大器节点oaIdent。"
+ ::= { oaIdent 1 }
+
+ oaOutputOpticalPower OBJECT-TYPE
+ SYNTAX INTEGER ( 0..65535 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "输出光功率,单位为0.1dBm,此对象要求在属性MIB中登记一个条目。"
+ ::= { oaIdent 2 }
+
+ oaInputOpticalPower OBJECT-TYPE
+ SYNTAX INTEGER ( -128..127 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "输入光功率,单位为0.1dBm,此对象要求在属性MIB中登记一个条目。"
+ ::= { oaIdent 3 }
+
+-- *
+-- * 激光泵浦参数
+-- *
+
+ oaPumpTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OaPumpEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "光入大器激光泵浦信息表。"
+ ::= { oaIdent 4 }
+
+ oaPumpEntry OBJECT-TYPE
+ SYNTAX OaPumpEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "每个光放大器激光泵浦的信息表目。"
+ INDEX { oaPumpIndex }
+ ::= { oaPumpTable 1 }
+
+ OaPumpEntry ::= SEQUENCE
+ {
+ oaPumpIndex
+ INTEGER,
+ oaPumpBIAS
+ INTEGER,
+ oaPumpTEC
+ INTEGER,
+ oaPumpTemp
+ INTEGER
+ }
+
+ oaPumpIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "光放大器激光泵浦索引值。"
+ ::= { oaPumpEntry 1 }
+
+ oaPumpBIAS OBJECT-TYPE
+ SYNTAX INTEGER ( 0..65535 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "激光泵浦偏置电流,单位为mA,此对象要求在属性MIB中登记一个条目。"
+ ::= { oaPumpEntry 2 }
+
+ oaPumpTEC OBJECT-TYPE
+ SYNTAX INTEGER ( -32768..32767 )
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "激光泵致冷电流,单位为0.01A,此对象要求在属性MIB中登记一个条目。"
+ ::= { oaPumpEntry 3 }
+
+ oaPumpTemp OBJECT-TYPE
+ SYNTAX INTEGER ( 0..32768 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "激光泵浦温度,单位为0.1摄氏度,此对象要求在属性MIB中登记一个条目。"
+ ::= { oaPumpEntry 4 }
+
+-- *
+-- * 直流电源
+-- *
+
+ oaNumberDCPowerSupply OBJECT-TYPE
+ SYNTAX INTEGER ( 0..16 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "内部直流电源的数目,'0'表示应答器不支持此功能。"
+ ::= { oaIdent 5 }
+
+ oaDCPowerSupplyMode OBJECT-TYPE
+ SYNTAX INTEGER { loadsharing(1), switchedRedundant(2), aloneSupply(3) }
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "供电电源工作模式:负载分担、备用切换或独立供电。"
+ ::= { oaIdent 6 }
+
+ oaDCPowerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OaDCPowerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "直流电源信息表。"
+ ::= { oaIdent 7 }
+
+ oaDCPowerEntry OBJECT-TYPE
+ SYNTAX OaDCPowerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "直流电源信息表目。"
+ INDEX { oaDCPowerIndex }
+ ::= { oaDCPowerTable 1 }
+
+ OaDCPowerEntry ::= SEQUENCE
+ {
+ oaDCPowerIndex
+ INTEGER,
+ oaDCPowerVoltage
+ INTEGER,
+ oaDCPowerCurrent
+ INTEGER,
+ oaDCPowerName
+ DisplayString
+ }
+
+ oaDCPowerIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "直流电源索引。"
+ ::= { oaDCPowerEntry 1 }
+
+ oaDCPowerVoltage OBJECT-TYPE
+ SYNTAX INTEGER ( -32768..32767 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "电源电压,单位为0.1V。此对象要求在属性MIB中登记一个条目。"
+ ::= { oaDCPowerEntry 2 }
+
+ oaDCPowerCurrent OBJECT-TYPE
+ SYNTAX INTEGER ( 0..65535 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "电源的电流,单位为0.1A。此对象要求在属性MIB中登记一个条目。"
+ ::= { oaDCPowerEntry 3 }
+
+ oaDCPowerName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "标明该电源的名称,例如:24V直流电源。
+ 此字段值由用户规定,至少应标明工作电压并将多个电源相互区分开。
+ 当此表中的对象产生告警时,此对象名称应放进hfcAlarmEvent陷阱的alarmText对象里。"
+ ::= { oaDCPowerEntry 4 }
+
+--******************************************************************************
+END
\ No newline at end of file
diff --git a/mibs/glassway/NSCRTV-HFCEMS-OPTICALTRANSMITTERDIRECTLY-MIB b/mibs/glassway/NSCRTV-HFCEMS-OPTICALTRANSMITTERDIRECTLY-MIB
new file mode 100644
index 0000000000..0ad569f1ed
--- /dev/null
+++ b/mibs/glassway/NSCRTV-HFCEMS-OPTICALTRANSMITTERDIRECTLY-MIB
@@ -0,0 +1,373 @@
+NSCRTV-HFCEMS-OPTICALTRANSMITTERDIRECTLY-MIB DEFINITIONS ::= BEGIN
+-- *****************************************************************************
+-- 附录H 直接调制光发射机MIB
+-- *****************************************************************************
+
+IMPORTS
+ OBJECT-TYPE
+ FROM RFC-1212
+ DisplayString
+ FROM RFC1213-MIB
+ otdIdent
+ FROM NSCRTV-ROOT;
+
+ otdVendorOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "此对象提供厂商对直接调制光发送机MIB的扩充,无扩充时此对象应指向直接调制光发送
+ 机节点otdIdent。"
+ ::= { otdIdent 1 }
+
+ otdSlotNumber OBJECT-TYPE
+ SYNTAX INTEGER ( 0..32767 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "下行光发送机数量或机架插槽数量。"
+ ::= { otdIdent 2 }
+
+ otdOptDeviceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OtdOptDeviceEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "下行光发送机信息表。"
+ ::= { otdIdent 3 }
+
+ otdOptDeviceEntry OBJECT-TYPE
+ SYNTAX OtdOptDeviceEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "下行光发送机信息表目。"
+ INDEX { otdIndex }
+ ::= { otdOptDeviceTable 1 }
+
+ OtdOptDeviceEntry ::= SEQUENCE
+ {
+ otdIndex
+ INTEGER,
+ otdLaserWavelength
+ DisplayString,
+ otdLaserType
+ DisplayString,
+ otdDriveLevel
+ INTEGER,
+ otdInputRFLevel
+ INTEGER,
+ otdInputRFAttenuationRange
+ INTEGER,
+ otdInputRFAttenuation
+ INTEGER,
+ otdLaserTemp
+ INTEGER,
+ otdLaserCurrent
+ INTEGER,
+ otdOpicalOutputPower
+ INTEGER,
+ otdTecCurrent
+ INTEGER,
+ otdAGCControl
+ INTEGER,
+ otdConfigurationDriveLevel
+ INTEGER,
+ otdConfigurationRFAttenuation
+ INTEGER,
+ otdConfigurationRFChannels
+ INTEGER
+ }
+
+
+ otdIndex OBJECT-TYPE
+ SYNTAX INTEGER ( 0..32767 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "下行光发送机索引,可以是光发送机编号或机架插槽号。"
+ ::= { otdOptDeviceEntry 1 }
+
+ otdLaserWavelength OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "激光器波长。"
+ ::= { otdOptDeviceEntry 2 }
+
+ otdLaserType OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "激光器类型,有效值为unisolated FP, isolated FP, uncooled DFB, cooled DFB,ITU
+ 等。"
+ ::= { otdOptDeviceEntry 3 }
+
+ otdDriveLevel OBJECT-TYPE
+ SYNTAX INTEGER (0..127 )
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "光模块激励电平,单位为dBuV/ch。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdOptDeviceEntry 4 }
+
+ otdInputRFLevel OBJECT-TYPE
+ SYNTAX INTEGER (0..127 )
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "输入射频信号电平,单位为dBuV/ch。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdOptDeviceEntry 5 }
+
+ otdInputRFAttenuationRange OBJECT-TYPE
+ SYNTAX INTEGER ( 0..32767 )
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "输入射频信号衰减量范围,单位为0.1dB。"
+ ::= { otdOptDeviceEntry 6 }
+
+ otdInputRFAttenuation OBJECT-TYPE
+ SYNTAX INTEGER ( -32768..32767 )
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "输入射频信号衰减量,单位为0.1dB。"
+ ::= { otdOptDeviceEntry 7 }
+
+ otdLaserTemp OBJECT-TYPE
+ SYNTAX INTEGER ( -32768..32767 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "激光器工作温度,单位为0.1摄氏度。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdOptDeviceEntry 8 }
+
+ otdLaserCurrent OBJECT-TYPE
+ SYNTAX INTEGER (-32768..32767 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "激光器工作电流,单位为0.1mA。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdOptDeviceEntry 9 }
+
+ otdOpicalOutputPower OBJECT-TYPE
+ SYNTAX INTEGER ( 0..32767 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "输出光功率,单位为0.1mW。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdOptDeviceEntry 10 }
+
+ otdTecCurrent OBJECT-TYPE
+ SYNTAX INTEGER ( -32768..32767 )
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "激光器制冷电流,单位为0.01A。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdOptDeviceEntry 11 }
+
+ otdAGCControl OBJECT-TYPE
+ SYNTAX INTEGER {off(1),on(2)}
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "AGC控制使能。"
+ ::= { otdOptDeviceEntry 12 }
+
+ otdConfigurationDriveLevel OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "设定激光器RF驱动电平偏移量,单位为0.1dB。该参数仅在AGC模式为打开时起作用。
+ 系统根据该设定自动调整RF增益(衰减),从而达到设定的激光器RF驱动电平偏移量。
+ "
+ ::= { otdOptDeviceEntry 13 }
+
+ otdConfigurationRFAttenuation OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "设定激光器RF驱动信号增益(衰减)的偏移量,单位为0.1dB。该参数仅在AGC模式为
+ 关闭时起作用(MGC)。系统根据该设定调整RF信道的增益(衰减),从而达到手动
+ 控制激光器RF驱动电平的目的。"
+ ::= { otdOptDeviceEntry 14 }
+
+ otdConfigurationRFChannels OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "RF信号中输入的电视信号频道数。"
+ ::= { otdOptDeviceEntry 15 }
+
+ otdFansNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "表示内部散热风扇的数量,'0'表示设备不支持散热风扇的监测或没有散热风扇。"
+ ::= { otdIdent 4 }
+
+ otdFansTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OtdFansEntry
+ ACCESS not-accessible
+ STATUS optional
+ DESCRIPTION
+ "散热风扇信息表。"
+ ::= { otdIdent 5 }
+
+ otdFansEntry OBJECT-TYPE
+ SYNTAX OtdFansEntry
+ ACCESS not-accessible
+ STATUS optional
+ DESCRIPTION
+ "散热风扇信息表目。"
+ INDEX { otdFansIndex }
+ ::= { otdFansTable 1 }
+
+ OtdFansEntry ::= SEQUENCE {
+ otdFansIndex
+ INTEGER,
+ otdFansState
+ INTEGER,
+ otdFansSpeed
+ INTEGER,
+ otdFansControl
+ INTEGER,
+ otdFansName
+ DisplayString
+ }
+
+
+ otdFansIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "散热风扇信息表索引。"
+ ::= { otdFansEntry 1 }
+
+ otdFansState OBJECT-TYPE
+ SYNTAX INTEGER {normal (1), fault (2), off (3) }
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "散热风扇工作状态,normal 表示正常,fault表示失效,off表示关闭。此对象要求在离散属性MIB中登
+ 记一个条目。"
+ ::= { otdFansEntry 2 }
+
+ otdFansSpeed OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "散热风扇工作时的转速,单位为转/分,不支持转速检测时可置为'0'。此对象要求在
+ 离散属性MIB中登记一个条目。"
+ ::= { otdFansEntry 3 }
+
+ otdFansControl OBJECT-TYPE
+ SYNTAX INTEGER { on(1), off(2) }
+ ACCESS read-write
+ STATUS optional
+ DESCRIPTION
+ "散热风扇工作控制。 "
+ ::= { otdFansEntry 4 }
+
+ otdFansName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "散热风扇名称。"
+ ::= { otdFansEntry 5 }
+
+--*
+--* 直流电源
+--*
+ otdNumberDCPowerSupply OBJECT-TYPE
+ SYNTAX INTEGER ( 0..16 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "直流电源数量,'0'表示应答器不支持此功能。"
+ ::= { otdIdent 6 }
+
+ otdDCPowerSupplyMode OBJECT-TYPE
+ SYNTAX INTEGER { loadsharing(1), switchedredundant(2),alonesupply(3) }
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "供电电源工作模式。"
+ ::= { otdIdent 7 }
+
+ otdDCPowerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OtdDCPowerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "直流电源信息表。"
+ ::= { otdIdent 8 }
+
+ otdDCPowerEntry OBJECT-TYPE
+ SYNTAX OtdDCPowerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "直流电源信息表目。"
+ INDEX { otdDCPowerIndex }
+ ::= { otdDCPowerTable 1 }
+
+ OtdDCPowerEntry ::= SEQUENCE
+ {
+ otdDCPowerIndex
+ INTEGER,
+ otdDCPowerVoltage
+ INTEGER,
+ otdDCPowerCurrent
+ INTEGER,
+ otdDCPowerName
+ DisplayString
+ }
+
+ otdDCPowerIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "直流电源索引。"
+ ::= { otdDCPowerEntry 1 }
+
+ otdDCPowerVoltage OBJECT-TYPE
+ SYNTAX INTEGER (-32768..32767 )
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "电源电压,单位为0.1V。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdDCPowerEntry 2 }
+
+ otdDCPowerCurrent OBJECT-TYPE
+ SYNTAX INTEGER ( 0..65535 )
+ ACCESS read-only
+ STATUS optional
+ DESCRIPTION
+ "电源电流,单位为0.1A。此对象要求在属性MIB中登记一个条目。"
+ ::= { otdDCPowerEntry 3 }
+
+ otdDCPowerName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "标明电源的名称,例如:24V直流电源。
+ 此字段值由用户规定,至少应标明工作电压并将多个电源相互区分开。
+ 当表中的对象产生告警时,此对象名称应放进hfcAlarmEvent陷阱的alarmText对象里(见
+ 附录D)。"
+ ::= { otdDCPowerEntry 4 }
+
+-- *****************************************************************************
+END
\ No newline at end of file
diff --git a/mibs/glassway/NSCRTV-HFCEMS-PROPERTY-MIB b/mibs/glassway/NSCRTV-HFCEMS-PROPERTY-MIB
new file mode 100644
index 0000000000..60e956d54a
--- /dev/null
+++ b/mibs/glassway/NSCRTV-HFCEMS-PROPERTY-MIB
@@ -0,0 +1,284 @@
+NSCRTV-HFCEMS-PROPERTY-MIB DEFINITIONS ::= BEGIN
+
+-- *****************************************************************************
+-- 附录C 属性MIB
+-- *****************************************************************************
+
+IMPORTS
+ OBJECT-TYPE
+ FROM RFC-1212
+ propertyIdent
+ FROM NSCRTV-ROOT;
+
+--********************************************************************************************
+--* 模拟属性表
+--********************************************************************************************
+analogPropertyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AnalogPropertyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "模拟参数属性表。"
+ ::= { propertyIdent 1 }
+
+analogPropertyEntry OBJECT-TYPE
+ SYNTAX AnalogPropertyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "模拟参数属性表目。
+ OID作为表目的索引,其编码方法是“长度+OID”。OID的前2个成员“1.3”是按“1”和“3”分
+ 别编码,而不是普通OID编码方式(0x2B)。"
+ INDEX { analogParameterOID }
+ ::= { analogPropertyTable 1 }
+
+AnalogPropertyEntry ::= SEQUENCE {
+ analogParameterOID
+ OBJECT IDENTIFIER,
+ alarmEnable
+ OCTET STRING,
+ analogAlarmState
+ INTEGER,
+ analogAlarmHIHI
+ INTEGER,
+ analogAlarmHI
+ INTEGER,
+ analogAlarmLO
+ INTEGER,
+ analogAlarmLOLO
+ INTEGER,
+ analogAlarmDeadband
+ INTEGER
+ }
+
+analogParameterOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "索引。"
+ ::= { analogPropertyEntry 1 }
+
+alarmEnable OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(1))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "告警使能控制字节,对应位为'1'表示允许告警,'0'表示禁止告警
+ Bit 0 : 极低告警使能
+ Bit 1 : 低告警使能
+ Bit 2 : 高告警使能
+ Bit 3 : 极高告警使能
+ Bit 4~7 保留,应为0
+ 此对象应保存在非易失性存储器中。"
+ ::= { analogPropertyEntry 2 }
+
+analogAlarmState OBJECT-TYPE
+ SYNTAX INTEGER {
+ aasNominal (1),
+ aasHIHI (2),
+ aasHI (3),
+ aasLO (4),
+ aasLOLO (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "参数的当前告警状态。"
+ ::= { analogPropertyEntry 3 }
+
+analogAlarmHIHI OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "极高告警门限HIHI的值。此对象应保存在非易失性存储器中。"
+ ::= { analogPropertyEntry 4 }
+
+analogAlarmHI OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "高告警门限HI的值。此对象应保存在非易失性存储器中。"
+ ::= { analogPropertyEntry 5 }
+
+analogAlarmLO OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "低告警门限LO的值。此对象应保存在非易失性存储器中。"
+ ::= { analogPropertyEntry 6 }
+
+analogAlarmLOLO OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "极低告警门限LOLO的值。此对象应保存在非易失性存储器中。"
+ ::= { analogPropertyEntry 7 }
+
+analogAlarmDeadband OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "告警门限死区的值。告警产生后,参数值应恢复到告警门限
+ 内且与告警门限之差的绝对值大于死区值,该告警才能清除。
+ 此对象应保存在非易失性存储器中。"
+ ::= { analogPropertyEntry 8 }
+
+
+
+-- *
+-- * 离散属性表
+-- * 离散属性表的记录数量是固定的,每个离散型参数的每一个需要进行告警处理的值在表
+-- * 中均对应一条记录。每个离散型参数在离散属性表中至少对应有一条记录。
+-- * 离散属性表有2个索引:一个是参数标识(OID),另一个是离散告警值(discreteAlarmValue)。
+-- *
+
+discretePropertyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DiscretePropertyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "离散属性表。"
+ ::= { propertyIdent 2 }
+
+discretePropertyEntry OBJECT-TYPE
+ SYNTAX DiscretePropertyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "离散属性表目。OID的编码方式同模拟属性表。"
+ INDEX { discreteParameterOID, discreteAlarmValue }
+ ::= { discretePropertyTable 1 }
+
+DiscretePropertyEntry ::= SEQUENCE {
+ discreteParameterOID
+ OBJECT IDENTIFIER,
+ discreteAlarmValue
+ INTEGER,
+ discreteAlarmEnable
+ INTEGER,
+ discreteAlarmState
+ INTEGER
+}
+
+discreteParameterOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "离散属性表的索引1:参数OID。"
+ ::= { discretePropertyEntry 1 }
+
+discreteAlarmValue OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "离散属性表的索引2:参数值。
+ 当设备的参数值等于此值,将进行告警处理。"
+ ::= { discretePropertyEntry 2 }
+
+
+discreteAlarmEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disable (1),
+ enableMajor (2),
+ enableMinor (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "当告警使能打开(2或3),允许进行此参数的告警处理。
+ 如果告警使能关闭(1),则告警处理不会进行。
+ 此对象缺省值为disable(1)。
+ 此对象应保存在非易失性存储器中。"
+ ::= { discretePropertyEntry 3 }
+
+discreteAlarmState OBJECT-TYPE
+ SYNTAX INTEGER {
+ dasNominal(1),
+ dasDiscreteMajor(6),
+ dasDiscreteMinor(7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "参数的当前告警状态。"
+ ::= { discretePropertyEntry 4 }
+
+
+-- *
+-- * 当前告警表包含了NE当前处于"激活"状态的告警项(0项或多项)。
+-- * 虽然模拟属性表和离散属性表中也包括了告警状态信息,但是管理者应遍历全表才能
+-- * 完全确定NE的告警状态,在效率上比较低。而当前告警表的作用就是将这2张表中处于告警
+-- * 状态的那些项进行了汇总,便于管理者进行检索。
+-- * 建议管理者程序使用GetNext命令(从表头OID开始)遍历这张表来获取NE所有的告警信息。
+-- * HFC网络正常工作时,当前告警表的内容为空。
+-- *
+
+currentAlarmTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF CurrentAlarmEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "当前告警表。"
+ ::= { propertyIdent 3 }
+
+currentAlarmEntry OBJECT-TYPE
+ SYNTAX CurrentAlarmEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "当前告警表目。
+ OID的编码方式同模拟属性表。"
+ INDEX { currentAlarmOID }
+ ::= { currentAlarmTable 1 }
+
+CurrentAlarmEntry ::= SEQUENCE {
+ currentAlarmOID
+ OBJECT IDENTIFIER,
+ currentAlarmState
+ INTEGER,
+ currentAlarmValue
+ INTEGER
+}
+
+currentAlarmOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "NE当前处于告警状态的参数OID索引,与属性表中的告警参数OID对应。"
+ ::= { currentAlarmEntry 1 }
+
+currentAlarmState OBJECT-TYPE
+ SYNTAX INTEGER {
+ caasHIHI (2),
+ caasHI (3),
+ caasLO (4),
+ caasLOLO (5),
+ caasDiscreteMajor (6),
+ caasDiscreteMinor (7)
+
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "告警参数的当前告警状态。"
+ ::= { currentAlarmEntry 2 }
+
+currentAlarmValue OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "告警参数的值。"
+ ::= { currentAlarmEntry 3 }
+
+--******************************************************************************
+END
\ No newline at end of file
diff --git a/mibs/glassway/NSCRTV-ROOT b/mibs/glassway/NSCRTV-ROOT
new file mode 100644
index 0000000000..2288ccd964
--- /dev/null
+++ b/mibs/glassway/NSCRTV-ROOT
@@ -0,0 +1,107 @@
+NSCRTV-ROOT DEFINITIONS ::= BEGIN
+-- *****************************************************************************
+-- 附录B 根节点MIB
+-- *****************************************************************************
+
+IMPORTS
+ enterprises
+ FROM RFC1155-SMI;
+
+nscrtvRoot OBJECT IDENTIFIER ::= { enterprises 17409 }
+
+-- DESCRIPTION
+-- "nscrtvRoot定义全国广播电视标准化技术委员会MIB根节点。"
+
+nscrtvHFCemsTree OBJECT IDENTIFIER ::= { nscrtvRoot 1 }
+
+-- DESCRIPTION
+-- "nscrtvHFCemsTree定义HFC网络设备管理系统MIB根节点,"
+-- "所有HFC网络设备管理系统的MIB均应在该节点下定义。"
+
+propertyIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 1}
+
+-- DESCRIPTION
+-- "属性(Property)MIB的分支节点标识。"
+-- "见附录C。"
+
+alarmsIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 2}
+
+-- DESCRIPTION
+-- "告警(Alarms)MIB的分支节点标识。"
+-- "见附录D。"
+
+commonIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 3}
+
+-- DESCRIPTION
+-- "公用(Common)MIB的分支节点标识。"
+-- "见附录E。"
+
+tvmodIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 4}
+
+-- DESCRIPTION
+-- "模拟电视调制器(TV Modulator)MIB的分支节点标识。"
+-- "见附录F。"
+
+qammodIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 5}
+
+-- DESCRIPTION
+-- "QAM调制器(QAM Modulator)MIB的分支节点标识。"
+-- "见附录G。"
+
+otdIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 6}
+
+-- DESCRIPTION
+-- "直接调制光发送机MIB的分支节点标识。"
+-- "见附录H。"
+
+otxIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 7}
+
+-- DESCRIPTION
+-- "外调制光发送机MIB的分支节点标识。"
+-- "见附录I。"
+
+uporIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 8}
+
+-- DESCRIPTION
+-- "上行光接收机(UpStream Optical Receiver)MIB的分支节点标识。"
+-- "见附录J。"
+
+dorIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 9}
+
+-- DESCRIPTION
+-- "下行光接收机(DownStream Optical Receiver)MIB的分支节点标识符。"
+-- "见附录K。"
+
+fnIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 10}
+
+-- DESCRIPTION
+-- "光节点(Fiber Node)MIB的分支节点标识符。"
+-- "见附录L。"
+
+oaIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 11}
+
+-- DESCRIPTION
+-- "光放大器(Optical Amplifier)MIB的分支节点标识符。"
+-- "见附录M。"
+
+addIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 12}
+
+-- DESCRIPTION
+-- "双向射频放大器(Amplifier of Dual Direction)MIB的分支节点标识。"
+-- "见附录N。"
+
+cacIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 13}
+
+-- DESCRIPTION
+-- "可寻址终端控制器(Controlled Access-Controller)MIB的分支节点标识。"
+-- "见附录O。"
+
+lineIdent OBJECT IDENTIFIER ::= { nscrtvHFCemsTree 14}
+
+-- DESCRIPTION
+-- "线路(Line)MIB的分支节点标识。"
+-- "见附录P。"
+
+
+-- *****************************************************************************
+END
\ No newline at end of file
diff --git a/tests/data/gw-eydfa.json b/tests/data/gw-eydfa.json
new file mode 100644
index 0000000000..f87b2a6d96
--- /dev/null
+++ b/tests/data/gw-eydfa.json
@@ -0,0 +1,556 @@
+{
+ "os": {
+ "discovery": {
+ "devices": [
+ {
+ "sysName": "",
+ "sysObjectID": ".1.3.6.1.4.1.17409.1.11",
+ "sysDescr": "GW-6420-WDM",
+ "sysContact": null,
+ "version": null,
+ "hardware": null,
+ "features": null,
+ "location": null,
+ "os": "gw-eydfa",
+ "type": "network",
+ "serial": null,
+ "icon": "glassway.svg"
+ }
+ ]
+ },
+ "poller": {
+ "devices": [
+ {
+ "sysName": "",
+ "sysObjectID": ".1.3.6.1.4.1.17409.1.11",
+ "sysDescr": "GW-6420-WDM",
+ "sysContact": "",
+ "version": "V3.1.0",
+ "hardware": "GW-6420-WDM",
+ "features": null,
+ "location": "",
+ "os": "gw-eydfa",
+ "type": "network",
+ "serial": "180619085787",
+ "icon": "glassway.svg"
+ }
+ ]
+ }
+ },
+ "sensors": {
+ "discovery": {
+ "sensors": [
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "current",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.2.1",
+ "sensor_index": "oaPumpBIAS1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "BIAS Pump - 1",
+ "sensor_divisor": 1000,
+ "sensor_multiplier": 1,
+ "sensor_current": 0.54100000000000004,
+ "sensor_limit": 0.90000000000000002,
+ "sensor_limit_warn": 0.80000000000000004,
+ "sensor_limit_low": 0.080000000000000002,
+ "sensor_limit_low_warn": 0.10000000000000001,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "current",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.2.2",
+ "sensor_index": "oaPumpBIAS2",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "BIAS Pump - 2",
+ "sensor_divisor": 1000,
+ "sensor_multiplier": 1,
+ "sensor_current": 8.2300000000000004,
+ "sensor_limit": 15,
+ "sensor_limit_warn": 10,
+ "sensor_limit_low": 0.080000000000000002,
+ "sensor_limit_low_warn": 0.10000000000000001,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "current",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.3.1",
+ "sensor_index": "oaPumpTEC1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "TEC Pump - 1",
+ "sensor_divisor": 100,
+ "sensor_multiplier": 1,
+ "sensor_current": 0.28000000000000003,
+ "sensor_limit": 2,
+ "sensor_limit_warn": 1.5,
+ "sensor_limit_low": -2,
+ "sensor_limit_low_warn": -1.5,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "dbm",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.3.0",
+ "sensor_index": "oaInputOpticalPower.0",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Input Power",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 3.5,
+ "sensor_limit": 10,
+ "sensor_limit_warn": 8,
+ "sensor_limit_low": -10,
+ "sensor_limit_low_warn": -6,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "dbm",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.2.0",
+ "sensor_index": "oaOutputOpticalPower.0",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Per Output Power",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 20.300000000000001,
+ "sensor_limit": 27,
+ "sensor_limit_warn": 26,
+ "sensor_limit_low": 10,
+ "sensor_limit_low_warn": 11,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "state",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.100.0.2",
+ "sensor_index": "PowerSupplyState1",
+ "sensor_type": "PowerSupplyState",
+ "sensor_descr": "Power Supply 1",
+ "sensor_divisor": 1,
+ "sensor_multiplier": 1,
+ "sensor_current": 0,
+ "sensor_limit": null,
+ "sensor_limit_warn": null,
+ "sensor_limit_low": null,
+ "sensor_limit_low_warn": null,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": "PowerSupplyState"
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "state",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.101.0.2",
+ "sensor_index": "PowerSupplyState2",
+ "sensor_type": "PowerSupplyState",
+ "sensor_descr": "Power Supply 2",
+ "sensor_divisor": 1,
+ "sensor_multiplier": 1,
+ "sensor_current": 0,
+ "sensor_limit": null,
+ "sensor_limit_warn": null,
+ "sensor_limit_low": null,
+ "sensor_limit_low_warn": null,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": "PowerSupplyState"
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "temperature",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.3.3.2.2.1.12.1",
+ "sensor_index": "commonDeviceInternalTemperature.1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Internal Temp",
+ "sensor_divisor": 1,
+ "sensor_multiplier": 1,
+ "sensor_current": 47,
+ "sensor_limit": 85,
+ "sensor_limit_warn": 70,
+ "sensor_limit_low": 0,
+ "sensor_limit_low_warn": 5,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "temperature",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.4.1",
+ "sensor_index": "oaPumpTemp1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Temperature Pump - 1",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 25.300000000000001,
+ "sensor_limit": 35,
+ "sensor_limit_warn": 30,
+ "sensor_limit_low": 15,
+ "sensor_limit_low_warn": 20,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "voltage",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.7.1.2.1",
+ "sensor_index": "oaDCPowerVoltage1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "DC +5V - 1",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 4.7999999999999998,
+ "sensor_limit": 6.5,
+ "sensor_limit_warn": 6,
+ "sensor_limit_low": 3.5,
+ "sensor_limit_low_warn": 4,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ }
+ ],
+ "state_indexes": [
+ {
+ "state_name": "PowerSupplyState",
+ "state_descr": "normal",
+ "state_draw_graph": 0,
+ "state_value": 1,
+ "state_generic_value": 0
+ },
+ {
+ "state_name": "PowerSupplyState",
+ "state_descr": "critical",
+ "state_draw_graph": 0,
+ "state_value": 6,
+ "state_generic_value": 2
+ },
+ {
+ "state_name": "PowerSupplyState",
+ "state_descr": "warning",
+ "state_draw_graph": 0,
+ "state_value": 7,
+ "state_generic_value": 1
+ }
+ ]
+ },
+ "poller": {
+ "sensors": [
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "current",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.2.1",
+ "sensor_index": "oaPumpBIAS1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "BIAS Pump - 1",
+ "sensor_divisor": 1000,
+ "sensor_multiplier": 1,
+ "sensor_current": 0.54100000000000004,
+ "sensor_limit": 0.90000000000000002,
+ "sensor_limit_warn": 0.80000000000000004,
+ "sensor_limit_low": 0.080000000000000002,
+ "sensor_limit_low_warn": 0.10000000000000001,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "current",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.2.2",
+ "sensor_index": "oaPumpBIAS2",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "BIAS Pump - 2",
+ "sensor_divisor": 1000,
+ "sensor_multiplier": 1,
+ "sensor_current": 8.2300000000000004,
+ "sensor_limit": 15,
+ "sensor_limit_warn": 10,
+ "sensor_limit_low": 0.080000000000000002,
+ "sensor_limit_low_warn": 0.10000000000000001,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "current",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.3.1",
+ "sensor_index": "oaPumpTEC1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "TEC Pump - 1",
+ "sensor_divisor": 100,
+ "sensor_multiplier": 1,
+ "sensor_current": 0.28000000000000003,
+ "sensor_limit": 2,
+ "sensor_limit_warn": 1.5,
+ "sensor_limit_low": -2,
+ "sensor_limit_low_warn": -1.5,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "dbm",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.3.0",
+ "sensor_index": "oaInputOpticalPower.0",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Input Power",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 3.5,
+ "sensor_limit": 10,
+ "sensor_limit_warn": 8,
+ "sensor_limit_low": -10,
+ "sensor_limit_low_warn": -6,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "dbm",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.2.0",
+ "sensor_index": "oaOutputOpticalPower.0",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Per Output Power",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 20.300000000000001,
+ "sensor_limit": 27,
+ "sensor_limit_warn": 26,
+ "sensor_limit_low": 10,
+ "sensor_limit_low_warn": 11,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "state",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.100.0.2",
+ "sensor_index": "PowerSupplyState1",
+ "sensor_type": "PowerSupplyState",
+ "sensor_descr": "Power Supply 1",
+ "sensor_divisor": 1,
+ "sensor_multiplier": 1,
+ "sensor_current": 1,
+ "sensor_limit": null,
+ "sensor_limit_warn": null,
+ "sensor_limit_low": null,
+ "sensor_limit_low_warn": null,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": 0,
+ "user_func": null,
+ "state_name": "PowerSupplyState"
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "state",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.101.0.2",
+ "sensor_index": "PowerSupplyState2",
+ "sensor_type": "PowerSupplyState",
+ "sensor_descr": "Power Supply 2",
+ "sensor_divisor": 1,
+ "sensor_multiplier": 1,
+ "sensor_current": 1,
+ "sensor_limit": null,
+ "sensor_limit_warn": null,
+ "sensor_limit_low": null,
+ "sensor_limit_low_warn": null,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": 0,
+ "user_func": null,
+ "state_name": "PowerSupplyState"
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "temperature",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.3.3.2.2.1.12.1",
+ "sensor_index": "commonDeviceInternalTemperature.1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Internal Temp",
+ "sensor_divisor": 1,
+ "sensor_multiplier": 1,
+ "sensor_current": 47,
+ "sensor_limit": 85,
+ "sensor_limit_warn": 70,
+ "sensor_limit_low": 0,
+ "sensor_limit_low_warn": 5,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "temperature",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.4.1.4.1",
+ "sensor_index": "oaPumpTemp1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "Temperature Pump - 1",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 25.300000000000001,
+ "sensor_limit": 35,
+ "sensor_limit_warn": 30,
+ "sensor_limit_low": 15,
+ "sensor_limit_low_warn": 20,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ },
+ {
+ "sensor_deleted": 0,
+ "sensor_class": "voltage",
+ "poller_type": "snmp",
+ "sensor_oid": ".1.3.6.1.4.1.17409.1.11.7.1.2.1",
+ "sensor_index": "oaDCPowerVoltage1",
+ "sensor_type": "gw-eydfa",
+ "sensor_descr": "DC +5V - 1",
+ "sensor_divisor": 10,
+ "sensor_multiplier": 1,
+ "sensor_current": 4.7999999999999998,
+ "sensor_limit": 6.5,
+ "sensor_limit_warn": 6,
+ "sensor_limit_low": 3.5,
+ "sensor_limit_low_warn": 4,
+ "sensor_alert": 1,
+ "sensor_custom": "No",
+ "entPhysicalIndex": null,
+ "entPhysicalIndex_measured": null,
+ "sensor_prev": null,
+ "user_func": null,
+ "state_name": null
+ }
+ ],
+ "state_indexes": [
+ {
+ "state_name": "PowerSupplyState",
+ "state_descr": "normal",
+ "state_draw_graph": 0,
+ "state_value": 1,
+ "state_generic_value": 0
+ },
+ {
+ "state_name": "PowerSupplyState",
+ "state_descr": "critical",
+ "state_draw_graph": 0,
+ "state_value": 6,
+ "state_generic_value": 2
+ },
+ {
+ "state_name": "PowerSupplyState",
+ "state_descr": "warning",
+ "state_draw_graph": 0,
+ "state_value": 7,
+ "state_generic_value": 1
+ }
+ ]
+ }
+ }
+}
diff --git a/tests/snmpsim/gw-eydfa.snmprec b/tests/snmpsim/gw-eydfa.snmprec
new file mode 100644
index 0000000000..5ff8b2e2b2
--- /dev/null
+++ b/tests/snmpsim/gw-eydfa.snmprec
@@ -0,0 +1,58 @@
+1.3.6.1.2.1.1.1.0|4|GW-6420-WDM
+1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.17409.1.11
+1.3.6.1.2.1.1.3.0|67|602300613
+1.3.6.1.2.1.1.4.0|4|
+1.3.6.1.2.1.1.5.0|4|
+1.3.6.1.2.1.1.6.0|4|
+1.3.6.1.4.1.17409.1.1.1.1.4.11.1.3.6.1.4.1.17409.1.11.2.0|2|270
+1.3.6.1.4.1.17409.1.1.1.1.4.11.1.3.6.1.4.1.17409.1.11.3.0|2|100
+1.3.6.1.4.1.17409.1.1.1.1.4.12.1.3.6.1.4.1.17409.1.3.1.13.0|2|85
+1.3.6.1.4.1.17409.1.1.1.1.4.13.1.3.6.1.4.1.17409.1.11.4.1.2.1|2|900
+1.3.6.1.4.1.17409.1.1.1.1.4.13.1.3.6.1.4.1.17409.1.11.4.1.2.2|2|15000
+1.3.6.1.4.1.17409.1.1.1.1.4.13.1.3.6.1.4.1.17409.1.11.4.1.3.1|2|200
+1.3.6.1.4.1.17409.1.1.1.1.4.13.1.3.6.1.4.1.17409.1.11.4.1.4.1|2|350
+1.3.6.1.4.1.17409.1.1.1.1.4.13.1.3.6.1.4.1.17409.1.11.7.1.2.1|2|65
+1.3.6.1.4.1.17409.1.1.1.1.5.11.1.3.6.1.4.1.17409.1.11.2.0|2|260
+1.3.6.1.4.1.17409.1.1.1.1.5.11.1.3.6.1.4.1.17409.1.11.3.0|2|80
+1.3.6.1.4.1.17409.1.1.1.1.5.12.1.3.6.1.4.1.17409.1.3.1.13.0|2|70
+1.3.6.1.4.1.17409.1.1.1.1.5.13.1.3.6.1.4.1.17409.1.11.4.1.2.1|2|800
+1.3.6.1.4.1.17409.1.1.1.1.5.13.1.3.6.1.4.1.17409.1.11.4.1.2.2|2|10000
+1.3.6.1.4.1.17409.1.1.1.1.5.13.1.3.6.1.4.1.17409.1.11.4.1.3.1|2|150
+1.3.6.1.4.1.17409.1.1.1.1.5.13.1.3.6.1.4.1.17409.1.11.4.1.4.1|2|300
+1.3.6.1.4.1.17409.1.1.1.1.5.13.1.3.6.1.4.1.17409.1.11.7.1.2.1|2|60
+1.3.6.1.4.1.17409.1.1.1.1.6.11.1.3.6.1.4.1.17409.1.11.2.0|2|110
+1.3.6.1.4.1.17409.1.1.1.1.6.11.1.3.6.1.4.1.17409.1.11.3.0|2|-60
+1.3.6.1.4.1.17409.1.1.1.1.6.12.1.3.6.1.4.1.17409.1.3.1.13.0|2|5
+1.3.6.1.4.1.17409.1.1.1.1.6.13.1.3.6.1.4.1.17409.1.11.4.1.2.1|2|100
+1.3.6.1.4.1.17409.1.1.1.1.6.13.1.3.6.1.4.1.17409.1.11.4.1.2.2|2|100
+1.3.6.1.4.1.17409.1.1.1.1.6.13.1.3.6.1.4.1.17409.1.11.4.1.3.1|2|-150
+1.3.6.1.4.1.17409.1.1.1.1.6.13.1.3.6.1.4.1.17409.1.11.4.1.4.1|2|200
+1.3.6.1.4.1.17409.1.1.1.1.6.13.1.3.6.1.4.1.17409.1.11.7.1.2.1|2|40
+1.3.6.1.4.1.17409.1.1.1.1.7.11.1.3.6.1.4.1.17409.1.11.2.0|2|100
+1.3.6.1.4.1.17409.1.1.1.1.7.11.1.3.6.1.4.1.17409.1.11.3.0|2|-100
+1.3.6.1.4.1.17409.1.1.1.1.7.12.1.3.6.1.4.1.17409.1.3.1.13.0|2|0
+1.3.6.1.4.1.17409.1.1.1.1.7.13.1.3.6.1.4.1.17409.1.11.4.1.2.1|2|80
+1.3.6.1.4.1.17409.1.1.1.1.7.13.1.3.6.1.4.1.17409.1.11.4.1.2.2|2|80
+1.3.6.1.4.1.17409.1.1.1.1.7.13.1.3.6.1.4.1.17409.1.11.4.1.3.1|2|-200
+1.3.6.1.4.1.17409.1.1.1.1.7.13.1.3.6.1.4.1.17409.1.11.4.1.4.1|2|150
+1.3.6.1.4.1.17409.1.1.1.1.7.13.1.3.6.1.4.1.17409.1.11.7.1.2.1|2|35
+1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.100.0.2|2|1
+1.3.6.1.4.1.17409.1.1.2.1.4.11.1.3.6.1.4.1.17409.1.11.101.0.2|2|1
+1.3.6.1.4.1.17409.1.3.3.2.2.1.4.1|4|GW-6420-WDM
+1.3.6.1.4.1.17409.1.3.3.2.2.1.5.1|4|180619085787
+1.3.6.1.4.1.17409.1.3.3.2.2.1.6.1|4|V3.1.0
+1.3.6.1.4.1.17409.1.3.3.2.2.1.12.1|2|47
+1.3.6.1.4.1.17409.1.11.2.0|2|203
+1.3.6.1.4.1.17409.1.11.3.0|2|35
+1.3.6.1.4.1.17409.1.11.4.1.1.1|2|1
+1.3.6.1.4.1.17409.1.11.4.1.1.2|2|2
+1.3.6.1.4.1.17409.1.11.4.1.2.1|2|541
+1.3.6.1.4.1.17409.1.11.4.1.2.2|2|8230
+1.3.6.1.4.1.17409.1.11.4.1.3.1|2|28
+1.3.6.1.4.1.17409.1.11.4.1.3.2|2|0
+1.3.6.1.4.1.17409.1.11.4.1.4.1|2|253
+1.3.6.1.4.1.17409.1.11.4.1.4.2|2|0
+1.3.6.1.4.1.17409.1.11.7.1.1.1|2|1
+1.3.6.1.4.1.17409.1.11.7.1.2.1|2|48
+1.3.6.1.4.1.17409.1.11.7.1.3.1|2|0
+1.3.6.1.4.1.17409.1.11.7.1.4.1|4|DC +5V