]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: Update zclient.c warn code
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 20 Aug 2018 13:13:23 +0000 (09:13 -0400)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 6 Sep 2018 20:50:58 +0000 (20:50 +0000)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
lib/lib_errors.c
lib/zclient.c

index cf23c9c6dd14a6765988f3cb703f666c99188635..73d1e8d543faed30f38ba37e04d7b4f86c8a4d1a 100644 (file)
@@ -62,7 +62,7 @@ static struct log_ref ferr_lib_err[] = {
                .code = LIB_ERR_ZAPI_ENCODE,
                .title = "ZAPI Error",
                .description = "The ZAPI subsystem has detected an encoding issue, between zebra and a client protocol",
-               .suggestion = "Restart FRR"
+               .suggestion = "Gather data and open an Issue, also Restart FRR"
        },
        {
                .code = LIB_ERR_ZAPI_SOCKET,
index c5a48c178afb91f1ade110414e1a0560d0948931..cb8172713f08413a8a73a8d2b83fc73a496a45fc 100644 (file)
@@ -221,9 +221,9 @@ int zclient_socket_connect(struct zclient *zclient)
        ret = connect(sock, (struct sockaddr *)&zclient_addr, zclient_addr_len);
        if (ret < 0) {
                if (zclient_debug)
-                       zlog_warn("%s connect failure: %d(%s)",
-                                 __PRETTY_FUNCTION__, errno,
-                                 safe_strerror(errno));
+                       zlog_debug("%s connect failure: %d(%s)",
+                                  __PRETTY_FUNCTION__, errno,
+                                  safe_strerror(errno));
                close(sock);
                return -1;
        }
@@ -249,9 +249,9 @@ static int zclient_flush_data(struct thread *thread)
                return -1;
        switch (buffer_flush_available(zclient->wb, zclient->sock)) {
        case BUFFER_ERROR:
-               zlog_warn(
-                       "%s: buffer_flush_available failed on zclient fd %d, closing",
-                       __func__, zclient->sock);
+               flog_err(LIB_ERR_ZAPI_SOCKET,
+                        "%s: buffer_flush_available failed on zclient fd %d, closing",
+                        __func__, zclient->sock);
                return zclient_failed(zclient);
                break;
        case BUFFER_PENDING:
@@ -273,8 +273,9 @@ int zclient_send_message(struct zclient *zclient)
                             STREAM_DATA(zclient->obuf),
                             stream_get_endp(zclient->obuf))) {
        case BUFFER_ERROR:
-               zlog_warn("%s: buffer_write failed to zclient fd %d, closing",
-                         __func__, zclient->sock);
+               flog_err(LIB_ERR_ZAPI_SOCKET,
+                        "%s: buffer_write failed to zclient fd %d, closing",
+                        __func__, zclient->sock);
                return zclient_failed(zclient);
                break;
        case BUFFER_EMPTY:
@@ -575,8 +576,9 @@ int zclient_start(struct zclient *zclient)
        }
 
        if (set_nonblocking(zclient->sock) < 0)
-               zlog_warn("%s: set_nonblocking(%d) failed", __func__,
-                         zclient->sock);
+               flog_err(LIB_ERR_ZAPI_SOCKET,
+                        "%s: set_nonblocking(%d) failed", __func__,
+                        zclient->sock);
 
        /* Clear fail count. */
        zclient->fail = 0;
@@ -771,10 +773,9 @@ int zapi_route_encode(uint8_t cmd, struct stream *s, struct zapi_route *api)
                        char buf[PREFIX2STR_BUFFER];
 
                        prefix2str(&api->prefix, buf, sizeof(buf));
-                       zlog_warn(
-                               "%s: prefix %s: can't encode %u nexthops "
-                               "(maximum is %u)",
-                               __func__, buf, api->nexthop_num, MULTIPATH_NUM);
+                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                "%s: prefix %s: can't encode %u nexthops (maximum is %u)",
+                                __func__, buf, api->nexthop_num, MULTIPATH_NUM);
                        return -1;
                }
 
@@ -808,11 +809,6 @@ int zapi_route_encode(uint8_t cmd, struct stream *s, struct zapi_route *api)
                                             16);
                                stream_putl(s, api_nh->ifindex);
                                break;
-                       default:
-                               zlog_warn(
-                                       "%s: Specified Nexthop type %d does not exist",
-                                       __PRETTY_FUNCTION__, api_nh->type);
-                               return -1;
                        }
 
                        /* MPLS labels for BGP-LU or Segment Routing */
@@ -871,8 +867,9 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api)
        /* Type, flags, message. */
        STREAM_GETC(s, api->type);
        if (api->type > ZEBRA_ROUTE_MAX) {
-               zlog_warn("%s: Specified route type: %d is not a legal value\n",
-                         __PRETTY_FUNCTION__, api->type);
+               flog_err(LIB_ERR_ZAPI_ENCODE,
+                        "%s: Specified route type: %d is not a legal value\n",
+                        __PRETTY_FUNCTION__, api->type);
                return -1;
        }
 
