From b386a70c04680aace01c14b6fddf04c504010aec Mon Sep 17 00:00:00 2001 From: Anuradha Karuppiah Date: Thu, 19 Nov 2020 14:15:44 -0800 Subject: [PATCH] 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 --- tools/frr-reload.py | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/tools/frr-reload.py b/tools/frr-reload.py index 1b57b824de..da005b6f87 100755 --- a/tools/frr-reload.py +++ b/tools/frr-reload.py @@ -202,6 +202,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\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): @@ -232,11 +252,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() -- 2.39.5