From c9aac2c38a2639c17d77cd85b20bf42237b70aa6 Mon Sep 17 00:00:00 2001 From: anlan_cs Date: Thu, 2 Mar 2023 17:57:17 +0800 Subject: [PATCH] bfdd: Remove useless check for ECHO packet The check with `ip->daddr == ip->saddr` in `bfd_recv_ipv4_fp()` is useless, instead of it the ECHO packets should simply exit with TTL checking failure regardless of this condition check. Just remove the check. Signed-off-by: anlan_cs --- bfdd/bfd_packet.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/bfdd/bfd_packet.c b/bfdd/bfd_packet.c index 7be235326c..88a9310bc6 100644 --- a/bfdd/bfd_packet.c +++ b/bfdd/bfd_packet.c @@ -140,7 +140,7 @@ int _ptm_bfd_send(struct bfd_session *bs, uint16_t *port, const void *data, * sizeof(*pkt) * * ip - * IP address that pkt will be transmitted from and too. + * IP address that pkt will be transmitted from and to. * * Returns: * Checksum in network byte order. @@ -481,12 +481,6 @@ ssize_t bfd_recv_ipv4_fp(int sd, uint8_t *msgbuf, size_t msgbuflen, *ttl = ip->ttl; if (*ttl != 254) { - /* Echo should be looped in peer's forwarding plane, but it also - * comes up to BFD so silently drop it - */ - if (ip->daddr == ip->saddr) - return -1; - if (bglobal.debug_network) zlog_debug("%s: invalid TTL: %u", __func__, *ttl); return -1;