back to topotato report
topotato coverage report
Current view: top level - zebra - zebra_errors.c (source / functions) Hit Total Coverage
Test: aggregated run ( view descriptions ) Lines: 3 3 100.0 %
Date: 2023-02-24 19:38:44 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /*
       2             :  * Zebra-specific error messages.
       3             :  * Copyright (C) 2018  Cumulus Networks, Inc.
       4             :  *                     Quentin Young
       5             :  *
       6             :  * This program is free software; you can redistribute it and/or modify it
       7             :  * under the terms of the GNU General Public License as published by the Free
       8             :  * Software Foundation; either version 2 of the License, or (at your option)
       9             :  * any later version.
      10             :  *
      11             :  * This program is distributed in the hope that it will be useful, but WITHOUT
      12             :  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      13             :  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
      14             :  * more details.
      15             :  *
      16             :  * You should have received a copy of the GNU General Public License along
      17             :  * with this program; see the file COPYING; if not, write to the Free Software
      18             :  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
      19             :  */
      20             : 
      21             : #include <zebra.h>
      22             : 
      23             : #include "lib/ferr.h"
      24             : #include "zebra_errors.h"
      25             : 
      26             : /* clang-format off */
      27             : static struct log_ref ferr_zebra_err[] = {
      28             :         {
      29             :                 .code = EC_ZEBRA_LM_RESPONSE,
      30             :                 .title = "Error reading response from label manager",
      31             :                 .description = "Zebra could not read the ZAPI header from the label manager",
      32             :                 .suggestion = "Wait for the error to resolve on its own. If it does not resolve, restart Zebra.",
      33             :         },
      34             :         {
      35             :                 .code = EC_ZEBRA_LM_NO_SUCH_CLIENT,
      36             :                 .title = "Label manager could not find ZAPI client",
      37             :                 .description = "Zebra was unable to find a ZAPI client matching the given protocol and instance number.",
      38             :                 .suggestion = "Ensure clients which use the label manager are properly configured and running.",
      39             :         },
      40             :         {
      41             :                 .code = EC_ZEBRA_LM_RELAY_FAILED,
      42             :                 .title = "Zebra could not relay label manager response",
      43             :                 .description = "Zebra found the client and instance to relay the label manager response or request to, but was not able to do so, possibly because the connection was closed.",
      44             :                 .suggestion = "Ensure clients which use the label manager are properly configured and running.",
      45             :         },
      46             :         {
      47             :                 .code = EC_ZEBRA_LM_BAD_INSTANCE,
      48             :                 .title = "Mismatch between ZAPI instance and encoded message instance",
      49             :                 .description = "While relaying a request to the external label manager, Zebra noticed that the instance number encoded in the message did not match the client instance number.",
      50             :                 .suggestion = "Notify a developer.",
      51             :         },
      52             :         {
      53             :                 .code = EC_ZEBRA_LM_EXHAUSTED_LABELS,
      54             :                 .title = "Zebra label manager used all available labels",
      55             :                 .description = "Zebra is unable to assign additional label chunks because it has exhausted its assigned label range.",
      56             :                 .suggestion = "Make the label range bigger and restart Zebra.",
      57             :         },
      58             :         {
      59             :                 .code = EC_ZEBRA_LM_DAEMON_MISMATCH,
      60             :                 .title = "Daemon mismatch when releasing label chunks",
      61             :                 .description = "Zebra noticed a mismatch between a label chunk and a protocol daemon number or instance when releasing unused label chunks.",
      62             :                 .suggestion = "Ignore this error.",
      63             :         },
      64             :         {
      65             :                 .code = EC_ZEBRA_LM_UNRELEASED_CHUNK,
      66             :                 .title = "Zebra did not free any label chunks",
      67             :                 .description = "Zebra's chunk cleanup procedure ran, but no label chunks were released.",
      68             :                 .suggestion = "Ignore this error.",
      69             :         },
      70             :         {
      71             :                 .code = EC_ZEBRA_DP_INVALID_RC,
      72             :                 .title = "Dataplane returned invalid status code",
      73             :                 .description = "The underlying dataplane responded to a Zebra message or other interaction with an unrecognized, unknown or invalid status code.",
      74             :                 .suggestion = "Notify a developer.",
      75             :         },
      76             :         {
      77             :                 .code = EC_ZEBRA_WQ_NONEXISTENT,
      78             :                 .title = "A necessary work queue does not exist.",
      79             :                 .description = "A necessary work queue does not exist.",
      80             :                 .suggestion = "Notify a developer.",
      81             :         },
      82             :         {
      83             :                 .code = EC_ZEBRA_FEC_ADD_FAILED,
      84             :                 .title = "Failed to add FEC for MPLS client",
      85             :                 .description = "A client requested a label binding for a new FEC, but Zebra was unable to add the FEC to its internal table.",
      86             :                 .suggestion = "Notify a developer.",
      87             :         },
      88             :         {
      89             :                 .code = EC_ZEBRA_FEC_LABEL_INDEX_LABEL_CONFLICT,
      90             :                 .title = "Refused to add FEC for MPLS client with both label index and label specified",
      91             :                 .description = "A client requested a label binding for a new FEC specifying a label index and a label at the same time.",
      92             :                 .suggestion = "Notify a developer.",
      93             :         },
      94             :         {
      95             :                 .code = EC_ZEBRA_FEC_RM_FAILED,
      96             :                 .title = "Failed to remove FEC for MPLS client",
      97             :                 .description = "Zebra was unable to find and remove a FEC in its internal table.",
      98             :                 .suggestion = "Notify a developer.",
      99             :         },
     100             :         {
     101             :                 .code = EC_ZEBRA_IRDP_LEN_MISMATCH,
     102             :                 .title = "IRDP message length mismatch",
     103             :                 .description = "The length encoded in the IP TLV does not match the length of the packet received.",
     104             :                 .suggestion = "Notify a developer.",
     105             :         },
     106             :         {
     107             :                 .code = EC_ZEBRA_RNH_UNKNOWN_FAMILY,
     108             :                 .title = "Attempted to perform nexthop update for unknown address family",
     109             :                 .description = "Zebra attempted to perform a nexthop update for unknown address family",
     110             :                 .suggestion = "Notify a developer.",
     111             :         },
     112             :         {
     113             :                 .code = EC_ZEBRA_DP_INSTALL_FAIL,
     114             :                 .title = "Dataplane installation failure",
     115             :                 .description = "Installation of routes to underlying dataplane failed.",
     116             :                 .suggestion = "Check all configuration parameters for correctness.",
     117             :         },
     118             :         {
     119             :                 .code = EC_ZEBRA_DP_DELETE_FAIL,
     120             :                 .title = "Dataplane deletion failure",
     121             :                 .description = "Deletion of routes from underlying dataplane failed.",
     122             :                 .suggestion = "Check all configuration parameters for correctness.",
     123             :         },
     124             :         {
     125             :                 .code = EC_ZEBRA_TABLE_LOOKUP_FAILED,
     126             :                 .title = "Zebra table lookup failed",
     127             :                 .description = "Zebra attempted to look up a table for a particular address family and subsequent address family, but didn't find anything.",
     128             :                 .suggestion = "If you entered a command to trigger this error, make sure you entered the arguments correctly. Check your config file for any potential errors. If these look correct, seek help.",
     129             :         },
     130             :         {
     131             :                 .code = EC_ZEBRA_NETLINK_NOT_AVAILABLE,
     132             :                 .title = "Netlink backend not available",
     133             :                 .description = "FRR was not compiled with support for Netlink. Any operations that require Netlink will fail.",
     134             :                 .suggestion = "Recompile FRR with Netlink, or install a package that supports this feature.",
     135             :         },
     136             :         {
     137             :                 .code = EC_ZEBRA_PROTOBUF_NOT_AVAILABLE,
     138             :                 .title = "Protocol Buffers backend not available",
     139             :                 .description = "FRR was not compiled with support for Protocol Buffers. Any operations that require Protobuf will fail.",
     140             :                 .suggestion = "Recompile FRR with Protobuf support, or install a package that supports this feature.",
     141             :         },
     142             :         {
     143             :                 .code = EC_ZEBRA_TM_EXHAUSTED_IDS,
     144             :                 .title = "Table manager used all available IDs",
     145             :                 .description = "Zebra's table manager used up all IDs available to it and can't assign any more.",
     146             :                 .suggestion = "Reconfigure Zebra with a larger range of table IDs.",
     147             :         },
     148             :         {
     149             :                 .code = EC_ZEBRA_TM_DAEMON_MISMATCH,
     150             :                 .title = "Daemon mismatch when releasing table chunks",
     151             :                 .description = "Zebra noticed a mismatch between a table ID chunk and a protocol daemon number instance when releasing unused table chunks.",
     152             :                 .suggestion = "Ignore this error.",
     153             :         },
     154             :         {
     155             :                 .code = EC_ZEBRA_TM_UNRELEASED_CHUNK,
     156             :                 .title = "Zebra did not free any table chunks",
     157             :                 .description = "Zebra's table chunk cleanup procedure ran, but no table chunks were released.",
     158             :                 .suggestion = "Ignore this error.",
     159             :         },
     160             :         {
     161             :                 .code = EC_ZEBRA_UNKNOWN_FAMILY,
     162             :                 .title = "Address family specifier unrecognized",
     163             :                 .description = "Zebra attempted to process information from somewhere that included an address family specifier, but did not recognize the provided specifier.",
     164             :                 .suggestion = "Ensure that your configuration is correct. If it is, notify a developer.",
     165             :         },
     166             :         {
     167             :                 .code = EC_ZEBRA_TM_WRONG_PROTO,
     168             :                 .title = "Incorrect protocol for table manager client",
     169             :                 .description = "Zebra's table manager only accepts connections from daemons managing dynamic routing protocols, but received a connection attempt from a daemon that does not meet this criterion.",
     170             :                 .suggestion = "Notify a developer.",
     171             :         },
     172             :         {
     173             :                 .code = EC_ZEBRA_PROTO_OR_INSTANCE_MISMATCH,
     174             :                 .title = "Mismatch between message and client protocol and/or instance",
     175             :                 .description = "Zebra detected a mismatch between a client's protocol and/or instance numbers versus those stored in a message transiting its socket.",
     176             :                 .suggestion = "Notify a developer.",
     177             :         },
     178             :         {
     179             :                 .code = EC_ZEBRA_LM_CANNOT_ASSIGN_CHUNK,
     180             :                 .title = "Label manager unable to assign label chunk",
     181             :                 .description = "Zebra's label manager was unable to assign a label chunk to client.",
     182             :                 .suggestion = "Ensure that Zebra has a sufficient label range available and that there is not a range collision.",
     183             :         },
     184             :         {
     185             :                 .code = EC_ZEBRA_LM_ALIENS,
     186             :                 .title = "Label request from unidentified client",
     187             :                 .description = "Zebra's label manager received a label request from an unidentified client.",
     188             :                 .suggestion = "Notify a developer.",
     189             :         },
     190             :         {
     191             :                 .code = EC_ZEBRA_TM_CANNOT_ASSIGN_CHUNK,
     192             :                 .title = "Table manager unable to assign table chunk",
     193             :                 .description = "Zebra's table manager was unable to assign a table chunk to a client.",
     194             :                 .suggestion = "Ensure that Zebra has sufficient table ID range available and that there is not a range collision.",
     195             :         },
     196             :         {
     197             :                 .code = EC_ZEBRA_TM_ALIENS,
     198             :                 .title = "Table request from unidentified client",
     199             :                 .description = "Zebra's table manager received a table request from an unidentified client.",
     200             :                 .suggestion = "Notify a developer.",
     201             :         },
     202             :         {
     203             :                 .code = EC_ZEBRA_RECVBUF,
     204             :                 .title = "Cannot set receive buffer size",
     205             :                 .description = "Socket receive buffer size could not be set in the kernel",
     206             :                 .suggestion = "Ignore this error.",
     207             :         },
     208             :         {
     209             :                 .code = EC_ZEBRA_UNKNOWN_NLMSG,
     210             :                 .title = "Unknown Netlink message type",
     211             :                 .description = "Zebra received a Netlink message with an unrecognized type field.",
     212             :                 .suggestion = "Verify that you are running the latest version of FRR to ensure kernel compatibility. If the problem persists, notify a developer.",
     213             :         },
     214             :         {
     215             :                 .code = EC_ZEBRA_RECVMSG_OVERRUN,
     216             :                 .title = "Receive buffer overrun",
     217             :                 .description = "The kernel's buffer for a socket has been overrun, rendering the socket invalid.",
     218             :                 .suggestion = "Zebra will restart itself. Notify a developer if this issue shows up frequently.",
     219             :         },
     220             :         {
     221             :                 .code = EC_ZEBRA_NETLINK_LENGTH_ERROR,
     222             :                 .title = "Netlink message length mismatch",
     223             :                 .description = "Zebra received a Netlink message with incorrect length fields.",
     224             :                 .suggestion = "Notify a developer.",
     225             :         },
     226             :         {
     227             :                 .code = EC_ZEBRA_NETLINK_LENGTH_ERROR,
     228             :                 .title = "Netlink message length mismatch",
     229             :                 .description = "Zebra received a Netlink message with incorrect length fields.",
     230             :                 .suggestion = "Notify a developer.",
     231             :         },
     232             :         {
     233             :                 .code = EC_ZEBRA_UNEXPECTED_MESSAGE,
     234             :                 .title = "Received unexpected response from kernel",
     235             :                 .description = "Received unexpected response from the kernel via Netlink.",
     236             :                 .suggestion = "Notify a developer.",
     237             :         },
     238             :         {
     239             :                 .code = EC_ZEBRA_NETLINK_BAD_SEQUENCE,
     240             :                 .title = "Bad sequence number in Netlink message",
     241             :                 .description = "Zebra received a Netlink message with a bad sequence number.",
     242             :                 .suggestion = "Notify a developer.",
     243             :         },
     244             :         {
     245             :                 .code = EC_ZEBRA_BAD_MULTIPATH_NUM,
     246             :                 .title = "Multipath number was out of valid range",
     247             :                 .description = "Multipath number specified to Zebra must be in the appropriate range",
     248             :                 .suggestion = "Provide a multipath number that is within its accepted range",
     249             :         },
     250             :         {
     251             :                 .code = EC_ZEBRA_PREFIX_PARSE_ERROR,
     252             :                 .title = "String could not be parsed as IP prefix",
     253             :                 .description = "There was an attempt to parse a string as an IPv4 or IPv6 prefix, but the string could not be parsed and this operation failed.",
     254             :                 .suggestion = "Notify a developer.",
     255             :         },
     256             :         {
     257             :                 .code = EC_ZEBRA_MAC_ADD_FAILED,
     258             :                 .title = "Failed to add MAC address to interface",
     259             :                 .description = "Zebra attempted to assign a MAC address to a vxlan interface but failed",
     260             :                 .suggestion = "Notify a developer.",
     261             :         },
     262             :         {
     263             :                 .code = EC_ZEBRA_VNI_DEL_FAILED,
     264             :                 .title = "Failed to delete VNI",
     265             :                 .description = "Zebra attempted to delete a VNI entry and failed",
     266             :                 .suggestion = "Notify a developer.",
     267             :         },
     268             :         {
     269             :                 .code = EC_ZEBRA_VTEP_ADD_FAILED,
     270             :                 .title = "Adding remote VTEP failed",
     271             :                 .description = "Zebra attempted to add a remote VTEP and failed.",
     272             :                 .suggestion = "Notify a developer.",
     273             :         },
     274             :         {
     275             :                 .code = EC_ZEBRA_VNI_ADD_FAILED,
     276             :                 .title = "Adding VNI failed",
     277             :                 .description = "Zebra attempted to add a VNI hash to an interface and failed",
     278             :                 .suggestion = "Notify a developer.",
     279             :         },
     280             :         {
     281             :                 .code = EC_ZEBRA_NS_NOTIFY_READ,
     282             :                 .title = "Zebra failed to read namespace inotify information",
     283             :                 .description = "Zebra received an event from inotify, but failed to read what it was.",
     284             :                 .suggestion = "Notify a developer.",
     285             :         },
     286             :         {
     287             :                 .code = EC_ZEBRA_NHG_TABLE_INSERT_FAILED,
     288             :                 .title =
     289             :                         "Nexthop Group Hash Table Insert Failure",
     290             :                 .description =
     291             :                         "Zebra failed in inserting a Nexthop Group into its hash tables.",
     292             :                 .suggestion =
     293             :                         "Check to see if the entry already exists or if the netlink message was parsed incorrectly."
     294             :         },
     295             :         {
     296             :                 .code = EC_ZEBRA_NHG_SYNC,
     297             :                 .title =
     298             :                         "Zebra's Nexthop Groups are out of sync",
     299             :                 .description =
     300             :                         "Zebra's nexthop group tables are out of sync with the nexthop groups in the fib.",
     301             :                 .suggestion =
     302             :                         "Check the current status of the kernels nexthop groups and compare it to Zebra's."
     303             :         },
     304             :         {
     305             :                 .code = EC_ZEBRA_NHG_FIB_UPDATE,
     306             :                 .title =
     307             :                         "Zebra failed updating the fib with Nexthop Group",
     308             :                 .description =
     309             :                         "Zebra was not able to successfully install a new nexthop group into the fib",
     310             :                 .suggestion =
     311             :                         "Check to see if the nexthop group on the route you tried to install is valid."
     312             :         },
     313             :         {
     314             :                 .code = EC_ZEBRA_NS_NO_DEFAULT,
     315             :                 .title = "Zebra NameSpace failed to find Default",
     316             :                 .description = "Zebra NameSpace subsystem failed to find a Default namespace during initialization.",
     317             :                 .suggestion = "Open an Issue with all relevant log files and restart FRR",
     318             :         },
     319             :         /* Warnings */
     320             :         {
     321             :                 .code = EC_ZEBRAING_LM_PROTO_MISMATCH,
     322             :                 .title =
     323             :                         "Zebra label manager received malformed label request",
     324             :                 .description =
     325             :                         "Zebra's label manager received a label request from a client whose protocol type does not match the protocol field received in the message.",
     326             :                 .suggestion =
     327             :                         "This is a bug. Please report it.",
     328             :         },
     329             :         {
     330             :                 .code = EC_ZEBRA_LSP_INSTALL_FAILURE,
     331             :                 .title =
     332             :                         "Zebra failed to install LSP into the kernel",
     333             :                 .description =
     334             :                         "Zebra made an attempt to install a label switched path, but the kernel indicated that the installation was not successful.",
     335             :                 .suggestion =
     336             :                         "Wait for Zebra to reattempt installation.",
     337             :         },
     338             :         {
     339             :                 .code = EC_ZEBRA_LSP_DELETE_FAILURE,
     340             :                 .title =
     341             :                         "Zebra failed to remove LSP from the kernel",
     342             :                 .description =
     343             :                         "Zebra made an attempt to remove a label switched path, but the kernel indicated that the deletion was not successful.",
     344             :                 .suggestion =
     345             :                         "Wait for Zebra to reattempt deletion.",
     346             :         },
     347             :         {
     348             :                 .code = EC_ZEBRA_MPLS_SUPPORT_DISABLED,
     349             :                 .title =
     350             :                         "Zebra will not run with MPLS support",
     351             :                 .description =
     352             :                         "Zebra noticed that the running kernel does not support MPLS, so it disabled MPLS support.",
     353             :                 .suggestion =
     354             :                         "If you want MPLS support, upgrade the kernel to a version that provides MPLS support.",
     355             :         },
     356             :         {
     357             :                 .code = EC_ZEBRA_SYSCTL_FAILED,
     358             :                 .title = "A call to sysctl() failed",
     359             :                 .description =
     360             :                         "sysctl() returned a nonzero exit code, indicating an error.",
     361             :                 .suggestion =
     362             :                         "The log message should contain further details on the specific error that occurred; investigate the reported error.",
     363             :         },
     364             :         {
     365             :                 .code = EC_ZEBRA_NS_VRF_CREATION_FAILED,
     366             :                 .title =
     367             :                         "Zebra failed to create namespace VRF",
     368             :                 .description =
     369             :                         "Zebra failed to create namespace VRF",
     370             :                 .suggestion = "",
     371             :         },
     372             :         {
     373             :                 .code = EC_ZEBRA_NS_DELETION_FAILED_NO_VRF,
     374             :                 .title =
     375             :                         "Zebra attempted to delete nonexistent namespace",
     376             :                 .description =
     377             :                         "Zebra attempted to delete a particular namespace, but no VRF associated with that namespace could be found to delete.",
     378             :                 .suggestion = "Please report this bug.",
     379             :         },
     380             :         {
     381             :                 .code = EC_ZEBRA_IFLIST_FAILED,
     382             :                 .title =
     383             :                         "Zebra interface listing failed",
     384             :                 .description =
     385             :                         "Zebra encountered an error attempting to query sysctl for a list of interfaces on the system.",
     386             :                 .suggestion =
     387             :                         "Check that Zebra is running with the appropriate permissions. If it is, please report this as a bug.",
     388             :         },
     389             :         {
     390             :                 .code = EC_ZEBRA_IRDP_BAD_CHECKSUM,
     391             :                 .title =
     392             :                         "Zebra received ICMP packet with invalid checksum",
     393             :                 .description =
     394             :                         "Zebra received an ICMP packet with a bad checksum and has silently ignored it.",
     395             :                 .suggestion =
     396             :                         "If the problem continues to occur, investigate the source of the bad ICMP packets.",
     397             :         },
     398             :         {
     399             :                 .code = EC_ZEBRA_IRDP_BAD_TYPE_CODE,
     400             :                 .title =
     401             :                         "Zebra received ICMP packet with bad type code",
     402             :                 .description =
     403             :                         "Zebra received an ICMP packet with a bad code for the message type and has silently ignored it.",
     404             :                 .suggestion =
     405             :                         "If the problem continues to occur, investigate the source of the bad ICMP packets.",
     406             :         },
     407             :         {
     408             :                 .code = EC_ZEBRA_IRDP_BAD_RX_FLAGS,
     409             :                 .title =
     410             :                         "Zebra received IRDP packet while operating in wrong mode",
     411             :                 .description =
     412             :                         "Zebra received a multicast IRDP packet while operating in unicast mode, or vice versa.",
     413             :                 .suggestion =
     414             :                         "If you wish to receive the messages, change your IRDP settings accordingly.",
     415             :         },
     416             :         {
     417             :                 .code = EC_ZEBRA_RNH_NO_TABLE,
     418             :                 .title =
     419             :                         "Zebra could not find table for next hop",
     420             :                 .description =
     421             :                         "Zebra attempted to add a next hop but could not find the appropriate table to install it in.",
     422             :                 .suggestion = "Please report this bug.",
     423             :         },
     424             :         {
     425             :                 .code = EC_ZEBRA_FPM_FORMAT_UNKNOWN,
     426             :                 .title =
     427             :                         "Unknown message format for Zebra's FPM module",
     428             :                 .description =
     429             :                         "Zebra's FPM module takes an argument which specifies the message format to use, but the format was either not provided or was not a valid format. The FPM interface will be disabled.",
     430             :                 .suggestion =
     431             :                         "Provide or correct the module argument to provide a valid format. See documentation for further information.",
     432             :         },
     433             :         {
     434             :                 .code = EC_ZEBRA_CLIENT_IO_ERROR,
     435             :                 .title =
     436             :                         "Zebra client connection failed",
     437             :                 .description =
     438             :                         "A Zebra client encountered an I/O error and is shutting down. This can occur under normal circumstances, such as when FRR is restarting or shutting down; it can also happen if the daemon crashed. Usually this warning can be ignored.",
     439             :                 .suggestion =
     440             :                         "Ignore this warning, it is mostly informational.",
     441             :         },
     442             :         {
     443             :                 .code = EC_ZEBRA_CLIENT_WRITE_FAILED,
     444             :                 .title =
     445             :                         "Zebra failed to send message to client",
     446             :                 .description =
     447             :                         "Zebra attempted to send a message to one of its clients, but the write operation failed. The connection will be closed.",
     448             :                 .suggestion =
     449             :                         "Ignore this warning, it is mostly informational.",
     450             :         },
     451             :         {
     452             :                 .code = EC_ZEBRA_NETLINK_INVALID_AF,
     453             :                 .title =
     454             :                         "Zebra received Netlink message with invalid family",
     455             :                 .description =
     456             :                         "Zebra received a Netlink message with an invalid address family.",
     457             :                 .suggestion =
     458             :                         "Inspect the logged address family and submit it with a bug report.",
     459             :         },
     460             :         {
     461             :                 .code = EC_ZEBRA_REMOVE_ADDR_UNKNOWN_SUBNET,
     462             :                 .title =
     463             :                         "Zebra tried to remove address from unknown subnet",
     464             :                 .description =
     465             :                         "Zebra attempted to remove an address from an unknown subnet.",
     466             :                 .suggestion =
     467             :                         "This is a bug, please report it.",
     468             :         },
     469             :         {
     470             :                 .code = EC_ZEBRA_REMOVE_UNREGISTERED_ADDR,
     471             :                 .title =
     472             :                         "Zebra tried to remove unregistered address",
     473             :                 .description =
     474             :                         "Zebra attempted to remove an address from a subnet it was not registered on.",
     475             :                 .suggestion =
     476             :                         "This is a bug, please report it.",
     477             :         },
     478             :         {
     479             :                 .code = EC_ZEBRA_PTM_NOT_READY,
     480             :                 .title =
     481             :                         "Interface is up but PTM check has not completed",
     482             :                 .description =
     483             :                         "Zebra noticed that an interface came up and attempted to perform its usual setup procedures, but the PTM check failed and the operation was aborted.",
     484             :                 .suggestion =
     485             :                         "If the problem persists, ensure that the interface is actually up and that PTM is functioning properly.",
     486             :         },
     487             :         {
     488             :                 .code = EC_ZEBRA_UNSUPPORTED_V4_SRCDEST,
     489             :                 .title =
     490             :                         "Kernel rejected sourcedest route",
     491             :                 .description =
     492             :                         "Zebra attempted to install a sourcedest route into the kernel, but the kernel did not acknowledge its installation. The route is unsupported.",
     493             :                 .suggestion =
     494             :                         "Check configuration values for correctness",
     495             :         },
     496             :         {
     497             :                 .code = EC_ZEBRA_UNKNOWN_INTERFACE,
     498             :                 .title =
     499             :                         "Zebra encountered an unknown interface specifier",
     500             :                 .description =
     501             :                         "Zebra was asked to look up an interface with a given name or index, but could not find the interface corresponding to the given name or index.",
     502             :                 .suggestion =
     503             :                         "Check configuration values for correctness.",
     504             :         },
     505             :         {
     506             :                 .code = EC_ZEBRA_VRF_NOT_FOUND,
     507             :                 .title =
     508             :                         "Zebra could not find the specified VRF",
     509             :                 .description =
     510             :                         "Zebra tried to look up a VRF, either by name or ID, and could not find it. This could be due to internal inconsistency (a bug) or a configuration error.",
     511             :                 .suggestion =
     512             :                         "Check configuration values for correctness. If values are correct, please file a bug report.",
     513             :         },
     514             :         {
     515             :                 .code = EC_ZEBRA_MORE_NH_THAN_MULTIPATH,
     516             :                 .title =
     517             :                         "More nexthops were provided than the configured multipath limit",
     518             :                 .description =
     519             :                         "A route with multiple nexthops was given, but the number of nexthops exceeded the configured multipath limit.",
     520             :                 .suggestion =
     521             :                         "Reduce the number of nexthops, or increase the multipath limit.",
     522             :         },
     523             :         {
     524             :                 .code = EC_ZEBRA_NEXTHOP_CREATION_FAILED,
     525             :                 .title =
     526             :                         "Zebra failed to create one or more nexthops",
     527             :                 .description =
     528             :                         "While attempting to create nexthops for a route installation operation, Zebra found that it was unable to create one or more of the given nexthops.",
     529             :                 .suggestion =
     530             :                         "Check configuration values for correctness. If they are correct, report this as a bug.",
     531             :         },
     532             :         {
     533             :                 .code = EC_ZEBRA_RX_ROUTE_NO_NEXTHOPS,
     534             :                 .title =
     535             :                         "Zebra received an installation request for a route without nexthops",
     536             :                 .description =
     537             :                         "Zebra received a message from a client requesting a route installation, but the route is invalid since it doesn't have any nexthop address or interface.",
     538             :                 .suggestion =
     539             :                         "This is a bug; please report it.",
     540             :         },
     541             :         {
     542             :                 .code = EC_ZEBRA_RX_SRCDEST_WRONG_AFI,
     543             :                 .title =
     544             :                         "Zebra received sourcedest route install without IPv6 address family",
     545             :                 .description =
     546             :                         "Zebra received a message from a client requesting a sourcedest route installation, but the address family was not set to IPv6. Only IPv6 is supported for sourcedest routing.",
     547             :                 .suggestion =
     548             :                         "This is a bug; please report it.",
     549             :         },
     550             :         {
     551             :                 .code = EC_ZEBRA_PSEUDOWIRE_EXISTS,
     552             :                 .title =
     553             :                         "Zebra received an installation / creation request for a pseudowire that already exists",
     554             :                 .description =
     555             :                         "Zebra received an installation or creation request for a pseudowire that already exists, so the installation / creation has been skipped.",
     556             :                 .suggestion =
     557             :                         "This message is informational.",
     558             :         },
     559             :         {
     560             :                 .code = EC_ZEBRA_PSEUDOWIRE_NONEXISTENT,
     561             :                 .title =
     562             :                         "Zebra received an uninstallation / deletion request for a pseudowire that already exists",
     563             :                 .description =
     564             :                         "Zebra received an uninstallation / deletion request for a pseudowire that doesn't exist, so the uninstallation / deletion has been skipped.",
     565             :                 .suggestion =
     566             :                         "This message is informational.",
     567             :         },
     568             :         {
     569             :                 .code = EC_ZEBRA_PSEUDOWIRE_UNINSTALL_NOT_FOUND,
     570             :                 .title =
     571             :                         "Zebra received uninstall request for a pseudowire that doesn't exist",
     572             :                 .description =
     573             :                         "Zebra received an uninstall request for a pseudowire that doesn't exist, so the uninstallation has been skipped.",
     574             :                 .suggestion =
     575             :                         "This message is informational.",
     576             :         },
     577             :         {
     578             :                 .code = EC_ZEBRA_NO_IFACE_ADDR,
     579             :                 .title = "No address on interface",
     580             :                 .description =
     581             :                         "Zebra attempted to retrieve a connected address for an interface, but the interface had no connected addresses.",
     582             :                 .suggestion =
     583             :                         "This warning is situational; it is usually informative but can indicate a misconfiguration.",
     584             :         },
     585             :         {
     586             :                 .code = EC_ZEBRA_IFACE_ADDR_ADD_FAILED,
     587             :                 .title =
     588             :                         "Zebra failed to add address to interface",
     589             :                 .description =
     590             :                         "Zebra attempted to add an address to an interface but was unsuccessful.",
     591             :                 .suggestion =
     592             :                         "Check configuration values for correctness.",
     593             :         },
     594             :         {
     595             :                 .code = EC_ZEBRA_IRDP_CANNOT_ACTIVATE_IFACE,
     596             :                 .title =
     597             :                         "Zebra could not enable IRDP on interface",
     598             :                 .description =
     599             :                         "Zebra attempted to enable IRDP on an interface, but could not create the IRDP socket. The system may be out of socket resources, or privilege elevation may have failed.",
     600             :                 .suggestion =
     601             :                         "Verify that Zebra has the appropriate privileges and that the system has sufficient socket resources.",
     602             :         },
     603             :         {
     604             :                 .code = EC_ZEBRA_IRDP_IFACE_DOWN,
     605             :                 .title =
     606             :                         "Zebra attempted to enable IRDP on an interface, but the interface was down",
     607             :                 .description = "Zebra attempted to enable IRDP on an interface, but the interface was down.",
     608             :                 .suggestion =
     609             :                         "Bring up the interface that IRDP is desired on.",
     610             :         },
     611             :         {
     612             :                 .code = EC_ZEBRA_IRDP_IFACE_MCAST_DISABLED,
     613             :                 .title =
     614             :                         "Zebra cannot enable IRDP on interface because multicast is disabled",
     615             :                 .description =
     616             :                         "Zebra attempted to enable IRDP on an interface, but multicast functionality was not enabled on the interface.",
     617             :                 .suggestion =
     618             :                         "Enable multicast on the interface.",
     619             :         },
     620             :         {
     621             :                 .code = EC_ZEBRA_NETLINK_EXTENDED_WARNING,
     622             :                 .title =
     623             :                         "Zebra received warning message from Netlink",
     624             :                 .description =
     625             :                         "Zebra received a warning message from Netlink",
     626             :                 .suggestion =
     627             :                         "This message is informational. See the Netlink error message for details.",
     628             :         },
     629             :         {
     630             :                 .code = EC_ZEBRA_NAMESPACE_DIR_INACCESSIBLE,
     631             :                 .title =
     632             :                         "Zebra could not access /var/run/netns",
     633             :                 .description =
     634             :                         "Zebra tried to verify that the run directory for Linux network namespaces existed, but this test failed.",
     635             :                 .suggestion =
     636             :                         "Ensure that Zebra has the proper privileges to access this directory.",
     637             :         },
     638             :         {
     639             :                 .code = EC_ZEBRA_CONNECTED_AFI_UNKNOWN,
     640             :                 .title =
     641             :                         "Zebra received unknown address family on interface",
     642             :                 .description =
     643             :                         "Zebra received a notification of a connected prefix on an interface but did not recognize the address family as IPv4 or IPv6",
     644             :                 .suggestion =
     645             :                         "This message is informational.",
     646             :         },
     647             :         {
     648             :                 .code = EC_ZEBRA_IFACE_SAME_LOCAL_AS_PEER,
     649             :                 .title =
     650             :                         "Zebra route has same destination address as local interface",
     651             :                 .description =
     652             :                         "Zebra noticed that a route on an interface has the same destination address as an address on the interface itself, which may cause issues with routing protocols.",
     653             :                 .suggestion =
     654             :                         "Investigate the source of the route to determine why the destination and interface addresses are the same.",
     655             :         },
     656             :         {
     657             :                 .code = EC_ZEBRA_BCAST_ADDR_MISMATCH,
     658             :                 .title =
     659             :                         "Zebra broadcast address sanity check failed",
     660             :                 .description =
     661             :                         "Zebra computed the broadcast address for a connected prefix based on the netmask and found that it did not match the broadcast address it received for the prefix on that interface",
     662             :                 .suggestion =
     663             :                         "Investigate the source of the broadcast address to determine why it does not match the computed address.",
     664             :         },
     665             :         {
     666             :                 .code = EC_ZEBRA_REDISTRIBUTE_UNKNOWN_AF,
     667             :                 .title =
     668             :                         "Zebra encountered unknown address family during redistribution",
     669             :                 .description =
     670             :                         "During a redistribution operation Zebra encountered an unknown address family.",
     671             :                 .suggestion =
     672             :                         "This warning can be ignored; the redistribution operation will skip the unknown address family.",
     673             :         },
     674             :         {
     675             :                 .code = EC_ZEBRA_ADVERTISING_UNUSABLE_ADDR,
     676             :                 .title =
     677             :                         "Zebra advertising unusable interface address",
     678             :                 .description =
     679             :                         "Zebra is advertising an address on an interface that is not yet fully installed on the interface.",
     680             :                 .suggestion =
     681             :                         "This message is informational. The address should show up on the interface shortly after advertisement.",
     682             :         },
     683             :         {
     684             :                 .code = EC_ZEBRA_RA_PARAM_MISMATCH,
     685             :                 .title =
     686             :                         "Zebra received route advertisement with parameter mismatch",
     687             :                 .description =
     688             :                         "Zebra received a router advertisement, but one of the non-critical parameters (AdvCurHopLimit, AdvManagedFlag, AdvOtherConfigFlag, AdvReachableTime or AdvRetransTimer) does not match Zebra's local settings.",
     689             :                 .suggestion =
     690             :                         "This message is informational; the route advertisement will be processed as normal. If issues arise due to the parameter mismatch, check Zebra's router advertisement configuration.",
     691             :         },
     692             :         {
     693             :                 .code = EC_ZEBRA_RTM_VERSION_MISMATCH,
     694             :                 .title =
     695             :                         "Zebra received kernel message with unknown version",
     696             :                 .description =
     697             :                         "Zebra received a message from the kernel with a message version that does not match Zebra's internal version. Depending on version compatibility, this may cause issues sending and receiving messages to the kernel.",
     698             :                 .suggestion =
     699             :                         "If issues arise, check if there is a version of FRR available for your kernel version.",
     700             :         },
     701             :         {
     702             :                 .code = EC_ZEBRA_RTM_NO_GATEWAY,
     703             :                 .title =
     704             :                         "Zebra could not determine proper gateway for kernel route",
     705             :                 .description =
     706             :                         "Zebra attempted to install a route into the kernel, but noticed it had no gateway and no interface with a gateway could be located.",
     707             :                 .suggestion =
     708             :                         "Check configuration values for correctness.",
     709             :         },
     710             :         {
     711             :                 .code = EC_ZEBRA_MAX_LABELS_PUSH,
     712             :                 .title =
     713             :                         "Zebra exceeded maximum LSP labels for a single rtmsg",
     714             :                 .description =
     715             :                         "Zebra attempted to push more than one label into the kernel; the maximum on OpenBSD is 1 label.",
     716             :                 .suggestion =
     717             :                         "This message is informational.",
     718             :         },
     719             :         {
     720             :                 .code = EC_ZEBRA_STICKY_MAC_ALREADY_LEARNT,
     721             :                 .title =
     722             :                         "EVPN MAC already learnt as remote sticky MAC",
     723             :                 .description =
     724             :                         "Zebra tried to handle a local MAC addition but noticed that it had already learnt the MAC from a remote peer.",
     725             :                 .suggestion =
     726             :                         "Check configuration values for correctness.",
     727             :         },
     728             :         {
     729             :                 .code = EC_ZEBRA_UNSUPPORTED_V6_SRCDEST,
     730             :                 .title =
     731             :                         "Kernel does not support IPv6 sourcedest routes",
     732             :                 .description =
     733             :                         "Zebra attempted to install a sourcedest route into the kernel, but IPv6 sourcedest routes are not supported on the current kernel.",
     734             :                 .suggestion =
     735             :                         "Do not use v6 sourcedest routes, or upgrade your kernel.",
     736             :         },
     737             :         {
     738             :                 .code = EC_ZEBRA_DUP_MAC_DETECTED,
     739             :                 .title =
     740             :                         "EVPN MAC is detected duplicate",
     741             :                 .description =
     742             :                         "Zebra has hit duplicate address detection threshold which means host MAC is moving.",
     743             :                 .suggestion =
     744             :                         "Check network topology to detect duplicate host MAC for correctness.",
     745             :         },
     746             :         {
     747             :                 .code = EC_ZEBRA_DUP_IP_INHERIT_DETECTED,
     748             :                 .title =
     749             :                         "EVPN IP is detected duplicate by MAC",
     750             :                 .description =
     751             :                         "Zebra has hit duplicate address detection threshold which means MAC-IP pair is moving.",
     752             :                 .suggestion =
     753             :                         "Check network topology to detect duplicate host MAC for correctness.",
     754             :         },
     755             :         {
     756             :                 .code = EC_ZEBRA_DUP_IP_DETECTED,
     757             :                 .title =
     758             :                         "EVPN IP is detected duplicate",
     759             :                 .description =
     760             :                         "Zebra has hit duplicate address detection threshold which means host IP is moving.",
     761             :                 .suggestion =
     762             :                         "Check network topology to detect duplicate host IP for correctness.",
     763             :         },
     764             :         {
     765             :                 .code = EC_ZEBRA_BAD_NHG_MESSAGE,
     766             :                 .title =
     767             :                         "Bad Nexthop Group Message",
     768             :                 .description =
     769             :                         "Zebra received Nexthop Group message from the kernel that it cannot process.",
     770             :                 .suggestion =
     771             :                         "Check the kernel's link states and routing table to see how it matches ours."
     772             :         },
     773             :         {
     774             :                 .code = EC_ZEBRA_DUPLICATE_NHG_MESSAGE,
     775             :                 .title =
     776             :                         "Duplicate Nexthop Group Message",
     777             :                 .description =
     778             :                         "Zebra received Nexthop Group message from the kernel that it is identical to one it/we already have but with a different ID.",
     779             :                 .suggestion =
     780             :                         "See if the nexthop you are trying to add is already present in the fib."
     781             :         },
     782             :         {
     783             :                 .code = EC_ZEBRA_VRF_MISCONFIGURED,
     784             :                 .title = "Duplicate VRF table id detected",
     785             :                 .description = "Zebra has detected a situation where there are two vrf devices with the exact same tableid.  This is considered a complete misconfiguration of VRF devices and breaks a fundamental assumption in FRR about how VRF's work",
     786             :                 .suggestion = "Use different table id's for the VRF's in question"
     787             :         },
     788             :         {
     789             :                 .code = EC_ZEBRA_SRV6M_UNRELEASED_LOCATOR_CHUNK,
     790             :                 .title = "Zebra did not free any srv6 locator chunks",
     791             :                 .description = "Zebra's srv6-locator chunk cleanup procedure ran, but no srv6 locator chunks were released.",
     792             :                 .suggestion = "Ignore this error.",
     793             :         },
     794             :         {
     795             :                 .code = EC_ZEBRA_INTF_UPDATE_FAILURE,
     796             :                 .title =
     797             :                         "Zebra failed to update interface in the kernel",
     798             :                 .description =
     799             :                         "Zebra made an attempt to update an interfce in the kernel, but it was not successful.",
     800             :                 .suggestion =
     801             :                         "Wait for Zebra to reattempt update.",
     802             :         },
     803             :         {
     804             :                 .code = END_FERR,
     805             :         }
     806             : };
     807             : /* clang-format on */
     808             : 
     809             : 
     810          93 : void zebra_error_init(void)
     811             : {
     812          93 :         log_ref_add(ferr_zebra_err);
     813          93 : }

Generated by: LCOV version v1.16-topotato