Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion configs/models/Alcatel-switches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,5 @@ models:
net_settings: \SwitcherCore\Modules\General\NetSettings
clear_iface_counters: SwitcherCore\Modules\AlcatelSwitch\ClearIfaceCounters
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\AlcatelSwitch\SystemTemperatures
sys_temp: \SwitcherCore\Modules\AlcatelSwitch\SystemTemperatures
snooping_info: \SwitcherCore\Modules\AlcatelSwitch\SnoopingInfo
8 changes: 8 additions & 0 deletions configs/models/BDcom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\GP3600\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\GP3600\SnoopingInfo
extra:
pon_port_size: 128
console_conn_type: bdcom
Expand Down Expand Up @@ -116,6 +117,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\SnoopingInfo
extra:
pon_port_size: 64
console_conn_type: bdcom
Expand Down Expand Up @@ -171,6 +173,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\SnoopingInfo
extra:
pon_port_size: 64
console_conn_type: bdcom
Expand Down Expand Up @@ -226,6 +229,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\SnoopingInfo
extra:
pon_port_size: 64
console_conn_type: bdcom
Expand Down Expand Up @@ -281,6 +285,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\SnoopingInfo
extra:
pon_port_size: 64
console_conn_type: bdcom
Expand Down Expand Up @@ -336,6 +341,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\SnoopingInfo
extra:
pon_port_size: 64
console_conn_type: bdcom
Expand Down Expand Up @@ -391,6 +397,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\SnoopingInfo
extra:
pon_port_size: 64
console_conn_type: bdcom
Expand Down Expand Up @@ -447,6 +454,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
sfp_optical: \SwitcherCore\Modules\BDcom\SfpOpticalInfo
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\BDcom\SnoopingInfo
extra:
pon_port_size: 64
console_conn_type: bdcom
Expand Down
12 changes: 12 additions & 0 deletions configs/models/C-Data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ models:
interface_counters: \SwitcherCore\Modules\CData\FD11XX\InterfaceCounters
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\FD11XX\SnoopingInfo
extra:
pon_port_size: 64
pon_type: EPON
Expand Down Expand Up @@ -96,6 +97,7 @@ models:
pon_ports_optical: \SwitcherCore\Modules\CData\FD11XX\PonPortsOptical
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\FD11XX\SnoopingInfo
extra:
pon_type: EPON
console_conn_type: stels
Expand Down Expand Up @@ -162,6 +164,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\SnoopingInfo

extra:
pon_type: EPON
Expand Down Expand Up @@ -228,6 +231,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\SnoopingInfo

extra:
pon_type: EPON
Expand Down Expand Up @@ -304,6 +308,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\SnoopingInfo

extra:
pon_type: EPON
Expand Down Expand Up @@ -391,6 +396,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\FD16xxV3\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\FD16xxV3\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\FD16xxV3\SnoopingInfo
extra:
pon_type: GPON
pon_port_size: 128
Expand Down Expand Up @@ -429,6 +435,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\SnoopingInfo
extra:
pon_type: GPON
pon_port_size: 128
Expand Down Expand Up @@ -500,6 +507,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\FD16xxV3\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\FD16xxV3\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\FD16xxV3\SnoopingInfo
extra:
pon_type: GPON
pon_port_size: 128
Expand Down Expand Up @@ -541,6 +549,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\SnoopingInfo
extra:
pon_type: GPON
pon_port_size: 128
Expand Down Expand Up @@ -613,6 +622,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\FD16xxV3\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\FD16xxV3\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\FD16xxV3\SnoopingInfo
extra:
pon_type: GPON
pon_port_size: 128
Expand Down Expand Up @@ -728,6 +738,7 @@ models:
sfp_diag: \SwitcherCore\Modules\CData\FD16xxV3\SfpDiag
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\FD16xxV3\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\FD16xxV3\SnoopingInfo
extra:
pon_type: GPON
pon_port_size: 128
Expand Down Expand Up @@ -766,6 +777,7 @@ models:
pon_onts_configuration: \SwitcherCore\Modules\CData\PonOntsConfiguration
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\CData\SystemTemperatures
snooping_info: \SwitcherCore\Modules\CData\SnoopingInfo
extra:
pon_type: GPON
pon_port_size: 128
Expand Down
8 changes: 7 additions & 1 deletion configs/models/Raisecom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ models:
clear_iface_counters: \SwitcherCore\Modules\Raisecom\ClearIfaceCounters
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\Raisecom\SnoopingInfo

