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
* need to force refresh it
* because distribute settings
* might have changed and now,
* this LSA needs to be
* originated, not be removed.
* If we don't force refresh it,
* 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_external_lsa_refresh(
ospf, lsa, ei, ospf, lsa, ei, force);
LSA_REFRESH_IF_CHANGED);
else
ospf_external_lsa_refresh(
ospf, lsa, ei,
LSA_REFRESH_FORCE);
} else } else
ospf_external_lsa_originate( ospf_external_lsa_originate(
ospf, ei); ospf, ei);