xref: /aosp_15_r20/external/openthread/tests/scripts/thread-cert/pktverify/consts.py (revision cfb92d1480a9e65faed56933e9c12405f45898b4)
1*cfb92d14SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*cfb92d14SAndroid Build Coastguard Worker#
3*cfb92d14SAndroid Build Coastguard Worker#  Copyright (c) 2019, The OpenThread Authors.
4*cfb92d14SAndroid Build Coastguard Worker#  All rights reserved.
5*cfb92d14SAndroid Build Coastguard Worker#
6*cfb92d14SAndroid Build Coastguard Worker#  Redistribution and use in source and binary forms, with or without
7*cfb92d14SAndroid Build Coastguard Worker#  modification, are permitted provided that the following conditions are met:
8*cfb92d14SAndroid Build Coastguard Worker#  1. Redistributions of source code must retain the above copyright
9*cfb92d14SAndroid Build Coastguard Worker#     notice, this list of conditions and the following disclaimer.
10*cfb92d14SAndroid Build Coastguard Worker#  2. Redistributions in binary form must reproduce the above copyright
11*cfb92d14SAndroid Build Coastguard Worker#     notice, this list of conditions and the following disclaimer in the
12*cfb92d14SAndroid Build Coastguard Worker#     documentation and/or other materials provided with the distribution.
13*cfb92d14SAndroid Build Coastguard Worker#  3. Neither the name of the copyright holder nor the
14*cfb92d14SAndroid Build Coastguard Worker#     names of its contributors may be used to endorse or promote products
15*cfb92d14SAndroid Build Coastguard Worker#     derived from this software without specific prior written permission.
16*cfb92d14SAndroid Build Coastguard Worker#
17*cfb92d14SAndroid Build Coastguard Worker#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18*cfb92d14SAndroid Build Coastguard Worker#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*cfb92d14SAndroid Build Coastguard Worker#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*cfb92d14SAndroid Build Coastguard Worker#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21*cfb92d14SAndroid Build Coastguard Worker#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22*cfb92d14SAndroid Build Coastguard Worker#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23*cfb92d14SAndroid Build Coastguard Worker#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24*cfb92d14SAndroid Build Coastguard Worker#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25*cfb92d14SAndroid Build Coastguard Worker#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26*cfb92d14SAndroid Build Coastguard Worker#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27*cfb92d14SAndroid Build Coastguard Worker#  POSSIBILITY OF SUCH DAMAGE.
28*cfb92d14SAndroid Build Coastguard Worker#
29*cfb92d14SAndroid Build Coastguard Worker
30*cfb92d14SAndroid Build Coastguard Workerfrom pktverify.addrs import Ipv6Addr
31*cfb92d14SAndroid Build Coastguard Workerfrom pktverify.bytes import Bytes
32*cfb92d14SAndroid Build Coastguard Worker
33*cfb92d14SAndroid Build Coastguard WorkerDOMAIN_PREFIX = Bytes('fd00:7d03:7d03:7d03')
34*cfb92d14SAndroid Build Coastguard WorkerBACKBONE_IPV6_PREFIX = Bytes('91')
35*cfb92d14SAndroid Build Coastguard Worker
36*cfb92d14SAndroid Build Coastguard WorkerLINK_LOCAL_All_THREAD_NODES_MULTICAST_ADDRESS = Ipv6Addr('ff32:40:fd00:db8::1')
37*cfb92d14SAndroid Build Coastguard WorkerREALM_LOCAL_All_THREAD_NODES_MULTICAST_ADDRESS = Ipv6Addr('ff33:40:fd00:db8::1')
38*cfb92d14SAndroid Build Coastguard WorkerREALM_LOCAL_ALL_NODES_ADDRESS = Ipv6Addr('ff03::1')
39*cfb92d14SAndroid Build Coastguard WorkerREALM_LOCAL_ALL_ROUTERS_ADDRESS = Ipv6Addr('ff03::2')
40*cfb92d14SAndroid Build Coastguard WorkerLINK_LOCAL_ALL_NODES_MULTICAST_ADDRESS = Ipv6Addr('ff02::1')
41*cfb92d14SAndroid Build Coastguard WorkerLINK_LOCAL_ALL_ROUTERS_MULTICAST_ADDRESS = Ipv6Addr('ff02::2')
42*cfb92d14SAndroid Build Coastguard WorkerLINK_LOCAL_ALL_BBRS_MULTICAST_ADDRESS = Ipv6Addr('ff32:40:fd00:7d03:7d03:7d03:0:3')
43*cfb92d14SAndroid Build Coastguard Worker
44*cfb92d14SAndroid Build Coastguard Worker# MA in Test Plan, make sure these are same as ../config.py
45*cfb92d14SAndroid Build Coastguard WorkerMA1 = Ipv6Addr('ff04::1234:777a:1')
46*cfb92d14SAndroid Build Coastguard WorkerMA1g = Ipv6Addr('ff0e::1234:777a:1')
47*cfb92d14SAndroid Build Coastguard WorkerMA2 = Ipv6Addr('ff05::1234:777a:1')
48*cfb92d14SAndroid Build Coastguard WorkerMA3 = Ipv6Addr('ff0e::1234:777a:3')
49*cfb92d14SAndroid Build Coastguard WorkerMA4 = Ipv6Addr('ff05::1234:777a:4')
50*cfb92d14SAndroid Build Coastguard WorkerMA5 = Ipv6Addr('ff03::1234:777a:5')
51*cfb92d14SAndroid Build Coastguard WorkerMA6 = Ipv6Addr('ff02::1')
52*cfb92d14SAndroid Build Coastguard WorkerMAe1 = Ipv6Addr('fd0e::1234:777a:1')
53*cfb92d14SAndroid Build Coastguard WorkerMAe2 = Ipv6Addr('::')
54*cfb92d14SAndroid Build Coastguard WorkerMAe3 = Ipv6Addr('cafe::e0ff')
55*cfb92d14SAndroid Build Coastguard WorkerMAS = [[Ipv6Addr(f'ff0e::{j:x}:777a:{i:x}') for j in range(16)] for i in range(16)]
56*cfb92d14SAndroid Build Coastguard WorkerALL_MPL_FORWARDERS_MA = Ipv6Addr('ff03::fc')
57*cfb92d14SAndroid Build Coastguard Worker
58*cfb92d14SAndroid Build Coastguard WorkerLINK_LOCAL_PREFIX = Bytes("fe80")
59*cfb92d14SAndroid Build Coastguard WorkerDEFAULT_MESH_LOCAL_PREFIX = Bytes("fd00:0db8:0000:0000")
60*cfb92d14SAndroid Build Coastguard WorkerLEADER_ALOC_IID = Bytes("0000:00ff:fe00:fc00")
61*cfb92d14SAndroid Build Coastguard WorkerPBBR_ALOC_IID = Bytes("0000:00ff:fe00:fc38")
62*cfb92d14SAndroid Build Coastguard WorkerLEADER_ALOC = Ipv6Addr(DEFAULT_MESH_LOCAL_PREFIX + LEADER_ALOC_IID)
63*cfb92d14SAndroid Build Coastguard WorkerPBBR_ALOC = Ipv6Addr(DEFAULT_MESH_LOCAL_PREFIX + PBBR_ALOC_IID)
64*cfb92d14SAndroid Build Coastguard Worker
65*cfb92d14SAndroid Build Coastguard Worker# Minimum value of the MLR Timeout parameter in the BBR Dataset
66*cfb92d14SAndroid Build Coastguard WorkerMLR_TIMEOUT_MIN = 300
67*cfb92d14SAndroid Build Coastguard Worker
68*cfb92d14SAndroid Build Coastguard Worker# Max response delay
69*cfb92d14SAndroid Build Coastguard WorkerMLE_MAX_RESPONSE_DELAY = 1
70*cfb92d14SAndroid Build Coastguard Worker
71*cfb92d14SAndroid Build Coastguard Worker# WPAN CMDs
72*cfb92d14SAndroid Build Coastguard WorkerWPAN_DATA_REQUEST = 4
73*cfb92d14SAndroid Build Coastguard Worker
74*cfb92d14SAndroid Build Coastguard Worker# WPAN Frame Types
75*cfb92d14SAndroid Build Coastguard WorkerWPAN_BEACON = 0
76*cfb92d14SAndroid Build Coastguard WorkerWPAN_DATA = 1
77*cfb92d14SAndroid Build Coastguard WorkerWPAN_ACK = 2
78*cfb92d14SAndroid Build Coastguard WorkerWPAN_CMD = 3
79*cfb92d14SAndroid Build Coastguard Worker
80*cfb92d14SAndroid Build Coastguard Worker# COAP methods
81*cfb92d14SAndroid Build Coastguard WorkerCOAP_CODE_POST = 2
82*cfb92d14SAndroid Build Coastguard WorkerCOAP_CODE_ACK = 68
83*cfb92d14SAndroid Build Coastguard Worker
84*cfb92d14SAndroid Build Coastguard WorkerMLE_LINK_REQUEST = 0
85*cfb92d14SAndroid Build Coastguard WorkerMLE_LINK_ACCEPT = 1
86*cfb92d14SAndroid Build Coastguard WorkerMLE_LINK_ACCEPT_AND_REQUEST = 2
87*cfb92d14SAndroid Build Coastguard WorkerMLE_ADVERTISEMENT = 4
88*cfb92d14SAndroid Build Coastguard WorkerMLE_DATA_REQUEST = 7
89*cfb92d14SAndroid Build Coastguard WorkerMLE_DATA_RESPONSE = 8
90*cfb92d14SAndroid Build Coastguard WorkerMLE_PARENT_REQUEST = 9
91*cfb92d14SAndroid Build Coastguard WorkerMLE_PARENT_RESPONSE = 10
92*cfb92d14SAndroid Build Coastguard WorkerMLE_CHILD_ID_REQUEST = 11
93*cfb92d14SAndroid Build Coastguard WorkerMLE_CHILD_ID_RESPONSE = 12
94*cfb92d14SAndroid Build Coastguard WorkerMLE_CHILD_UPDATE_REQUEST = 13
95*cfb92d14SAndroid Build Coastguard WorkerMLE_CHILD_UPDATE_RESPONSE = 14
96*cfb92d14SAndroid Build Coastguard WorkerMLE_ANNOUNCE = 15
97*cfb92d14SAndroid Build Coastguard WorkerMLE_DISCOVERY_REQUEST = 16
98*cfb92d14SAndroid Build Coastguard WorkerMLE_DISCOVERY_RESPONSE = 17
99*cfb92d14SAndroid Build Coastguard WorkerMLE_LINK_METRICS_MANAGEMENT_REQUEST = 18
100*cfb92d14SAndroid Build Coastguard WorkerMLE_LINK_METRICS_MANAGEMENT_RESPONSE = 19
101*cfb92d14SAndroid Build Coastguard WorkerMLE_LINK_PROBE = 20
102*cfb92d14SAndroid Build Coastguard Worker
103*cfb92d14SAndroid Build Coastguard Worker# COAP URIs
104*cfb92d14SAndroid Build Coastguard WorkerADDR_QRY_URI = '/a/aq'
105*cfb92d14SAndroid Build Coastguard WorkerADDR_NTF_URI = '/a/an'
106*cfb92d14SAndroid Build Coastguard WorkerADDR_ERR_URI = '/a/ae'
107*cfb92d14SAndroid Build Coastguard WorkerADDR_SOL_URI = '/a/as'
108*cfb92d14SAndroid Build Coastguard WorkerADDR_REL_URI = '/a/ar'
109*cfb92d14SAndroid Build Coastguard WorkerSVR_DATA_URI = '/a/sd'
110*cfb92d14SAndroid Build Coastguard WorkerND_DATA_URI = '/a/nd'
111*cfb92d14SAndroid Build Coastguard WorkerRLY_RX_URI = '/c/rx'
112*cfb92d14SAndroid Build Coastguard WorkerRLY_TX_URI = '/c/tx'
113*cfb92d14SAndroid Build Coastguard WorkerMGMT_PANID_QUERY = '/c/pq'
114*cfb92d14SAndroid Build Coastguard WorkerMGMT_PANID_CONFLICT = '/c/pc'
115*cfb92d14SAndroid Build Coastguard WorkerMGMT_ED_SCAN = '/c/es'
116*cfb92d14SAndroid Build Coastguard WorkerMGMT_ED_REPORT = '/c/er'
117*cfb92d14SAndroid Build Coastguard WorkerMGMT_ACTIVE_GET_URI = '/c/ag'
118*cfb92d14SAndroid Build Coastguard WorkerMGMT_ACTIVE_SET_URI = '/c/as'
119*cfb92d14SAndroid Build Coastguard WorkerMGMT_PENDING_SET_URI = '/c/ps'
120*cfb92d14SAndroid Build Coastguard WorkerMGMT_PENDING_GET_URI = '/c/pg'
121*cfb92d14SAndroid Build Coastguard WorkerMGMT_DATASET_CHANGED_URI = '/c/dc'
122*cfb92d14SAndroid Build Coastguard WorkerMGMT_COMMISSIONER_GET_URI = '/c/cg'
123*cfb92d14SAndroid Build Coastguard WorkerDIAG_GET_URI = '/d/dg'
124*cfb92d14SAndroid Build Coastguard WorkerDIAG_RST_URI = '/d/dr'
125*cfb92d14SAndroid Build Coastguard WorkerMGMT_COMMISSIONER_SET_URI = '/c/cs'
126*cfb92d14SAndroid Build Coastguard WorkerLEAD_PET_URI = '/c/lp'
127*cfb92d14SAndroid Build Coastguard WorkerLEAD_KA_URI = '/c/la'
128*cfb92d14SAndroid Build Coastguard WorkerDIAG_GET_QRY_URI = '/d/dq'
129*cfb92d14SAndroid Build Coastguard WorkerDIAG_GET_ANS_URI = '/d/da'
130*cfb92d14SAndroid Build Coastguard WorkerBACKBONE_QUERY_URI = '/b/bq'
131*cfb92d14SAndroid Build Coastguard WorkerBACKBONE_ANSWER_URI = '/b/ba'
132*cfb92d14SAndroid Build Coastguard Worker
133*cfb92d14SAndroid Build Coastguard Worker# ADDR SOL Status
134*cfb92d14SAndroid Build Coastguard WorkerADDR_SOL_SUCCESS = 0
135*cfb92d14SAndroid Build Coastguard WorkerADDR_SOL_NA = 1
136*cfb92d14SAndroid Build Coastguard Worker
137*cfb92d14SAndroid Build Coastguard Worker# MLE TLVs
138*cfb92d14SAndroid Build Coastguard WorkerSOURCE_ADDRESS_TLV = 0
139*cfb92d14SAndroid Build Coastguard WorkerMODE_TLV = 1
140*cfb92d14SAndroid Build Coastguard WorkerTIMEOUT_TLV = 2
141*cfb92d14SAndroid Build Coastguard WorkerCHALLENGE_TLV = 3
142*cfb92d14SAndroid Build Coastguard WorkerRESPONSE_TLV = 4
143*cfb92d14SAndroid Build Coastguard WorkerLINK_LAYER_FRAME_COUNTER_TLV = 5
144*cfb92d14SAndroid Build Coastguard WorkerLINK_QUALITY_TLV = 6
145*cfb92d14SAndroid Build Coastguard WorkerPARAMETER_TLV = 7
146*cfb92d14SAndroid Build Coastguard WorkerMLE_FRAME_COUNTER_TLV = 8
147*cfb92d14SAndroid Build Coastguard WorkerROUTE64_TLV = 9
148*cfb92d14SAndroid Build Coastguard WorkerADDRESS16_TLV = 10
149*cfb92d14SAndroid Build Coastguard WorkerLEADER_DATA_TLV = 11
150*cfb92d14SAndroid Build Coastguard WorkerNETWORK_DATA_TLV = 12
151*cfb92d14SAndroid Build Coastguard WorkerTLV_REQUEST_TLV = 13
152*cfb92d14SAndroid Build Coastguard WorkerSCAN_MASK_TLV = 14
153*cfb92d14SAndroid Build Coastguard WorkerCONNECTIVITY_TLV = 15
154*cfb92d14SAndroid Build Coastguard WorkerLINK_MARGIN_TLV = 16
155*cfb92d14SAndroid Build Coastguard WorkerSTATUS_TLV = 17
156*cfb92d14SAndroid Build Coastguard WorkerVERSION_TLV = 18
157*cfb92d14SAndroid Build Coastguard WorkerADDRESS_REGISTRATION_TLV = 19
158*cfb92d14SAndroid Build Coastguard WorkerCHANNEL_TLV = 20
159*cfb92d14SAndroid Build Coastguard WorkerPAN_ID_TLV = 21
160*cfb92d14SAndroid Build Coastguard WorkerACTIVE_TIMESTAMP_TLV = 22
161*cfb92d14SAndroid Build Coastguard WorkerPENDING_TIMESTAMP_TLV = 23
162*cfb92d14SAndroid Build Coastguard WorkerACTIVE_OPERATION_DATASET_TLV = 24
163*cfb92d14SAndroid Build Coastguard WorkerPENDING_OPERATION_DATASET_TLV = 25
164*cfb92d14SAndroid Build Coastguard WorkerTHREAD_DISCOVERY_TLV = 26
165*cfb92d14SAndroid Build Coastguard WorkerCSL_SYNCHRONIZED_TIMEOUT = 85
166*cfb92d14SAndroid Build Coastguard WorkerCSL_CLOCK_ACCURACY = 86
167*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_QUERY_TLV = 87
168*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_MANAGEMENT_TLV = 88
169*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_REPORT_TLV = 89
170*cfb92d14SAndroid Build Coastguard WorkerLINK_PROBE_TLV = 90
171*cfb92d14SAndroid Build Coastguard Worker
172*cfb92d14SAndroid Build Coastguard Worker# Network Layer TLVs
173*cfb92d14SAndroid Build Coastguard WorkerNL_TARGET_EID_TLV = 0
174*cfb92d14SAndroid Build Coastguard WorkerNL_MAC_EXTENDED_ADDRESS_TLV = 1
175*cfb92d14SAndroid Build Coastguard WorkerNL_RLOC16_TLV = 2
176*cfb92d14SAndroid Build Coastguard WorkerNL_ML_EID_TLV = 3
177*cfb92d14SAndroid Build Coastguard WorkerNL_STATUS_TLV = 4
178*cfb92d14SAndroid Build Coastguard WorkerNL_TIME_SINCE_LAST_TRANSACTION_TLV = 6
179*cfb92d14SAndroid Build Coastguard WorkerNL_ROUTER_MASK_TLV = 7
180*cfb92d14SAndroid Build Coastguard WorkerNL_ND_OPTION_TLV = 8
181*cfb92d14SAndroid Build Coastguard WorkerNL_ND_DATA_TLV = 9
182*cfb92d14SAndroid Build Coastguard WorkerNL_THREAD_NETWORK_DATA_TLV = 10
183*cfb92d14SAndroid Build Coastguard Worker
184*cfb92d14SAndroid Build Coastguard Worker# Network Layer Status
185*cfb92d14SAndroid Build Coastguard WorkerNL_SUCESS = 0
186*cfb92d14SAndroid Build Coastguard WorkerNL_NO_ADDRESS_AVAILABLE = 1
187*cfb92d14SAndroid Build Coastguard WorkerNL_TOO_FEW_ROUTERS = 2
188*cfb92d14SAndroid Build Coastguard WorkerNL_HAVE_CHILD_ID_REQUEST = 3
189*cfb92d14SAndroid Build Coastguard WorkerNL_PARENT_PARTITION_CHANGE = 4
190*cfb92d14SAndroid Build Coastguard Worker
191*cfb92d14SAndroid Build Coastguard Worker# MeshCop TLVs
192*cfb92d14SAndroid Build Coastguard WorkerNM_CHANNEL_TLV = 0
193*cfb92d14SAndroid Build Coastguard WorkerNM_PAN_ID_TLV = 1
194*cfb92d14SAndroid Build Coastguard WorkerNM_EXTENDED_PAN_ID_TLV = 2
195*cfb92d14SAndroid Build Coastguard WorkerNM_NETWORK_NAME_TLV = 3
196*cfb92d14SAndroid Build Coastguard WorkerNM_PSKC_TLV = 4
197*cfb92d14SAndroid Build Coastguard WorkerNM_NETWORK_KEY_TLV = 5
198*cfb92d14SAndroid Build Coastguard WorkerNM_NETWORK_KEY_SEQUENCE_COUNTER_TLV = 6
199*cfb92d14SAndroid Build Coastguard WorkerNM_NETWORK_MESH_LOCAL_PREFIX_TLV = 7
200*cfb92d14SAndroid Build Coastguard WorkerNM_STEERING_DATA_TLV = 8
201*cfb92d14SAndroid Build Coastguard WorkerNM_BORDER_AGENT_LOCATOR_TLV = 9
202*cfb92d14SAndroid Build Coastguard WorkerNM_COMMISSIONER_ID_TLV = 10
203*cfb92d14SAndroid Build Coastguard WorkerNM_COMMISSIONER_SESSION_ID_TLV = 11
204*cfb92d14SAndroid Build Coastguard WorkerNM_SECURITY_POLICY_TLV = 12
205*cfb92d14SAndroid Build Coastguard WorkerNM_ACTIVE_TIMESTAMP_TLV = 14
206*cfb92d14SAndroid Build Coastguard WorkerNM_COMMISSIONER_UDP_PORT_TLV = 15
207*cfb92d14SAndroid Build Coastguard WorkerNM_STATE_TLV = 16
208*cfb92d14SAndroid Build Coastguard WorkerNM_JOINER_DTLS_ENCAPSULATION_TLV = 17
209*cfb92d14SAndroid Build Coastguard WorkerNM_JOINER_UDP_PORT_TLV = 18
210*cfb92d14SAndroid Build Coastguard WorkerNM_JOINER_IID_TLV = 19
211*cfb92d14SAndroid Build Coastguard WorkerNM_JOINER_ROUTER_LOCATOR_TLV = 20
212*cfb92d14SAndroid Build Coastguard WorkerNM_JOINER_ROUTER_KEK_TLV = 21
213*cfb92d14SAndroid Build Coastguard WorkerNM_PENDING_TIMESTAMP_TLV = 51
214*cfb92d14SAndroid Build Coastguard WorkerNM_DELAY_TIMER_TLV = 52
215*cfb92d14SAndroid Build Coastguard WorkerNM_CHANNEL_MASK_TLV = 53
216*cfb92d14SAndroid Build Coastguard WorkerNM_SCAN_DURATION = 56
217*cfb92d14SAndroid Build Coastguard WorkerNM_ENERGY_LIST_TLV = 57
218*cfb92d14SAndroid Build Coastguard WorkerNM_DISCOVERY_REQUEST_TLV = 128
219*cfb92d14SAndroid Build Coastguard WorkerNM_DISCOVERY_RESPONSE_TLV = 129
220*cfb92d14SAndroid Build Coastguard Worker
221*cfb92d14SAndroid Build Coastguard Worker# Diagnostic TLVs
222*cfb92d14SAndroid Build Coastguard WorkerDG_MAC_EXTENDED_ADDRESS_TLV = 0
223*cfb92d14SAndroid Build Coastguard WorkerDG_MAC_ADDRESS_TLV = 1
224*cfb92d14SAndroid Build Coastguard WorkerDG_MODE_TLV = 2
225*cfb92d14SAndroid Build Coastguard WorkerDG_TIMEOUT_TLV = 3
226*cfb92d14SAndroid Build Coastguard WorkerDG_CONNECTIVITY_TLV = 4
227*cfb92d14SAndroid Build Coastguard WorkerDG_ROUTE64_TLV = 5
228*cfb92d14SAndroid Build Coastguard WorkerDG_LEADER_DATA_TLV = 6
229*cfb92d14SAndroid Build Coastguard WorkerDG_NETWORK_DATA_TLV = 7
230*cfb92d14SAndroid Build Coastguard WorkerDG_IPV6_ADDRESS_LIST_TLV = 8
231*cfb92d14SAndroid Build Coastguard WorkerDG_MAC_COUNTERS_TLV = 9
232*cfb92d14SAndroid Build Coastguard WorkerDG_BATTERY_LEVEL_TLV = 14
233*cfb92d14SAndroid Build Coastguard WorkerDG_SUPPLY_VOLTAGE_TLV = 15
234*cfb92d14SAndroid Build Coastguard WorkerDG_CHILD_TABLE_TLV = 16
235*cfb92d14SAndroid Build Coastguard WorkerDG_CHANNEL_PAGES_TLV = 17
236*cfb92d14SAndroid Build Coastguard WorkerDG_TYPE_LIST_TLV = 18
237*cfb92d14SAndroid Build Coastguard WorkerDG_MAX_CHILD_TIMEOUT_TLV = 19
238*cfb92d14SAndroid Build Coastguard Worker
239*cfb92d14SAndroid Build Coastguard Worker# MeshCop State
240*cfb92d14SAndroid Build Coastguard WorkerMESHCOP_ACCEPT = 1
241*cfb92d14SAndroid Build Coastguard WorkerMESHCOP_PENDING = 0
242*cfb92d14SAndroid Build Coastguard WorkerMESHCOP_REJECT = -1
243*cfb92d14SAndroid Build Coastguard Worker
244*cfb92d14SAndroid Build Coastguard Worker# DTLS
245*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_HELLO_REQUEST = 0
246*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_CLIENT_HELLO = 1
247*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_SERVER_HELLO = 2
248*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_HELLO_VERIFY_REQUEST = 3
249*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_CERTIFICATE = 11
250*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_SERVER_KEY_EXCHANGE = 12
251*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_CERTIFICATE_REQUEST = 13
252*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_SERVER_HELLO_DONE = 14
253*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_CERTIFICATE_VERIFY = 15
254*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_CLIENT_KEY_EXCHANGE = 16
255*cfb92d14SAndroid Build Coastguard WorkerHANDSHAKE_FINISHED = 20
256*cfb92d14SAndroid Build Coastguard WorkerCONTENT_CHANGE_CIPHER_SPEC = 20
257*cfb92d14SAndroid Build Coastguard WorkerCONTENT_ALERT = 21
258*cfb92d14SAndroid Build Coastguard WorkerCONTENT_HANDSHAKE = 22
259*cfb92d14SAndroid Build Coastguard WorkerCONTENT_APPLICATION_DATA = 23
260*cfb92d14SAndroid Build Coastguard Worker
261*cfb92d14SAndroid Build Coastguard Worker# Network Data TLVs
262*cfb92d14SAndroid Build Coastguard WorkerNWD_HAS_ROUTER_TLV = 0
263*cfb92d14SAndroid Build Coastguard WorkerNWD_PREFIX_TLV = 1
264*cfb92d14SAndroid Build Coastguard WorkerNWD_BORDER_ROUTER_TLV = 2
265*cfb92d14SAndroid Build Coastguard WorkerNWD_6LOWPAN_ID_TLV = 3
266*cfb92d14SAndroid Build Coastguard WorkerNWD_COMMISSIONING_DATA_TLV = 4
267*cfb92d14SAndroid Build Coastguard WorkerNWD_SERVICE_TLV = 5
268*cfb92d14SAndroid Build Coastguard WorkerNWD_SERVER_TLV = 6
269*cfb92d14SAndroid Build Coastguard Worker
270*cfb92d14SAndroid Build Coastguard Worker# Link Metrics TLVs
271*cfb92d14SAndroid Build Coastguard WorkerLM_FORWARD_PROBING_REGISTRATION_SUB_TLV = 3
272*cfb92d14SAndroid Build Coastguard WorkerLM_ENHANCED_ACK_CONFIGURATION_SUB_TLV = 7
273*cfb92d14SAndroid Build Coastguard Worker
274*cfb92d14SAndroid Build Coastguard Worker# DUA related constants
275*cfb92d14SAndroid Build Coastguard Worker
276*cfb92d14SAndroid Build Coastguard WorkerADDRESS_QUERY_INITIAL_RETRY_DELAY = 15
277*cfb92d14SAndroid Build Coastguard WorkerADDRESS_QUERY_MAX_RETRY_DELAY = 8
278*cfb92d14SAndroid Build Coastguard WorkerADDRESS_QUERY_TIMEOUT = 3
279*cfb92d14SAndroid Build Coastguard WorkerADVERTISEMENT_I_MAX = 32
280*cfb92d14SAndroid Build Coastguard WorkerADVERTISEMENT_I_MIN = 1
281*cfb92d14SAndroid Build Coastguard Worker
282*cfb92d14SAndroid Build Coastguard WorkerCONTEXT_ID_REUSE_DELAY = 48
283*cfb92d14SAndroid Build Coastguard Worker
284*cfb92d14SAndroid Build Coastguard WorkerDATA_RESUBMIT_DELAY = 300
285*cfb92d14SAndroid Build Coastguard Worker
286*cfb92d14SAndroid Build Coastguard WorkerDUA_DAD_PERIOD = 100
287*cfb92d14SAndroid Build Coastguard WorkerDUA_DAD_QUERY_TIMEOUT = 1.0
288*cfb92d14SAndroid Build Coastguard WorkerDUA_DAD_REPEATS = 2
289*cfb92d14SAndroid Build Coastguard WorkerDUA_RECENT_TIME = 20
290*cfb92d14SAndroid Build Coastguard WorkerFAILED_ROUTER_TRANSMISSIONS = 4
291*cfb92d14SAndroid Build Coastguard WorkerID_REUSE_DELAY = 100
292*cfb92d14SAndroid Build Coastguard WorkerID_SEQUENCE_PERIOD = 10
293*cfb92d14SAndroid Build Coastguard WorkerINFINITE_COST_TIMEOUT = 90
294*cfb92d14SAndroid Build Coastguard Worker
295*cfb92d14SAndroid Build Coastguard WorkerREAL_LAYER_NAMES = {
296*cfb92d14SAndroid Build Coastguard Worker    'mle',
297*cfb92d14SAndroid Build Coastguard Worker    'coap',
298*cfb92d14SAndroid Build Coastguard Worker    'dtls',
299*cfb92d14SAndroid Build Coastguard Worker    'wpan',
300*cfb92d14SAndroid Build Coastguard Worker    'eth',
301*cfb92d14SAndroid Build Coastguard Worker    'tcp',
302*cfb92d14SAndroid Build Coastguard Worker    'udp',
303*cfb92d14SAndroid Build Coastguard Worker    'ip',
304*cfb92d14SAndroid Build Coastguard Worker    'ipv6',
305*cfb92d14SAndroid Build Coastguard Worker    'icmpv6',
306*cfb92d14SAndroid Build Coastguard Worker    '6lowpan',
307*cfb92d14SAndroid Build Coastguard Worker    'arp',
308*cfb92d14SAndroid Build Coastguard Worker    'thread_bl',
309*cfb92d14SAndroid Build Coastguard Worker    'thread_address',
310*cfb92d14SAndroid Build Coastguard Worker    'thread_diagnostic',
311*cfb92d14SAndroid Build Coastguard Worker    'thread_nm',
312*cfb92d14SAndroid Build Coastguard Worker    'thread_bcn',
313*cfb92d14SAndroid Build Coastguard Worker    'ssdp',
314*cfb92d14SAndroid Build Coastguard Worker    'dns',
315*cfb92d14SAndroid Build Coastguard Worker    'igmp',
316*cfb92d14SAndroid Build Coastguard Worker    'mdns',
317*cfb92d14SAndroid Build Coastguard Worker    'dns',
318*cfb92d14SAndroid Build Coastguard Worker}
319*cfb92d14SAndroid Build Coastguard Worker
320*cfb92d14SAndroid Build Coastguard WorkerFAKE_LAYER_NAMES = {'thread_nwd', 'thread_meshcop', 'ipv6inner'}
321*cfb92d14SAndroid Build Coastguard Worker
322*cfb92d14SAndroid Build Coastguard WorkerVALID_LAYER_NAMES = REAL_LAYER_NAMES | FAKE_LAYER_NAMES
323*cfb92d14SAndroid Build Coastguard Worker
324*cfb92d14SAndroid Build Coastguard WorkerAUTO_SEEK_BACK_MAX_DURATION = 0.02
325*cfb92d14SAndroid Build Coastguard Worker
326*cfb92d14SAndroid Build Coastguard Worker# Wireshark configs
327*cfb92d14SAndroid Build Coastguard WorkerWIRESHARK_OVERRIDE_PREFS = {
328*cfb92d14SAndroid Build Coastguard Worker    '6lowpan.context0':
329*cfb92d14SAndroid Build Coastguard Worker        'fd00:db8::/64',
330*cfb92d14SAndroid Build Coastguard Worker    '6lowpan.context1':
331*cfb92d14SAndroid Build Coastguard Worker        'fd00:7d03:7d03:7d03::/64',
332*cfb92d14SAndroid Build Coastguard Worker    'wpan.802154_fcs_ok':
333*cfb92d14SAndroid Build Coastguard Worker        'FALSE',
334*cfb92d14SAndroid Build Coastguard Worker    'wpan.802154_sec_suite':
335*cfb92d14SAndroid Build Coastguard Worker        'AES-128 Encryption, 32-bit Integrity Protection',
336*cfb92d14SAndroid Build Coastguard Worker    'thread.thr_seq_ctr':
337*cfb92d14SAndroid Build Coastguard Worker        '00000000',
338*cfb92d14SAndroid Build Coastguard Worker    'uat:ieee802154_keys':
339*cfb92d14SAndroid Build Coastguard Worker        '''"00112233445566778899aabbccddeeff","1","Thread hash"
340*cfb92d14SAndroid Build Coastguard Worker                              "ffeeddccbbaa99887766554433221100","1","Thread hash"''',
341*cfb92d14SAndroid Build Coastguard Worker}
342*cfb92d14SAndroid Build Coastguard Worker
343*cfb92d14SAndroid Build Coastguard WorkerWIRESHARK_DECODE_AS_ENTRIES = {
344*cfb92d14SAndroid Build Coastguard Worker    'udp.port==61631': 'coap',
345*cfb92d14SAndroid Build Coastguard Worker    # SRP server ports for dissecting SRP requests and responses
346*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53535': 'dns',
347*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53536': 'dns',
348*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53537': 'dns',
349*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53538': 'dns',
350*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53539': 'dns',
351*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53540': 'dns',
352*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53541': 'dns',
353*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53542': 'dns',
354*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53543': 'dns',
355*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53544': 'dns',
356*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53545': 'dns',
357*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53546': 'dns',
358*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53547': 'dns',
359*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53548': 'dns',
360*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53549': 'dns',
361*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53550': 'dns',
362*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53551': 'dns',
363*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53552': 'dns',
364*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53553': 'dns',
365*cfb92d14SAndroid Build Coastguard Worker    'udp.port==53554': 'dns',
366*cfb92d14SAndroid Build Coastguard Worker}
367*cfb92d14SAndroid Build Coastguard Worker
368*cfb92d14SAndroid Build Coastguard WorkerTIMEOUT_JOIN_NETWORK = 10
369*cfb92d14SAndroid Build Coastguard WorkerTIMEOUT_DUA_REGISTRATION = 10
370*cfb92d14SAndroid Build Coastguard WorkerTIMEOUT_DUA_DAD = 15
371*cfb92d14SAndroid Build Coastguard WorkerTIMEOUT_HOST_READY = 10
372*cfb92d14SAndroid Build Coastguard WorkerTIMEOUT_CHILD_DETACH = 120
373*cfb92d14SAndroid Build Coastguard WorkerTIMEOUT_REGISTER_MA = 5
374*cfb92d14SAndroid Build Coastguard Worker
375*cfb92d14SAndroid Build Coastguard Worker# 802.15.4 Frame Version
376*cfb92d14SAndroid Build Coastguard WorkerMAC_FRAME_VERSION_2006 = 1
377*cfb92d14SAndroid Build Coastguard WorkerMAC_FRAME_VERSION_2015 = 2
378*cfb92d14SAndroid Build Coastguard Worker
379*cfb92d14SAndroid Build Coastguard Worker# 802.15.4 Frame Type
380*cfb92d14SAndroid Build Coastguard WorkerMAC_FRAME_TYPE_BEACON = 0x0
381*cfb92d14SAndroid Build Coastguard WorkerMAC_FRAME_TYPE_DATA = 0x1
382*cfb92d14SAndroid Build Coastguard WorkerMAC_FRAME_TYPE_ACK = 0x2
383*cfb92d14SAndroid Build Coastguard WorkerMAC_FRAME_TYPE_MAC_CMD = 0x3
384*cfb92d14SAndroid Build Coastguard Worker
385*cfb92d14SAndroid Build Coastguard Worker# CSL
386*cfb92d14SAndroid Build Coastguard WorkerCSL_DEFAULT_PERIOD_IN_SECOND = 0.5
387*cfb92d14SAndroid Build Coastguard WorkerCSL_DEFAULT_PERIOD = CSL_DEFAULT_PERIOD_IN_SECOND * 1000 * 1000  # in usec
388*cfb92d14SAndroid Build Coastguard WorkerUS_PER_TEN_SYMBOLS = 160
389*cfb92d14SAndroid Build Coastguard WorkerCSL_IE_ID = 0x1a
390*cfb92d14SAndroid Build Coastguard WorkerCSL_DEFAULT_TIMEOUT = 30
391*cfb92d14SAndroid Build Coastguard WorkerCSL_DEFAULT_CHANNEL = 12
392*cfb92d14SAndroid Build Coastguard Worker
393*cfb92d14SAndroid Build Coastguard Worker# Thread Version TLV value
394*cfb92d14SAndroid Build Coastguard WorkerTHREAD_VERSION_1_1 = 2
395*cfb92d14SAndroid Build Coastguard WorkerTHREAD_VERSION_1_2 = 3
396*cfb92d14SAndroid Build Coastguard WorkerTHREAD_VERSION_1_3 = 4
397*cfb92d14SAndroid Build Coastguard Worker
398*cfb92d14SAndroid Build Coastguard Worker# ICMPv6 Types
399*cfb92d14SAndroid Build Coastguard WorkerICMPV6_TYPE_DESTINATION_UNREACHABLE = 1
400*cfb92d14SAndroid Build Coastguard WorkerICMPV6_TYPE_PACKET_TO_BIG = 2
401*cfb92d14SAndroid Build Coastguard WorkerICMPV6_TYPE_TIME_EXCEEDED = 3
402*cfb92d14SAndroid Build Coastguard WorkerICMPV6_TYPE_PARAMETER_PROBLEM = 4
403*cfb92d14SAndroid Build Coastguard WorkerICMPV6_TYPE_ECHO_REQUEST = 128
404*cfb92d14SAndroid Build Coastguard WorkerICMPV6_TYPE_ECHO_REPLY = 129
405*cfb92d14SAndroid Build Coastguard Worker
406*cfb92d14SAndroid Build Coastguard WorkerICMPV6_RA_OPT_TYPE_RIO = 24
407*cfb92d14SAndroid Build Coastguard Worker
408*cfb92d14SAndroid Build Coastguard WorkerTHREAD_ALLOWED_ICMPV6_TYPES = [
409*cfb92d14SAndroid Build Coastguard Worker    ICMPV6_TYPE_DESTINATION_UNREACHABLE,
410*cfb92d14SAndroid Build Coastguard Worker    ICMPV6_TYPE_PACKET_TO_BIG,
411*cfb92d14SAndroid Build Coastguard Worker    ICMPV6_TYPE_TIME_EXCEEDED,
412*cfb92d14SAndroid Build Coastguard Worker    ICMPV6_TYPE_PARAMETER_PROBLEM,
413*cfb92d14SAndroid Build Coastguard Worker    ICMPV6_TYPE_ECHO_REQUEST,
414*cfb92d14SAndroid Build Coastguard Worker    ICMPV6_TYPE_ECHO_REPLY,
415*cfb92d14SAndroid Build Coastguard Worker]
416*cfb92d14SAndroid Build Coastguard Worker
417*cfb92d14SAndroid Build Coastguard Worker# Link Metrics
418*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_STATUS_SUCCESS = 0
419*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_STATUS_CANNOT_SUPPORT_NEW_SERIES = 1
420*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_STATUS_SERIES_ID_ALREADY_REGISTERED = 2
421*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_STATUS_SERIES_ID_NOT_RECOGNIZED = 3
422*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_STATUS_NO_MATCHING_FRAMES_RECEIVED = 4
423*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_STATUS_OTHER_ERROR = 254
424*cfb92d14SAndroid Build Coastguard Worker
425*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_TYPE_AVERAGE_ENUM_COUNT = 0
426*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_TYPE_AVERAGE_ENUM_EXPONENTIAL = 1
427*cfb92d14SAndroid Build Coastguard Worker
428*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_METRIC_TYPE_ENUM_PDU_COUNT = 0
429*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_METRIC_TYPE_ENUM_LQI = 1
430*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_METRIC_TYPE_ENUM_LINK_MARGIN = 2
431*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_METRIC_TYPE_ENUM_RSSI = 3
432*cfb92d14SAndroid Build Coastguard Worker
433*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_ENH_ACK_PROBING_CLEAR = 0
434*cfb92d14SAndroid Build Coastguard WorkerLINK_METRICS_ENH_ACK_PROBING_REGISTER = 1
435*cfb92d14SAndroid Build Coastguard Worker
436*cfb92d14SAndroid Build Coastguard Worker# THREAD_COMPANY_ID
437*cfb92d14SAndroid Build Coastguard WorkerTHREAD_IEEE_802154_COMPANY_ID = 0xEAB89B
438*cfb92d14SAndroid Build Coastguard Worker
439*cfb92d14SAndroid Build Coastguard Workerif __name__ == '__main__':
440*cfb92d14SAndroid Build Coastguard Worker    from pktverify.addrs import Ipv6Addr
441*cfb92d14SAndroid Build Coastguard Worker
442*cfb92d14SAndroid Build Coastguard Worker    assert Ipv6Addr("fe80:0000:0000:0000:0200:0000:0000:0004").startswith(LINK_LOCAL_PREFIX)
443*cfb92d14SAndroid Build Coastguard Worker    assert Ipv6Addr("fd00:0db8:0000:0000:0000:00ff:fe00:8001").startswith(DEFAULT_MESH_LOCAL_PREFIX)
444