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