• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.server.uwb.config;
18 
19 import android.hardware.uwb.fira_android.UwbVendorCapabilityTlvTypes;
20 import android.hardware.uwb.fira_android.UwbVendorCapabilityTlvValues;
21 
22 public class CapabilityParam {
23     /**
24      * CR 287 params Fira Version 1.0
25      */
26     public static final int SUPPORTED_FIRA_PHY_VERSION_RANGE_VER_1_0 = 0x0;
27     public static final int SUPPORTED_FIRA_MAC_VERSION_RANGE_VER_1_0 = 0x1;
28     public static final int SUPPORTED_DEVICE_ROLES_VER_1_0 = 0x2;
29     public static final int SUPPORTED_RANGING_METHOD_VER_1_0 = 0x3;
30     public static final int SUPPORTED_STS_CONFIG_VER_1_0 = 0x4;
31     public static final int SUPPORTED_MULTI_NODE_MODES_VER_1_0 = 0x5;
32     public static final int SUPPORTED_RANGING_TIME_STRUCT_VER_1_0 = 0x6;
33     public static final int SUPPORTED_SCHEDULED_MODE_VER_1_0 = 0x7;
34     public static final int SUPPORTED_HOPPING_MODE_VER_1_0 = 0x8;
35     public static final int SUPPORTED_BLOCK_STRIDING_VER_1_0 = 0x9;
36     public static final int SUPPORTED_UWB_INITIATION_TIME_VER_1_0 = 0x0A;
37     public static final int SUPPORTED_CHANNELS_VER_1_0 = 0x0B;
38     public static final int SUPPORTED_RFRAME_CONFIG_VER_1_0 = 0x0C;
39     public static final int SUPPORTED_CC_CONSTRAINT_LENGTH_VER_1_0 = 0x0D;
40     public static final int SUPPORTED_BPRF_PARAMETER_SETS_VER_1_0 = 0x0E;
41     public static final int SUPPORTED_HPRF_PARAMETER_SETS_VER_1_0 = 0x0F;
42     public static final int SUPPORTED_AOA_VER_1_0 = 0x10;
43     public static final int SUPPORTED_EXTENDED_MAC_ADDRESS_VER_1_0 = 0x11;
44     public static final int SUPPORTED_MAX_MESSAGE_SIZE_VER_1_0 = 0x12;
45     public static final int SUPPORTED_MAX_DATA_PACKET_PAYLOAD_SIZE_VER_1_0 = 0x13;
46 
47     /**
48      * CR 287 params Fira Version 2.0
49      */
50     public static final int SUPPORTED_MAX_MESSAGE_SIZE_VER_2_0 = 0x0;
51     public static final int SUPPORTED_MAX_DATA_PACKET_PAYLOAD_SIZE_VER_2_0  = 0x1;
52     public static final int SUPPORTED_FIRA_PHY_VERSION_RANGE_VER_2_0  = 0x2;
53     public static final int SUPPORTED_FIRA_MAC_VERSION_RANGE_VER_2_0  = 0x3;
54     public static final int SUPPORTED_DEVICE_TYPE_VER_2_0  = 0x4;
55     public static final int SUPPORTED_DEVICE_ROLES_VER_2_0  = 0x5;
56     public static final int SUPPORTED_RANGING_METHOD_VER_2_0  = 0x6;
57     public static final int SUPPORTED_STS_CONFIG_VER_2_0  = 0x7;
58     public static final int SUPPORTED_MULTI_NODE_MODES_VER_2_0  = 0x8;
59     public static final int SUPPORTED_RANGING_TIME_STRUCT_VER_2_0  = 0x9;
60     public static final int SUPPORTED_SCHEDULED_MODE_VER_2_0  = 0x0A;
61     public static final int SUPPORTED_HOPPING_MODE_VER_2_0  = 0x0B;
62     public static final int SUPPORTED_BLOCK_STRIDING_VER_2_0  = 0x0C;
63     public static final int SUPPORTED_UWB_INITIATION_TIME_VER_2_0  = 0x0D;
64     public static final int SUPPORTED_CHANNELS_VER_2_0  = 0x0E;
65     public static final int SUPPORTED_RFRAME_CONFIG_VER_2_0  = 0x0F;
66     public static final int SUPPORTED_CC_CONSTRAINT_LENGTH_VER_2_0  = 0x10;
67     public static final int SUPPORTED_BPRF_PARAMETER_SETS_VER_2_0  = 0x11;
68     public static final int SUPPORTED_HPRF_PARAMETER_SETS_VER_2_0  = 0x12;
69     public static final int SUPPORTED_AOA_VER_2_0  = 0x13;
70     public static final int SUPPORTED_EXTENDED_MAC_ADDRESS_VER_2_0  = 0x14;
71     public static final int SUPPORTED_SUSPEND_RANGING_VER_2_0  = 0x15;
72     public static final int SUPPORTED_SESSION_KEY_LENGTH_VER_2_0  = 0x16;
73     public static final int SUPPORTED_DT_TAG_MAX_ACTIVE_RR_2_0 = 0x18;
74 
75     /**
76      * CR 287 params common across versions
77      */
78     public static final int SUPPORTED_AOA_RESULT_REQ_INTERLEAVING =
79             UwbVendorCapabilityTlvTypes.SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING;
80     public static final int SUPPORTED_MIN_RANGING_INTERVAL_MS =
81             UwbVendorCapabilityTlvTypes.SUPPORTED_MIN_RANGING_INTERVAL_MS;
82     public static final int SUPPORTED_RANGE_DATA_NTF_CONFIG =
83             UwbVendorCapabilityTlvTypes.SUPPORTED_RANGE_DATA_NTF_CONFIG;
84     public static final int SUPPORTED_RSSI_REPORTING =
85             UwbVendorCapabilityTlvTypes.SUPPORTED_RSSI_REPORTING;
86     public static final int SUPPORTED_DIAGNOSTICS =
87             UwbVendorCapabilityTlvTypes.SUPPORTED_DIAGNOSTICS;
88     public static final int SUPPORTED_MIN_SLOT_DURATION_RSTU =
89             UwbVendorCapabilityTlvTypes.SUPPORTED_MIN_SLOT_DURATION_RSTU;
90     public static final int SUPPORTED_MAX_RANGING_SESSION_NUMBER =
91             UwbVendorCapabilityTlvTypes.SUPPORTED_MAX_RANGING_SESSION_NUMBER;
92 
93     // CCC specific
94     public static final int CCC_SUPPORTED_VERSIONS =
95             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_VERSIONS;
96     public static final int CCC_SUPPORTED_UWB_CONFIGS =
97             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_UWB_CONFIGS;
98     public static final int CCC_SUPPORTED_PULSE_SHAPE_COMBOS =
99             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_PULSE_SHAPE_COMBOS;
100     public static final int CCC_SUPPORTED_RAN_MULTIPLIER =
101             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_RAN_MULTIPLIER;
102     public static final int CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER =
103             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER;
104     public static final int CCC_SUPPORTED_CHAPS_PER_SLOT =
105             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_CHAPS_PER_SLOT;
106     public static final int CCC_SUPPORTED_SYNC_CODES =
107             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_SYNC_CODES;
108     public static final int CCC_SUPPORTED_CHANNELS =
109             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_CHANNELS;
110     public static final int CCC_SUPPORTED_HOPPING_CONFIG_MODES_AND_SEQUENCES =
111             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_HOPPING_CONFIG_MODES_AND_SEQUENCES;
112     public static final int CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS =
113             UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS;
114 
115     public static final int RESPONDER = 0x01;
116     public static final int INITIATOR = 0x02;
117     public static final int UT_SYNCHRONIZATION_ANCHOR = 0X04;
118     public static final int UT_ANCHOR = 0X08;
119     public static final int UT_TAG = 0X10;
120     public static final int ADVERTISER = 0X20;
121     public static final int OBSERVER = 0X40;
122     public static final int DT_ANCHOR = 0X80;
123     public static final int DT_TAG = 0X01; // First bit of 2nd byte of Device Role
124 
125     public static final int OWR_UL_TDOA = 0x01;
126     public static final int SS_TWR_DEFERRED = 0x02;
127     public static final int DS_TWR_DEFERRED = 0x04;
128     public static final int SS_TWR_NON_DEFERRED = 0x08;
129     public static final int DS_TWR_NON_DEFERRED = 0x10;
130     public static final int OWR_DL_TDOA = 0x20;
131     public static final int OWR_AOA = 0x40;
132     public static final int ESS_TWR_NON_DEFERRED = 0x80;
133     public static final int ADS_TWR = 0x01; // First bit of 2nd byte of Ranging Method
134 
135     public static final int STATIC_STS = 0x1;
136     public static final int DYNAMIC_STS = 0x2;
137     public static final int DYNAMIC_STS_RESPONDER_SPECIFIC_SUBSESSION_KEY = 0x4;
138     public static final int PROVISIONED_STS = 0x8;
139     public static final int PROVISIONED_STS_RESPONDER_SPECIFIC_SUBSESSION_KEY = 0x10;
140 
141     public static final int UNICAST = 0x1;
142     public static final int ONE_TO_MANY = 0x2;
143     public static final int MANY_TO_MANY = 0x4;
144 
145     public static final int INTERVAL_BASED_SCHEDULING = 0x1;
146     public static final int BLOCK_BASED_SCHEDULING = 0x2;
147 
148     public static final int CONTENTION_BASED_RANGING = 0x1;
149     public static final int TIME_SCHEDULED_RANGING = 0x2;
150 
151     public static final int CONSTRAINT_LENGTH_3 = 0x1;
152     public static final int CONSTRAINT_LENGTH_7 = 0x2;
153 
154     public static final int NO_BLOCK_STRIDING = 0x0;
155     public static final int BLOCK_STRIDING = 0x1;
156 
157     public static final int NO_HOPPING_MODE = 0x0;
158     public static final int HOPPING_MODE = 0x1;
159 
160     public static final int NO_EXTENDED_MAC_ADDRESS = 0x0;
161     public static final int EXTENDED_MAC_ADDRESS = 0x1;
162 
163     public static final int NO_UWB_INITIATION_TIME = 0x0;
164     public static final int UWB_INITIATION_TIME = 0x1;
165 
166     public static final int CHANNEL_5 = 0x1;
167     public static final int CHANNEL_6 = 0x2;
168     public static final int CHANNEL_8 = 0x4;
169     public static final int CHANNEL_9 = 0x8;
170     public static final int CHANNEL_10 = 0x10;
171     public static final int CHANNEL_12 = 0x20;
172     public static final int CHANNEL_13 = 0x40;
173     public static final int CHANNEL_14 = 0x80;
174 
175     public static final int SP0 = 0x1;
176     public static final int SP1 = 0x2;
177     public static final int SP2 = 0x4;
178     public static final int SP3 = 0x8;
179 
180     public static final int CC_CONSTRAINT_LENGTH_K3 = 0x1;
181     public static final int CC_CONSTRAINT_LENGTH_K7 = 0x2;
182 
183     public static final int AOA_AZIMUTH_90 = 0x1;
184     public static final int AOA_AZIMUTH_180 = 0x2;
185     public static final int AOA_ELEVATION = 0x4;
186     public static final int AOA_FOM = 0x8;
187 
188     public static final int NO_EXTENDED_MAC = 0x0;
189     public static final int EXTENDED_MAC = 0x1;
190 
191     public static final int NO_AOA_RESULT_REQ_INTERLEAVING = 0x0;
192     public static final int AOA_RESULT_REQ_INTERLEAVING = 0x1;
193 
194     public static final int NO_RSSI_REPORTING = 0x0;
195     public static final int RSSI_REPORTING = 0x1;
196 
197     public static final int NO_DIAGNOSTICS = 0x0;
198     public static final int DIAGNOSTICS = 0x1;
199 
200     public static final int CCC_CHANNEL_5 = (int) UwbVendorCapabilityTlvValues.CCC_CHANNEL_5;
201     public static final int CCC_CHANNEL_9 = (int) UwbVendorCapabilityTlvValues.CCC_CHANNEL_9;
202 
203     public static final int CCC_CHAPS_PER_SLOT_3 =
204             (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_3;
205     public static final int CCC_CHAPS_PER_SLOT_4 =
206             (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_4;
207     public static final int CCC_CHAPS_PER_SLOT_6 =
208             (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_6;
209     public static final int CCC_CHAPS_PER_SLOT_8 =
210             (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_8;
211     public static final int CCC_CHAPS_PER_SLOT_9 =
212             (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_9;
213     public static final int CCC_CHAPS_PER_SLOT_12 =
214             (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_12;
215     public static final int CCC_CHAPS_PER_SLOT_24 =
216             (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_24;
217 
218     public static final int CCC_HOPPING_CONFIG_MODE_NONE =
219             (int) UwbVendorCapabilityTlvValues.HOPPING_CONFIG_MODE_NONE;
220     public static final int CCC_HOPPING_CONFIG_MODE_CONTINUOUS =
221             (int) UwbVendorCapabilityTlvValues.HOPPING_CONFIG_MODE_CONTINUOUS;
222     public static final int CCC_HOPPING_CONFIG_MODE_ADAPTIVE =
223             (int) UwbVendorCapabilityTlvValues.HOPPING_CONFIG_MODE_ADAPTIVE;
224 
225     public static final int CCC_HOPPING_SEQUENCE_AES =
226             (int) UwbVendorCapabilityTlvValues.HOPPING_SEQUENCE_AES;
227     public static final int CCC_HOPPING_SEQUENCE_DEFAULT =
228             (int) UwbVendorCapabilityTlvValues.HOPPING_SEQUENCE_DEFAULT;
229 
230     public static final int SUPPORTED_POWER_STATS_QUERY =
231             UwbVendorCapabilityTlvTypes.SUPPORTED_POWER_STATS_QUERY;
232 
233     public static final int RANGE_DATA_NTF_CONFIG_ENABLE = 1 << 0;
234     public static final int RANGE_DATA_NTF_CONFIG_DISABLE = 1 << 1;
235     public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_LEVEL_TRIG = 1 << 2;
236     public static final int RANGE_DATA_NTF_CONFIG_ENABLE_AOA_LEVEL_TRIG = 1 << 3;
237     public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_AOA_LEVEL_TRIG = 1 << 4;
238     public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_EDGE_TRIG = 1 << 5;
239     public static final int RANGE_DATA_NTF_CONFIG_ENABLE_AOA_EDGE_TRIG = 1 << 6;
240     public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_AOA_EDGE_TRIG = 1 << 7;
241 }
242