Merge pull request #7074 from Niral-Networks/acl_fix

ospfd : Resolving conflict in distribute-list update during MaxAge LSA.
This commit is contained in:
Donald Sharp 2020-09-18 20:46:37 -04:00 committed by GitHub
commit cb4e6e4665
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1355,16 +1355,26 @@ static int ospf_distribute_list_update_timer(struct thread *thread)
else if ( else if (
(lsa = ospf_external_info_find_lsa( (lsa = ospf_external_info_find_lsa(
ospf, &ei->p))) { ospf, &ei->p))) {
if (!CHECK_FLAG( int force =
lsa->flags, LSA_REFRESH_IF_CHANGED;
OSPF_LSA_IN_MAXAGE)) /* If this is a MaxAge LSA, we
ospf_external_lsa_refresh( * need to force refresh it
ospf, lsa, ei, * because distribute settings
LSA_REFRESH_IF_CHANGED); * might have changed and now,
else * this LSA needs to be
ospf_external_lsa_refresh( * originated, not be removed.
ospf, lsa, ei, * If we don't force refresh it,
LSA_REFRESH_FORCE); * it will remain a MaxAge LSA
* because it will look like it
* hasn't changed. Neighbors
* will not receive updates for
* this LSA.
*/
if (IS_LSA_MAXAGE(lsa))
force = LSA_REFRESH_FORCE;
ospf_external_lsa_refresh(
ospf, lsa, ei, force);
} else } else
ospf_external_lsa_originate( ospf_external_lsa_originate(
ospf, ei); ospf, ei);