summaryrefslogtreecommitdiff
path: root/tools/frr-reload.py
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2020-11-19 14:15:44 -0800
committerAnuradha Karuppiah <anuradhak@nvidia.com>2020-11-21 18:03:06 -0800
commit8a63e80c6c301a63ce99ae088f9fbb9a7199b1f9 (patch)
tree5bbaf2b14c0c02dbbcebf3a54306cde15086996f /tools/frr-reload.py
parented37777f0370bb1f95c3a3cc6c49a85004913b3d (diff)
frr-reload: ignore-case in the es-id and es-sys-mac config comparisons
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>
Diffstat (limited to 'tools/frr-reload.py')
-rwxr-xr-xtools/frr-reload.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/tools/frr-reload.py b/tools/frr-reload.py
index f084377ead..0b23970702 100755
--- a/tools/frr-reload.py
+++ b/tools/frr-reload.py
@@ -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()