@@ -887,23 +884,24 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api)
        switch (api->prefix.family) {
        case AF_INET:
                if (api->prefix.prefixlen > IPV4_MAX_PREFIXLEN) {
-                       zlog_warn(
-                               "%s: V4 prefixlen is %d which should not be more than 32",
-                               __PRETTY_FUNCTION__, api->prefix.prefixlen);
+                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                "%s: V4 prefixlen is %d which should not be more than 32",
+                                __PRETTY_FUNCTION__, api->prefix.prefixlen);
                        return -1;
                }
                break;
        case AF_INET6:
                if (api->prefix.prefixlen > IPV6_MAX_PREFIXLEN) {
-                       zlog_warn(
-                               "%s: v6 prefixlen is %d which should not be more than 128",
-                               __PRETTY_FUNCTION__, api->prefix.prefixlen);
+                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                "%s: v6 prefixlen is %d which should not be more than 128",
+                                __PRETTY_FUNCTION__, api->prefix.prefixlen);
                        return -1;
                }
                break;
        default:
-               zlog_warn("%s: Specified family %d is not v4 or v6",
-                         __PRETTY_FUNCTION__, api->prefix.family);
+               flog_err(LIB_ERR_ZAPI_ENCODE,
+                        "%s: Specified family %d is not v4 or v6",
+                        __PRETTY_FUNCTION__, api->prefix.family);
                return -1;
        }
        STREAM_GET(&api->prefix.u.prefix, s, PSIZE(api->prefix.prefixlen));
@@ -912,9 +910,9 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api)
                api->src_prefix.family = AF_INET6;
                STREAM_GETC(s, api->src_prefix.prefixlen);
                if (api->src_prefix.prefixlen > IPV6_MAX_PREFIXLEN) {
-                       zlog_warn(
-                               "%s: SRC Prefix prefixlen received: %d is too large",
-                               __PRETTY_FUNCTION__, api->src_prefix.prefixlen);
+                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                "%s: SRC Prefix prefixlen received: %d is too large",
+                                __PRETTY_FUNCTION__, api->src_prefix.prefixlen);
                        return -1;
                }
                STREAM_GET(&api->src_prefix.prefix, s,
@@ -922,9 +920,9 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api)
 
                if (api->prefix.family != AF_INET6
                    || api->src_prefix.prefixlen == 0) {
-                       zlog_warn(
-                               "%s: SRC prefix specified in some manner that makes no sense",
-                               __PRETTY_FUNCTION__);
+                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                "%s: SRC prefix specified in some manner that makes no sense",
+                                __PRETTY_FUNCTION__);
                        return -1;
                }
        }
@@ -933,8 +931,9 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api)
        if (CHECK_FLAG(api->message, ZAPI_MESSAGE_NEXTHOP)) {
                STREAM_GETW(s, api->nexthop_num);
                if (api->nexthop_num > MULTIPATH_NUM) {
-                       zlog_warn("%s: invalid number of nexthops (%u)",
-                                 __func__, api->nexthop_num);
+                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                "%s: invalid number of nexthops (%u)",
+                                __func__, api->nexthop_num);
                        return -1;
                }
 
@@ -966,11 +965,6 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api)
                                STREAM_GET(&api_nh->gate.ipv6, s, 16);
                                STREAM_GETL(s, api_nh->ifindex);
                                break;
-                       default:
-                               zlog_warn(
-                                       "%s: Specified nexthop type %d does not exist",
-                                       __PRETTY_FUNCTION__, api_nh->type);
-                               return -1;
                        }
 
                        /* MPLS labels for BGP-LU or Segment Routing */
@@ -978,10 +972,9 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api)
                                STREAM_GETC(s, api_nh->label_num);
 
                                if (api_nh->label_num > MPLS_MAX_LABELS) {
-                                       zlog_warn(
-                                               "%s: invalid number of MPLS "
-                                               "labels (%u)",
-                                               __func__, api_nh->label_num);
+                                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                                "%s: invalid number of MPLS labels (%u)",
+                                                __func__, api_nh->label_num);
                                        return -1;
                                }
 
@@ -1239,8 +1232,9 @@ bool zapi_nexthop_update_decode(struct stream *s, struct zapi_route *nhr)
                }
                STREAM_GETC(s, nhr->nexthops[i].label_num);
                if (nhr->nexthops[i].label_num > MPLS_MAX_LABELS) {
-                       zlog_warn("%s: invalid number of MPLS labels (%u)",
-                                 __func__, nhr->nexthops[i].label_num);
+                       flog_err(LIB_ERR_ZAPI_ENCODE,
+                                "%s: invalid number of MPLS labels (%u)",
+                                __func__, nhr->nexthops[i].label_num);
                        return false;
                }
                if (nhr->nexthops[i].label_num)
