]> git.proxmox.com Git - mirror_frr.git/commitdiff
tools: fix missing remote-as configuration when reload
authoranlan_cs <vic.lan@pica8.com>
Fri, 14 Apr 2023 00:32:32 +0000 (08:32 +0800)
committeranlan_cs <vic.lan@pica8.com>
Fri, 14 Apr 2023 22:42:36 +0000 (06:42 +0800)
From commit `411d1a2`, `bgp_delete_nbr_remote_as_line()` is added to
remove some specific bgp neighbors.  But, when reloading the following
configuration, it will wrongly remove some good ones:
`neighbor 66.66.66.6 remote-as internal`:

```
router bgp 66
 bgp router-id 172.16.204.6
 neighbor ANLAN peer-group
 neighbor ANLAN remote-as internal
 neighbor 66.66.66.6 remote-as internal <- LOST
 neighbor 66.66.66.60 peer-group ANLAN
```

The reason is that "66.66.66.6" is included in "66.66.66.60" literally,
then it is mistakenly thought to be a match.  Just fix it with
excat match.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
tools/frr-reload.py

index 490e519ae9d7e47e5b655551a1ceec2479dc1ccd..77772f80c142373ad9dcb7ed7d2e666cfec52dc4 100755 (executable)
@@ -850,7 +850,7 @@ def bgp_delete_nbr_remote_as_line(lines_to_add):
                 for pg in pg_dict[ctx_keys[0]]:
                     if pg_dict[ctx_keys[0]][pg]["remoteas"] == True:
                         for nbr in pg_dict[ctx_keys[0]][pg]["nbr"]:
-                            if re_nbr_rmtas.group(1) in nbr:
+                            if re_nbr_rmtas.group(1) == nbr:
                                 lines_to_del_from_add.append((ctx_keys, line))
 
     for ctx_keys, line in lines_to_del_from_add: