Observium_CE/includes/polling/os/smartos.inc.php

66 lines
2.9 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage poller
* @copyright (C) Adam Armstrong
*
*/
// FIXME. What is hell here, needed simple way for detect features
$mfeatures = [
'M-401-B0030A0' => '4ch+UPG, D931-D934, Rx=-28dBm/ch, ER:0-40km, ZR:0-80km',
'M-401-B003AA0' => '4ch+UPG, D931-D934, Rx=-28dBm/ch, ER:40-80km, ZR:40-120km',
'M-401-B003BA0' => '4ch+UPG, D931-D934, Rx=-28dBm/ch, ER:80-120km, ZR:80-160km',
'M-401-B1B30A0' => '4ch+UPG, D931-D934, Tx=+8dBm/ch, Rx=-28dBm/ch, ER:80-120km, ZR:80-160km',
'M-401-B1B3AA0' => '4ch+UPG, D931-D934, Tx=+8dBm/ch, Rx=-28dBm/ch, ER:120-160km, ZR:120-200km',
'M-4000-02A2A00' => '40ch, D921-D960, in-line, 30dB/+24dBm, 40km DCM',
'M-4000-02B2B00' => '40ch, D921-D960, in-line, 30dB/+24dBm, 80km DCM',
'M-1600-D0000C0' => '16ch, D943-D958',
'M-1601-C0000C0' => '16ch+UPG, D921-D936, IL Link=5.0dB, pass through',
'M-1601-D1000C0' => '16ch+UPG, D921-D936, Tx=+8dBm/ch, ER:0-40km, ZR:0-80km, pass through',
'M-1601-D1U00C0' => '16ch+UPG, D921-D936, Tx=+8dBm/ch, ER:0-120km, ZR:0-160km',
'M-1601-D0030C0' => '16ch+UPG, D921-D936, Rx=-28dBm/ch, ER:0-40km, ZR:0-80km',
'M-1601-D003AC0' => '16ch+UPG, D921-D936, Rx=-28dBm/ch, ER:40-80km, ZR:40-120km',
'M-1601-D1A00C0' => '16ch+Upg, D921-D936, Tx=+8dBm/ch, ER:40-80km, ZR:40-120km, pass through',
'M-1601-D1A30C0' => '16ch+UPG, D921-D936, Tx=+8dBm/ch, Rx=-28dBm/ch, ER:40-80km, ZR:40-120km',
'M-1601-D1B30C0' => '16ch+UPG, D921-D936, Tx=+8dBm/ch, Rx=-28dBm/ch, ER:80-120km, ZR:80-160km',
'M-1601-D1B3AC0' => '16ch+UPG, D921-D936, Tx=+8dBm/ch, Rx=-28dBm/ch, ER:120-160km, ZR:120-200km',
'M-1601-D1A3TC0' => '16ch+UPG, D921-D936, Tx=+8dBm/ch, Rx=-28dBm/ch, ER:0-120km, ZR:0-160km',
'M-1601-D1B3TC0' => '16ch+UPG, D921-D936, Tx=+8dBm/ch, Rx=-28dBm/ch, ER:40-160km, ZR:40-200km',
'M-1601-F1A00E0' => '16ch+Upg, D921-D936, Tx=+8dBm/ch, ER:40-80km, ZR:40-120km',
];
# SmartOptics, M-Series M-1601-D1A30C1 R1B, SmartOS v2.3.9 (Compiled on Tue Oct 14 09:40:33 CEST 2014)
if (preg_match('/^SmartOptics, \S+Series (?<hardware>.+), SmartOS v(?<version>\S+) /', $poll_device['sysDescr'], $matches)) {
$hardware = $matches['hardware']; // -> M-1601-D1A30C1 R1B
$version = $matches['version']; // -> 2.3.9
// Features
$fa = [];
if (preg_match('/^(M-1601-[A-Z0-9]+)(C0|C1) /', $hardware, $matches)) {
# An M-1601 ending in "C1" has an optical supervisory channel feature.
if ($matches[2] == 'C1') {
$fa[] = 'OSC';
}
if (isset($mfeatures[$matches[1] . 'C0'])) {
$fa[] = $mfeatures[$matches[1] . 'C0'];
}
} elseif (preg_match('/^(M-\d+-[A-Z\d]+) /', $hardware, $matches)) {
# all other M-series
if (isset($mfeatures[$matches[1]])) {
$fa[] = $mfeatures[$matches[1]];
}
}
if (count($fa)) {
$features = implode(', ', $fa);
}
}
// EOF