xref: /aosp_15_r20/system/nfc/tools/casimir/src/nci_packets.pdl (revision 7eba2f3b06c51ae21384f6a4f14577b668a869b3)
1*7eba2f3bSAndroid Build Coastguard Workerlittle_endian_packets
2*7eba2f3bSAndroid Build Coastguard Worker
3*7eba2f3bSAndroid Build Coastguard Worker/// Packet specification for [NCI] NFC Controller Interface Technical
4*7eba2f3bSAndroid Build Coastguard Worker/// Specification Version 2.2
5*7eba2f3bSAndroid Build Coastguard Worker
6*7eba2f3bSAndroid Build Coastguard Workerenum PacketBoundaryFlag : 1 {
7*7eba2f3bSAndroid Build Coastguard Worker  COMPLETE_OR_FINAL = 0,
8*7eba2f3bSAndroid Build Coastguard Worker  INCOMPLETE = 1,
9*7eba2f3bSAndroid Build Coastguard Worker}
10*7eba2f3bSAndroid Build Coastguard Worker
11*7eba2f3bSAndroid Build Coastguard Workerenum MessageType : 3 {
12*7eba2f3bSAndroid Build Coastguard Worker  DATA = 0,
13*7eba2f3bSAndroid Build Coastguard Worker  COMMAND = 1,
14*7eba2f3bSAndroid Build Coastguard Worker  RESPONSE = 2,
15*7eba2f3bSAndroid Build Coastguard Worker  NOTIFICATION = 3,
16*7eba2f3bSAndroid Build Coastguard Worker}
17*7eba2f3bSAndroid Build Coastguard Worker
18*7eba2f3bSAndroid Build Coastguard Workerenum GroupId : 4 {
19*7eba2f3bSAndroid Build Coastguard Worker  CORE = 0x0,
20*7eba2f3bSAndroid Build Coastguard Worker  RF_MANAGEMENT = 0x1,
21*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_MANAGEMENT = 0x2,
22*7eba2f3bSAndroid Build Coastguard Worker  NFCC_MANAGEMENT = 0x3,
23*7eba2f3bSAndroid Build Coastguard Worker  TEST_MANAGEMENT = 0x4,
24*7eba2f3bSAndroid Build Coastguard Worker  PROPRIETARY = 0xF,
25*7eba2f3bSAndroid Build Coastguard Worker}
26*7eba2f3bSAndroid Build Coastguard Worker
27*7eba2f3bSAndroid Build Coastguard Workerenum CoreOpcodeId : 6 {
28*7eba2f3bSAndroid Build Coastguard Worker  RESET = 0x0,
29*7eba2f3bSAndroid Build Coastguard Worker  INIT = 0x1,
30*7eba2f3bSAndroid Build Coastguard Worker  SET_CONFIG = 0x2,
31*7eba2f3bSAndroid Build Coastguard Worker  GET_CONFIG = 0x3,
32*7eba2f3bSAndroid Build Coastguard Worker  CONN_CREATE = 0x4,
33*7eba2f3bSAndroid Build Coastguard Worker  CONN_CLOSE = 0x5,
34*7eba2f3bSAndroid Build Coastguard Worker  CONN_CREDITS = 0x6,
35*7eba2f3bSAndroid Build Coastguard Worker  GENERIC_ERROR = 0x7,
36*7eba2f3bSAndroid Build Coastguard Worker  INTERFACE_ERROR = 0x8,
37*7eba2f3bSAndroid Build Coastguard Worker  SET_POWER_SUB_STATE = 0x9,
38*7eba2f3bSAndroid Build Coastguard Worker  RFU = 0xa..0x3f,
39*7eba2f3bSAndroid Build Coastguard Worker}
40*7eba2f3bSAndroid Build Coastguard Worker
41*7eba2f3bSAndroid Build Coastguard Workerenum RfOpcodeId : 6 {
42*7eba2f3bSAndroid Build Coastguard Worker  DISCOVER_MAP = 0x0,
43*7eba2f3bSAndroid Build Coastguard Worker  SET_LISTEN_MODE_ROUTING = 0x1,
44*7eba2f3bSAndroid Build Coastguard Worker  GET_LISTEN_MODE_ROUTING = 0x2,
45*7eba2f3bSAndroid Build Coastguard Worker  DISCOVER = 0x3,
46*7eba2f3bSAndroid Build Coastguard Worker  DISCOVER_SELECT = 0x4,
47*7eba2f3bSAndroid Build Coastguard Worker  INTF_ACTIVATED = 0x5,
48*7eba2f3bSAndroid Build Coastguard Worker  DEACTIVATE = 0x6,
49*7eba2f3bSAndroid Build Coastguard Worker  FIELD_INFO = 0x7,
50*7eba2f3bSAndroid Build Coastguard Worker  T3T_POLLING = 0x8,
51*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_ACTION = 0x9,
52*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_DISCOVERY_REQ = 0xa,
53*7eba2f3bSAndroid Build Coastguard Worker  PARAMETER_UPDATE = 0xb,
54*7eba2f3bSAndroid Build Coastguard Worker  INTF_EXT_START = 0xc,
55*7eba2f3bSAndroid Build Coastguard Worker  INTF_EXT_STOP = 0xd,
56*7eba2f3bSAndroid Build Coastguard Worker  EXT_AGG_ABORT = 0xe,
57*7eba2f3bSAndroid Build Coastguard Worker  NDEF_ABORT = 0xf,
58*7eba2f3bSAndroid Build Coastguard Worker  ISO_DEP_NAK_PRESENCE = 0x10,
59*7eba2f3bSAndroid Build Coastguard Worker  SET_FORCED_NFCEE_ROUTING_CMD = 0x11,
60*7eba2f3bSAndroid Build Coastguard Worker  RFU = 0x12..0x3f,
61*7eba2f3bSAndroid Build Coastguard Worker}
62*7eba2f3bSAndroid Build Coastguard Worker
63*7eba2f3bSAndroid Build Coastguard Workerenum NfceeOpcodeId : 6 {
64*7eba2f3bSAndroid Build Coastguard Worker  DISCOVER = 0x0,
65*7eba2f3bSAndroid Build Coastguard Worker  MODE_SET = 0x1,
66*7eba2f3bSAndroid Build Coastguard Worker  STATUS = 0x2,
67*7eba2f3bSAndroid Build Coastguard Worker  POWER_AND_LINK_CNTRL = 0x3,
68*7eba2f3bSAndroid Build Coastguard Worker  RFU = 0x4..0x3f,
69*7eba2f3bSAndroid Build Coastguard Worker}
70*7eba2f3bSAndroid Build Coastguard Worker
71*7eba2f3bSAndroid Build Coastguard Workerenum ProprietaryOpcodeId : 6 {
72*7eba2f3bSAndroid Build Coastguard Worker  ANDROID = 0xC,
73*7eba2f3bSAndroid Build Coastguard Worker}
74*7eba2f3bSAndroid Build Coastguard Worker
75*7eba2f3bSAndroid Build Coastguard Workerenum AndroidSubOpcodeId : 8 {
76*7eba2f3bSAndroid Build Coastguard Worker  GET_CAPS = 0x0,
77*7eba2f3bSAndroid Build Coastguard Worker  PASSIVE_OBSERVE_MODE = 0x2,
78*7eba2f3bSAndroid Build Coastguard Worker  POLLING_FRAME = 0x3,
79*7eba2f3bSAndroid Build Coastguard Worker  QUERY_PASSIVE_OBSERVE_MODE = 0x4,
80*7eba2f3bSAndroid Build Coastguard Worker}
81*7eba2f3bSAndroid Build Coastguard Worker
82*7eba2f3bSAndroid Build Coastguard Workerenum Status : 8 {
83*7eba2f3bSAndroid Build Coastguard Worker  OK = 0x00,
84*7eba2f3bSAndroid Build Coastguard Worker  REJECTED = 0x01,
85*7eba2f3bSAndroid Build Coastguard Worker  FAILED = 0x03,
86*7eba2f3bSAndroid Build Coastguard Worker  NOT_INITIALIZED = 0x04,
87*7eba2f3bSAndroid Build Coastguard Worker  SYNTAX_ERROR = 0x05,
88*7eba2f3bSAndroid Build Coastguard Worker  SEMANTIC_ERROR = 0x06,
89*7eba2f3bSAndroid Build Coastguard Worker  INVALID_PARAM = 0x09,
90*7eba2f3bSAndroid Build Coastguard Worker  MESSAGE_SIZE_EXCEEDED = 0x0A,
91*7eba2f3bSAndroid Build Coastguard Worker  OK_1_BIT = 0x11,
92*7eba2f3bSAndroid Build Coastguard Worker  OK_2_BIT = 0x12,
93*7eba2f3bSAndroid Build Coastguard Worker  OK_3_BIT = 0x13,
94*7eba2f3bSAndroid Build Coastguard Worker  OK_4_BIT = 0x14,
95*7eba2f3bSAndroid Build Coastguard Worker  OK_5_BIT = 0x15,
96*7eba2f3bSAndroid Build Coastguard Worker  OK_6_BIT = 0x16,
97*7eba2f3bSAndroid Build Coastguard Worker  OK_7_BIT = 0x17,
98*7eba2f3bSAndroid Build Coastguard Worker  DISCOVERY_ALREADY_STARTED = 0xA0,
99*7eba2f3bSAndroid Build Coastguard Worker  DISCOVERY_TARGET_ACTIVATION_FAILED = 0xA1,
100*7eba2f3bSAndroid Build Coastguard Worker  DISCOVERY_TEAR_DOWN = 0xA2,
101*7eba2f3bSAndroid Build Coastguard Worker  RF_FRAME_CORRUPTED = 0x02,
102*7eba2f3bSAndroid Build Coastguard Worker  RF_TRANSMISSION_EXCEPTION = 0xB0,
103*7eba2f3bSAndroid Build Coastguard Worker  RF_PROTOCOL_EXCEPTION = 0xB1,
104*7eba2f3bSAndroid Build Coastguard Worker  RF_TIMEOUT_EXCEPTION = 0xB2,
105*7eba2f3bSAndroid Build Coastguard Worker  RF_UNEXPECTED_DATA = 0xB3,
106*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_INTERFACE_ACTIVATION_FAILED = 0xC0,
107*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_TRANSMISSION_ERROR = 0xC1,
108*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_PROTOCOL_ERROR = 0xC2,
109*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_TIMEOUT_ERROR = 0xC3,
110*7eba2f3bSAndroid Build Coastguard Worker}
111*7eba2f3bSAndroid Build Coastguard Worker
112*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 4: Conn ID
113*7eba2f3bSAndroid Build Coastguard Workerenum ConnId : 4 {
114*7eba2f3bSAndroid Build Coastguard Worker  STATIC_RF = 0x0,
115*7eba2f3bSAndroid Build Coastguard Worker  STATIC_HCI = 0x1,
116*7eba2f3bSAndroid Build Coastguard Worker  DYNAMIC = 0x2 .. 0xf,
117*7eba2f3bSAndroid Build Coastguard Worker}
118*7eba2f3bSAndroid Build Coastguard Worker
119*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 67: RF Discovery ID
120*7eba2f3bSAndroid Build Coastguard Workerenum RfDiscoveryId : 8 {
121*7eba2f3bSAndroid Build Coastguard Worker  ID = 0x01 .. 0xfe,
122*7eba2f3bSAndroid Build Coastguard Worker  RFU = ..,
123*7eba2f3bSAndroid Build Coastguard Worker}
124*7eba2f3bSAndroid Build Coastguard Worker
125*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 116: NFCEE IDs
126*7eba2f3bSAndroid Build Coastguard Workerenum NfceeId : 8 {
127*7eba2f3bSAndroid Build Coastguard Worker  DH = 0x00,
128*7eba2f3bSAndroid Build Coastguard Worker  HCI_NETWORK = 0x01,
129*7eba2f3bSAndroid Build Coastguard Worker  NFCEE = 0x10 .. 0x7f,
130*7eba2f3bSAndroid Build Coastguard Worker  HCI_NFCEE = 0x80 .. 0xfe,
131*7eba2f3bSAndroid Build Coastguard Worker}
132*7eba2f3bSAndroid Build Coastguard Worker
133*7eba2f3bSAndroid Build Coastguard Worker// Generic format for NCI packet headers.
134*7eba2f3bSAndroid Build Coastguard Worker// The Control and Data packets differ in the reserved fields
135*7eba2f3bSAndroid Build Coastguard Worker// but the framing information is the same.
136*7eba2f3bSAndroid Build Coastguard Workerpacket PacketHeader {
137*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 4,
138*7eba2f3bSAndroid Build Coastguard Worker  pbf : PacketBoundaryFlag,
139*7eba2f3bSAndroid Build Coastguard Worker  mt : MessageType,
140*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 8,
141*7eba2f3bSAndroid Build Coastguard Worker  payload_length : 8,
142*7eba2f3bSAndroid Build Coastguard Worker}
143*7eba2f3bSAndroid Build Coastguard Worker
144*7eba2f3bSAndroid Build Coastguard Worker// Pre-framed NCI control packet. The framing information is ignored
145*7eba2f3bSAndroid Build Coastguard Worker// including the payload length.
146*7eba2f3bSAndroid Build Coastguard Workerpacket ControlPacket {
147*7eba2f3bSAndroid Build Coastguard Worker  gid : GroupId,
148*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 1,
149*7eba2f3bSAndroid Build Coastguard Worker  mt : MessageType,
150*7eba2f3bSAndroid Build Coastguard Worker  _payload_,
151*7eba2f3bSAndroid Build Coastguard Worker}
152*7eba2f3bSAndroid Build Coastguard Worker
153*7eba2f3bSAndroid Build Coastguard Worker// Pre-framed NCI data packet. The framing information is ignored
154*7eba2f3bSAndroid Build Coastguard Worker// including the payload length.
155*7eba2f3bSAndroid Build Coastguard Workerpacket DataPacket {
156*7eba2f3bSAndroid Build Coastguard Worker  conn_id : ConnId,
157*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 1,
158*7eba2f3bSAndroid Build Coastguard Worker  mt : MessageType,
159*7eba2f3bSAndroid Build Coastguard Worker  cr : 2,
160*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 6,
161*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 8,
162*7eba2f3bSAndroid Build Coastguard Worker  _payload_,
163*7eba2f3bSAndroid Build Coastguard Worker}
164*7eba2f3bSAndroid Build Coastguard Worker
165*7eba2f3bSAndroid Build Coastguard Workerpacket CorePacket : ControlPacket (gid = CORE) {
166*7eba2f3bSAndroid Build Coastguard Worker  oid : CoreOpcodeId,
167*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 2,
168*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 8,
169*7eba2f3bSAndroid Build Coastguard Worker  _payload_,
170*7eba2f3bSAndroid Build Coastguard Worker}
171*7eba2f3bSAndroid Build Coastguard Worker
172*7eba2f3bSAndroid Build Coastguard Workerenum ResetType : 8 {
173*7eba2f3bSAndroid Build Coastguard Worker  KEEP_CONFIG = 0,
174*7eba2f3bSAndroid Build Coastguard Worker  RESET_CONFIG = 1,
175*7eba2f3bSAndroid Build Coastguard Worker}
176*7eba2f3bSAndroid Build Coastguard Worker
177*7eba2f3bSAndroid Build Coastguard Workerpacket CoreResetCommand : CorePacket (mt = COMMAND, oid = RESET) {
178*7eba2f3bSAndroid Build Coastguard Worker  reset_type : ResetType
179*7eba2f3bSAndroid Build Coastguard Worker}
180*7eba2f3bSAndroid Build Coastguard Worker
181*7eba2f3bSAndroid Build Coastguard Workerpacket CoreResetResponse : CorePacket (mt = RESPONSE, oid = RESET) {
182*7eba2f3bSAndroid Build Coastguard Worker  status : Status
183*7eba2f3bSAndroid Build Coastguard Worker}
184*7eba2f3bSAndroid Build Coastguard Worker
185*7eba2f3bSAndroid Build Coastguard Workerenum ResetTrigger : 8 {
186*7eba2f3bSAndroid Build Coastguard Worker  UNRECOVERABLE_ERROR = 0,
187*7eba2f3bSAndroid Build Coastguard Worker  POWER_ON = 1,
188*7eba2f3bSAndroid Build Coastguard Worker  RESET_COMMAND = 2,
189*7eba2f3bSAndroid Build Coastguard Worker}
190*7eba2f3bSAndroid Build Coastguard Worker
191*7eba2f3bSAndroid Build Coastguard Workerenum ConfigStatus : 8 {
192*7eba2f3bSAndroid Build Coastguard Worker  CONFIG_KEPT = 0x00,
193*7eba2f3bSAndroid Build Coastguard Worker  CONFIG_RESET = 0x01,
194*7eba2f3bSAndroid Build Coastguard Worker}
195*7eba2f3bSAndroid Build Coastguard Worker
196*7eba2f3bSAndroid Build Coastguard Workerenum NciVersion : 8 {
197*7eba2f3bSAndroid Build Coastguard Worker  VERSION_1_0 = 0x10,
198*7eba2f3bSAndroid Build Coastguard Worker  VERSION_1_1 = 0x11,
199*7eba2f3bSAndroid Build Coastguard Worker  VERSION_2_0 = 0x20,
200*7eba2f3bSAndroid Build Coastguard Worker  VERSION_2_1 = 0x21,
201*7eba2f3bSAndroid Build Coastguard Worker  VERSION_2_2 = 0x22,
202*7eba2f3bSAndroid Build Coastguard Worker}
203*7eba2f3bSAndroid Build Coastguard Worker
204*7eba2f3bSAndroid Build Coastguard Workerpacket CoreResetNotification : CorePacket (mt = NOTIFICATION, oid = RESET) {
205*7eba2f3bSAndroid Build Coastguard Worker  trigger : ResetTrigger,
206*7eba2f3bSAndroid Build Coastguard Worker  config_status : ConfigStatus,
207*7eba2f3bSAndroid Build Coastguard Worker  nci_version : NciVersion,
208*7eba2f3bSAndroid Build Coastguard Worker  manufacturer_id: 8,
209*7eba2f3bSAndroid Build Coastguard Worker  _size_(manufacturer_specific_information) : 8,
210*7eba2f3bSAndroid Build Coastguard Worker  manufacturer_specific_information : 8[],
211*7eba2f3bSAndroid Build Coastguard Worker}
212*7eba2f3bSAndroid Build Coastguard Worker
213*7eba2f3bSAndroid Build Coastguard Workerstruct FeatureEnable {
214*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 16,
215*7eba2f3bSAndroid Build Coastguard Worker}
216*7eba2f3bSAndroid Build Coastguard Worker
217*7eba2f3bSAndroid Build Coastguard Workerpacket CoreInitCommand : CorePacket (mt = COMMAND, oid = INIT) {
218*7eba2f3bSAndroid Build Coastguard Worker  feature_enable : FeatureEnable,
219*7eba2f3bSAndroid Build Coastguard Worker}
220*7eba2f3bSAndroid Build Coastguard Worker
221*7eba2f3bSAndroid Build Coastguard Workerenum FeatureFlag : 1 {
222*7eba2f3bSAndroid Build Coastguard Worker  DISABLED = 0,
223*7eba2f3bSAndroid Build Coastguard Worker  ENABLED = 1,
224*7eba2f3bSAndroid Build Coastguard Worker}
225*7eba2f3bSAndroid Build Coastguard Worker
226*7eba2f3bSAndroid Build Coastguard Workerenum DiscoveryConfigurationMode : 2 {
227*7eba2f3bSAndroid Build Coastguard Worker  DH_ONLY = 0x0,
228*7eba2f3bSAndroid Build Coastguard Worker  DH_AND_NFCEE = 0x1,
229*7eba2f3bSAndroid Build Coastguard Worker}
230*7eba2f3bSAndroid Build Coastguard Worker
231*7eba2f3bSAndroid Build Coastguard Workerstruct NfccFeatures {
232*7eba2f3bSAndroid Build Coastguard Worker  discovery_frequency_configuration : FeatureFlag,
233*7eba2f3bSAndroid Build Coastguard Worker  discovery_configuration_mode : DiscoveryConfigurationMode,
234*7eba2f3bSAndroid Build Coastguard Worker  hci_network_support : FeatureFlag,
235*7eba2f3bSAndroid Build Coastguard Worker  active_communication_mode : FeatureFlag,
236*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 3,
237*7eba2f3bSAndroid Build Coastguard Worker  _reserved_: 1,
238*7eba2f3bSAndroid Build Coastguard Worker  technology_based_routing : FeatureFlag,
239*7eba2f3bSAndroid Build Coastguard Worker  protocol_based_routing : FeatureFlag,
240*7eba2f3bSAndroid Build Coastguard Worker  aid_based_routing : FeatureFlag,
241*7eba2f3bSAndroid Build Coastguard Worker  system_code_based_routing : FeatureFlag,
242*7eba2f3bSAndroid Build Coastguard Worker  apdu_pattern_based_routing : FeatureFlag,
243*7eba2f3bSAndroid Build Coastguard Worker  forced_nfcee_routing : FeatureFlag,
244*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 1,
245*7eba2f3bSAndroid Build Coastguard Worker  battery_off_state : FeatureFlag,
246*7eba2f3bSAndroid Build Coastguard Worker  switched_off_state : FeatureFlag,
247*7eba2f3bSAndroid Build Coastguard Worker  switched_on_substates : FeatureFlag,
248*7eba2f3bSAndroid Build Coastguard Worker  rf_configuration_in_switched_off_state: FeatureFlag,
249*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 4,
250*7eba2f3bSAndroid Build Coastguard Worker  proprietary_capabilities: 8,
251*7eba2f3bSAndroid Build Coastguard Worker}
252*7eba2f3bSAndroid Build Coastguard Worker
253*7eba2f3bSAndroid Build Coastguard Workerenum RfInterfaceType : 8 {
254*7eba2f3bSAndroid Build Coastguard Worker  NFCEE_DIRECT = 0x00,
255*7eba2f3bSAndroid Build Coastguard Worker  FRAME = 0x01,
256*7eba2f3bSAndroid Build Coastguard Worker  ISO_DEP = 0x02,
257*7eba2f3bSAndroid Build Coastguard Worker  NFC_DEP = 0x03,
258*7eba2f3bSAndroid Build Coastguard Worker  NDEF = 0x06,
259*7eba2f3bSAndroid Build Coastguard Worker  PROPRIETARY = 0x80..0xfe,
260*7eba2f3bSAndroid Build Coastguard Worker}
261*7eba2f3bSAndroid Build Coastguard Worker
262*7eba2f3bSAndroid Build Coastguard Workerenum RfInterfaceExtensionType : 8 {
263*7eba2f3bSAndroid Build Coastguard Worker  FRAME_AGGREGATED = 0x00,
264*7eba2f3bSAndroid Build Coastguard Worker  LLCP_SYMMETRY = 0x01,
265*7eba2f3bSAndroid Build Coastguard Worker}
266*7eba2f3bSAndroid Build Coastguard Worker
267*7eba2f3bSAndroid Build Coastguard Workerstruct RfInterface {
268*7eba2f3bSAndroid Build Coastguard Worker  interface : RfInterfaceType,
269*7eba2f3bSAndroid Build Coastguard Worker  _count_(extensions) : 8,
270*7eba2f3bSAndroid Build Coastguard Worker  extensions : RfInterfaceExtensionType[],
271*7eba2f3bSAndroid Build Coastguard Worker}
272*7eba2f3bSAndroid Build Coastguard Worker
273*7eba2f3bSAndroid Build Coastguard Workerpacket CoreInitResponse : CorePacket (mt = RESPONSE, oid = INIT) {
274*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
275*7eba2f3bSAndroid Build Coastguard Worker  nfcc_features : NfccFeatures,
276*7eba2f3bSAndroid Build Coastguard Worker  max_logical_connections : 8,
277*7eba2f3bSAndroid Build Coastguard Worker  max_routing_table_size : 16,
278*7eba2f3bSAndroid Build Coastguard Worker  max_control_packet_payload_size : 8,
279*7eba2f3bSAndroid Build Coastguard Worker  max_data_packet_payload_size : 8,
280*7eba2f3bSAndroid Build Coastguard Worker  number_of_credits : 8,
281*7eba2f3bSAndroid Build Coastguard Worker  max_nfcv_rf_frame_size : 16,
282*7eba2f3bSAndroid Build Coastguard Worker  _count_(supported_rf_interfaces) : 8,
283*7eba2f3bSAndroid Build Coastguard Worker  supported_rf_interfaces: RfInterface[],
284*7eba2f3bSAndroid Build Coastguard Worker}
285*7eba2f3bSAndroid Build Coastguard Worker
286*7eba2f3bSAndroid Build Coastguard Workerenum ConfigParameterId : 8 {
287*7eba2f3bSAndroid Build Coastguard Worker  TOTAL_DURATION = 0x00,
288*7eba2f3bSAndroid Build Coastguard Worker  CON_DISCOVERY_PARAM = 0x02,
289*7eba2f3bSAndroid Build Coastguard Worker  POWER_STATE = 0x03,
290*7eba2f3bSAndroid Build Coastguard Worker  PA_BAIL_OUT = 0x08,
291*7eba2f3bSAndroid Build Coastguard Worker  PA_DEVICES_LIMIT = 0x09,
292*7eba2f3bSAndroid Build Coastguard Worker  PB_AFI = 0x10,
293*7eba2f3bSAndroid Build Coastguard Worker  PB_BAIL_OUT = 0x11,
294*7eba2f3bSAndroid Build Coastguard Worker  PB_ATTRIB_PARAM1 = 0x12,
295*7eba2f3bSAndroid Build Coastguard Worker  PB_SENSB_REQ_PARAM = 0x13,
296*7eba2f3bSAndroid Build Coastguard Worker  PB_DEVICES_LIMIT = 0x14,
297*7eba2f3bSAndroid Build Coastguard Worker  PF_BIT_RATE = 0x18,
298*7eba2f3bSAndroid Build Coastguard Worker  PF_BAIL_OUT = 0x19,
299*7eba2f3bSAndroid Build Coastguard Worker  PF_DEVICES_LIMIT = 0x1A,
300*7eba2f3bSAndroid Build Coastguard Worker  PI_B_H_INFO = 0x20,
301*7eba2f3bSAndroid Build Coastguard Worker  PI_BIT_RATE = 0x21,
302*7eba2f3bSAndroid Build Coastguard Worker  PN_NFC_DEP_PSL = 0x28,
303*7eba2f3bSAndroid Build Coastguard Worker  PN_ATR_REQ_GEN_BYTES = 0x29,
304*7eba2f3bSAndroid Build Coastguard Worker  PN_ATR_REQ_CONFIG = 0x2A,
305*7eba2f3bSAndroid Build Coastguard Worker  PV_DEVICES_LIMIT = 0x2F,
306*7eba2f3bSAndroid Build Coastguard Worker  LA_BIT_FRAME_SDD = 0x30,
307*7eba2f3bSAndroid Build Coastguard Worker  LA_PLATFORM_CONFIG = 0x31,
308*7eba2f3bSAndroid Build Coastguard Worker  LA_SEL_INFO = 0x32,
309*7eba2f3bSAndroid Build Coastguard Worker  LA_NFCID1 = 0x33,
310*7eba2f3bSAndroid Build Coastguard Worker  LB_SENSB_INFO = 0x38,
311*7eba2f3bSAndroid Build Coastguard Worker  LB_NFCID0 = 0x39,
312*7eba2f3bSAndroid Build Coastguard Worker  LB_APPLICATION_DATA = 0x3A,
313*7eba2f3bSAndroid Build Coastguard Worker  LB_SFGI = 0x3B,
314*7eba2f3bSAndroid Build Coastguard Worker  LB_FWI_ADC_FO = 0x3C,
315*7eba2f3bSAndroid Build Coastguard Worker  LB_BIT_RATE = 0x3E,
316*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_1 = 0x40,
317*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_2 = 0x41,
318*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_3 = 0x42,
319*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_4 = 0x43,
320*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_5 = 0x44,
321*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_6 = 0x45,
322*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_7 = 0x46,
323*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_8 = 0x47,
324*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_9 = 0x48,
325*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_10 = 0x49,
326*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_11 = 0x4A,
327*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_12 = 0x4B,
328*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_13 = 0x4C,
329*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_14 = 0x4D,
330*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_15 = 0x4E,
331*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_IDENTIFIERS_16 = 0x4F,
332*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_PMM_DEFAULT = 0x51, // deprecated in 2.2
333*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_MAX = 0x52,
334*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_FLAGS = 0x53,
335*7eba2f3bSAndroid Build Coastguard Worker  LF_T3T_RD_ALLOWED = 0x55,
336*7eba2f3bSAndroid Build Coastguard Worker  LF_PROTOCOL_TYPE = 0x50,
337*7eba2f3bSAndroid Build Coastguard Worker  LI_A_RATS_TB1 = 0x58,
338*7eba2f3bSAndroid Build Coastguard Worker  LI_A_HIST_BY = 0x59,
339*7eba2f3bSAndroid Build Coastguard Worker  LI_B_H_INFO_RESP = 0x5A,
340*7eba2f3bSAndroid Build Coastguard Worker  LI_A_BIT_RATE = 0x5B,
341*7eba2f3bSAndroid Build Coastguard Worker  LI_A_RATS_TC1 = 0x5C,
342*7eba2f3bSAndroid Build Coastguard Worker  LN_WT = 0x60,
343*7eba2f3bSAndroid Build Coastguard Worker  LN_ATR_RES_GEN_BYTES = 0x61,
344*7eba2f3bSAndroid Build Coastguard Worker  LN_ATR_RES_CONFIG = 0x62,
345*7eba2f3bSAndroid Build Coastguard Worker  PACM_BIT_RATE = 0x68,
346*7eba2f3bSAndroid Build Coastguard Worker  RF_FIELD_INFO = 0x80,
347*7eba2f3bSAndroid Build Coastguard Worker  RF_NFCEE_ACTION = 0x81,
348*7eba2f3bSAndroid Build Coastguard Worker  NFCDEP_OP = 0x82,
349*7eba2f3bSAndroid Build Coastguard Worker  LLCP_VERSION = 0x83,
350*7eba2f3bSAndroid Build Coastguard Worker  NFCC_CONFIG_CONTROL = 0x85,
351*7eba2f3bSAndroid Build Coastguard Worker  PROP0 = 0xa0,
352*7eba2f3bSAndroid Build Coastguard Worker  PROP1 = 0xa1,
353*7eba2f3bSAndroid Build Coastguard Worker  PROP2 = 0xa2,
354*7eba2f3bSAndroid Build Coastguard Worker  PROP3 = 0xa3,
355*7eba2f3bSAndroid Build Coastguard Worker  PROP4 = 0xa4,
356*7eba2f3bSAndroid Build Coastguard Worker  PROP5 = 0xa5,
357*7eba2f3bSAndroid Build Coastguard Worker  RFU = ..,
358*7eba2f3bSAndroid Build Coastguard Worker}
359*7eba2f3bSAndroid Build Coastguard Worker
360*7eba2f3bSAndroid Build Coastguard Workerstruct ConfigParameter {
361*7eba2f3bSAndroid Build Coastguard Worker  id : ConfigParameterId,
362*7eba2f3bSAndroid Build Coastguard Worker  _size_(value) : 8,
363*7eba2f3bSAndroid Build Coastguard Worker  value : 8[],
364*7eba2f3bSAndroid Build Coastguard Worker}
365*7eba2f3bSAndroid Build Coastguard Worker
366*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetConfigCommand : CorePacket (mt = COMMAND, oid = SET_CONFIG) {
367*7eba2f3bSAndroid Build Coastguard Worker  _count_(parameters) : 8,
368*7eba2f3bSAndroid Build Coastguard Worker  parameters : ConfigParameter[],
369*7eba2f3bSAndroid Build Coastguard Worker}
370*7eba2f3bSAndroid Build Coastguard Worker
371*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetConfigResponse : CorePacket (mt = RESPONSE, oid = SET_CONFIG) {
372*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
373*7eba2f3bSAndroid Build Coastguard Worker  _count_(parameters) : 8,
374*7eba2f3bSAndroid Build Coastguard Worker  parameters : ConfigParameterId[],
375*7eba2f3bSAndroid Build Coastguard Worker}
376*7eba2f3bSAndroid Build Coastguard Worker
377*7eba2f3bSAndroid Build Coastguard Workerpacket CoreGetConfigCommand : CorePacket (mt = COMMAND, oid = GET_CONFIG) {
378*7eba2f3bSAndroid Build Coastguard Worker  _count_(parameters) : 8,
379*7eba2f3bSAndroid Build Coastguard Worker  parameters : ConfigParameterId[],
380*7eba2f3bSAndroid Build Coastguard Worker}
381*7eba2f3bSAndroid Build Coastguard Worker
382*7eba2f3bSAndroid Build Coastguard Workerpacket CoreGetConfigResponse : CorePacket (mt = RESPONSE, oid = GET_CONFIG) {
383*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
384*7eba2f3bSAndroid Build Coastguard Worker  _count_(parameters) : 8,
385*7eba2f3bSAndroid Build Coastguard Worker  parameters : ConfigParameter[],
386*7eba2f3bSAndroid Build Coastguard Worker}
387*7eba2f3bSAndroid Build Coastguard Worker
388*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 133: RF Protocols
389*7eba2f3bSAndroid Build Coastguard Workerenum RfProtocolType : 8 {
390*7eba2f3bSAndroid Build Coastguard Worker  UNDETERMINED = 0x00,
391*7eba2f3bSAndroid Build Coastguard Worker  T1T = 0x01,
392*7eba2f3bSAndroid Build Coastguard Worker  T2T = 0x02,
393*7eba2f3bSAndroid Build Coastguard Worker  T3T = 0x03,
394*7eba2f3bSAndroid Build Coastguard Worker  ISO_DEP = 0x04,
395*7eba2f3bSAndroid Build Coastguard Worker  NFC_DEP = 0x05,
396*7eba2f3bSAndroid Build Coastguard Worker  T5T = 0x06,
397*7eba2f3bSAndroid Build Coastguard Worker  NDEF = 0x07,
398*7eba2f3bSAndroid Build Coastguard Worker}
399*7eba2f3bSAndroid Build Coastguard Worker
400*7eba2f3bSAndroid Build Coastguard Workerenum NfceeProtocolType : 8 {
401*7eba2f3bSAndroid Build Coastguard Worker  APDU = 0x00,
402*7eba2f3bSAndroid Build Coastguard Worker  RFU = 0x01,
403*7eba2f3bSAndroid Build Coastguard Worker  T3CS = 0x02,
404*7eba2f3bSAndroid Build Coastguard Worker  TRANSPARENT = 0x04,
405*7eba2f3bSAndroid Build Coastguard Worker}
406*7eba2f3bSAndroid Build Coastguard Worker
407*7eba2f3bSAndroid Build Coastguard Workerenum DestinationType : 8 {
408*7eba2f3bSAndroid Build Coastguard Worker  NFCC_LOOPBACK = 0x01,
409*7eba2f3bSAndroid Build Coastguard Worker  REMOTE_NFC_ENDPOINT = 0x02,
410*7eba2f3bSAndroid Build Coastguard Worker  NFCEE = 0x03,
411*7eba2f3bSAndroid Build Coastguard Worker}
412*7eba2f3bSAndroid Build Coastguard Worker
413*7eba2f3bSAndroid Build Coastguard Workerenum DestinationSpecificParameterId : 8 {
414*7eba2f3bSAndroid Build Coastguard Worker  RF_DISCOVERY = 0x00,
415*7eba2f3bSAndroid Build Coastguard Worker  NFCEE = 0x01,
416*7eba2f3bSAndroid Build Coastguard Worker}
417*7eba2f3bSAndroid Build Coastguard Worker
418*7eba2f3bSAndroid Build Coastguard Workerstruct DestinationSpecificParameter {
419*7eba2f3bSAndroid Build Coastguard Worker  id : DestinationSpecificParameterId,
420*7eba2f3bSAndroid Build Coastguard Worker  _size_(value) : 8,
421*7eba2f3bSAndroid Build Coastguard Worker  value : 8[],
422*7eba2f3bSAndroid Build Coastguard Worker}
423*7eba2f3bSAndroid Build Coastguard Worker
424*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCreateCommand : CorePacket (mt = COMMAND, oid = CONN_CREATE) {
425*7eba2f3bSAndroid Build Coastguard Worker  destination_type : DestinationType,
426*7eba2f3bSAndroid Build Coastguard Worker  _count_(parameters) : 8,
427*7eba2f3bSAndroid Build Coastguard Worker  parameters : DestinationSpecificParameter[],
428*7eba2f3bSAndroid Build Coastguard Worker}
429*7eba2f3bSAndroid Build Coastguard Worker
430*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCreateResponse : CorePacket (mt = RESPONSE, oid = CONN_CREATE) {
431*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
432*7eba2f3bSAndroid Build Coastguard Worker  max_data_packet_payload_size : 8,
433*7eba2f3bSAndroid Build Coastguard Worker  initial_number_of_credits : 8,
434*7eba2f3bSAndroid Build Coastguard Worker  conn_id : ConnId,
435*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 4,
436*7eba2f3bSAndroid Build Coastguard Worker}
437*7eba2f3bSAndroid Build Coastguard Worker
438*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCloseCommand : CorePacket (mt = COMMAND, oid = CONN_CLOSE) {
439*7eba2f3bSAndroid Build Coastguard Worker  conn_id : ConnId,
440*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 4,
441*7eba2f3bSAndroid Build Coastguard Worker}
442*7eba2f3bSAndroid Build Coastguard Worker
443*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCloseResponse : CorePacket (mt = RESPONSE, oid = CONN_CLOSE) {
444*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
445*7eba2f3bSAndroid Build Coastguard Worker}
446*7eba2f3bSAndroid Build Coastguard Worker
447*7eba2f3bSAndroid Build Coastguard Workerstruct ConnectionCredits {
448*7eba2f3bSAndroid Build Coastguard Worker  conn_id : ConnId,
449*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 4,
450*7eba2f3bSAndroid Build Coastguard Worker  credits : 8,
451*7eba2f3bSAndroid Build Coastguard Worker}
452*7eba2f3bSAndroid Build Coastguard Worker
453*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCreditsNotification : CorePacket (mt = NOTIFICATION, oid = CONN_CREDITS) {
454*7eba2f3bSAndroid Build Coastguard Worker  _count_(connections) : 8,
455*7eba2f3bSAndroid Build Coastguard Worker  connections : ConnectionCredits[]
456*7eba2f3bSAndroid Build Coastguard Worker}
457*7eba2f3bSAndroid Build Coastguard Worker
458*7eba2f3bSAndroid Build Coastguard Workerenum PowerState : 8 {
459*7eba2f3bSAndroid Build Coastguard Worker  SWITCHED_ON_STATE = 0x00,
460*7eba2f3bSAndroid Build Coastguard Worker  SWITCHED_ON_SUBSTATE_1 = 0x01,
461*7eba2f3bSAndroid Build Coastguard Worker  SWITCHED_ON_SUBSTATE_2 = 0x02,
462*7eba2f3bSAndroid Build Coastguard Worker  SWITCHED_ON_SUBSTATE_3 = 0x03,
463*7eba2f3bSAndroid Build Coastguard Worker}
464*7eba2f3bSAndroid Build Coastguard Worker
465*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetPowerSubStateCommand : CorePacket (mt = COMMAND, oid = SET_POWER_SUB_STATE) {
466*7eba2f3bSAndroid Build Coastguard Worker  power_state : PowerState,
467*7eba2f3bSAndroid Build Coastguard Worker}
468*7eba2f3bSAndroid Build Coastguard Worker
469*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetPowerSubStateResponse : CorePacket (mt = RESPONSE, oid = SET_POWER_SUB_STATE) {
470*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
471*7eba2f3bSAndroid Build Coastguard Worker}
472*7eba2f3bSAndroid Build Coastguard Worker
473*7eba2f3bSAndroid Build Coastguard Workerpacket RfPacket : ControlPacket (gid = RF_MANAGEMENT) {
474*7eba2f3bSAndroid Build Coastguard Worker  oid : RfOpcodeId,
475*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 2,
476*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 8,
477*7eba2f3bSAndroid Build Coastguard Worker  _payload_,
478*7eba2f3bSAndroid Build Coastguard Worker}
479*7eba2f3bSAndroid Build Coastguard Worker
480*7eba2f3bSAndroid Build Coastguard Workerstruct MappingConfigurationMode {
481*7eba2f3bSAndroid Build Coastguard Worker  listen_mode : FeatureFlag,
482*7eba2f3bSAndroid Build Coastguard Worker  poll_mode : FeatureFlag,
483*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 6,
484*7eba2f3bSAndroid Build Coastguard Worker}
485*7eba2f3bSAndroid Build Coastguard Worker
486*7eba2f3bSAndroid Build Coastguard Workerstruct MappingConfiguration {
487*7eba2f3bSAndroid Build Coastguard Worker  rf_protocol : RfProtocolType,
488*7eba2f3bSAndroid Build Coastguard Worker  mode : MappingConfigurationMode,
489*7eba2f3bSAndroid Build Coastguard Worker  rf_interface : RfInterfaceType,
490*7eba2f3bSAndroid Build Coastguard Worker}
491*7eba2f3bSAndroid Build Coastguard Worker
492*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverMapCommand : RfPacket (mt = COMMAND, oid = DISCOVER_MAP) {
493*7eba2f3bSAndroid Build Coastguard Worker  _count_(mapping_configurations) : 8,
494*7eba2f3bSAndroid Build Coastguard Worker  mapping_configurations : MappingConfiguration[],
495*7eba2f3bSAndroid Build Coastguard Worker}
496*7eba2f3bSAndroid Build Coastguard Worker
497*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverMapResponse : RfPacket (mt = RESPONSE, oid = DISCOVER_MAP) {
498*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
499*7eba2f3bSAndroid Build Coastguard Worker}
500*7eba2f3bSAndroid Build Coastguard Worker
501*7eba2f3bSAndroid Build Coastguard Workerenum ListenModeRoutingEntryType : 4 {
502*7eba2f3bSAndroid Build Coastguard Worker  TECHNOLOGY_BASED_ROUTING = 0x0,
503*7eba2f3bSAndroid Build Coastguard Worker  PROTOCOL_BASED_ROUTING = 0x1,
504*7eba2f3bSAndroid Build Coastguard Worker  AID_BASED_ROUTING = 0x2,
505*7eba2f3bSAndroid Build Coastguard Worker  SYSTEM_CODE_BASED_ROUTING = 0x3,
506*7eba2f3bSAndroid Build Coastguard Worker  APDU_PATTERN_BASED_ROUTING = 0x4,
507*7eba2f3bSAndroid Build Coastguard Worker}
508*7eba2f3bSAndroid Build Coastguard Worker
509*7eba2f3bSAndroid Build Coastguard Workerstruct ListenModeRoutingEntry {
510*7eba2f3bSAndroid Build Coastguard Worker  type : ListenModeRoutingEntryType,
511*7eba2f3bSAndroid Build Coastguard Worker  match_longer_aids : FeatureFlag,
512*7eba2f3bSAndroid Build Coastguard Worker  match_shorter_aids : FeatureFlag,
513*7eba2f3bSAndroid Build Coastguard Worker  routing_blocked_for_unsupported_power_modes : FeatureFlag,
514*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 1,
515*7eba2f3bSAndroid Build Coastguard Worker  _size_(value) : 8,
516*7eba2f3bSAndroid Build Coastguard Worker  value : 8[],
517*7eba2f3bSAndroid Build Coastguard Worker}
518*7eba2f3bSAndroid Build Coastguard Worker
519*7eba2f3bSAndroid Build Coastguard Workerpacket RfSetListenModeRoutingCommand : RfPacket (mt = COMMAND, oid = SET_LISTEN_MODE_ROUTING) {
520*7eba2f3bSAndroid Build Coastguard Worker  more_to_follow : 8,
521*7eba2f3bSAndroid Build Coastguard Worker  _count_(routing_entries) : 8,
522*7eba2f3bSAndroid Build Coastguard Worker  routing_entries : ListenModeRoutingEntry[],
523*7eba2f3bSAndroid Build Coastguard Worker}
524*7eba2f3bSAndroid Build Coastguard Worker
525*7eba2f3bSAndroid Build Coastguard Workerpacket RfSetListenModeRoutingResponse : RfPacket (mt = RESPONSE, oid = SET_LISTEN_MODE_ROUTING) {
526*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
527*7eba2f3bSAndroid Build Coastguard Worker}
528*7eba2f3bSAndroid Build Coastguard Worker
529*7eba2f3bSAndroid Build Coastguard Workerpacket RfGetListenModeRoutingCommand : RfPacket (mt = COMMAND, oid = GET_LISTEN_MODE_ROUTING) {
530*7eba2f3bSAndroid Build Coastguard Worker}
531*7eba2f3bSAndroid Build Coastguard Worker
532*7eba2f3bSAndroid Build Coastguard Workerpacket RfGetListenModeRoutingResponse : RfPacket (mt = RESPONSE, oid = GET_LISTEN_MODE_ROUTING) {
533*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
534*7eba2f3bSAndroid Build Coastguard Worker  more_to_follow : 8,
535*7eba2f3bSAndroid Build Coastguard Worker  _count_(routing_entries) : 8,
536*7eba2f3bSAndroid Build Coastguard Worker  routing_entries : ListenModeRoutingEntry[],
537*7eba2f3bSAndroid Build Coastguard Worker}
538*7eba2f3bSAndroid Build Coastguard Worker
539*7eba2f3bSAndroid Build Coastguard Workerenum RfTechnologyAndMode : 8 {
540*7eba2f3bSAndroid Build Coastguard Worker  NFC_A_PASSIVE_POLL_MODE = 0x00,
541*7eba2f3bSAndroid Build Coastguard Worker  NFC_B_PASSIVE_POLL_MODE = 0x01,
542*7eba2f3bSAndroid Build Coastguard Worker  NFC_F_PASSIVE_POLL_MODE = 0x02,
543*7eba2f3bSAndroid Build Coastguard Worker  NFC_ACTIVE_POLL_MODE = 0x03,
544*7eba2f3bSAndroid Build Coastguard Worker  NFC_V_PASSIVE_POLL_MODE = 0x06,
545*7eba2f3bSAndroid Build Coastguard Worker  PROPRIETARY_POLL_MODE = 0x70 .. 0x7f,
546*7eba2f3bSAndroid Build Coastguard Worker  NFC_A_PASSIVE_LISTEN_MODE = 0x80,
547*7eba2f3bSAndroid Build Coastguard Worker  NFC_B_PASSIVE_LISTEN_MODE = 0x81,
548*7eba2f3bSAndroid Build Coastguard Worker  NFC_F_PASSIVE_LISTEN_MODE = 0x82,
549*7eba2f3bSAndroid Build Coastguard Worker  NFC_ACTIVE_LISTEN_MODE = 0x83,
550*7eba2f3bSAndroid Build Coastguard Worker  PROPRIETARY_LISTEN_MODE = 0xf0 .. 0xff,
551*7eba2f3bSAndroid Build Coastguard Worker}
552*7eba2f3bSAndroid Build Coastguard Worker
553*7eba2f3bSAndroid Build Coastguard Workerstruct DiscoverConfiguration {
554*7eba2f3bSAndroid Build Coastguard Worker  technology_and_mode : RfTechnologyAndMode,
555*7eba2f3bSAndroid Build Coastguard Worker  discovery_frequency : 8,
556*7eba2f3bSAndroid Build Coastguard Worker}
557*7eba2f3bSAndroid Build Coastguard Worker
558*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverCommand : RfPacket (mt = COMMAND, oid = DISCOVER) {
559*7eba2f3bSAndroid Build Coastguard Worker  _count_(configurations) : 8,
560*7eba2f3bSAndroid Build Coastguard Worker  configurations : DiscoverConfiguration[],
561*7eba2f3bSAndroid Build Coastguard Worker}
562*7eba2f3bSAndroid Build Coastguard Worker
563*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverResponse : RfPacket (mt = RESPONSE, oid = DISCOVER) {
564*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
565*7eba2f3bSAndroid Build Coastguard Worker}
566*7eba2f3bSAndroid Build Coastguard Worker
567*7eba2f3bSAndroid Build Coastguard Workerenum DiscoverNotificationType : 8 {
568*7eba2f3bSAndroid Build Coastguard Worker  LAST_NOTIFICATION = 0x0,
569*7eba2f3bSAndroid Build Coastguard Worker  OUT_OF_RESOURCES = 0x1,
570*7eba2f3bSAndroid Build Coastguard Worker  MORE_NOTIFICATIONS = 0x2,
571*7eba2f3bSAndroid Build Coastguard Worker}
572*7eba2f3bSAndroid Build Coastguard Worker
573*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverNotification : RfPacket (mt = NOTIFICATION, oid = DISCOVER) {
574*7eba2f3bSAndroid Build Coastguard Worker  rf_discovery_id : RfDiscoveryId,
575*7eba2f3bSAndroid Build Coastguard Worker  rf_protocol : RfProtocolType,
576*7eba2f3bSAndroid Build Coastguard Worker  rf_technology_and_mode : RfTechnologyAndMode,
577*7eba2f3bSAndroid Build Coastguard Worker  _size_(rf_technology_specific_parameters) : 8,
578*7eba2f3bSAndroid Build Coastguard Worker  rf_technology_specific_parameters : 8[],
579*7eba2f3bSAndroid Build Coastguard Worker  notification_type : DiscoverNotificationType,
580*7eba2f3bSAndroid Build Coastguard Worker}
581*7eba2f3bSAndroid Build Coastguard Worker
582*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 68: Specific Parameters for NFC-A Poll Mode
583*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAPollModeTechnologySpecificParameters {
584*7eba2f3bSAndroid Build Coastguard Worker  sens_res : 16,
585*7eba2f3bSAndroid Build Coastguard Worker  _size_(nfcid1) : 8,
586*7eba2f3bSAndroid Build Coastguard Worker  nfcid1 : 8[],
587*7eba2f3bSAndroid Build Coastguard Worker  _fixed_ = 1 : 8,
588*7eba2f3bSAndroid Build Coastguard Worker  sel_res : 8,
589*7eba2f3bSAndroid Build Coastguard Worker  _fixed_ = 0 : 8,
590*7eba2f3bSAndroid Build Coastguard Worker}
591*7eba2f3bSAndroid Build Coastguard Worker
592*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 69: Specific Parameters for NFC-A Listen Mode
593*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAListenModeTechnologySpecificParameters {
594*7eba2f3bSAndroid Build Coastguard Worker}
595*7eba2f3bSAndroid Build Coastguard Worker
596*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 70: Specific Parameters for NFC-B Poll Mode
597*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBPollModeTechnologySpecificParameters {
598*7eba2f3bSAndroid Build Coastguard Worker  _size_(sensb_res) : 8,
599*7eba2f3bSAndroid Build Coastguard Worker  sensb_res : 8[],
600*7eba2f3bSAndroid Build Coastguard Worker}
601*7eba2f3bSAndroid Build Coastguard Worker
602*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 71: Specific Parameters for NFC-B Listen Mode
603*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBListenModeTechnologySpecificParameters {
604*7eba2f3bSAndroid Build Coastguard Worker  sensb_cmd : 8,
605*7eba2f3bSAndroid Build Coastguard Worker}
606*7eba2f3bSAndroid Build Coastguard Worker
607*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 72: Specific Parameters for NFC-F Poll Mode
608*7eba2f3bSAndroid Build Coastguard Workerpacket NfcFPollModeTechnologySpecificParameters {
609*7eba2f3bSAndroid Build Coastguard Worker  bit_rate : 8,
610*7eba2f3bSAndroid Build Coastguard Worker  _size_(sensf_res) : 8,
611*7eba2f3bSAndroid Build Coastguard Worker  sensf_res : 8[],
612*7eba2f3bSAndroid Build Coastguard Worker}
613*7eba2f3bSAndroid Build Coastguard Worker
614*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 73: Specific Parameters for NFC-F Listen Mode
615*7eba2f3bSAndroid Build Coastguard Workerpacket NfcFListenModeTechnologySpecificParameters {
616*7eba2f3bSAndroid Build Coastguard Worker  _size_(local_nfcid2) : 8,
617*7eba2f3bSAndroid Build Coastguard Worker  local_nfcid2 : 8[],
618*7eba2f3bSAndroid Build Coastguard Worker}
619*7eba2f3bSAndroid Build Coastguard Worker
620*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 74: Specific Parameters for NFC-V Poll Mode
621*7eba2f3bSAndroid Build Coastguard Workerpacket NfcVPollModeTechnologySpecificParameters {
622*7eba2f3bSAndroid Build Coastguard Worker  res_flag : 8,
623*7eba2f3bSAndroid Build Coastguard Worker  dsfid : 8,
624*7eba2f3bSAndroid Build Coastguard Worker  uid : 8[8],
625*7eba2f3bSAndroid Build Coastguard Worker}
626*7eba2f3bSAndroid Build Coastguard Worker
627*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 77: Control Messages to select a Discovered Target
628*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverSelectCommand : RfPacket (mt = COMMAND, oid = DISCOVER_SELECT) {
629*7eba2f3bSAndroid Build Coastguard Worker  rf_discovery_id : RfDiscoveryId,
630*7eba2f3bSAndroid Build Coastguard Worker  rf_protocol : RfProtocolType,
631*7eba2f3bSAndroid Build Coastguard Worker  rf_interface : RfInterfaceType,
632*7eba2f3bSAndroid Build Coastguard Worker}
633*7eba2f3bSAndroid Build Coastguard Worker
634*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 77: Control Messages to select a Discovered Target
635*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverSelectResponse : RfPacket (mt = RESPONSE, oid = DISCOVER_SELECT) {
636*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
637*7eba2f3bSAndroid Build Coastguard Worker}
638*7eba2f3bSAndroid Build Coastguard Worker
639*7eba2f3bSAndroid Build Coastguard Workerenum BitRate : 8 {
640*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_106_KBIT_S = 0x00,
641*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_212_KBIT_S = 0x01,
642*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_424_KBIT_S = 0x02,
643*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_848_KBIT_S = 0x03,
644*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_1695_KBIT_S = 0x04,
645*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_3390_KBIT_S = 0x05,
646*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_6780_KBIT_S = 0x06,
647*7eba2f3bSAndroid Build Coastguard Worker  BIT_RATE_26_KBIT_S = 0x20,
648*7eba2f3bSAndroid Build Coastguard Worker}
649*7eba2f3bSAndroid Build Coastguard Worker
650*7eba2f3bSAndroid Build Coastguard Workerpacket RfIntfActivatedNotification : RfPacket (mt = NOTIFICATION, oid = INTF_ACTIVATED) {
651*7eba2f3bSAndroid Build Coastguard Worker  rf_discovery_id : RfDiscoveryId,
652*7eba2f3bSAndroid Build Coastguard Worker  rf_interface : RfInterfaceType,
653*7eba2f3bSAndroid Build Coastguard Worker  rf_protocol : RfProtocolType,
654*7eba2f3bSAndroid Build Coastguard Worker  activation_rf_technology_and_mode : RfTechnologyAndMode,
655*7eba2f3bSAndroid Build Coastguard Worker  max_data_packet_payload_size : 8,
656*7eba2f3bSAndroid Build Coastguard Worker  initial_number_of_credits : 8,
657*7eba2f3bSAndroid Build Coastguard Worker  _size_(rf_technology_specific_parameters) : 8,
658*7eba2f3bSAndroid Build Coastguard Worker  rf_technology_specific_parameters : 8[],
659*7eba2f3bSAndroid Build Coastguard Worker  data_exchange_rf_technology_and_mode : RfTechnologyAndMode,
660*7eba2f3bSAndroid Build Coastguard Worker  data_exchange_transmit_bit_rate : BitRate,
661*7eba2f3bSAndroid Build Coastguard Worker  data_exchange_receive_bit_rate : BitRate,
662*7eba2f3bSAndroid Build Coastguard Worker  _size_(activation_parameters) : 8,
663*7eba2f3bSAndroid Build Coastguard Worker  activation_parameters : 8[],
664*7eba2f3bSAndroid Build Coastguard Worker}
665*7eba2f3bSAndroid Build Coastguard Worker
666*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 95: Activation Parameters for NFC-A/ISO-DEP Poll Mode
667*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAIsoDepPollModeActivationParameters {
668*7eba2f3bSAndroid Build Coastguard Worker  _size_(rats_response) : 8,
669*7eba2f3bSAndroid Build Coastguard Worker  rats_response : 8[],
670*7eba2f3bSAndroid Build Coastguard Worker}
671*7eba2f3bSAndroid Build Coastguard Worker
672*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 96: Activation Parameters for NFC-B/ISO-DEP Poll Mode
673*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBIsoDepPollModeActivationParameters {
674*7eba2f3bSAndroid Build Coastguard Worker  _size_(attrib_response) : 8,
675*7eba2f3bSAndroid Build Coastguard Worker  attrib_response : 8[],
676*7eba2f3bSAndroid Build Coastguard Worker}
677*7eba2f3bSAndroid Build Coastguard Worker
678*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 98: Activation Parameters for NFC-A/ISO-DEP Listen Mode
679*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAIsoDepListenModeActivationParameters {
680*7eba2f3bSAndroid Build Coastguard Worker  param : 8,
681*7eba2f3bSAndroid Build Coastguard Worker}
682*7eba2f3bSAndroid Build Coastguard Worker
683*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 99: Activation Parameters for NFC-B/ISO-DEP Listen Mode
684*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBIsoDepListenModeActivationParameters {
685*7eba2f3bSAndroid Build Coastguard Worker  _size_(attrib_command) : 8,
686*7eba2f3bSAndroid Build Coastguard Worker  attrib_command : 8[],
687*7eba2f3bSAndroid Build Coastguard Worker}
688*7eba2f3bSAndroid Build Coastguard Worker
689*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 102: Activation Parameters for NFC-DEP Poll Mode
690*7eba2f3bSAndroid Build Coastguard Workerpacket NfcDepPollModeActivationParameters {
691*7eba2f3bSAndroid Build Coastguard Worker  _size_(atr_res) : 8,
692*7eba2f3bSAndroid Build Coastguard Worker  atr_res : 8[],
693*7eba2f3bSAndroid Build Coastguard Worker  data_exchange_length_reduction : 8,
694*7eba2f3bSAndroid Build Coastguard Worker}
695*7eba2f3bSAndroid Build Coastguard Worker
696*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 103: Activation Parameters for NFC-DEP Listen Mode
697*7eba2f3bSAndroid Build Coastguard Workerpacket NfcDepListenModeActivationParameters {
698*7eba2f3bSAndroid Build Coastguard Worker  _size_(atr_req) : 8,
699*7eba2f3bSAndroid Build Coastguard Worker  atr_req : 8[],
700*7eba2f3bSAndroid Build Coastguard Worker  data_exchange_length_reduction : 8,
701*7eba2f3bSAndroid Build Coastguard Worker}
702*7eba2f3bSAndroid Build Coastguard Worker
703*7eba2f3bSAndroid Build Coastguard Workerenum DeactivationType : 8 {
704*7eba2f3bSAndroid Build Coastguard Worker  IDLE_MODE = 0x00,
705*7eba2f3bSAndroid Build Coastguard Worker  SLEEP_MODE = 0x01,
706*7eba2f3bSAndroid Build Coastguard Worker  SLEEP_AF_MODE = 0x02,
707*7eba2f3bSAndroid Build Coastguard Worker  DISCOVERY = 0x03,
708*7eba2f3bSAndroid Build Coastguard Worker}
709*7eba2f3bSAndroid Build Coastguard Worker
710*7eba2f3bSAndroid Build Coastguard Workerenum DeactivationReason : 8 {
711*7eba2f3bSAndroid Build Coastguard Worker  DH_REQUEST = 0x00,
712*7eba2f3bSAndroid Build Coastguard Worker  ENDPOINT_REQUEST = 0x01,
713*7eba2f3bSAndroid Build Coastguard Worker  RF_LINK_LOSS = 0x02,
714*7eba2f3bSAndroid Build Coastguard Worker  NFC_B_BAD_AFI = 0x03,
715*7eba2f3bSAndroid Build Coastguard Worker  DH_REQUEST_FAILED = 0x04,
716*7eba2f3bSAndroid Build Coastguard Worker}
717*7eba2f3bSAndroid Build Coastguard Worker
718*7eba2f3bSAndroid Build Coastguard Workerpacket RfDeactivateCommand : RfPacket (mt = COMMAND, oid = DEACTIVATE) {
719*7eba2f3bSAndroid Build Coastguard Worker  deactivation_type : DeactivationType,
720*7eba2f3bSAndroid Build Coastguard Worker}
721*7eba2f3bSAndroid Build Coastguard Worker
722*7eba2f3bSAndroid Build Coastguard Workerpacket RfDeactivateResponse : RfPacket (mt = RESPONSE, oid = DEACTIVATE) {
723*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
724*7eba2f3bSAndroid Build Coastguard Worker}
725*7eba2f3bSAndroid Build Coastguard Worker
726*7eba2f3bSAndroid Build Coastguard Workerpacket RfDeactivateNotification : RfPacket (mt = NOTIFICATION, oid = DEACTIVATE) {
727*7eba2f3bSAndroid Build Coastguard Worker  deactivation_type : DeactivationType,
728*7eba2f3bSAndroid Build Coastguard Worker  deactivation_reason : DeactivationReason,
729*7eba2f3bSAndroid Build Coastguard Worker}
730*7eba2f3bSAndroid Build Coastguard Worker
731*7eba2f3bSAndroid Build Coastguard Workerenum RfFieldStatus : 8 {
732*7eba2f3bSAndroid Build Coastguard Worker  NO_FIELD_DETECTED = 0,
733*7eba2f3bSAndroid Build Coastguard Worker  FIELD_DETECTED = 1,
734*7eba2f3bSAndroid Build Coastguard Worker}
735*7eba2f3bSAndroid Build Coastguard Worker
736*7eba2f3bSAndroid Build Coastguard Workerpacket RfFieldInfoNotification : RfPacket (mt = NOTIFICATION, oid = FIELD_INFO) {
737*7eba2f3bSAndroid Build Coastguard Worker  rf_field_status: RfFieldStatus,
738*7eba2f3bSAndroid Build Coastguard Worker}
739*7eba2f3bSAndroid Build Coastguard Worker
740*7eba2f3bSAndroid Build Coastguard Worker
741*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 85: TLV Coding for RF Discovery Request from NFCEE
742*7eba2f3bSAndroid Build Coastguard Workerenum InformationEntryType : 8 {
743*7eba2f3bSAndroid Build Coastguard Worker  ADD_DISCOVERY_REQUEST = 0x00,
744*7eba2f3bSAndroid Build Coastguard Worker  REMOVE_DISCOVERY_REQUEST = 0x01,
745*7eba2f3bSAndroid Build Coastguard Worker}
746*7eba2f3bSAndroid Build Coastguard Worker
747*7eba2f3bSAndroid Build Coastguard Workerstruct InformationEntry {
748*7eba2f3bSAndroid Build Coastguard Worker  type : InformationEntryType,
749*7eba2f3bSAndroid Build Coastguard Worker  _fixed_ = 3 : 8,
750*7eba2f3bSAndroid Build Coastguard Worker  nfcee_id : NfceeId,
751*7eba2f3bSAndroid Build Coastguard Worker  rf_technology_and_mode : RfTechnologyAndMode,
752*7eba2f3bSAndroid Build Coastguard Worker  rf_protocol : RfProtocolType,
753*7eba2f3bSAndroid Build Coastguard Worker}
754*7eba2f3bSAndroid Build Coastguard Worker
755*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 84: Notification for RF Discovery Request from NFCEE
756*7eba2f3bSAndroid Build Coastguard Workerpacket RfNfceeDiscoveryReqNotification : RfPacket (mt = NOTIFICATION, oid = NFCEE_DISCOVERY_REQ) {
757*7eba2f3bSAndroid Build Coastguard Worker  _count_ (information_entries) : 8,
758*7eba2f3bSAndroid Build Coastguard Worker  information_entries : InformationEntry[],
759*7eba2f3bSAndroid Build Coastguard Worker}
760*7eba2f3bSAndroid Build Coastguard Worker
761*7eba2f3bSAndroid Build Coastguard Workerpacket NfceePacket : ControlPacket (gid = NFCEE_MANAGEMENT) {
762*7eba2f3bSAndroid Build Coastguard Worker  oid : NfceeOpcodeId,
763*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 2,
764*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 8,
765*7eba2f3bSAndroid Build Coastguard Worker  _payload_,
766*7eba2f3bSAndroid Build Coastguard Worker}
767*7eba2f3bSAndroid Build Coastguard Worker
768*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeDiscoverCommand : NfceePacket (mt = COMMAND, oid = DISCOVER) {
769*7eba2f3bSAndroid Build Coastguard Worker}
770*7eba2f3bSAndroid Build Coastguard Worker
771*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeDiscoverResponse : NfceePacket (mt = RESPONSE, oid = DISCOVER) {
772*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
773*7eba2f3bSAndroid Build Coastguard Worker  number_of_nfcees : 8,
774*7eba2f3bSAndroid Build Coastguard Worker}
775*7eba2f3bSAndroid Build Coastguard Worker
776*7eba2f3bSAndroid Build Coastguard Workerenum NfceeStatus : 8 {
777*7eba2f3bSAndroid Build Coastguard Worker  ENABLED = 0x00,
778*7eba2f3bSAndroid Build Coastguard Worker  DISABLED = 0x01,
779*7eba2f3bSAndroid Build Coastguard Worker  UNRESPONSIVE = 0x02,
780*7eba2f3bSAndroid Build Coastguard Worker}
781*7eba2f3bSAndroid Build Coastguard Worker
782*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 118: TLV Coding for NFCEE Discovery
783*7eba2f3bSAndroid Build Coastguard Workerenum NfceeInformationType : 8 {
784*7eba2f3bSAndroid Build Coastguard Worker  HARDWARE_IDENTIFICATION = 0x00,
785*7eba2f3bSAndroid Build Coastguard Worker  ATR_BYTES = 0x01,
786*7eba2f3bSAndroid Build Coastguard Worker  T3T_COMMAND_SET_INTERFACE_SUPPLEMENTARY_INFORMATION = 0x02,
787*7eba2f3bSAndroid Build Coastguard Worker  HOST_ID = 0x03,
788*7eba2f3bSAndroid Build Coastguard Worker  NDEF_STORAGE = 0x04,
789*7eba2f3bSAndroid Build Coastguard Worker}
790*7eba2f3bSAndroid Build Coastguard Worker
791*7eba2f3bSAndroid Build Coastguard Workerstruct NfceeInformation {
792*7eba2f3bSAndroid Build Coastguard Worker  type : NfceeInformationType,
793*7eba2f3bSAndroid Build Coastguard Worker  _size_(value) : 8,
794*7eba2f3bSAndroid Build Coastguard Worker  value : 8[],
795*7eba2f3bSAndroid Build Coastguard Worker}
796*7eba2f3bSAndroid Build Coastguard Worker
797*7eba2f3bSAndroid Build Coastguard Workerenum NfceeSupplyPower : 8 {
798*7eba2f3bSAndroid Build Coastguard Worker  NFCC_HAS_NO_CONTROL = 0x00,
799*7eba2f3bSAndroid Build Coastguard Worker  NFCC_HAS_CONTROL = 0x01,
800*7eba2f3bSAndroid Build Coastguard Worker}
801*7eba2f3bSAndroid Build Coastguard Worker
802*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeDiscoverNotification : NfceePacket (mt = NOTIFICATION, oid = DISCOVER) {
803*7eba2f3bSAndroid Build Coastguard Worker  nfcee_id : NfceeId,
804*7eba2f3bSAndroid Build Coastguard Worker  nfcee_status : NfceeStatus,
805*7eba2f3bSAndroid Build Coastguard Worker  _count_(supported_nfcee_protocols) : 8,
806*7eba2f3bSAndroid Build Coastguard Worker  supported_nfcee_protocols : NfceeProtocolType[],
807*7eba2f3bSAndroid Build Coastguard Worker  _count_(nfcee_information) : 8,
808*7eba2f3bSAndroid Build Coastguard Worker  nfcee_information : NfceeInformation[],
809*7eba2f3bSAndroid Build Coastguard Worker  nfcee_supply_power : NfceeSupplyPower,
810*7eba2f3bSAndroid Build Coastguard Worker}
811*7eba2f3bSAndroid Build Coastguard Worker
812*7eba2f3bSAndroid Build Coastguard Workerenum NfceeMode : 8 {
813*7eba2f3bSAndroid Build Coastguard Worker  DISABLE = 0x00,
814*7eba2f3bSAndroid Build Coastguard Worker  ENABLE = 0x01,
815*7eba2f3bSAndroid Build Coastguard Worker}
816*7eba2f3bSAndroid Build Coastguard Worker
817*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeModeSetCommand : NfceePacket (mt = COMMAND, oid = MODE_SET) {
818*7eba2f3bSAndroid Build Coastguard Worker  nfcee_id : NfceeId,
819*7eba2f3bSAndroid Build Coastguard Worker  nfcee_mode : NfceeMode,
820*7eba2f3bSAndroid Build Coastguard Worker}
821*7eba2f3bSAndroid Build Coastguard Worker
822*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeModeSetResponse : NfceePacket (mt = RESPONSE, oid = MODE_SET) {
823*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
824*7eba2f3bSAndroid Build Coastguard Worker}
825*7eba2f3bSAndroid Build Coastguard Worker
826*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeModeSetNotification : NfceePacket (mt = NOTIFICATION, oid = MODE_SET) {
827*7eba2f3bSAndroid Build Coastguard Worker  status : Status,
828*7eba2f3bSAndroid Build Coastguard Worker}
829*7eba2f3bSAndroid Build Coastguard Worker
830*7eba2f3bSAndroid Build Coastguard Workerpacket ProprietaryPacket : ControlPacket (gid = PROPRIETARY) {
831*7eba2f3bSAndroid Build Coastguard Worker  oid : ProprietaryOpcodeId,
832*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 2,
833*7eba2f3bSAndroid Build Coastguard Worker  _reserved_ : 8,
834*7eba2f3bSAndroid Build Coastguard Worker  _payload_,
835*7eba2f3bSAndroid Build Coastguard Worker}
836*7eba2f3bSAndroid Build Coastguard Worker
837*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPacket : ProprietaryPacket (oid = ANDROID) {
838*7eba2f3bSAndroid Build Coastguard Worker  android_sub_oid: AndroidSubOpcodeId,
839*7eba2f3bSAndroid Build Coastguard Worker  _payload_,
840*7eba2f3bSAndroid Build Coastguard Worker}
841*7eba2f3bSAndroid Build Coastguard Worker
842*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidGetCapsCommand : AndroidPacket (mt = COMMAND, android_sub_oid = GET_CAPS) {
843*7eba2f3bSAndroid Build Coastguard Worker}
844*7eba2f3bSAndroid Build Coastguard Worker
845*7eba2f3bSAndroid Build Coastguard Workerenum CapTlvType: 8 {
846*7eba2f3bSAndroid Build Coastguard Worker  PASSIVE_OBSERVER_MODE = 0x00,
847*7eba2f3bSAndroid Build Coastguard Worker  POLLING_FRAME_NOTIFICATION = 0x01,
848*7eba2f3bSAndroid Build Coastguard Worker  POWER_SAVING_MODE = 0x02,
849*7eba2f3bSAndroid Build Coastguard Worker}
850*7eba2f3bSAndroid Build Coastguard Worker
851*7eba2f3bSAndroid Build Coastguard Workerstruct CapTlv {
852*7eba2f3bSAndroid Build Coastguard Worker  t: CapTlvType,
853*7eba2f3bSAndroid Build Coastguard Worker  _count_(v): 8,
854*7eba2f3bSAndroid Build Coastguard Worker  v: 8[],
855*7eba2f3bSAndroid Build Coastguard Worker}
856*7eba2f3bSAndroid Build Coastguard Worker
857*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidGetCapsResponse : AndroidPacket (mt = RESPONSE, android_sub_oid = GET_CAPS) {
858*7eba2f3bSAndroid Build Coastguard Worker  status: Status,
859*7eba2f3bSAndroid Build Coastguard Worker  android_version: 16,
860*7eba2f3bSAndroid Build Coastguard Worker  _count_(tlvs): 8,
861*7eba2f3bSAndroid Build Coastguard Worker  tlvs: CapTlv[],
862*7eba2f3bSAndroid Build Coastguard Worker}
863*7eba2f3bSAndroid Build Coastguard Worker
864*7eba2f3bSAndroid Build Coastguard Workerenum PassiveObserveMode : 8 {
865*7eba2f3bSAndroid Build Coastguard Worker  DISABLE = 0x0,
866*7eba2f3bSAndroid Build Coastguard Worker  ENABLE = 0x1,
867*7eba2f3bSAndroid Build Coastguard Worker}
868*7eba2f3bSAndroid Build Coastguard Worker
869*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPassiveObserveModeCommand : AndroidPacket(mt = COMMAND, android_sub_oid = PASSIVE_OBSERVE_MODE) {
870*7eba2f3bSAndroid Build Coastguard Worker  passive_observe_mode: PassiveObserveMode,
871*7eba2f3bSAndroid Build Coastguard Worker}
872*7eba2f3bSAndroid Build Coastguard Worker
873*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPassiveObserveModeResponse : AndroidPacket(mt = RESPONSE, android_sub_oid = PASSIVE_OBSERVE_MODE) {
874*7eba2f3bSAndroid Build Coastguard Worker  status: Status,
875*7eba2f3bSAndroid Build Coastguard Worker}
876*7eba2f3bSAndroid Build Coastguard Worker
877*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidQueryPassiveObserveModeCommand : AndroidPacket(mt = COMMAND, android_sub_oid = QUERY_PASSIVE_OBSERVE_MODE) {
878*7eba2f3bSAndroid Build Coastguard Worker}
879*7eba2f3bSAndroid Build Coastguard Worker
880*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidQueryPassiveObserveModeResponse : AndroidPacket(mt = RESPONSE, android_sub_oid = QUERY_PASSIVE_OBSERVE_MODE) {
881*7eba2f3bSAndroid Build Coastguard Worker  status: Status,
882*7eba2f3bSAndroid Build Coastguard Worker  passive_observe_mode: PassiveObserveMode,
883*7eba2f3bSAndroid Build Coastguard Worker}
884*7eba2f3bSAndroid Build Coastguard Worker
885*7eba2f3bSAndroid Build Coastguard Workerenum PollingFrameType : 8 {
886*7eba2f3bSAndroid Build Coastguard Worker  REMOTE_FIELD = 0x0,
887*7eba2f3bSAndroid Build Coastguard Worker  REQA = 0x1,
888*7eba2f3bSAndroid Build Coastguard Worker  REQB = 0x2,
889*7eba2f3bSAndroid Build Coastguard Worker  REQF = 0x3,
890*7eba2f3bSAndroid Build Coastguard Worker  WUPA = 0x4,
891*7eba2f3bSAndroid Build Coastguard Worker  WUPB = 0x5,
892*7eba2f3bSAndroid Build Coastguard Worker  WUPF = 0x6,
893*7eba2f3bSAndroid Build Coastguard Worker  UNKNOWN = 0x7,
894*7eba2f3bSAndroid Build Coastguard Worker  REQV = 0x8,
895*7eba2f3bSAndroid Build Coastguard Worker  WUPV = 0x9,
896*7eba2f3bSAndroid Build Coastguard Worker}
897*7eba2f3bSAndroid Build Coastguard Worker
898*7eba2f3bSAndroid Build Coastguard Workerstruct PollingFrame {
899*7eba2f3bSAndroid Build Coastguard Worker  frame_type: PollingFrameType,
900*7eba2f3bSAndroid Build Coastguard Worker  flags: 8,
901*7eba2f3bSAndroid Build Coastguard Worker  _size_(_payload_): 8,
902*7eba2f3bSAndroid Build Coastguard Worker  // The timestamp is encoded in big-endian byte order,
903*7eba2f3bSAndroid Build Coastguard Worker  // whereas other NCI definitions are little-endian.
904*7eba2f3bSAndroid Build Coastguard Worker  timestamp: 8[4],
905*7eba2f3bSAndroid Build Coastguard Worker  gain: 8,
906*7eba2f3bSAndroid Build Coastguard Worker  _payload_: [+5],
907*7eba2f3bSAndroid Build Coastguard Worker}
908*7eba2f3bSAndroid Build Coastguard Worker
909*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPollingLoopNotification : AndroidPacket(mt = NOTIFICATION, android_sub_oid = POLLING_FRAME) {
910*7eba2f3bSAndroid Build Coastguard Worker  polling_frames: PollingFrame[],
911*7eba2f3bSAndroid Build Coastguard Worker}
912