xref: /aosp_15_r20/external/ot-br-posix/src/dbus/common/error.hpp (revision 4a64e381480ef79f0532b2421e44e6ee336b8e0d)
1*4a64e381SAndroid Build Coastguard Worker /*
2*4a64e381SAndroid Build Coastguard Worker  *    Copyright (c) 2020, The OpenThread Authors.
3*4a64e381SAndroid Build Coastguard Worker  *    All rights reserved.
4*4a64e381SAndroid Build Coastguard Worker  *
5*4a64e381SAndroid Build Coastguard Worker  *    Redistribution and use in source and binary forms, with or without
6*4a64e381SAndroid Build Coastguard Worker  *    modification, are permitted provided that the following conditions are met:
7*4a64e381SAndroid Build Coastguard Worker  *    1. Redistributions of source code must retain the above copyright
8*4a64e381SAndroid Build Coastguard Worker  *       notice, this list of conditions and the following disclaimer.
9*4a64e381SAndroid Build Coastguard Worker  *    2. Redistributions in binary form must reproduce the above copyright
10*4a64e381SAndroid Build Coastguard Worker  *       notice, this list of conditions and the following disclaimer in the
11*4a64e381SAndroid Build Coastguard Worker  *       documentation and/or other materials provided with the distribution.
12*4a64e381SAndroid Build Coastguard Worker  *    3. Neither the name of the copyright holder nor the
13*4a64e381SAndroid Build Coastguard Worker  *       names of its contributors may be used to endorse or promote products
14*4a64e381SAndroid Build Coastguard Worker  *       derived from this software without specific prior written permission.
15*4a64e381SAndroid Build Coastguard Worker  *
16*4a64e381SAndroid Build Coastguard Worker  *    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17*4a64e381SAndroid Build Coastguard Worker  *    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*4a64e381SAndroid Build Coastguard Worker  *    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*4a64e381SAndroid Build Coastguard Worker  *    ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20*4a64e381SAndroid Build Coastguard Worker  *    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21*4a64e381SAndroid Build Coastguard Worker  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22*4a64e381SAndroid Build Coastguard Worker  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23*4a64e381SAndroid Build Coastguard Worker  *    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24*4a64e381SAndroid Build Coastguard Worker  *    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25*4a64e381SAndroid Build Coastguard Worker  *    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26*4a64e381SAndroid Build Coastguard Worker  *    POSSIBILITY OF SUCH DAMAGE.
27*4a64e381SAndroid Build Coastguard Worker  */
28*4a64e381SAndroid Build Coastguard Worker 
29*4a64e381SAndroid Build Coastguard Worker /**
30*4a64e381SAndroid Build Coastguard Worker  * @file
31*4a64e381SAndroid Build Coastguard Worker  * This file includes definitions for d-bus client errors.
32*4a64e381SAndroid Build Coastguard Worker  */
33*4a64e381SAndroid Build Coastguard Worker 
34*4a64e381SAndroid Build Coastguard Worker #ifndef OTBR_DBUS_COMMON_ERROR_HPP_
35*4a64e381SAndroid Build Coastguard Worker #define OTBR_DBUS_COMMON_ERROR_HPP_
36*4a64e381SAndroid Build Coastguard Worker 
37*4a64e381SAndroid Build Coastguard Worker #include "openthread-br/config.h"
38*4a64e381SAndroid Build Coastguard Worker 
39*4a64e381SAndroid Build Coastguard Worker #include <string>
40*4a64e381SAndroid Build Coastguard Worker 
41*4a64e381SAndroid Build Coastguard Worker #include <dbus/dbus.h>
42*4a64e381SAndroid Build Coastguard Worker 
43*4a64e381SAndroid Build Coastguard Worker namespace otbr {
44*4a64e381SAndroid Build Coastguard Worker 
45*4a64e381SAndroid Build Coastguard Worker /**
46*4a64e381SAndroid Build Coastguard Worker  * @namespace otbr::DBus
47*4a64e381SAndroid Build Coastguard Worker  *
48*4a64e381SAndroid Build Coastguard Worker  * @brief This namespace contains OpenThread Border Router DBus API.
49*4a64e381SAndroid Build Coastguard Worker  */
50*4a64e381SAndroid Build Coastguard Worker namespace DBus {
51*4a64e381SAndroid Build Coastguard Worker 
52*4a64e381SAndroid Build Coastguard Worker enum class ClientError
53*4a64e381SAndroid Build Coastguard Worker {
54*4a64e381SAndroid Build Coastguard Worker     ERROR_NONE = 0, ///< No error.
55*4a64e381SAndroid Build Coastguard Worker 
56*4a64e381SAndroid Build Coastguard Worker     ERROR_ERRNO = -1, ///< Error defined by errno.
57*4a64e381SAndroid Build Coastguard Worker     ERROR_DBUS  = -3, ///< DBus error.
58*4a64e381SAndroid Build Coastguard Worker 
59*4a64e381SAndroid Build Coastguard Worker     /**
60*4a64e381SAndroid Build Coastguard Worker      * Operational failed.
61*4a64e381SAndroid Build Coastguard Worker      */
62*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_FAILED = 1,
63*4a64e381SAndroid Build Coastguard Worker 
64*4a64e381SAndroid Build Coastguard Worker     /**
65*4a64e381SAndroid Build Coastguard Worker      * Message was dropped.
66*4a64e381SAndroid Build Coastguard Worker      */
67*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_DROP = 2,
68*4a64e381SAndroid Build Coastguard Worker 
69*4a64e381SAndroid Build Coastguard Worker     /**
70*4a64e381SAndroid Build Coastguard Worker      * Insufficient buffers.
71*4a64e381SAndroid Build Coastguard Worker      */
72*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NO_BUFS = 3,
73*4a64e381SAndroid Build Coastguard Worker 
74*4a64e381SAndroid Build Coastguard Worker     /**
75*4a64e381SAndroid Build Coastguard Worker      * No route available.
76*4a64e381SAndroid Build Coastguard Worker      */
77*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NO_ROUTE = 4,
78*4a64e381SAndroid Build Coastguard Worker 
79*4a64e381SAndroid Build Coastguard Worker     /**
80*4a64e381SAndroid Build Coastguard Worker      * Service is busy and could not service the operation.
81*4a64e381SAndroid Build Coastguard Worker      */
82*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_BUSY = 5,
83*4a64e381SAndroid Build Coastguard Worker 
84*4a64e381SAndroid Build Coastguard Worker     /**
85*4a64e381SAndroid Build Coastguard Worker      * Failed to parse message or arguments.
86*4a64e381SAndroid Build Coastguard Worker      */
87*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_PARSE = 6,
88*4a64e381SAndroid Build Coastguard Worker 
89*4a64e381SAndroid Build Coastguard Worker     /**
90*4a64e381SAndroid Build Coastguard Worker      * Input arguments are invalid.
91*4a64e381SAndroid Build Coastguard Worker      */
92*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_INVALID_ARGS = 7,
93*4a64e381SAndroid Build Coastguard Worker 
94*4a64e381SAndroid Build Coastguard Worker     /**
95*4a64e381SAndroid Build Coastguard Worker      * Security checks failed.
96*4a64e381SAndroid Build Coastguard Worker      */
97*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_SECURITY = 8,
98*4a64e381SAndroid Build Coastguard Worker 
99*4a64e381SAndroid Build Coastguard Worker     /**
100*4a64e381SAndroid Build Coastguard Worker      * Address resolution requires an address query operation.
101*4a64e381SAndroid Build Coastguard Worker      */
102*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_ADDRESS_QUERY = 9,
103*4a64e381SAndroid Build Coastguard Worker 
104*4a64e381SAndroid Build Coastguard Worker     /**
105*4a64e381SAndroid Build Coastguard Worker      * Address is not in the source match table.
106*4a64e381SAndroid Build Coastguard Worker      */
107*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NO_ADDRESS = 10,
108*4a64e381SAndroid Build Coastguard Worker 
109*4a64e381SAndroid Build Coastguard Worker     /**
110*4a64e381SAndroid Build Coastguard Worker      * Operation was aborted.
111*4a64e381SAndroid Build Coastguard Worker      */
112*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_ABORT = 11,
113*4a64e381SAndroid Build Coastguard Worker 
114*4a64e381SAndroid Build Coastguard Worker     /**
115*4a64e381SAndroid Build Coastguard Worker      * Function or method is not implemented.
116*4a64e381SAndroid Build Coastguard Worker      */
117*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NOT_IMPLEMENTED = 12,
118*4a64e381SAndroid Build Coastguard Worker 
119*4a64e381SAndroid Build Coastguard Worker     /**
120*4a64e381SAndroid Build Coastguard Worker      * Cannot complete due to invalid state.
121*4a64e381SAndroid Build Coastguard Worker      */
122*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_INVALID_STATE = 13,
123*4a64e381SAndroid Build Coastguard Worker 
124*4a64e381SAndroid Build Coastguard Worker     /**
125*4a64e381SAndroid Build Coastguard Worker      * No acknowledgment was received after macMaxFrameRetries (IEEE 802.15.4-2006).
126*4a64e381SAndroid Build Coastguard Worker      */
127*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NO_ACK = 14,
128*4a64e381SAndroid Build Coastguard Worker 
129*4a64e381SAndroid Build Coastguard Worker     /**
130*4a64e381SAndroid Build Coastguard Worker      * A transmission could not take place due to activity on the channel, i.e., the CSMA-CA mechanism has failed
131*4a64e381SAndroid Build Coastguard Worker      * (IEEE 802.15.4-2006).
132*4a64e381SAndroid Build Coastguard Worker      */
133*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_CHANNEL_ACCESS_FAILURE = 15,
134*4a64e381SAndroid Build Coastguard Worker 
135*4a64e381SAndroid Build Coastguard Worker     /**
136*4a64e381SAndroid Build Coastguard Worker      * Not currently attached to a Thread Partition.
137*4a64e381SAndroid Build Coastguard Worker      */
138*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_DETACHED = 16,
139*4a64e381SAndroid Build Coastguard Worker 
140*4a64e381SAndroid Build Coastguard Worker     /**
141*4a64e381SAndroid Build Coastguard Worker      * FCS check failure while receiving.
142*4a64e381SAndroid Build Coastguard Worker      */
143*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_FCS = 17,
144*4a64e381SAndroid Build Coastguard Worker 
145*4a64e381SAndroid Build Coastguard Worker     /**
146*4a64e381SAndroid Build Coastguard Worker      * No frame received.
147*4a64e381SAndroid Build Coastguard Worker      */
148*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NO_FRAME_RECEIVED = 18,
149*4a64e381SAndroid Build Coastguard Worker 
150*4a64e381SAndroid Build Coastguard Worker     /**
151*4a64e381SAndroid Build Coastguard Worker      * Received a frame from an unknown neighbor.
152*4a64e381SAndroid Build Coastguard Worker      */
153*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_UNKNOWN_NEIGHBOR = 19,
154*4a64e381SAndroid Build Coastguard Worker 
155*4a64e381SAndroid Build Coastguard Worker     /**
156*4a64e381SAndroid Build Coastguard Worker      * Received a frame from an invalid source address.
157*4a64e381SAndroid Build Coastguard Worker      */
158*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_INVALID_SOURCE_ADDRESS = 20,
159*4a64e381SAndroid Build Coastguard Worker 
160*4a64e381SAndroid Build Coastguard Worker     /**
161*4a64e381SAndroid Build Coastguard Worker      * Received a frame filtered by the address filter (allowlisted or denylisted).
162*4a64e381SAndroid Build Coastguard Worker      */
163*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_ADDRESS_FILTERED = 21,
164*4a64e381SAndroid Build Coastguard Worker 
165*4a64e381SAndroid Build Coastguard Worker     /**
166*4a64e381SAndroid Build Coastguard Worker      * Received a frame filtered by the destination address check.
167*4a64e381SAndroid Build Coastguard Worker      */
168*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_DESTINATION_ADDRESS_FILTERED = 22,
169*4a64e381SAndroid Build Coastguard Worker 
170*4a64e381SAndroid Build Coastguard Worker     /**
171*4a64e381SAndroid Build Coastguard Worker      * The requested item could not be found.
172*4a64e381SAndroid Build Coastguard Worker      */
173*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NOT_FOUND = 23,
174*4a64e381SAndroid Build Coastguard Worker 
175*4a64e381SAndroid Build Coastguard Worker     /**
176*4a64e381SAndroid Build Coastguard Worker      * The operation is already in progress.
177*4a64e381SAndroid Build Coastguard Worker      */
178*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_ALREADY = 24,
179*4a64e381SAndroid Build Coastguard Worker 
180*4a64e381SAndroid Build Coastguard Worker     /**
181*4a64e381SAndroid Build Coastguard Worker      * The creation of IPv6 address failed.
182*4a64e381SAndroid Build Coastguard Worker      */
183*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_IP6_ADDRESS_CREATION_FAILURE = 26,
184*4a64e381SAndroid Build Coastguard Worker 
185*4a64e381SAndroid Build Coastguard Worker     /**
186*4a64e381SAndroid Build Coastguard Worker      * Operation prevented by mode flags
187*4a64e381SAndroid Build Coastguard Worker      */
188*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NOT_CAPABLE = 27,
189*4a64e381SAndroid Build Coastguard Worker 
190*4a64e381SAndroid Build Coastguard Worker     /**
191*4a64e381SAndroid Build Coastguard Worker      * Coap response or acknowledgment or DNS, SNTP response not received.
192*4a64e381SAndroid Build Coastguard Worker      */
193*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_RESPONSE_TIMEOUT = 28,
194*4a64e381SAndroid Build Coastguard Worker 
195*4a64e381SAndroid Build Coastguard Worker     /**
196*4a64e381SAndroid Build Coastguard Worker      * Received a duplicated frame.
197*4a64e381SAndroid Build Coastguard Worker      */
198*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_DUPLICATED = 29,
199*4a64e381SAndroid Build Coastguard Worker 
200*4a64e381SAndroid Build Coastguard Worker     /**
201*4a64e381SAndroid Build Coastguard Worker      * Message is being dropped from reassembly list due to timeout.
202*4a64e381SAndroid Build Coastguard Worker      */
203*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_REASSEMBLY_TIMEOUT = 30,
204*4a64e381SAndroid Build Coastguard Worker 
205*4a64e381SAndroid Build Coastguard Worker     /**
206*4a64e381SAndroid Build Coastguard Worker      * Message is not a TMF Message.
207*4a64e381SAndroid Build Coastguard Worker      */
208*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NOT_TMF = 31,
209*4a64e381SAndroid Build Coastguard Worker 
210*4a64e381SAndroid Build Coastguard Worker     /**
211*4a64e381SAndroid Build Coastguard Worker      * Received a non-lowpan data frame.
212*4a64e381SAndroid Build Coastguard Worker      */
213*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_NOT_LOWPAN_DATA_FRAME = 32,
214*4a64e381SAndroid Build Coastguard Worker 
215*4a64e381SAndroid Build Coastguard Worker     /**
216*4a64e381SAndroid Build Coastguard Worker      * The link margin was too low.
217*4a64e381SAndroid Build Coastguard Worker      */
218*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_LINK_MARGIN_LOW = 34,
219*4a64e381SAndroid Build Coastguard Worker 
220*4a64e381SAndroid Build Coastguard Worker     /**
221*4a64e381SAndroid Build Coastguard Worker      * Request rejected.
222*4a64e381SAndroid Build Coastguard Worker      */
223*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_REJECTED = 37,
224*4a64e381SAndroid Build Coastguard Worker 
225*4a64e381SAndroid Build Coastguard Worker     /**
226*4a64e381SAndroid Build Coastguard Worker      * Generic error (should not use).
227*4a64e381SAndroid Build Coastguard Worker      */
228*4a64e381SAndroid Build Coastguard Worker     OT_ERROR_GENERIC = 255,
229*4a64e381SAndroid Build Coastguard Worker };
230*4a64e381SAndroid Build Coastguard Worker 
231*4a64e381SAndroid Build Coastguard Worker bool operator==(ClientError aError, int aValue);
232*4a64e381SAndroid Build Coastguard Worker bool operator!=(ClientError aError, int aValue);
233*4a64e381SAndroid Build Coastguard Worker 
234*4a64e381SAndroid Build Coastguard Worker } // namespace DBus
235*4a64e381SAndroid Build Coastguard Worker } // namespace otbr
236*4a64e381SAndroid Build Coastguard Worker 
237*4a64e381SAndroid Build Coastguard Worker #endif // OTBR_DBUS_COMMON_ERROR_HPP_
238