forked from Mirror/frr
tools: Fix frr-reload for ebgp-multihop TTL reconfiguration.
In ebgp-multihop, there is a difference in reload behavior when TTL is unspecified (meaning default 255) and when 255 is explicitly specified. For example, when reloading with 'neighbor <neighbor> ebgp-multihop 255' in the config, the following difference is created. This commit fixes that. Lines To Delete =============== router bgp 65001 no neighbor 10.0.0.4 ebgp-multihop exit Lines To Add ============ router bgp 65001 neighbor 10.0.0.4 ebgp-multihop 255 exit The commit767aaa3a80
is not sufficient and frr-reload needs to be fixed to handle both unspecified and specified cases. Signed-off-by: Nobuhiro MIKI <nob@bobuhiro11.net> (cherry picked from commit594e917656
)
This commit is contained in:
parent
4110d5292e
commit
f85d968a7e
|
@ -237,6 +237,14 @@ def get_normalized_interface_vrf(line):
|
||||||
return line
|
return line
|
||||||
|
|
||||||
|
|
||||||
|
def get_normalized_ebgp_multihop_line(line):
|
||||||
|
obj = re.search(r"(.*)ebgp-multihop\s+255", line)
|
||||||
|
if obj:
|
||||||
|
line = obj.group(1) + "ebgp-multihop"
|
||||||
|
|
||||||
|
return line
|
||||||
|
|
||||||
|
|
||||||
# This dictionary contains a tree of all commands that we know start a
|
# This dictionary contains a tree of all commands that we know start a
|
||||||
# new multi-line context. All other commands are treated either as
|
# new multi-line context. All other commands are treated either as
|
||||||
# commands inside a multi-line context or as single-line contexts. This
|
# commands inside a multi-line context or as single-line contexts. This
|
||||||
|
@ -319,6 +327,9 @@ class Config(object):
|
||||||
if ":" in line:
|
if ":" in line:
|
||||||
line = get_normalized_mac_ip_line(line)
|
line = get_normalized_mac_ip_line(line)
|
||||||
|
|
||||||
|
if "ebgp-multihop" in line:
|
||||||
|
line = get_normalized_ebgp_multihop_line(line)
|
||||||
|
|
||||||
# vrf static routes can be added in two ways. The old way is:
|
# vrf static routes can be added in two ways. The old way is:
|
||||||
#
|
#
|
||||||
# "ip route x.x.x.x/x y.y.y.y vrf <vrfname>"
|
# "ip route x.x.x.x/x y.y.y.y vrf <vrfname>"
|
||||||
|
|
Loading…
Reference in a new issue