blob: d89be292a5727bd0013e61c7c04a17f716d06442 [file] [log] [blame]
/*
* Copyright (c) 2021, The OpenThread Authors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file
* This file defines the errors used by OpenThread core.
*/
#ifndef ERROR_HPP_
#define ERROR_HPP_
#include "openthread-core-config.h"
#include <openthread/error.h>
#include <stdint.h>
namespace ot {
/**
* This type represents error codes used by OpenThread core modules.
*
*/
typedef otError Error;
/*
* The `OT_ERROR_*` enumeration values are re-defined using `kError` style format.
* See `openthread/error.h` for more details about each error.
*
*/
constexpr Error kErrorNone = OT_ERROR_NONE;
constexpr Error kErrorFailed = OT_ERROR_FAILED;
constexpr Error kErrorDrop = OT_ERROR_DROP;
constexpr Error kErrorNoBufs = OT_ERROR_NO_BUFS;
constexpr Error kErrorNoRoute = OT_ERROR_NO_ROUTE;
constexpr Error kErrorBusy = OT_ERROR_BUSY;
constexpr Error kErrorParse = OT_ERROR_PARSE;
constexpr Error kErrorInvalidArgs = OT_ERROR_INVALID_ARGS;
constexpr Error kErrorSecurity = OT_ERROR_SECURITY;
constexpr Error kErrorAddressQuery = OT_ERROR_ADDRESS_QUERY;
constexpr Error kErrorNoAddress = OT_ERROR_NO_ADDRESS;
constexpr Error kErrorAbort = OT_ERROR_ABORT;
constexpr Error kErrorNotImplemented = OT_ERROR_NOT_IMPLEMENTED;
constexpr Error kErrorInvalidState = OT_ERROR_INVALID_STATE;
constexpr Error kErrorNoAck = OT_ERROR_NO_ACK;
constexpr Error kErrorChannelAccessFailure = OT_ERROR_CHANNEL_ACCESS_FAILURE;
constexpr Error kErrorDetached = OT_ERROR_DETACHED;
constexpr Error kErrorFcs = OT_ERROR_FCS;
constexpr Error kErrorNoFrameReceived = OT_ERROR_NO_FRAME_RECEIVED;
constexpr Error kErrorUnknownNeighbor = OT_ERROR_UNKNOWN_NEIGHBOR;
constexpr Error kErrorInvalidSourceAddress = OT_ERROR_INVALID_SOURCE_ADDRESS;
constexpr Error kErrorAddressFiltered = OT_ERROR_ADDRESS_FILTERED;
constexpr Error kErrorDestinationAddressFiltered = OT_ERROR_DESTINATION_ADDRESS_FILTERED;
constexpr Error kErrorNotFound = OT_ERROR_NOT_FOUND;
constexpr Error kErrorAlready = OT_ERROR_ALREADY;
constexpr Error kErrorIp6AddressCreationFailure = OT_ERROR_IP6_ADDRESS_CREATION_FAILURE;
constexpr Error kErrorNotCapable = OT_ERROR_NOT_CAPABLE;
constexpr Error kErrorResponseTimeout = OT_ERROR_RESPONSE_TIMEOUT;
constexpr Error kErrorDuplicated = OT_ERROR_DUPLICATED;
constexpr Error kErrorReassemblyTimeout = OT_ERROR_REASSEMBLY_TIMEOUT;
constexpr Error kErrorNotTmf = OT_ERROR_NOT_TMF;
constexpr Error kErrorNotLowpanDataFrame = OT_ERROR_NOT_LOWPAN_DATA_FRAME;
constexpr Error kErrorLinkMarginLow = OT_ERROR_LINK_MARGIN_LOW;
constexpr Error kErrorInvalidCommand = OT_ERROR_INVALID_COMMAND;
constexpr Error kErrorPending = OT_ERROR_PENDING;
constexpr Error kErrorRejected = OT_ERROR_REJECTED;
constexpr Error kErrorGeneric = OT_ERROR_GENERIC;
constexpr uint8_t kNumErrors = OT_NUM_ERRORS;
/**
* This function converts an `Error` into a string.
*
* @param[in] aError An error.
*
* @returns A string representation of @p aError.
*
*/
const char *ErrorToString(Error aError);
} // namespace ot
#endif // ERROR_HPP_