diff options
author | Russ White <russ@riw.us> | 2021-10-07 00:58:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-07 00:58:09 +0200 |
commit | ef11fb018f21810c6bcb4c6653deabbcd2d8b68a (patch) | |
tree | 18b1a1b30a400ba40a5ac628bd0874807f36c876 /ospf6d/ospf6_flood.c | |
parent | build: bump configure.ac to `8.2-dev` (diff) | |
parent | ospf6d: ospf6d is crashing upon receiving duplicated Grace LSA. (diff) | |
download | frr-ef11fb018f21810c6bcb4c6653deabbcd2d8b68a.tar.xz frr-ef11fb018f21810c6bcb4c6653deabbcd2d8b68a.zip |
Merge pull request #9738 from rgirada/ospfv3_crash
ospf6d: ospf6d is crashing upon receiving duplicated Grace LSA.
Diffstat (limited to 'ospf6d/ospf6_flood.c')
-rw-r--r-- | ospf6d/ospf6_flood.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ospf6d/ospf6_flood.c b/ospf6d/ospf6_flood.c index 6ad2a70f0..e565ac4e0 100644 --- a/ospf6d/ospf6_flood.c +++ b/ospf6d/ospf6_flood.c @@ -1026,15 +1026,8 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from, if (old) ospf6_flood_clear(old); - /* (b) immediately flood and (c) remove from all retrans-list */ - /* Prevent self-originated LSA to be flooded. this is to make - reoriginated instance of the LSA not to be rejected by other - routers - due to MinLSArrival. */ self_originated = (new->header->adv_router == from->ospf6_if->area->ospf6->router_id); - if (!self_originated) - ospf6_flood(from, new); /* Received non-self-originated Grace LSA. */ if (IS_GRACE_LSA(new) && !self_originated) { @@ -1080,6 +1073,14 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from, } } + /* (b) immediately flood and (c) remove from all retrans-list */ + /* Prevent self-originated LSA to be flooded. this is to make + * reoriginated instance of the LSA not to be rejected by other + * routers due to MinLSArrival. + */ + if (!self_originated) + ospf6_flood(from, new); + /* (d), installing lsdb, which may cause routing table calculation (replacing database copy) */ ospf6_install_lsa(new); |