diff options
| -rw-r--r-- | ospfd/ospf_packet.c | 32 | 
1 files changed, 30 insertions, 2 deletions
| diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index 9ede11cd..d7337c19 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -618,7 +618,16 @@ ospf_hello (struct ip *iph, struct ospf_header *ospfh,    /* If Hello is myself, silently discard. */    if (IPV4_ADDR_SAME (&ospfh->router_id, &oi->ospf->router_id)) -    return; +    { +      if (IS_DEBUG_OSPF_PACKET (ospfh->type - 1, RECV)) +        { +          zlog_info ("ospf_header[%s/%s]: selforiginated, " +                     "dropping.", +                     ospf_packet_type_str[ospfh->type], +                     inet_ntoa (iph->ip_src)); +        } +      return; +    }    /* If incoming interface is passive one, ignore Hello. */    if (OSPF_IF_PARAM (oi, passive_interface) == OSPF_IF_PASSIVE) { @@ -2250,6 +2259,11 @@ ospf_read (struct thread *thread)    /* Self-originated packet should be discarded silently. */    if (ospf_if_lookup_by_local_addr (ospf, NULL, iph->ip_src))      { +      if (IS_DEBUG_OSPF_PACKET (0, RECV)) +        { +          zlog_info ("ospf_read[%s]: Dropping self-originated packet", +                     inet_ntoa (iph->ip_src)); +        }        stream_free (ibuf);        return 0;      } @@ -2265,13 +2279,20 @@ ospf_read (struct thread *thread)    if (ifp && oi && oi->ifp != ifp)      {        zlog_warn ("Packet from [%s] received on wrong link %s", -		 inet_ntoa (iph->ip_src), ifp->name);  +                 inet_ntoa (iph->ip_src), ifp->name);         stream_free (ibuf);        return 0;      }    if ((oi = ospf_associate_packet_vl (ospf, ifp, oi, iph, ospfh)) == NULL)      { +      if (IS_DEBUG_OSPF_PACKET (ospfh->type - 1, RECV)) +        { +          zlog_info ("ospf_read[%s/%s]: Could not associate packet with VL, " +                     "dropping.", +                     ospf_packet_type_str[ospfh->type], +                     inet_ntoa (iph->ip_src)); +        }        stream_free (ibuf);        return 0;      } @@ -2314,6 +2335,13 @@ ospf_read (struct thread *thread)    ret = ospf_verify_header (ibuf, oi, iph, ospfh);    if (ret < 0)      { +      if (IS_DEBUG_OSPF_PACKET (ospfh->type - 1, RECV)) +        { +          zlog_info ("ospf_read[%s/%s]: Header check failed, " +                     "dropping.", +                     ospf_packet_type_str[ospfh->type], +                     inet_ntoa (iph->ip_src)); +        }        stream_free (ibuf);        return ret;      } | 
