From 770863cfcc40b444243f0a6c805d0c2c98bff6a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Sang?= Date: Fri, 6 Sep 2024 10:51:30 +0200 Subject: [PATCH] ospfd: logging behavior for area id mismatches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When an ospf interface is not in the backbone area, but it receives a packet from the backbone, no logs are generated for this mismatch. However, the opposite scenario does generate logs. Add a log for this case. Signed-off-by: Loïc Sang --- ospfd/ospf_packet.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index e336435cbd..d35f0a1372 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; + } } /*