diff options
author | Russ White <russ@riw.us> | 2024-09-10 16:18:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-10 16:18:22 +0200 |
commit | 551469f3238b93da7e94f68284d9ae11bca1a7d3 (patch) | |
tree | 11d1787fe9d5e8fb352c094d938c6c3bd80fee39 /ospfd | |
parent | Merge pull request #16748 from opensourcerouting/fix/issue_12502 (diff) | |
parent | ospfd: logging behavior for area id mismatches (diff) | |
download | frr-551469f3238b93da7e94f68284d9ae11bca1a7d3.tar.xz frr-551469f3238b93da7e94f68284d9ae11bca1a7d3.zip |
Merge pull request #16759 from lsang6WIND/ospf_log
ospfd: logging behavior for area id mismatches
Diffstat (limited to 'ospfd')
-rw-r--r-- | ospfd/ospf_packet.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index e336435cb..d35f0a137 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -2806,9 +2806,7 @@ static enum ospf_read_return_enum ospf_read_helper(struct ospf *ospf) * or header area is backbone but ospf_interface is not * check for VLINK interface */ - if ((oi == NULL) - || (OSPF_IS_AREA_ID_BACKBONE(ospfh->area_id) - && !OSPF_IS_AREA_ID_BACKBONE(oi->area->area_id))) { + if (oi == NULL) { if ((oi = ospf_associate_packet_vl(ospf, ifp, iph, ospfh)) == NULL) { if (!ospf->instance && IS_DEBUG_OSPF_EVENT) @@ -2817,6 +2815,15 @@ static enum ospf_read_return_enum ospf_read_helper(struct ospf *ospf) &iph->ip_src, ifp->name); return OSPF_READ_CONTINUE; } + } else if (OSPF_IS_AREA_ID_BACKBONE(ospfh->area_id) && + !OSPF_IS_AREA_ID_BACKBONE(oi->area->area_id)) { + oi = ospf_associate_packet_vl(ospf, ifp, iph, ospfh); + if (oi == NULL) { + flog_warn(EC_OSPF_PACKET, + "interface %s: ospf_read invalid Area ID %pI4", + ifp->name, &ospfh->area_id); + return OSPF_READ_CONTINUE; + } } /* |