@@ -1424,8 +1418,9 @@ struct interface *zebra_interface_state_read(struct stream *s, vrf_id_t vrf_id)
        /* Lookup this by interface index. */
        ifp = if_lookup_by_name(ifname_tmp, vrf_id);
        if (ifp == NULL) {
-               zlog_warn("INTERFACE_STATE: Cannot find IF %s in VRF %d",
-                         ifname_tmp, vrf_id);
+               flog_err(LIB_ERR_ZAPI_ENCODE,
+                        "INTERFACE_STATE: Cannot find IF %s in VRF %d",
+                        ifname_tmp, vrf_id);
                return NULL;
        }
 
@@ -1633,9 +1628,10 @@ struct connected *zebra_interface_address_read(int type, struct stream *s,
        /* Lookup index. */
        ifp = if_lookup_by_index(ifindex, vrf_id);
        if (ifp == NULL) {
-               zlog_warn("INTERFACE_ADDRESS_%s: Cannot find IF %u in VRF %d",
-                         (type == ZEBRA_INTERFACE_ADDRESS_ADD) ? "ADD" : "DEL",
-                         ifindex, vrf_id);
+               flog_err(LIB_ERR_ZAPI_ENCODE,
+                        "INTERFACE_ADDRESS_%s: Cannot find IF %u in VRF %d",
+                        (type == ZEBRA_INTERFACE_ADDRESS_ADD) ? "ADD" : "DEL",
+                        ifindex, vrf_id);
                return NULL;
        }
 
@@ -1670,12 +1666,11 @@ struct connected *zebra_interface_address_read(int type, struct stream *s,
                                /* carp interfaces on OpenBSD with 0.0.0.0/0 as
                                 * "peer" */
                                char buf[PREFIX_STRLEN];
-                               zlog_warn(
-                                       "warning: interface %s address %s "
-                                       "with peer flag set, but no peer address!",
-                                       ifp->name,
-                                       prefix2str(ifc->address, buf,
-                                                  sizeof buf));
+                               flog_err(LIB_ERR_ZAPI_ENCODE,
+                                        "warning: interface %s address %s with peer flag set, but no peer address!",
+                                        ifp->name,
+                                        prefix2str(ifc->address, buf,
+                                                   sizeof buf));
                                UNSET_FLAG(ifc->flags, ZEBRA_IFA_PEER);
                        }
                }
@@ -1725,9 +1720,10 @@ zebra_interface_nbr_address_read(int type, struct stream *s, vrf_id_t vrf_id)
        /* Lookup index. */
        ifp = if_lookup_by_index(ifindex, vrf_id);
        if (ifp == NULL) {
-               zlog_warn("INTERFACE_NBR_%s: Cannot find IF %u in VRF %d",
-                         (type == ZEBRA_INTERFACE_NBR_ADDRESS_ADD) ? "ADD"
-                                                                   : "DELETE",
+               flog_err(LIB_ERR_ZAPI_ENCODE,
+                        "INTERFACE_NBR_%s: Cannot find IF %u in VRF %d",
+                        (type == ZEBRA_INTERFACE_NBR_ADDRESS_ADD) ? "ADD"
+                        : "DELETE",
                          ifindex, vrf_id);
                return NULL;
        }
@@ -1774,8 +1770,9 @@ struct interface *zebra_interface_vrf_update_read(struct stream *s,
        /* Lookup interface. */
        ifp = if_lookup_by_index(ifindex, vrf_id);
        if (ifp == NULL) {
-               zlog_warn("INTERFACE_VRF_UPDATE: Cannot find IF %u in VRF %d",
-                         ifindex, vrf_id);
+               flog_err(LIB_ERR_ZAPI_ENCODE,
+                        "INTERFACE_VRF_UPDATE: Cannot find IF %u in VRF %d",
+                        ifindex, vrf_id);
                return NULL;
        }
 
@@ -2410,10 +2407,10 @@ static int zclient_read(struct thread *thread)
        /* Length check. */
        if (length > STREAM_SIZE(zclient->ibuf)) {
                struct stream *ns;
-               zlog_warn(
-                       "%s: message size %u exceeds buffer size %lu, expanding...",
-                       __func__, length,
-                       (unsigned long)STREAM_SIZE(zclient->ibuf));
+               flog_err(LIB_ERR_ZAPI_ENCODE,
+                        "%s: message size %u exceeds buffer size %lu, expanding...",
+                        __func__, length,
+                        (unsigned long)STREAM_SIZE(zclient->ibuf));
                ns = stream_new(length);
                stream_copy(ns, zclient->ibuf);
                stream_free(zclient->ibuf);