From 3a99d118a7e84242868546e3442347322e30b36b Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Tue, 28 Jul 2020 12:43:28 -0700 Subject: [PATCH 1/2] [bgpcfgd]: Clarify error messages on reset Loopback0 ip address --- src/sonic-bgpcfgd/bgpcfgd | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/sonic-bgpcfgd/bgpcfgd b/src/sonic-bgpcfgd/bgpcfgd index 5df174ef357..3ef9138300c 100755 --- a/src/sonic-bgpcfgd/bgpcfgd +++ b/src/sonic-bgpcfgd/bgpcfgd @@ -787,16 +787,24 @@ class ZebraSetSrc(Manager): ip_addr_w_mask = key.replace("Loopback0|", "") slash_pos = ip_addr_w_mask.rfind("/") if slash_pos == -1: - log_err("Wrong Loopback0 ip address: '%s'" % ip_addr_w_mask) + log_err("Wrong Loopback0 ip prefix: '%s'" % ip_addr_w_mask) return True ip_addr = ip_addr_w_mask[:slash_pos] try: - if TemplateFabric.is_ipv4(ip_addr) and self.lo_ipv4 is None: - self.lo_ipv4 = ip_addr - txt = self.zebra_set_src_template.render(rm_name="RM_SET_SRC", lo_ip=ip_addr, ip_proto="") - elif TemplateFabric.is_ipv6(ip_addr) and self.lo_ipv6 is None: - self.lo_ipv6 = ip_addr - txt = self.zebra_set_src_template.render(rm_name="RM_SET_SRC6", lo_ip=ip_addr, ip_proto="v6") + if TemplateFabric.is_ipv4(ip_addr): + if self.lo_ipv4 is None: + self.lo_ipv4 = ip_addr + txt = self.zebra_set_src_template.render(rm_name="RM_SET_SRC", lo_ip=ip_addr, ip_proto="") + else: + log_warn("Update command is not supported for set src templates. lo_ip='%s'" % ip_addr_w_mask) + return True + elif TemplateFabric.is_ipv6(ip_addr): + if self.lo_ipv6 is None: + self.lo_ipv6 = ip_addr + txt = self.zebra_set_src_template.render(rm_name="RM_SET_SRC6", lo_ip=ip_addr, ip_proto="v6") + else: + log_warn("Update command is not supported for set src templates. lo_ip='%s'" % ip_addr_w_mask) + return True else: log_err("Got ambiguous ip address '%s'" % ip_addr) return True From e8ae8ddbe1c3d23f17b62d8b737a72f05a1e7071 Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Tue, 28 Jul 2020 18:21:10 -0700 Subject: [PATCH 2/2] Output of current ip address if it is already present --- src/sonic-bgpcfgd/bgpcfgd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sonic-bgpcfgd/bgpcfgd b/src/sonic-bgpcfgd/bgpcfgd index 3ef9138300c..de05802dfc8 100755 --- a/src/sonic-bgpcfgd/bgpcfgd +++ b/src/sonic-bgpcfgd/bgpcfgd @@ -796,14 +796,14 @@ class ZebraSetSrc(Manager): self.lo_ipv4 = ip_addr txt = self.zebra_set_src_template.render(rm_name="RM_SET_SRC", lo_ip=ip_addr, ip_proto="") else: - log_warn("Update command is not supported for set src templates. lo_ip='%s'" % ip_addr_w_mask) + log_warn("Update command is not supported for set src templates. current ip='%s'. new ip='%s'" % (self.lo_ipv4, ip_addr)) return True elif TemplateFabric.is_ipv6(ip_addr): if self.lo_ipv6 is None: self.lo_ipv6 = ip_addr txt = self.zebra_set_src_template.render(rm_name="RM_SET_SRC6", lo_ip=ip_addr, ip_proto="v6") else: - log_warn("Update command is not supported for set src templates. lo_ip='%s'" % ip_addr_w_mask) + log_warn("Update command is not supported for set src templates. current ip='%s'. new ip='%s'" % (self.lo_ipv6, ip_addr)) return True else: log_err("Got ambiguous ip address '%s'" % ip_addr)