]> git.puffer.fish Git - mirror/frr.git/commitdiff
frr-reload: ignore-case in the es-id and es-sys-mac config comparisons 7582/head
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Thu, 19 Nov 2020 22:15:44 +0000 (14:15 -0800)
committerAnuradha Karuppiah <anuradhak@nvidia.com>
Sun, 22 Nov 2020 02:03:06 +0000 (18:03 -0800)
MAC address can be configured as lower/upper hex characters but is
always rendered as lower case in "show run". Avoid incorrect "change
detection" by ignoring case.

Ticket: CM-32235

Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
tools/frr-reload.py

index f084377ead5231850fa0b52f89a0e72220575811..0b239707028774746617ccfaac9455962d1acdc7 100755 (executable)
@@ -221,6 +221,26 @@ ip forwarding
         for ligne in lines:
             self.dlines[ligne] = True
 
+def get_normalized_es_id(line):
+    """
+    The es-id or es-sys-mac need to be converted to lower case
+    """
+    sub_strs = ["evpn mh es-id", "evpn mh es-sys-mac"]
+    for sub_str in sub_strs:
+        obj = re.match(sub_str + " (?P<esi>\S*)", line)
+        if obj:
+            line = "%s %s" % (sub_str, obj.group("esi").lower())
+            break
+    return line
+
+def get_normalized_mac_ip_line(line):
+    if line.startswith("evpn mh es"):
+        return get_normalized_es_id(line)
+
+    if not "ipv6 add" in line:
+        return get_normalized_ipv6_line(line)
+
+    return line
 
 class Config(object):
 
@@ -251,11 +271,10 @@ class Config(object):
             # Compress duplicate whitespaces
             line = " ".join(line.split())
 
-            if ":" in line and not "ipv6 add" in line:
-                qv6_line = get_normalized_ipv6_line(line)
-                self.lines.append(qv6_line)
-            else:
-                self.lines.append(line)
+            if ":" in line:
+                line = get_normalized_mac_ip_line(line)
+
+            self.lines.append(line)
 
         self.load_contexts()