From 2dd8fe055309243e8bea749944339e169f9197f1 Mon Sep 17 00:00:00 2001 From: Gerben Meijer Date: Fri, 7 Aug 2015 16:41:33 +0200 Subject: [PATCH 1/3] Reorder ifalias_null check to prevent var flapping This needs to run before IF-MIB data update, and needs to check and set $this_port['ifAlias'] only as to not break the $data_oids loop. --- includes/polling/ports.inc.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/includes/polling/ports.inc.php b/includes/polling/ports.inc.php index 321f4b69fd..c0e457673e 100644 --- a/includes/polling/ports.inc.php +++ b/includes/polling/ports.inc.php @@ -324,6 +324,12 @@ foreach ($ports as $port) { // FIXME use $q_bridge_mib[$this_port['ifIndex']] to see if it is a trunk (>1 array count) echo 'VLAN == '.$this_port['ifVlan']; + // When devices do not provide ifAlias data, populate with ifDescr data if configured + if (($this_port['ifAlias'] == '' || $this_port['ifAlias'] == NULL) && $config['os'][$device['os']]['ifalias_null'] == 1) { + $this_port['ifAlias'] = $this_port['ifDescr']; + d_echo('Using ifDescr due to ifAlias being NULL'); + } + // Update IF-MIB data foreach ($data_oids as $oid) { if ($port[$oid] != $this_port[$oid] && !isset($this_port[$oid])) { @@ -352,12 +358,6 @@ foreach ($ports as $port) { } }//end foreach - if (($port['update']['ifAlias'] == '' || $port['update']['ifAlias'] == NULL) && $config['os'][$device['os']]['ifalias_null'] == 1) { - $port['update']['ifAlias'] = $port['ifDescr']; - $this_port['ifAlias'] = $port['ifDescr']; - d_echo('Using ifDescr due to ifAlias being NULL'); - } - // Parse description (usually ifAlias) if config option set if (isset($config['port_descr_parser']) && is_file($config['install_dir'].'/'.$config['port_descr_parser'])) { $port_attribs = array( From 5467756328569b24b16e1501c118c567c63dcec7 Mon Sep 17 00:00:00 2001 From: Gerben Meijer Date: Fri, 7 Aug 2015 17:07:26 +0200 Subject: [PATCH 2/3] Generalise mapping ifDescr to ifAlias This allows both per OS enforcing of ifDescr = ifAlias as well as populating when ifAlias = '' or NULL --- includes/definitions.inc.php | 2 +- includes/polling/ports.inc.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php index fbddea72c2..171db75a40 100644 --- a/includes/definitions.inc.php +++ b/includes/definitions.inc.php @@ -404,7 +404,7 @@ $os = 'nos'; $config['os'][$os]['text'] = 'Brocade NOS'; $config['os'][$os]['type'] = 'network'; $config['os'][$os]['ifname'] = 1; -$config['os'][$os]['ifalias_null'] = 1; +$config['os'][$os]['descr_to_alias'] = 1; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Device Traffic'; $config['os'][$os]['over'][1]['graph'] = 'device_processor'; diff --git a/includes/polling/ports.inc.php b/includes/polling/ports.inc.php index c0e457673e..4723b2f9ed 100644 --- a/includes/polling/ports.inc.php +++ b/includes/polling/ports.inc.php @@ -325,9 +325,9 @@ foreach ($ports as $port) { echo 'VLAN == '.$this_port['ifVlan']; // When devices do not provide ifAlias data, populate with ifDescr data if configured - if (($this_port['ifAlias'] == '' || $this_port['ifAlias'] == NULL) && $config['os'][$device['os']]['ifalias_null'] == 1) { + if ($this_port['ifAlias'] == '' || $this_port['ifAlias'] == NULL) || ($config['os'][$device['os']]['descr_to_alias'] == 1) { $this_port['ifAlias'] = $this_port['ifDescr']; - d_echo('Using ifDescr due to ifAlias being NULL'); + d_echo('Using ifDescr as ifAlias'); } // Update IF-MIB data From 7817890b80bb7999e79d47b65890913fb8fd32c6 Mon Sep 17 00:00:00 2001 From: Gerben Meijer Date: Fri, 7 Aug 2015 17:11:12 +0200 Subject: [PATCH 3/3] Fix parenthesis typo --- includes/polling/ports.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/polling/ports.inc.php b/includes/polling/ports.inc.php index 4723b2f9ed..f374f5f62a 100644 --- a/includes/polling/ports.inc.php +++ b/includes/polling/ports.inc.php @@ -325,7 +325,7 @@ foreach ($ports as $port) { echo 'VLAN == '.$this_port['ifVlan']; // When devices do not provide ifAlias data, populate with ifDescr data if configured - if ($this_port['ifAlias'] == '' || $this_port['ifAlias'] == NULL) || ($config['os'][$device['os']]['descr_to_alias'] == 1) { + if (($this_port['ifAlias'] == '' || $this_port['ifAlias'] == NULL) || $config['os'][$device['os']]['descr_to_alias'] == 1) { $this_port['ifAlias'] = $this_port['ifDescr']; d_echo('Using ifDescr as ifAlias'); }