From ba48567f194577aac8e0c6e2440a25a579ae3742 Mon Sep 17 00:00:00 2001 From: pblasquez Date: Thu, 28 Apr 2016 15:36:13 -0700 Subject: [PATCH 1/2] Added bad ifName and ifAlias regex matching Allow user to ignore interfaces based on regex matching of ifName and ifAlias values --- doc/Support/Configuration.md | 2 ++ includes/functions.php | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/doc/Support/Configuration.md b/doc/Support/Configuration.md index e7d305cf2..1a653030c 100644 --- a/doc/Support/Configuration.md +++ b/doc/Support/Configuration.md @@ -400,6 +400,8 @@ by continuing the array. `bad_if` is matched against the ifDescr value. `bad_iftype` is matched against the ifType value. `bad_if_regexp` is matched against the ifDescr value as a regular expression. +`bad_ifname_regexp` is matched against the ifName value as a regular expression. +`bad_ifalias_regexp` is matched against the ifAlias value as a regular expression. #### Interfaces to be rewritten diff --git a/includes/functions.php b/includes/functions.php index d7597c8ae..284ce0788 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -873,6 +873,8 @@ function is_port_valid($port, $device) { else { $valid = 1; $if = strtolower($port['ifDescr']); + $ifname = strtolower($port['ifName']); + $ifalias = strtolower($port['ifAlias']); $fringe = $config['bad_if']; if( is_array($config['os'][$device['os']]['bad_if']) ) { $fringe = array_merge($config['bad_if'],$config['os'][$device['os']]['bad_if']); @@ -894,6 +896,30 @@ function is_port_valid($port, $device) { d_echo("ignored : $bi : ".$if); } } + } + if (is_array($config['bad_ifname_regexp'])) { + $fringe = $config['bad_ifname_regexp']; + if( is_array($config['os'][$device['os']]['bad_ifname_regexp']) ) { + $fringe = array_merge($config['bad_ifname_regexp'],$config['os'][$device['os']]['bad_ifname_regexp']); + } + foreach ($fringe as $bi) { + if (preg_match($bi ."i", $ifname)) { + $valid = 0; + d_echo("ignored : $bi : ".$ifname); + } + } + } + if (is_array($config['bad_ifalias_regexp'])) { + $fringe = $config['bad_ifalias_regexp']; + if( is_array($config['os'][$device['os']]['bad_ifalias_regexp']) ) { + $fringe = array_merge($config['bad_ifalias_regexp'],$config['os'][$device['os']]['bad_ifalias_regexp']); + } + foreach ($fringe as $bi) { + if (preg_match($bi ."i", $ifalias)) { + $valid = 0; + d_echo("ignored : $bi : ".$ifalias); + } + } } if (is_array($config['bad_iftype'])) { $fringe = $config['bad_iftype']; From 170672c3b8b44ab570cb74ee53a4a540ffc4fa61 Mon Sep 17 00:00:00 2001 From: pblasquez Date: Fri, 29 Apr 2016 17:43:28 -0700 Subject: [PATCH 2/2] Fix indentation --- includes/functions.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/includes/functions.php b/includes/functions.php index 284ce0788..b1e58fac4 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -873,8 +873,8 @@ function is_port_valid($port, $device) { else { $valid = 1; $if = strtolower($port['ifDescr']); - $ifname = strtolower($port['ifName']); - $ifalias = strtolower($port['ifAlias']); + $ifname = strtolower($port['ifName']); + $ifalias = strtolower($port['ifAlias']); $fringe = $config['bad_if']; if( is_array($config['os'][$device['os']]['bad_if']) ) { $fringe = array_merge($config['bad_if'],$config['os'][$device['os']]['bad_if']); @@ -897,7 +897,7 @@ function is_port_valid($port, $device) { } } } - if (is_array($config['bad_ifname_regexp'])) { + if (is_array($config['bad_ifname_regexp'])) { $fringe = $config['bad_ifname_regexp']; if( is_array($config['os'][$device['os']]['bad_ifname_regexp']) ) { $fringe = array_merge($config['bad_ifname_regexp'],$config['os'][$device['os']]['bad_ifname_regexp']); @@ -909,7 +909,7 @@ function is_port_valid($port, $device) { } } } - if (is_array($config['bad_ifalias_regexp'])) { + if (is_array($config['bad_ifalias_regexp'])) { $fringe = $config['bad_ifalias_regexp']; if( is_array($config['os'][$device['os']]['bad_ifalias_regexp']) ) { $fringe = array_merge($config['bad_ifalias_regexp'],$config['os'][$device['os']]['bad_ifalias_regexp']);