1 /* 2 * Copyright (c) 2021, The OpenThread Authors. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 3. Neither the name of the copyright holder nor the 13 * names of its contributors may be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 /** 30 * @file 31 * This file defines the errors used by OpenThread core. 32 */ 33 34 #ifndef ERROR_HPP_ 35 #define ERROR_HPP_ 36 37 #include "openthread-core-config.h" 38 39 #include <openthread/error.h> 40 41 #include <stdint.h> 42 43 namespace ot { 44 45 /** 46 * Represents error codes used by OpenThread core modules. 47 * 48 */ 49 typedef otError Error; 50 51 /* 52 * The `OT_ERROR_*` enumeration values are re-defined using `kError` style format. 53 * See `openthread/error.h` for more details about each error. 54 * 55 */ 56 constexpr Error kErrorNone = OT_ERROR_NONE; 57 constexpr Error kErrorFailed = OT_ERROR_FAILED; 58 constexpr Error kErrorDrop = OT_ERROR_DROP; 59 constexpr Error kErrorNoBufs = OT_ERROR_NO_BUFS; 60 constexpr Error kErrorNoRoute = OT_ERROR_NO_ROUTE; 61 constexpr Error kErrorBusy = OT_ERROR_BUSY; 62 constexpr Error kErrorParse = OT_ERROR_PARSE; 63 constexpr Error kErrorInvalidArgs = OT_ERROR_INVALID_ARGS; 64 constexpr Error kErrorSecurity = OT_ERROR_SECURITY; 65 constexpr Error kErrorAddressQuery = OT_ERROR_ADDRESS_QUERY; 66 constexpr Error kErrorNoAddress = OT_ERROR_NO_ADDRESS; 67 constexpr Error kErrorAbort = OT_ERROR_ABORT; 68 constexpr Error kErrorNotImplemented = OT_ERROR_NOT_IMPLEMENTED; 69 constexpr Error kErrorInvalidState = OT_ERROR_INVALID_STATE; 70 constexpr Error kErrorNoAck = OT_ERROR_NO_ACK; 71 constexpr Error kErrorChannelAccessFailure = OT_ERROR_CHANNEL_ACCESS_FAILURE; 72 constexpr Error kErrorDetached = OT_ERROR_DETACHED; 73 constexpr Error kErrorFcs = OT_ERROR_FCS; 74 constexpr Error kErrorNoFrameReceived = OT_ERROR_NO_FRAME_RECEIVED; 75 constexpr Error kErrorUnknownNeighbor = OT_ERROR_UNKNOWN_NEIGHBOR; 76 constexpr Error kErrorInvalidSourceAddress = OT_ERROR_INVALID_SOURCE_ADDRESS; 77 constexpr Error kErrorAddressFiltered = OT_ERROR_ADDRESS_FILTERED; 78 constexpr Error kErrorDestinationAddressFiltered = OT_ERROR_DESTINATION_ADDRESS_FILTERED; 79 constexpr Error kErrorNotFound = OT_ERROR_NOT_FOUND; 80 constexpr Error kErrorAlready = OT_ERROR_ALREADY; 81 constexpr Error kErrorIp6AddressCreationFailure = OT_ERROR_IP6_ADDRESS_CREATION_FAILURE; 82 constexpr Error kErrorNotCapable = OT_ERROR_NOT_CAPABLE; 83 constexpr Error kErrorResponseTimeout = OT_ERROR_RESPONSE_TIMEOUT; 84 constexpr Error kErrorDuplicated = OT_ERROR_DUPLICATED; 85 constexpr Error kErrorReassemblyTimeout = OT_ERROR_REASSEMBLY_TIMEOUT; 86 constexpr Error kErrorNotTmf = OT_ERROR_NOT_TMF; 87 constexpr Error kErrorNotLowpanDataFrame = OT_ERROR_NOT_LOWPAN_DATA_FRAME; 88 constexpr Error kErrorLinkMarginLow = OT_ERROR_LINK_MARGIN_LOW; 89 constexpr Error kErrorInvalidCommand = OT_ERROR_INVALID_COMMAND; 90 constexpr Error kErrorPending = OT_ERROR_PENDING; 91 constexpr Error kErrorRejected = OT_ERROR_REJECTED; 92 constexpr Error kErrorGeneric = OT_ERROR_GENERIC; 93 94 constexpr uint8_t kNumErrors = OT_NUM_ERRORS; 95 96 /** 97 * Converts an `Error` into a string. 98 * 99 * @param[in] aError An error. 100 * 101 * @returns A string representation of @p aError. 102 * 103 */ 104 const char *ErrorToString(Error aError); 105 106 } // namespace ot 107 108 #endif // ERROR_HPP_ 109