]> git.proxmox.com Git - mirror_frr.git/blobdiff - bfdd/bfd_packet.c
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / bfdd / bfd_packet.c
index 98411a87329d6bc4bbabb2f066c717a270857f82..7be235326c5e49202ed94c563e2d4bae7855d63b 100644 (file)
@@ -1,20 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*********************************************************************
  * Copyright 2017 Cumulus Networks, Inc.  All rights reserved.
  *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; see the file COPYING; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
  * bfd_packet.c: implements the BFD protocol packet handling.
  *
  * Authors
@@ -578,8 +565,8 @@ ssize_t bfd_recv_ipv4(int sd, uint8_t *msgbuf, size_t msgbuflen, uint8_t *ttl,
                        memcpy(&ttlval, CMSG_DATA(cm), sizeof(ttlval));
                        if (ttlval > 255) {
                                if (bglobal.debug_network)
-                                       zlog_debug("ipv4-recv: invalid TTL: %u",
-                                                  ttlval);
+                                       zlog_debug("%s: invalid TTL: %u",
+                                                  __func__, ttlval);
                                return -1;
                        }
                        *ttl = ttlval;
@@ -686,8 +673,8 @@ ssize_t bfd_recv_ipv6(int sd, uint8_t *msgbuf, size_t msgbuflen, uint8_t *ttl,
                        memcpy(&ttlval, CMSG_DATA(cm), sizeof(ttlval));
                        if (ttlval > 255) {
                                if (bglobal.debug_network)
-                                       zlog_debug("ipv6-recv: invalid TTL: %u",
-                                                  ttlval);
+                                       zlog_debug("%s: invalid TTL: %u",
+                                                  __func__, ttlval);
                                return -1;
                        }
 
@@ -746,6 +733,7 @@ static void bfd_sd_reschedule(struct bfd_vrf_global *bvrf, int sd)
        }
 }
 
+PRINTFRR(6, 7)
 static void cp_debug(bool mhop, struct sockaddr_any *peer,
                     struct sockaddr_any *local, ifindex_t ifindex,
                     vrf_id_t vrfid, const char *fmt, ...)
@@ -844,7 +832,7 @@ void bfd_recv_cb(struct thread *t)
        /* Implement RFC 5880 6.8.6 */
        if (mlen < BFD_PKT_LEN) {
                cp_debug(is_mhop, &peer, &local, ifindex, vrfid,
-                        "too small (%ld bytes)", mlen);
+                        "too small (%zd bytes)", mlen);
                return;
        }
 
@@ -1127,13 +1115,13 @@ int bp_udp_send_fp(int sd, uint8_t *data, size_t datalen,
 
        if (wlen <= 0) {
                if (bglobal.debug_network)
-                       zlog_debug("udp-send: loopback failure: (%d) %s", errno,
-                                  strerror(errno));
+                       zlog_debug("%s: loopback failure: (%d) %s", __func__,
+                                  errno, strerror(errno));
                return -1;
        } else if (wlen < (ssize_t)datalen) {
                if (bglobal.debug_network)
-                       zlog_debug("udp-send: partial send: %zd expected %zu",
-                                  wlen, datalen);
+                       zlog_debug("%s: partial send: %zd expected %zu",
+                                  __func__, wlen, datalen);
                return -1;
        }
 
@@ -1194,13 +1182,13 @@ int bp_udp_send(int sd, uint8_t ttl, uint8_t *data, size_t datalen,
        wlen = sendmsg(sd, &msg, 0);
        if (wlen <= 0) {
                if (bglobal.debug_network)
-                       zlog_debug("udp-send: loopback failure: (%d) %s", errno,
-                                  strerror(errno));
+                       zlog_debug("%s: loopback failure: (%d) %s", __func__,
+                                  errno, strerror(errno));
                return -1;
        } else if (wlen < (ssize_t)datalen) {
                if (bglobal.debug_network)
-                       zlog_debug("udp-send: partial send: %zd expected %zu",
-                                  wlen, datalen);
+                       zlog_debug("%s: partial send: %zd expected %zu",
+                                  __func__, wlen, datalen);
                return -1;
        }
 
@@ -1221,7 +1209,7 @@ int bp_set_ttl(int sd, uint8_t value)
        int ttl = value;
 
        if (setsockopt(sd, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl)) == -1) {
-               zlog_warn("set-ttl: setsockopt(IP_TTL, %d): %s", value,
+               zlog_warn("%s: setsockopt(IP_TTL, %d): %s", __func__, value,
                          strerror(errno));
                return -1;
        }
@@ -1234,7 +1222,7 @@ int bp_set_tos(int sd, uint8_t value)
        int tos = value;
 
        if (setsockopt(sd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) == -1) {
-               zlog_warn("set-tos: setsockopt(IP_TOS, %d): %s", value,
+               zlog_warn("%s: setsockopt(IP_TOS, %d): %s", __func__, value,
                          strerror(errno));
                return -1;
        }
@@ -1247,8 +1235,8 @@ static bool bp_set_reuse_addr(int sd)
        int one = 1;
 
        if (setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) == -1) {
-               zlog_warn("set-reuse-addr: setsockopt(SO_REUSEADDR, %d): %s",
-                         one, strerror(errno));
+               zlog_warn("%s: setsockopt(SO_REUSEADDR, %d): %s", __func__, one,
+                         strerror(errno));
                return false;
        }
        return true;
@@ -1259,8 +1247,8 @@ static bool bp_set_reuse_port(int sd)
        int one = 1;
 
        if (setsockopt(sd, SOL_SOCKET, SO_REUSEPORT, &one, sizeof(one)) == -1) {
-               zlog_warn("set-reuse-port: setsockopt(SO_REUSEPORT, %d): %s",
-                         one, strerror(errno));
+               zlog_warn("%s: setsockopt(SO_REUSEPORT, %d): %s", __func__, one,
+                         strerror(errno));
                return false;
        }
        return true;
@@ -1397,8 +1385,6 @@ int bp_peer_socket(const struct bfd_session *bs)
        sin.sin_len = sizeof(sin);
 #endif /* HAVE_STRUCT_SOCKADDR_SA_LEN */
        memcpy(&sin.sin_addr, &bs->key.local, sizeof(sin.sin_addr));
-       if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_MH) == 0)
-               sin.sin_addr.s_addr = INADDR_ANY;
 
        pcount = 0;
        do {