- name: Raisecom ISCOM
key: raisecom_iscom
Expand Down Expand Up @@ -77,6 +78,7 @@ models:
clear_iface_counters: \SwitcherCore\Modules\Raisecom\ClearIfaceCounters
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\Raisecom\SnoopingInfo

- name: Raisecom RAX721
key: raisecom_rax721
Expand Down Expand Up @@ -114,6 +116,7 @@ models:
multi_console_command: \SwitcherCore\Modules\General\Switches\MultiRawConsoleCommand
clear_iface_counters: \SwitcherCore\Modules\Raisecom\ClearIfaceCounters
supported_modules: \SwitcherCore\Modules\General\SupportedModules
#snooping_info: \SwitcherCore\Modules\Raisecom\SnoopingInfo

- name: Raisecom Default
key: raisecom_default
Expand All @@ -122,6 +125,8 @@ models:
inputs:
- snmp
- console
oids:
- ./oids/raisecom/iscom.yml
extra:
console_conn_type: raisecom
modules:
Expand All @@ -146,4 +151,5 @@ models:
multi_console_command: \SwitcherCore\Modules\General\Switches\MultiRawConsoleCommand
clear_iface_counters: \SwitcherCore\Modules\Raisecom\ClearIfaceCounters
supported_modules: \SwitcherCore\Modules\General\SupportedModules
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
sys_temp: \SwitcherCore\Modules\General\SystemTemperatures
snooping_info: \SwitcherCore\Modules\Raisecom\SnoopingInfo
1 change: 1 addition & 0 deletions configs/models/ZTE-C-series.yml
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ models:
sfp_diag: \SwitcherCore\Modules\General\SfpDiag
onu_ip_host: \SwitcherCore\Modules\ZTE\C600Series\OnuIpHost
supported_modules: \SwitcherCore\Modules\General\SupportedModules
snooping_info: \SwitcherCore\Modules\ZTE\C600Series\SnoopingInfo

extra:
console_conn_type: zte
Expand Down
1 change: 1 addition & 0 deletions configs/modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,7 @@
- name: snooping_info
descr: Return information about DHCP snooping
arguments:
- {name: ip, pattern: '^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$', required: no}
- {name: interface, pattern: '.*', required: no}
- {name: mac_address, pattern: '.*', required: no}
- {name: vlan_id, pattern: '.*', required: no}
Expand Down
9 changes: 8 additions & 1 deletion configs/oids/raisecom/iscom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,11 @@
# .1.3.6.1.4.1.8886.1.18.2.2.1.1.2.{iface_id}.4 - Optical Rx Power. Divide value by 1000 to get in dBm
# .1.3.6.1.4.1.8886.1.18.2.2.1.1.2.{iface_id}.5 - Supply Voltage. Divide value by 1000 to get in Volts

- {name: sensors.temperature.cpu, oid: .1.3.6.1.4.1.8886.1.1.4.2.1}
- {name: sensors.temperature.cpu, oid: .1.3.6.1.4.1.8886.1.1.4.2.1}

# DHCP Snooping:
- {name: dhcpSnooping.bindMac, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.2} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.2.4.10.31.10.7 = Hex-STRING: 90 1B 0E 65 51 36 | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindLease, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.3} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.3.4.10.31.10.7 = Gauge32: 540 | remaining lease time in seconds | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindVlan, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.4} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.4.4.10.31.10.7 = INTEGER: 31 | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindPort, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.5} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.5.4.10.31.10.7 = INTEGER: 2082476041 | Do not know what is '4' before ip addresses

9 changes: 8 additions & 1 deletion configs/oids/raisecom/iscom2600.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
- {name: if.StatsDuplexStatus, oid: .1.3.6.1.2.1.10.7.2.1.19, access: read , values: {1: Down, 2: Full, 3: Half}}
- {name: sensors.temperature.cpu, oid: .1.3.6.1.4.1.8886.1.1.4.2.1}
- {name: sensors.temperature.cpu, oid: .1.3.6.1.4.1.8886.1.1.4.2.1}


