blob: f8b6d891e3d8bcccee45d1d44b048a7b65136e60 [file] [log] [blame]
/*
*
* Copyright (c) 2013-2017 Nest Labs, Inc.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file
* This file defines error constants for the Nest Weave core
* subsystem.
*
* Error types, ranges, and mappings overrides may be made by
* defining the appropriate WEAVE_CONFIG_* or _WEAVE_CONFIG_*
* macros.
*
* NOTE WELL: On some platforms, this header is included by C-language programs.
*
*/
#ifndef WEAVE_ERROR_H
#define WEAVE_ERROR_H
#include "WeaveConfig.h"
/**
* @def WEAVE_NO_ERROR
*
* @brief
* This defines the Weave error code for success or no error.
* This value may be configured via #WEAVE_CONFIG_NO_ERROR."
*
*/
#define WEAVE_NO_ERROR WEAVE_CONFIG_NO_ERROR
/**
* @def WEAVE_ERROR_MIN
*
* @brief
* This defines the bottom or minimum Weave error number range.
* This value may be configured via #WEAVE_CONFIG_ERROR_MIN.
*
*/
#define WEAVE_ERROR_MIN WEAVE_CONFIG_ERROR_MIN
/**
* @def WEAVE_ERROR_MAX
*
* @brief
* This defines the top or maximum Weave error number range.
* This value may be configured via #WEAVE_CONFIG_ERROR_MAX.
*
*/
#define WEAVE_ERROR_MAX WEAVE_CONFIG_ERROR_MAX
/**
* @def _WEAVE_ERROR(e)
*
* @brief
* This defines a mapping function for Weave errors that allows
* mapping such errors into a platform- or system-specific range.
* This function may be configured via #_WEAVE_CONFIG_ERROR(e).
*
* @param[in] e The Weave error to map.
*
* @return The mapped Weave error.
*
*
*/
#define _WEAVE_ERROR(e) _WEAVE_CONFIG_ERROR(e)
/**
* The basic type for all Weave errors.
*
* @brief
* This is defined to a platform- or system-specific type.
*
*/
typedef WEAVE_CONFIG_ERROR_TYPE WEAVE_ERROR;
/**
* @name Error Definitions
*
* @{
*/
/**
* @def WEAVE_ERROR_TOO_MANY_CONNECTIONS
*
* @brief
* The attempt to allocate a connection object failed because too many
* connections exist.
*
*/
#define WEAVE_ERROR_TOO_MANY_CONNECTIONS _WEAVE_ERROR(0)
/**
* @def WEAVE_ERROR_SENDING_BLOCKED
*
* @brief
* A message exceeds the sent limit.
*
*/
#define WEAVE_ERROR_SENDING_BLOCKED _WEAVE_ERROR(1)
/**
* @def WEAVE_ERROR_CONNECTION_ABORTED
*
* @brief
* A connection has been aborted.
*
*/
#define WEAVE_ERROR_CONNECTION_ABORTED _WEAVE_ERROR(2)
/**
* @def WEAVE_ERROR_INCORRECT_STATE
*
* @brief
* An unexpected state was encountered.
*
*/
#define WEAVE_ERROR_INCORRECT_STATE _WEAVE_ERROR(3)
/**
* @def WEAVE_ERROR_MESSAGE_TOO_LONG
*
* @brief
* A message is too long.
*
*/
#define WEAVE_ERROR_MESSAGE_TOO_LONG _WEAVE_ERROR(4)
/**
* @def WEAVE_ERROR_UNSUPPORTED_EXCHANGE_VERSION
*
* @brief
* An exchange version is not supported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_EXCHANGE_VERSION _WEAVE_ERROR(5)
/**
* @def WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
*
* @brief
* The attempt to register an unsolicited message handler failed because the
* unsolicited message handler pool is full.
*
*/
#define WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS _WEAVE_ERROR(6)
/**
* @def WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
*
* @brief
* The attempt to unregister an unsolicited message handler failed because
* the target handler was not found in the unsolicited message handler pool.
*
*/
#define WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER _WEAVE_ERROR(7)
/**
* @def WEAVE_ERROR_NO_CONNECTION_HANDLER
*
* @brief
* No callback has been registered for handling a connection.
*
*/
#define WEAVE_ERROR_NO_CONNECTION_HANDLER _WEAVE_ERROR(8)
/**
* @def WEAVE_ERROR_TOO_MANY_PEER_NODES
*
* @brief
* The number of peer nodes exceeds the maximum limit of a local node.
*
*/
#define WEAVE_ERROR_TOO_MANY_PEER_NODES _WEAVE_ERROR(9)
/**
* @def WEAVE_ERROR_NO_MEMORY
*
* @brief
* The attempt to allocate a buffer or object failed due to a lack of memory.
*
*/
#define WEAVE_ERROR_NO_MEMORY _WEAVE_ERROR(11)
/**
* @def WEAVE_ERROR_NO_MESSAGE_HANDLER
*
* @brief
* No callback has been registered for handling a message.
*
*/
#define WEAVE_ERROR_NO_MESSAGE_HANDLER _WEAVE_ERROR(12)
/**
* @def WEAVE_ERROR_MESSAGE_INCOMPLETE
*
* @brief
* A message is incomplete.
*
*/
#define WEAVE_ERROR_MESSAGE_INCOMPLETE _WEAVE_ERROR(13)
/**
* @def WEAVE_ERROR_DATA_NOT_ALIGNED
*
* @brief
* The data is not aligned.
*
*/
#define WEAVE_ERROR_DATA_NOT_ALIGNED _WEAVE_ERROR(14)
/**
* @def WEAVE_ERROR_UNKNOWN_KEY_TYPE
*
* @brief
* The encryption key type is unknown.
*
*/
#define WEAVE_ERROR_UNKNOWN_KEY_TYPE _WEAVE_ERROR(15)
/**
* @def WEAVE_ERROR_KEY_NOT_FOUND
*
* @brief
* The encryption key is not found.
*
*/
#define WEAVE_ERROR_KEY_NOT_FOUND _WEAVE_ERROR(16)
/**
* @def WEAVE_ERROR_WRONG_ENCRYPTION_TYPE
*
* @brief
* The encryption type is incorrect for the specified key.
*
*/
#define WEAVE_ERROR_WRONG_ENCRYPTION_TYPE _WEAVE_ERROR(17)
/**
* @def WEAVE_ERROR_TOO_MANY_KEYS
*
* @brief
* The attempt to allocate a key failed because the number of active keys
* exceeds the maximum limit.
*
*/
#define WEAVE_ERROR_TOO_MANY_KEYS _WEAVE_ERROR(18)
/**
* @def WEAVE_ERROR_INTEGRITY_CHECK_FAILED
*
* @brief
* The integrity check in the message does not match the expected integrity
* check.
*
*/
#define WEAVE_ERROR_INTEGRITY_CHECK_FAILED _WEAVE_ERROR(19)
/**
* @def WEAVE_ERROR_INVALID_SIGNATURE
*
* @brief
* Invalid signature.
*
*/
#define WEAVE_ERROR_INVALID_SIGNATURE _WEAVE_ERROR(20)
/**
* @def WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
*
* @brief
* A message version is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION _WEAVE_ERROR(21)
/**
* @def WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
*
* @brief
* An encryption type is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE _WEAVE_ERROR(22)
/**
* @def WEAVE_ERROR_UNSUPPORTED_SIGNATURE_TYPE
*
* @brief
* A signature type is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_SIGNATURE_TYPE _WEAVE_ERROR(23)
/**
* @def WEAVE_ERROR_INVALID_MESSAGE_LENGTH
*
* @brief
* A message length is invalid.
*
*/
#define WEAVE_ERROR_INVALID_MESSAGE_LENGTH _WEAVE_ERROR(24)
/**
* @def WEAVE_ERROR_BUFFER_TOO_SMALL
*
* @brief
* A buffer is too small.
*
*/
#define WEAVE_ERROR_BUFFER_TOO_SMALL _WEAVE_ERROR(25)
/**
* @def WEAVE_ERROR_DUPLICATE_KEY_ID
*
* @brief
* A key id is duplicate.
*
*/
#define WEAVE_ERROR_DUPLICATE_KEY_ID _WEAVE_ERROR(26)
/**
* @def WEAVE_ERROR_WRONG_KEY_TYPE
*
* @brief
* A key type does not match the expected key type.
*
*/
#define WEAVE_ERROR_WRONG_KEY_TYPE _WEAVE_ERROR(27)
/**
* @def WEAVE_ERROR_WELL_UNINITIALIZED
*
* @brief
* A requested object is uninitialized.
*
*/
#define WEAVE_ERROR_WELL_UNINITIALIZED _WEAVE_ERROR(28)
/**
* @def WEAVE_ERROR_WELL_EMPTY
*
* @brief
* A requested object is empty.
*
*/
#define WEAVE_ERROR_WELL_EMPTY _WEAVE_ERROR(29)
/**
* @def WEAVE_ERROR_INVALID_STRING_LENGTH
*
* @brief
* A string length is invalid.
*
*/
#define WEAVE_ERROR_INVALID_STRING_LENGTH _WEAVE_ERROR(30)
/**
* @def WEAVE_ERROR_INVALID_LIST_LENGTH
*
* @brief
* A list length is invalid.
*
*/
#define WEAVE_ERROR_INVALID_LIST_LENGTH _WEAVE_ERROR(31)
/**
* @def WEAVE_ERROR_INVALID_INTEGRITY_TYPE
*
* @brief
* An integrity type is invalid.
*
*/
#define WEAVE_ERROR_INVALID_INTEGRITY_TYPE _WEAVE_ERROR(32)
/**
* @def WEAVE_END_OF_TLV
*
* @brief
* The end of a TLV encoding,
* or the end of a TLV container element has been reached.
*
*/
#define WEAVE_END_OF_TLV _WEAVE_ERROR(33)
/**
* @def WEAVE_ERROR_TLV_UNDERRUN
*
* @brief
* The TLV encoding ended prematurely.
*
*/
#define WEAVE_ERROR_TLV_UNDERRUN _WEAVE_ERROR(34)
/**
* @def WEAVE_ERROR_INVALID_TLV_ELEMENT
*
* @brief
* A TLV element is invalid.
*
*/
#define WEAVE_ERROR_INVALID_TLV_ELEMENT _WEAVE_ERROR(35)
/**
* @def WEAVE_ERROR_INVALID_TLV_TAG
*
* @brief
* A TLV tag is invalid.
*
*/
#define WEAVE_ERROR_INVALID_TLV_TAG _WEAVE_ERROR(36)
/**
* @def WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
*
* @brief
* An implicitly encoded TLV tag was encountered,
* but an implicit profile id has not been defined.
*
*/
#define WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG _WEAVE_ERROR(37)
/**
* @def WEAVE_ERROR_WRONG_TLV_TYPE
*
* @brief
* A TLV type is wrong.
*
*/
#define WEAVE_ERROR_WRONG_TLV_TYPE _WEAVE_ERROR(38)
/**
* @def WEAVE_ERROR_TLV_CONTAINER_OPEN
*
* @brief
* A TLV container is unexpectedly open.
*
*/
#define WEAVE_ERROR_TLV_CONTAINER_OPEN _WEAVE_ERROR(39)
/**
* @def WEAVE_ERROR_INVALID_TRANSFER_MODE
*
* @brief
* A transfer mode is invalid.
*
*/
#define WEAVE_ERROR_INVALID_TRANSFER_MODE _WEAVE_ERROR(40)
/**
* @def WEAVE_ERROR_INVALID_PROFILE_ID
*
* @brief
* A profile id is invalid.
*
*/
#define WEAVE_ERROR_INVALID_PROFILE_ID _WEAVE_ERROR(41)
/**
* @def WEAVE_ERROR_INVALID_MESSAGE_TYPE
*
* @brief
* A message type is invalid.
*
*/
#define WEAVE_ERROR_INVALID_MESSAGE_TYPE _WEAVE_ERROR(42)
/**
* @def WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
*
* @brief
* An unexpected TLV element was encountered.
*
*/
#define WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT _WEAVE_ERROR(43)
/**
* @def WEAVE_ERROR_STATUS_REPORT_RECEIVED
*
* @brief
* A status report is received from a peer node.
*
*/
#define WEAVE_ERROR_STATUS_REPORT_RECEIVED _WEAVE_ERROR(44)
/**
* @def WEAVE_ERROR_NOT_IMPLEMENTED
*
* @brief
* A requested function or feature is not implemented.
*
*/
#define WEAVE_ERROR_NOT_IMPLEMENTED _WEAVE_ERROR(45)
/**
* @def WEAVE_ERROR_INVALID_ADDRESS
*
* @brief
* An address is invalid.
*
*/
#define WEAVE_ERROR_INVALID_ADDRESS _WEAVE_ERROR(46)
/**
* @def WEAVE_ERROR_INVALID_ARGUMENT
*
* @brief
* An argument is invalid.
*
*/
#define WEAVE_ERROR_INVALID_ARGUMENT _WEAVE_ERROR(47)
/**
* @def WEAVE_ERROR_INVALID_PATH_LIST
*
* @brief
* A TLV path list is invalid.
*
*/
#define WEAVE_ERROR_INVALID_PATH_LIST _WEAVE_ERROR(48)
/**
* @def WEAVE_ERROR_INVALID_DATA_LIST
*
* @brief
* A TLV data list is invalid.
*
*/
#define WEAVE_ERROR_INVALID_DATA_LIST _WEAVE_ERROR(49)
/**
* @def WEAVE_ERROR_TIMEOUT
*
* @brief
* A request timed out.
*
*/
#define WEAVE_ERROR_TIMEOUT _WEAVE_ERROR(50)
/**
* @def WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
*
* @brief
* A device descriptor is invalid.
*
*/
#define WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR _WEAVE_ERROR(51)
/**
* @def WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
*
* @brief
* A device descriptor version is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION _WEAVE_ERROR(52)
/**
* @def WEAVE_END_OF_INPUT
*
* @brief
* An input ended.
*
*/
#define WEAVE_END_OF_INPUT _WEAVE_ERROR(53)
/**
* @def WEAVE_ERROR_RATE_LIMIT_EXCEEDED
*
* @brief
* A rate limit is exceeded.
*
*/
#define WEAVE_ERROR_RATE_LIMIT_EXCEEDED _WEAVE_ERROR(54)
/**
* @def WEAVE_ERROR_SECURITY_MANAGER_BUSY
*
* @brief
* A security manager is busy.
*
*/
#define WEAVE_ERROR_SECURITY_MANAGER_BUSY _WEAVE_ERROR(55)
/**
* @def WEAVE_ERROR_INVALID_PASE_PARAMETER
*
* @brief
* A PASE parameter is invalid.
*
*/
#define WEAVE_ERROR_INVALID_PASE_PARAMETER _WEAVE_ERROR(56)
/**
* @def WEAVE_ERROR_PASE_SUPPORTS_ONLY_CONFIG1
*
* @brief
* PASE supports only config1.
*
*/
#define WEAVE_ERROR_PASE_SUPPORTS_ONLY_CONFIG1 _WEAVE_ERROR(57)
/**
* @def WEAVE_ERROR_KEY_CONFIRMATION_FAILED
*
* @brief
* A key confirmation failed.
*
*/
#define WEAVE_ERROR_KEY_CONFIRMATION_FAILED _WEAVE_ERROR(58)
/**
* @def WEAVE_ERROR_INVALID_USE_OF_SESSION_KEY
*
* @brief
* A use of session key is invalid.
*
*/
#define WEAVE_ERROR_INVALID_USE_OF_SESSION_KEY _WEAVE_ERROR(59)
/**
* @def WEAVE_ERROR_CONNECTION_CLOSED_UNEXPECTEDLY
*
* @brief
* A connection is closed unexpectedly.
*
*/
#define WEAVE_ERROR_CONNECTION_CLOSED_UNEXPECTEDLY _WEAVE_ERROR(60)
/**
* @def WEAVE_ERROR_MISSING_TLV_ELEMENT
*
* @brief
* A TLV element is missing.
*
*/
#define WEAVE_ERROR_MISSING_TLV_ELEMENT _WEAVE_ERROR(61)
/**
* @def WEAVE_ERROR_RANDOM_DATA_UNAVAILABLE
*
* @brief
* Secure random data is not available.
*
*/
#define WEAVE_ERROR_RANDOM_DATA_UNAVAILABLE _WEAVE_ERROR(62)
/**
* @def WEAVE_ERROR_UNSUPPORTED_HOST_PORT_ELEMENT
*
* @brief
* A type in host/port list is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_HOST_PORT_ELEMENT _WEAVE_ERROR(63)
/**
* @def WEAVE_ERROR_INVALID_HOST_SUFFIX_INDEX
*
* @brief
* A suffix index in host/port list is invalid.
*
*/
#define WEAVE_ERROR_INVALID_HOST_SUFFIX_INDEX _WEAVE_ERROR(64)
/**
* @def WEAVE_ERROR_HOST_PORT_LIST_EMPTY
*
* @brief
* A host/port list is empty.
*
*/
#define WEAVE_ERROR_HOST_PORT_LIST_EMPTY _WEAVE_ERROR(65)
/**
* @def WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
*
* @brief
* An authentication mode is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_AUTH_MODE _WEAVE_ERROR(66)
/**
* @def WEAVE_ERROR_INVALID_SERVICE_EP
*
* @brief
* A service endpoint is invalid.
*
*/
#define WEAVE_ERROR_INVALID_SERVICE_EP _WEAVE_ERROR(67)
/**
* @def WEAVE_ERROR_INVALID_DIRECTORY_ENTRY_TYPE
*
* @brief
* A directory entry type is unknown.
*
*/
#define WEAVE_ERROR_INVALID_DIRECTORY_ENTRY_TYPE _WEAVE_ERROR(68)
/**
* @def WEAVE_ERROR_FORCED_RESET
*
* @brief
* A service manager is forced to reset.
*
*/
#define WEAVE_ERROR_FORCED_RESET _WEAVE_ERROR(69)
/**
* @def WEAVE_ERROR_NO_ENDPOINT
*
* @brief
* No endpoint is available.
*
*/
#define WEAVE_ERROR_NO_ENDPOINT _WEAVE_ERROR(70)
/**
* @def WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
*
* @brief
* A destination node id is invalid.
*
*/
#define WEAVE_ERROR_INVALID_DESTINATION_NODE_ID _WEAVE_ERROR(71)
/**
* @def WEAVE_ERROR_NOT_CONNECTED
*
* @brief
* The operation cannot be performed because the underlying object is not
* connected.
*
*/
#define WEAVE_ERROR_NOT_CONNECTED _WEAVE_ERROR(72)
/**
* @def WEAVE_ERROR_NO_SW_UPDATE_AVAILABLE
*
* @brief
* No software update is available.
*
*/
#define WEAVE_ERROR_NO_SW_UPDATE_AVAILABLE _WEAVE_ERROR(73)
/**
* @def WEAVE_ERROR_CA_CERT_NOT_FOUND
*
* @brief
* CA certificate is not found.
*
*/
#define WEAVE_ERROR_CA_CERT_NOT_FOUND _WEAVE_ERROR(74)
/**
* @def WEAVE_ERROR_CERT_PATH_LEN_CONSTRAINT_EXCEEDED
*
* @brief
* A certificate path length exceeds the constraint.
*
*/
#define WEAVE_ERROR_CERT_PATH_LEN_CONSTRAINT_EXCEEDED _WEAVE_ERROR(75)
/**
* @def WEAVE_ERROR_CERT_PATH_TOO_LONG
*
* @brief
* A certificate path is too long.
*
*/
#define WEAVE_ERROR_CERT_PATH_TOO_LONG _WEAVE_ERROR(76)
/**
* @def WEAVE_ERROR_CERT_USAGE_NOT_ALLOWED
*
* @brief
* A requested certificate usage is not allowed.
*
*/
#define WEAVE_ERROR_CERT_USAGE_NOT_ALLOWED _WEAVE_ERROR(77)
/**
* @def WEAVE_ERROR_CERT_EXPIRED
*
* @brief
* A certificate expired.
*
*/
#define WEAVE_ERROR_CERT_EXPIRED _WEAVE_ERROR(78)
/**
* @def WEAVE_ERROR_CERT_NOT_VALID_YET
*
* @brief
* A certificate is not valid yet.
*
*/
#define WEAVE_ERROR_CERT_NOT_VALID_YET _WEAVE_ERROR(79)
/**
* @def WEAVE_ERROR_UNSUPPORTED_CERT_FORMAT
*
* @brief
* A certificate format is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_CERT_FORMAT _WEAVE_ERROR(80)
/**
* @def WEAVE_ERROR_UNSUPPORTED_ELLIPTIC_CURVE
*
* @brief
* An elliptic curve is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_ELLIPTIC_CURVE _WEAVE_ERROR(81)
/**
* @def WEAVE_CERT_NOT_USED
*
* @brief
* A certificate was not used during the chain validation.
*
*/
#define WEAVE_CERT_NOT_USED _WEAVE_ERROR(82)
/**
* @def WEAVE_ERROR_CERT_NOT_FOUND
*
* @brief
* A certificate is not found.
*
*/
#define WEAVE_ERROR_CERT_NOT_FOUND _WEAVE_ERROR(83)
/**
* @def WEAVE_ERROR_INVALID_CASE_PARAMETER
*
* @brief
* A CASE parameter is invalid.
*
*/
#define WEAVE_ERROR_INVALID_CASE_PARAMETER _WEAVE_ERROR(84)
/**
* @def WEAVE_ERROR_UNSUPPORTED_CASE_CONFIGURATION
*
* @brief
* A CASE configuration is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_CASE_CONFIGURATION _WEAVE_ERROR(85)
/**
* @def WEAVE_ERROR_CERT_LOAD_FAIL
*
* @brief
* A certificate load failed.
*
*/
#define WEAVE_ERROR_CERT_LOAD_FAIL _WEAVE_ERROR(86)
/**
* @def WEAVE_ERROR_CERT_NOT_TRUSTED
*
* @brief
* A certificate is not trusted.
*
*/
#define WEAVE_ERROR_CERT_NOT_TRUSTED _WEAVE_ERROR(87)
/**
* @def WEAVE_ERROR_INVALID_ACCESS_TOKEN
*
* @brief
* An access token is invalid.
*
*/
#define WEAVE_ERROR_INVALID_ACCESS_TOKEN _WEAVE_ERROR(88)
/**
* @def WEAVE_ERROR_WRONG_CERT_SUBJECT
*
* @brief
* A certificate subject is wrong.
*
*/
#define WEAVE_ERROR_WRONG_CERT_SUBJECT _WEAVE_ERROR(89)
// deprecated alias
#define WEAVE_ERROR_WRONG_CERTIFICATE_SUBJECT WEAVE_ERROR_WRONG_CERT_SUBJECT
/**
* @def WEAVE_ERROR_INVALID_PROVISIONING_BUNDLE
*
* @brief
* A provisioning bundle is invalid.
*
*/
#define WEAVE_ERROR_INVALID_PROVISIONING_BUNDLE _WEAVE_ERROR(90)
/**
* @def WEAVE_ERROR_PROVISIONING_BUNDLE_DECRYPTION_ERROR
*
* @brief
* A provision bundle encountered a decryption error.
*
*/
#define WEAVE_ERROR_PROVISIONING_BUNDLE_DECRYPTION_ERROR _WEAVE_ERROR(91)
/**
* @def WEAVE_ERROR_WRONG_NODE_ID
*
* @brief
* A node id is wrong.
*
*/
#define WEAVE_ERROR_WRONG_NODE_ID _WEAVE_ERROR(92)
/**
* @def WEAVE_ERROR_CONN_ACCEPTED_ON_WRONG_PORT
*
* @brief
* A connection is accepted on a wrong port.
*
*/
#define WEAVE_ERROR_CONN_ACCEPTED_ON_WRONG_PORT _WEAVE_ERROR(93)
/**
* @def WEAVE_ERROR_CALLBACK_REPLACED
*
* @brief
* An application callback has been replaced.
*
*/
#define WEAVE_ERROR_CALLBACK_REPLACED _WEAVE_ERROR(94)
/**
* @def WEAVE_ERROR_NO_CASE_AUTH_DELEGATE
*
* @brief
* No CASE authentication delegate is set.
*
*/
#define WEAVE_ERROR_NO_CASE_AUTH_DELEGATE _WEAVE_ERROR(95)
/**
* @def WEAVE_ERROR_DEVICE_LOCATE_TIMEOUT
*
* @brief
* The attempt to locate device timed out.
*
*/
#define WEAVE_ERROR_DEVICE_LOCATE_TIMEOUT _WEAVE_ERROR(96)
/**
* @def WEAVE_ERROR_DEVICE_CONNECT_TIMEOUT
*
* @brief
* The attempt to connect device timed out.
*
*/
#define WEAVE_ERROR_DEVICE_CONNECT_TIMEOUT _WEAVE_ERROR(97)
/**
* @def WEAVE_ERROR_DEVICE_AUTH_TIMEOUT
*
* @brief
* The attempt to authenticate device timed out.
*
*/
#define WEAVE_ERROR_DEVICE_AUTH_TIMEOUT _WEAVE_ERROR(98)
/**
* @def WEAVE_ERROR_MESSAGE_NOT_ACKNOWLEDGED
*
* @brief
* A message is not acknowledged after max retries.
*
*/
#define WEAVE_ERROR_MESSAGE_NOT_ACKNOWLEDGED _WEAVE_ERROR(99)
/**
* @def WEAVE_ERROR_RETRANS_TABLE_FULL
*
* @brief
* A retransmission table is already full.
*
*/
#define WEAVE_ERROR_RETRANS_TABLE_FULL _WEAVE_ERROR(100)
/**
* @def WEAVE_ERROR_INVALID_ACK_ID
*
* @brief
* An acknowledgment id is invalid.
*
*/
#define WEAVE_ERROR_INVALID_ACK_ID _WEAVE_ERROR(101)
/**
* @def WEAVE_ERROR_SEND_THROTTLED
*
* @brief
* A send is throttled.
*
*/
#define WEAVE_ERROR_SEND_THROTTLED _WEAVE_ERROR(102)
/**
* @def WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
*
* @brief
* A message version is not supported by the current exchange context.
*
*/
#define WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE _WEAVE_ERROR(103)
/**
* @def WEAVE_ERROR_TRANSACTION_CANCELED
*
* @brief
* A transaction is cancelled.
*
*/
#define WEAVE_ERROR_TRANSACTION_CANCELED _WEAVE_ERROR(104)
/**
* @def WEAVE_ERROR_LISTENER_ALREADY_STARTED
*
* @brief
* A listener has already started.
*
*/
#define WEAVE_ERROR_LISTENER_ALREADY_STARTED _WEAVE_ERROR(105)
/**
* @def WEAVE_ERROR_LISTENER_ALREADY_STOPPED
*
* @brief
* A listener has already stopped.
*
*/
#define WEAVE_ERROR_LISTENER_ALREADY_STOPPED _WEAVE_ERROR(106)
/**
* @def WEAVE_ERROR_UNKNOWN_TOPIC
*
* @brief
* A topic ID was unknown to the recipient.
*
*/
#define WEAVE_ERROR_UNKNOWN_TOPIC _WEAVE_ERROR(107)
/**
* @def WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
*
* @brief
* A Weave feature is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE _WEAVE_ERROR(108)
/**
* @def WEAVE_ERROR_PASE_RECONFIGURE_REQUIRED
*
* @brief
* PASE is required to reconfigure.
*
*/
#define WEAVE_ERROR_PASE_RECONFIGURE_REQUIRED _WEAVE_ERROR(109)
/**
* @def WEAVE_ERROR_INVALID_PASE_CONFIGURATION
*
* @brief
* A PASE configuration is invalid.
*
*/
#define WEAVE_ERROR_INVALID_PASE_CONFIGURATION _WEAVE_ERROR(110)
/**
* @def WEAVE_ERROR_NO_COMMON_PASE_CONFIGURATIONS
*
* @brief
* No PASE configuration is in common.
*
*/
#define WEAVE_ERROR_NO_COMMON_PASE_CONFIGURATIONS _WEAVE_ERROR(111)
/**
* @def WEAVE_ERROR_UNSOLICITED_MSG_NO_ORIGINATOR
*
* @brief
* An unsolicited message with the originator bit clear.
*
*/
#define WEAVE_ERROR_UNSOLICITED_MSG_NO_ORIGINATOR _WEAVE_ERROR(112)
/**
* @def WEAVE_ERROR_INVALID_FABRIC_ID
*
* @brief
* A fabric id is invalid.
*
*/
#define WEAVE_ERROR_INVALID_FABRIC_ID _WEAVE_ERROR(113)
/**
* @def WEAVE_ERROR_UNSUPPORTED_TUNNEL_VERSION
*
* @brief
* A tunnel version is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_TUNNEL_VERSION _WEAVE_ERROR(114)
/**
* @def WEAVE_ERROR_TUNNEL_NEXTHOP_TABLE_FULL
*
* @brief
* A tunnel nexthop table is full.
*
*/
#define WEAVE_ERROR_TUNNEL_NEXTHOP_TABLE_FULL _WEAVE_ERROR(115)
/**
* @def WEAVE_ERROR_TUNNEL_SERVICE_QUEUE_FULL
*
* @brief
* A tunnel service queue is full.
*
*/
#define WEAVE_ERROR_TUNNEL_SERVICE_QUEUE_FULL _WEAVE_ERROR(116)
/**
* @def WEAVE_ERROR_DRBG_ENTROPY_SOURCE_FAILED
*
* @brief
* DRBG entropy source failed to generate entropy data.
*
*/
#define WEAVE_ERROR_DRBG_ENTROPY_SOURCE_FAILED _WEAVE_ERROR(117)
/**
* @def WEAVE_ERROR_TLV_TAG_NOT_FOUND
*
* @brief
* A specified TLV tag was not found.
*
*/
#define WEAVE_ERROR_TLV_TAG_NOT_FOUND _WEAVE_ERROR(118)
/**
* @def WEAVE_ERROR_INVALID_TOKENPAIRINGBUNDLE
*
* @brief
* A token pairing bundle is invalid.
*
*/
#define WEAVE_ERROR_INVALID_TOKENPAIRINGBUNDLE _WEAVE_ERROR(119)
/**
* @def WEAVE_ERROR_UNSUPPORTED_TOKENPAIRINGBUNDLE_VERSION
*
* @brief
* A token pairing bundle is invalid.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_TOKENPAIRINGBUNDLE_VERSION _WEAVE_ERROR(120)
/**
* @def WEAVE_ERROR_NO_TAKE_AUTH_DELEGATE
*
* @brief
* No TAKE authentication delegate is set.
*
*/
#define WEAVE_ERROR_NO_TAKE_AUTH_DELEGATE _WEAVE_ERROR(121)
/**
* @def WEAVE_ERROR_TAKE_RECONFIGURE_REQUIRED
*
* @brief
* TAKE requires a reconfigure.
*
*/
#define WEAVE_ERROR_TAKE_RECONFIGURE_REQUIRED _WEAVE_ERROR(122)
/**
* @def WEAVE_ERROR_TAKE_REAUTH_POSSIBLE
*
* @brief
* TAKE can do a reauthentication.
*
*/
#define WEAVE_ERROR_TAKE_REAUTH_POSSIBLE _WEAVE_ERROR(123)
/**
* @def WEAVE_ERROR_INVALID_TAKE_PARAMETER
*
* @brief
* Received an invalid TAKE paramter.
*
*/
#define WEAVE_ERROR_INVALID_TAKE_PARAMETER _WEAVE_ERROR(124)
/**
* @def WEAVE_ERROR_UNSUPPORTED_TAKE_CONFIGURATION
*
* @brief
* This configuration is not supported by TAKE.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_TAKE_CONFIGURATION _WEAVE_ERROR(125)
/**
* @def WEAVE_ERROR_TAKE_TOKEN_IDENTIFICATION_FAILED
*
* @brief
* The TAKE Token Identification failed.
*
*/
#define WEAVE_ERROR_TAKE_TOKEN_IDENTIFICATION_FAILED _WEAVE_ERROR(126)
/**
* @def WEAVE_ERROR_KEY_NOT_FOUND_FROM_PEER
*
* @brief
* The encryption key is not found error received from a peer node.
*
*/
#define WEAVE_ERROR_KEY_NOT_FOUND_FROM_PEER _WEAVE_ERROR(127)
/**
* @def WEAVE_ERROR_WRONG_ENCRYPTION_TYPE_FROM_PEER
*
* @brief
* The wrong encryption type error received from a peer node.
*
*/
#define WEAVE_ERROR_WRONG_ENCRYPTION_TYPE_FROM_PEER _WEAVE_ERROR(128)
/**
* @def WEAVE_ERROR_UNKNOWN_KEY_TYPE_FROM_PEER
*
* @brief
* The unknown key type error received from a peer node.
*
*/
#define WEAVE_ERROR_UNKNOWN_KEY_TYPE_FROM_PEER _WEAVE_ERROR(129)
/**
* @def WEAVE_ERROR_INVALID_USE_OF_SESSION_KEY_FROM_PEER
*
* @brief
* The invalid use of session key error received from a peer node.
*
*/
#define WEAVE_ERROR_INVALID_USE_OF_SESSION_KEY_FROM_PEER _WEAVE_ERROR(130)
/**
* @def WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE_FROM_PEER
*
* @brief
* An unsupported encryption type error received from a peer node.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE_FROM_PEER _WEAVE_ERROR(131)
/**
* @def WEAVE_ERROR_INTERNAL_KEY_ERROR_FROM_PEER
*
* @brief
* The internal key error received from a peer node.
*
*/
#define WEAVE_ERROR_INTERNAL_KEY_ERROR_FROM_PEER _WEAVE_ERROR(132)
/**
* @def WEAVE_ERROR_INVALID_KEY_ID
*
* @brief
* A key id is invalid.
*
*/
#define WEAVE_ERROR_INVALID_KEY_ID _WEAVE_ERROR(133)
/**
* @def WEAVE_ERROR_INVALID_TIME
*
* @brief
* Time has invalid value.
*
*/
#define WEAVE_ERROR_INVALID_TIME _WEAVE_ERROR(134)
/**
* @def WEAVE_ERROR_TUNNEL_PEER_ENTRY_NOT_FOUND
*
* @brief
* A tunnel shortcut peer entry not found in the cache.
*
*/
#define WEAVE_ERROR_TUNNEL_PEER_ENTRY_NOT_FOUND _WEAVE_ERROR(135)
/**
* @def WEAVE_ERROR_LOCKING_FAILURE
*
* @brief
* Failure to acquire or release an OS provided mutex.
*
*/
#define WEAVE_ERROR_LOCKING_FAILURE _WEAVE_ERROR(136)
/**
* @def WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
*
* @brief
* A passcode encryption configuration is unsupported.
*
*/
#define WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG _WEAVE_ERROR(137)
/**
* @def WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
*
* @brief
* The Weave passcode authentication failed.
*
*/
#define WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED _WEAVE_ERROR(138)
/**
* @def WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
*
* @brief
* The Weave passcode fingerprint failed.
*
*/
#define WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED _WEAVE_ERROR(139)
/**
* @def WEAVE_ERROR_TUNNEL_FORCE_ABORT
*
* @brief
* The Weave error code to be used with the API for stopping
* the tunnel to enforce it to abort its TCP connection and return
* synchronously to the caller.
*
*/
#define WEAVE_ERROR_TUNNEL_FORCE_ABORT _WEAVE_ERROR(140)
/**
* @def WEAVE_ERROR_SERIALIZATION_ELEMENT_NULL
*
* @brief
* The element of the struct is null.
*
*/
#define WEAVE_ERROR_SERIALIZATION_ELEMENT_NULL _WEAVE_ERROR(141)
/**
* @def WEAVE_ERROR_WRONG_CERT_SIGNATURE_ALGORITHM
*
* @brief
* The certificate was not signed using the required signature algorithm.
*
*/
#define WEAVE_ERROR_WRONG_CERT_SIGNATURE_ALGORITHM _WEAVE_ERROR(142)
/**
* @def WEAVE_ERROR_WRONG_WEAVE_SIGNATURE_ALGORITHM
*
* @brief
* The Weave signature was not signed using the required signature algorithm.
*
*/
#define WEAVE_ERROR_WRONG_WEAVE_SIGNATURE_ALGORITHM _WEAVE_ERROR(143)
/**
* @def WEAVE_ERROR_WDM_SCHEMA_MISMATCH
*
* @brief
* A mismatch in schema was encountered.
*
*/
#define WEAVE_ERROR_WDM_SCHEMA_MISMATCH _WEAVE_ERROR(144)
/**
* @def WEAVE_ERROR_INVALID_INTEGER_VALUE
*
* @brief
* An integer does not have the kind of value we expect.
*
*/
#define WEAVE_ERROR_INVALID_INTEGER_VALUE _WEAVE_ERROR(145)
/**
* @def WEAVE_ERROR_CASE_RECONFIG_REQUIRED
*
* @brief
* CASE is required to reconfigure.
*
*/
#define WEAVE_ERROR_CASE_RECONFIG_REQUIRED _WEAVE_ERROR(146)
/**
* @def WEAVE_ERROR_TOO_MANY_CASE_RECONFIGURATIONS
*
* @brief
* Too many CASE reconfigurations were received.
*
*/
#define WEAVE_ERROR_TOO_MANY_CASE_RECONFIGURATIONS _WEAVE_ERROR(147)
/**
* @def WEAVE_ERROR_BAD_REQUEST
*
* @brief
* The request cannot be processed or fulfilled
*
*/
#define WEAVE_ERROR_BAD_REQUEST _WEAVE_ERROR(148)
/**
* @def WEAVE_ERROR_INVALID_MESSAGE_FLAG
*
* @brief
* One or more message flags have invalid value.
*
*/
#define WEAVE_ERROR_INVALID_MESSAGE_FLAG _WEAVE_ERROR(149)
/**
* @def WEAVE_ERROR_KEY_EXPORT_RECONFIGURE_REQUIRED
*
* @brief
* Key export protocol required to reconfigure.
*
*/
#define WEAVE_ERROR_KEY_EXPORT_RECONFIGURE_REQUIRED _WEAVE_ERROR(150)
/**
* @def WEAVE_ERROR_INVALID_KEY_EXPORT_CONFIGURATION
*
* @brief
* A key export protocol configuration is invalid.
*
*/
#define WEAVE_ERROR_INVALID_KEY_EXPORT_CONFIGURATION _WEAVE_ERROR(151)
/**
* @def WEAVE_ERROR_NO_COMMON_KEY_EXPORT_CONFIGURATIONS
*
* @brief
* No key export protocol configuration is in common.
*
*/
#define WEAVE_ERROR_NO_COMMON_KEY_EXPORT_CONFIGURATIONS _WEAVE_ERROR(152)
/**
* @def WEAVE_ERROR_NO_KEY_EXPORT_DELEGATE
*
* @brief
* No key export delegate is set.
*
*/
#define WEAVE_ERROR_NO_KEY_EXPORT_DELEGATE _WEAVE_ERROR(153)
/**
* @def WEAVE_ERROR_UNAUTHORIZED_KEY_EXPORT_REQUEST
*
* @brief
* Unauthorized key export request.
*
*/
#define WEAVE_ERROR_UNAUTHORIZED_KEY_EXPORT_REQUEST _WEAVE_ERROR(154)
/**
* @def WEAVE_ERROR_UNAUTHORIZED_KEY_EXPORT_RESPONSE
*
* @brief
* Unauthorized key export response.
*
*/
#define WEAVE_ERROR_UNAUTHORIZED_KEY_EXPORT_RESPONSE _WEAVE_ERROR(155)
/**
* @def WEAVE_ERROR_EXPORTED_KEY_AUTHENTICATION_FAILED
*
* @brief
* The Weave exported encrypted key authentication failed.
*
*/
#define WEAVE_ERROR_EXPORTED_KEY_AUTHENTICATION_FAILED _WEAVE_ERROR(156)
/**
* @def WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
*
* @brief
* The number of shared secure sessions end nodes exceeds
* the maximum limit.
*
*/
#define WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES _WEAVE_ERROR(157)
/**
* @def WEAVE_ERROR_WDM_MALFORMED_DATA_ELEMENT
*
* @brief
* The WDM DataElement is malformed: it either does not contain
* the required elements, or it contais both the MergeData element
* and DeletedDictionaryKeyList.
*/
#define WEAVE_ERROR_WDM_MALFORMED_DATA_ELEMENT _WEAVE_ERROR(158)
/**
* @def WEAVE_ERROR_WRONG_CERT_TYPE
*
* @brief
* The presented certificate was of the wrong type.
*/
#define WEAVE_ERROR_WRONG_CERT_TYPE _WEAVE_ERROR(159)
/**
* @def WEAVE_ERROR_TIME_NOT_SYNCED_YET
*
* @brief
* The platform does not have an accurate notion of time for the
* clock specified, yet.
*
*/
#define WEAVE_ERROR_TIME_NOT_SYNCED_YET _WEAVE_ERROR(160)
/**
* @def WEAVE_ERROR_UNSUPPORTED_CLOCK
*
* @brief
* The platform does not support the GetTime* API invoked
*
*/
#define WEAVE_ERROR_UNSUPPORTED_CLOCK _WEAVE_ERROR(161)
/**
* @def WEAVE_ERROR_DEFAULT_EVENT_HANDLER_NOT_CALLED
*
* @brief
* The application's event handler failed to call the default event handler function
* when presented with an unknown event.
*/
#define WEAVE_ERROR_DEFAULT_EVENT_HANDLER_NOT_CALLED _WEAVE_ERROR(162)
/**
* @def WEAVE_ERROR_PERSISTED_STORAGE_FAIL
*
* @brief
* Persisted storage memory read/write failure.
*
*/
#define WEAVE_ERROR_PERSISTED_STORAGE_FAIL _WEAVE_ERROR(163)
/**
* @def WEAVE_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND
*
* @brief
* The specific value is not found in the persisted storage.
*
*/
#define WEAVE_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND _WEAVE_ERROR(164)
/**
* @def WEAVE_ERROR_PROFILE_STRING_CONTEXT_ALREADY_REGISTERED
*
* @brief
* The specified profile string support context is already registered.
*
*/
#define WEAVE_ERROR_PROFILE_STRING_CONTEXT_ALREADY_REGISTERED _WEAVE_ERROR(165)
/**
* @def WEAVE_ERROR_PROFILE_STRING_CONTEXT_NOT_REGISTERED
*
* @brief
* The specified profile string support context is not registered.
*
*/
#define WEAVE_ERROR_PROFILE_STRING_CONTEXT_NOT_REGISTERED _WEAVE_ERROR(166)
/**
* @def WEAVE_ERROR_INCOMPATIBLE_SCHEMA_VERSION
*
* @brief
* Encountered a mismatch in compatibility w.r.t to IDL schema version
*/
#define WEAVE_ERROR_INCOMPATIBLE_SCHEMA_VERSION _WEAVE_ERROR(167)
/**
* @def WEAVE_ERROR_TUNNEL_ROUTING_RESTRICTED
*
* @brief
* Indicates that the Tunnel can only be used by the border gateway
* for itself and, it cannot forward packets for any other device.
*
*/
#define WEAVE_ERROR_TUNNEL_ROUTING_RESTRICTED _WEAVE_ERROR(168)
/**
* @}
*/
// !!!!! IMPORTANT !!!!! If you add new Weave errors, please update the translation
// of error codes to strings in support/ErrorStr.cpp, and add them to unittest
// in test-apps/TestErrorStr.cpp
#endif // WEAVE_ERROR_H