function buildVLANFilter($role, $string) { // set base switch ($role) { case 'access': // 1-4094 $min = VLAN_MIN_ID; $max = VLAN_MAX_ID; break; case 'trunk': // 2-4094 // 2-4094 case 'uplink': case 'downlink': case 'anymode': $min = VLAN_MIN_ID + 1; $max = VLAN_MAX_ID; break; default: // none return array(); } if ($string == '') { // fast track return array(array('from' => $min, 'to' => $max)); } // transform $vlanidlist = array(); foreach (iosParseVLANString($string) as $vlan_id) { if ($min <= $vlan_id and $vlan_id <= $max) { $vlanidlist[] = $vlan_id; } } return listToRanges($vlanidlist); }
function ros11Read8021QVLANDatabase(&$work, $line) { if (1 != preg_match('/^vlan ([-,0-9]+)$/', $line, $m)) { return 'ros11-get8021q-scantop'; } $work['vlanlist'] = array_merge($work['vlanlist'], iosParseVLANString($m[1])); return 'ros11-get8021q-vlandb'; }