r2884 - initial working implementation of masklen_eq_NN, masklen_le_NN and masklen_ge_NN
authorDenis Ovsienko <infrastation@yandex.ru>
Fri, 19 Jun 2009 16:35:57 +0000 (16:35 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Fri, 19 Jun 2009 16:35:57 +0000 (16:35 +0000)
ChangeLog
inc/code.php
inc/functions.php

index c716d1d6ec6c51ab3259a2b7c03652e6c77f9827..8e9e7ef78801b6c646e90c8ec268f570e3330304 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,6 @@
 0.17.2
        new feature: configure default SNMP community (by jthurman)
-       new feature: "$untagged" and "$masklen_NN" autotags
+       new feature: "$untagged" and "$masklen_OP_NN" autotags
        update: show appropriate message, if a record cannot be found
        update: add Cisco dictionary entry for WS-CBS3030-DEL. closes ticket 225 (by jthurman)
        update: add OS, router, fibre switch dictionary entries for ticket 238 (by Aaron)
index 1aae7ef17948079d5f1bd908251d4db788b31d46..67c85ee50dd8d522c3a9d098c115cf316743a515 100644 (file)
@@ -1232,6 +1232,7 @@ function findAutoTagWarnings ($expr)
                                case (mb_ereg_match ('^\$tovlan_[[:digit:]]+$', $expr['load'])):
                                case (mb_ereg_match ('^\$unmounted$', $expr['load'])):
                                case (mb_ereg_match ('^\$untagged$', $expr['load'])):
+                               case (mb_ereg_match ('^\$masklen_(eq|le|ge)_[[:digit:]][[:digit:]]?$', $expr['load'])):
                                        return array();
                                default:
                                        return array (array
index 98b1b1537862d6a8380381e4492433ae48cba0fe..2ba8d78705a53ba7081fd504e35bf4d04b24bec3 100644 (file)
@@ -969,7 +969,16 @@ function generateEntityAutoTags ($cell)
                case 'ipv4net':
                        $ret[] = array ('tag' => '$ip4netid_' . $cell['id']);
                        $ret[] = array ('tag' => '$ip4net-' . str_replace ('.', '-', $cell['ip']) . '-' . $cell['mask']);
-                       $ret[] = array ('tag' => '$masklen_' . $cell['mask']);
+                       for ($i = 8; $i < 32; $i++)
+                       {
+                               // these conditions hit 1 to 3 times per each i
+                               if ($cell['mask'] >= $i)
+                                       $ret[] = array ('tag' => '$masklen_ge_' . $i);
+                               if ($cell['mask'] <= $i)
+                                       $ret[] = array ('tag' => '$masklen_le_' . $i);
+                               if ($cell['mask'] == $i)
+                                       $ret[] = array ('tag' => '$masklen_eq_' . $i);
+                       }
                        $ret[] = array ('tag' => '$any_ip4net');
                        $ret[] = array ('tag' => '$any_net');
                        break;