diff options
author | SumitAgarwal123 <sumit.agarwal@broadcom.com> | 2019-10-21 07:53:01 +0200 |
---|---|---|
committer | SumitAgarwal123 <sumit.agarwal@broadcom.com> | 2019-10-29 05:38:20 +0100 |
commit | 7555dc6116a4fc51631b2c26ecb5b63a5c574674 (patch) | |
tree | 693a001e27c1ec35343891694d7e514bc6d2a2bf /isisd/isis_bfd.c | |
parent | Merge pull request #4966 from Orange-OpenSource/isis-TE (diff) | |
download | frr-7555dc6116a4fc51631b2c26ecb5b63a5c574674.tar.xz frr-7555dc6116a4fc51631b2c26ecb5b63a5c574674.zip |
bfdd: Handling local and remote admin-down
Scenarios where this code change is required:
1. BFD is un-configured from BGP at remote end.
Neighbour BFD sends ADMIN_DOWN state, but BFD on local side will send
DOWN to BGP, resulting in BGP session DOWN.
Removing BFD session administratively shouldn't bring DOWN BGP session
at local or remote.
2. BFD is un-configured from BGP or shutdown locally.
BFD will send state DOWN to BGP resulting in BGP session DOWN.
(This is akin to saying do not use BFD for BGP)
Removing BFD session administratively shouldn't bring DOWN BGP session at
local or remote.
Signed-off-by: Sayed Mohd Saquib sayed.saquib@broadcom.com
Diffstat (limited to 'isisd/isis_bfd.c')
-rw-r--r-- | isisd/isis_bfd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/isisd/isis_bfd.c b/isisd/isis_bfd.c index 8fc7997d7..cf4b84179 100644 --- a/isisd/isis_bfd.c +++ b/isisd/isis_bfd.c @@ -118,7 +118,8 @@ static void bfd_adj_event(struct isis_adjacency *adj, struct prefix *dst, int old_status = adj->bfd_session->status; - adj->bfd_session->status = new_status; + BFD_SET_CLIENT_STATUS(adj->bfd_session->status, new_status); + if (old_status == new_status) return; |