From 7a06a67557c207383eca4eee9fdbed78706cdc91 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Wed, 8 May 2024 20:05:58 +0200
Subject: [PATCH] update project

---
 README.md                        |   2 +-
 mkp/nvdct-0.8.8-20240508.mkp     | Bin 0 -> 38881 bytes
 source/bin/nvdct/lib/settings.py |   6 +++++-
 source/bin/nvdct/lib/utils.py    |   2 +-
 source/bin/nvdct/nvdct.py        |   3 ++-
 source/bin/nvdct/nvdct.toml      |   9 +++++++--
 source/packages/nvdct            |   2 +-
 7 files changed, 17 insertions(+), 7 deletions(-)
 create mode 100644 mkp/nvdct-0.8.8-20240508.mkp

diff --git a/README.md b/README.md
index 91ef0f6..604763c 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/master/mkp/nvdct-0.8.7-20240430.mkp "nvdct-0.8.7-20240430.mkp"
+[PACKAGE]: ../../raw/master/mkp/nvdct-0.8.8-20240508.mkp "nvdct-0.8.8-20240508.mkp"
 Network Visualization Data Creation Tool (NVDCT)
 
 This script creates the topology data file needed for the [Checkmk Exchange Network visualization](https://exchange.checkmk.com/p/network-visualization) plugin by Andreas Boesl and [schnetz](https://exchange.checkmk.com/u/schnetz).\
diff --git a/mkp/nvdct-0.8.8-20240508.mkp b/mkp/nvdct-0.8.8-20240508.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..69ce2a79e9d2f2e4e975b66260adbab25201ceba
GIT binary patch
literal 38881
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
Dq+wA5

literal 0
HcmV?d00001

diff --git a/source/bin/nvdct/lib/settings.py b/source/bin/nvdct/lib/settings.py
index 066dd79..f77f034 100755
--- a/source/bin/nvdct/lib/settings.py
+++ b/source/bin/nvdct/lib/settings.py
@@ -58,6 +58,7 @@ class Wildcard(NamedTuple):
     int_wildcard: int
     ip_address: str
     wildcard: str
+    bit_pattern: int
 
 
 class Settings:
@@ -400,11 +401,14 @@ class Settings:
                     )
                     continue
                 try:
+                    # 0.0.127.0 -> 255.255.128.255
+                    inverted_wildcard = '.'.join([str(255 - int(octet)) for octet in wildcard.split('.')])
                     self.__l3v4_ignore_wildcard.append(Wildcard(
                         int_ip_address=int(IPv4Address(ip_address)),
-                        int_wildcard=int(IPv4Address(wildcard)),
+                        int_wildcard=int(IPv4Address(inverted_wildcard)),
                         ip_address=ip_address,
                         wildcard=wildcard,
+                        bit_pattern= int(IPv4Address(ip_address)) & int(IPv4Address(inverted_wildcard))
                     ))
                 except (AddressValueError, NetmaskValueError):
                     LOGGER.error(
diff --git a/source/bin/nvdct/lib/utils.py b/source/bin/nvdct/lib/utils.py
index bf093d4..4ec0812 100755
--- a/source/bin/nvdct/lib/utils.py
+++ b/source/bin/nvdct/lib/utils.py
@@ -22,7 +22,7 @@ from time import time as now_time
 from tomllib import loads as toml_loads, TOMLDecodeError
 from typing import List, Dict, Any, TextIO
 
-NVDCT_VERSION = '0.8.7-20240430'
+NVDCT_VERSION = '0.8.8-20240507'
 
 
 @unique
diff --git a/source/bin/nvdct/nvdct.py b/source/bin/nvdct/nvdct.py
index b6117f7..ffa5fb1 100755
--- a/source/bin/nvdct/nvdct.py
+++ b/source/bin/nvdct/nvdct.py
@@ -101,6 +101,7 @@
 # 2024-04-18: added option --skip-l3-ip
 #             added tooltip for --skip-l3-if and --skip-l3-ip
 # 2024-04-30: automatically create @default if it doesn't exist
+# 2024-05-07: fixed handling of ignore wildcard in L3v4 topology
 
 # creating topology data json from inventory data
 #
@@ -872,7 +873,7 @@ def is_ignore_ipv4(ip_address: str, ignore_ips: List[IPv4Network]) -> bool:
 def is_ignore_wildcard(ip_address: str, ignore_wildcard: List[Wildcard]) -> bool:
     int_ip_address = int(IPv4Address(ip_address))
     for wildcard in ignore_wildcard:
-        if int_ip_address & wildcard.int_wildcard == wildcard.int_ip_address:
+        if int_ip_address & wildcard.int_wildcard == wildcard.bit_pattern:
             LOGGER.info(
                 f'IP address {ip_address} matches ignore wildcard '
                 f'list ({wildcard.ip_address}/{wildcard.wildcard})'
diff --git a/source/bin/nvdct/nvdct.toml b/source/bin/nvdct/nvdct.toml
index dec7379..f9d4657 100755
--- a/source/bin/nvdct/nvdct.toml
+++ b/source/bin/nvdct/nvdct.toml
@@ -44,9 +44,14 @@ L3V4_IGNORE_IP = [
 ]
 
 # ignore IPs by wildcard
+# if comparing an ip address:
+# each 0 bit in the wildcad has to be exacly as in the pattern
+# each 1 bit in the wildacrd will be ignored
 L3V4_IRNORE_WILDCARD = [
-    # ["0.0.0.1", "0.0.0.255"],  # ignore all IPs ending with 1
-    # ["172.17.0.2", "255.255.0.255"],  # ignore all IPs ending with 1 from 172.17.0.0/16
+    # [ pattern    ,  wildcard ]
+    # ["172.17.0.1", "0.0.255.0"],  # ignore all IPs ending with 1 from 172.17.128.0/16
+    # ["172.17.128.0", "0.0.127.3"],  # ignore all IPs ending with 0-3 from 172.17.128.0/17
+    ["172.17.128.3", "0.0.127.0"],  # ignore all IPs ending with 3 from 172.17.128.0/17
 ]
 
 # networks to summarize
diff --git a/source/packages/nvdct b/source/packages/nvdct
index 6dd4726..36a3ef5 100644
--- a/source/packages/nvdct
+++ b/source/packages/nvdct
@@ -57,7 +57,7 @@
                    'htdocs/images/icons/location_80.png']},
  'name': 'nvdct',
  'title': 'Network Visualization Data Creation Tool (NVDCT)',
- 'version': '0.8.7-20240430',
+ 'version': '0.8.8-20240508',
  'version.min_required': '2.2.0b1',
  'version.packaged': '2.2.0p24',
  'version.usable_until': '2.4.0p1'}
-- 
GitLab