# DHCP Snooping (can be wrong):
- {name: dhcpSnooping.bindMac, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.2} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.2.4.10.31.10.7 = Hex-STRING: 90 1B 0E 65 51 36 | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindLease, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.3} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.3.4.10.31.10.7 = Gauge32: 540 | remaining lease time in seconds | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindVlan, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.4} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.4.4.10.31.10.7 = INTEGER: 31 | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindPort, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.5} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.5.4.10.31.10.7 = INTEGER: 2082476041 | Do not know what is '4' before ip addresses
8 changes: 7 additions & 1 deletion configs/oids/raisecom/rax721.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,10 @@
# .1.3.6.1.4.1.8886.60.18.1.2.2.1.1.2.{iface_id}.4 - Optical Rx Power. Divide value by 1000 to get in dBm
# .1.3.6.1.4.1.8886.60.18.1.2.2.1.1.2.{iface_id}.5 - Supply Voltage. Divide value by 1000 to get in Volts

- {name: sensors.temperature.cpu, oid: .1.3.6.1.4.1.8886.1.1.4.2.1}
- {name: sensors.temperature.cpu, oid: .1.3.6.1.4.1.8886.1.1.4.2.1}

# DHCP Snooping (can be wrong):
- {name: dhcpSnooping.bindMac, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.2} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.2.4.10.31.10.7 = Hex-STRING: 90 1B 0E 65 51 36 | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindLease, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.3} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.3.4.10.31.10.7 = Gauge32: 540 | remaining lease time in seconds | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindVlan, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.4} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.4.4.10.31.10.7 = INTEGER: 31 | Do not know what is '4' before ip addresses
- {name: dhcpSnooping.bindPort, oid: .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.5} # .1.3.6.1.4.1.8886.6.1.23.1.1.5.1.5.4.10.31.10.7 = INTEGER: 2082476041 | Do not know what is '4' before ip addresses
96 changes: 96 additions & 0 deletions src/Modules/AlcatelSwitch/SnoopingInfo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
<?php


namespace SwitcherCore\Modules\AlcatelSwitch;


use Exception;
use SwitcherCore\Modules\AbstractModule;
use SwitcherCore\Modules\Helper;
use SwitcherCore\Modules\AlcatelSwitch\InterfacesTrait;

class SnoopingInfo extends AbstractModule {

use InterfacesTrait;

/**
* @var WrappedResponse[]
*/
protected $response = null;

function getRaw() {
return $this->response;
}

function getPrettyFiltered($filter = [], $fromCache = false) {
$data = $this->getPretty();
if(count($data) === 0) return [];
if ($filter['interface']) {
$interface = $this->parseInterface($filter['interface']);
$data = array_filter($data, function ($e) use ($interface) {
return $e['interface']['id'] == $interface['id'];
});
}
if ($filter['mac_address']) {
$data = array_filter($data, function ($e) use ($filter) {
return $e['mac_address'] == Helper::formatMac($filter['mac_address']);
});
}
if ($filter['vlan_id']) {
$data = array_filter($data, function ($e) use ($filter) {
return $e['vlan_id'] == $filter['vlan_id'];
});
}
if ($filter['ip']) {
$data = array_filter($data, function ($e) use ($filter) {
return $e['ip'] == $filter['ip'];
});
}
return array_values($data);
}

function getPretty() {
return $this->response;
}


/**
* @param array $filter
* @return $this|AbstractModule
* @throws Exception
*/
public function run($filter = []) {
$cmd = 'show ip dhcp snooping binding';
if(isset($filter['interface'])) {
$iface = $this->parseInterface($filter['interface']);
$cmd .= ' ethernet ' . $iface['name'];
} elseif(isset($filter['mac_address'])) {
$mac = strtolower(Helper::formatMac($filter['mac_address']));
$cmd .= ' mac-address ' . $mac;
} elseif(isset($filter['ip'])) {
$cmd .= ' ip-address ' . $filter['ip'];
} elseif(isset($filter['vlan_id'])) {
$cmd .= ' vlan ' . $filter['vlan_id'];
}
$r = $this->getModule('console_command')->run(['command' => $cmd])->getPretty();
$r = explode("\n", $r['output']);

$resp = [];
foreach($r as $line) {
$m = [];
if(preg_match('/^((([0-9a-f]{2}):?){6})\s+((\d{1,3}\.?){4})\s+(\d{1,5})\s+(\w{3,})\s+(\d{1,4})\s+([eg]\d{1,3})/i', trim($line), $m)) {
$resp[] = [
'interface' => $this->parseInterface($m[9], 'name'),
'mac_address' => Helper::formatMac($m[1]),
'vlan_id' => (int) $m[8],
'ip' => $m[4],
'remaining' => (int) $m[6],
'_type' => strtoupper($m[7]),
];
}
}
$this->response = $resp;
return $this;
}
}

Loading