xref: /aosp_15_r20/tools/netsim/proto/netsim/hci_packet.proto (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker// Copyright (C) 2021 The Android Open Source Project
2*cf78ab8cSAndroid Build Coastguard Worker//
3*cf78ab8cSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*cf78ab8cSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*cf78ab8cSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*cf78ab8cSAndroid Build Coastguard Worker//
7*cf78ab8cSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0
8*cf78ab8cSAndroid Build Coastguard Worker//
9*cf78ab8cSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*cf78ab8cSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*cf78ab8cSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*cf78ab8cSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*cf78ab8cSAndroid Build Coastguard Worker// limitations under the License.
14*cf78ab8cSAndroid Build Coastguard Workersyntax = "proto3";
15*cf78ab8cSAndroid Build Coastguard Worker
16*cf78ab8cSAndroid Build Coastguard Workerpackage netsim.packet;
17*cf78ab8cSAndroid Build Coastguard Worker
18*cf78ab8cSAndroid Build Coastguard Workeroption java_multiple_files = true;
19*cf78ab8cSAndroid Build Coastguard Workeroption java_package = "com.android.emulation.bluetooth";
20*cf78ab8cSAndroid Build Coastguard Workeroption csharp_namespace = "Android.Emulation.Bluetooth";
21*cf78ab8cSAndroid Build Coastguard Workeroption objc_class_prefix = "AEB";
22*cf78ab8cSAndroid Build Coastguard Workeroption cc_enable_arenas = true;
23*cf78ab8cSAndroid Build Coastguard Worker
24*cf78ab8cSAndroid Build Coastguard Worker// A packet that is exchanged between the bluetooth chip and higher layers.
25*cf78ab8cSAndroid Build Coastguard Workermessage HCIPacket {
26*cf78ab8cSAndroid Build Coastguard Worker  enum PacketType {
27*cf78ab8cSAndroid Build Coastguard Worker    // The packet is unspecified, and contains raw bytes.
28*cf78ab8cSAndroid Build Coastguard Worker    // This is mainly here to protect against compatibility issues that can
29*cf78ab8cSAndroid Build Coastguard Worker    // arise if new enum fields are ever introduced.
30*cf78ab8cSAndroid Build Coastguard Worker    // See: https://developers.google.com/protocol-buffers/docs/style#enums
31*cf78ab8cSAndroid Build Coastguard Worker    HCI_PACKET_UNSPECIFIED = 0;
32*cf78ab8cSAndroid Build Coastguard Worker
33*cf78ab8cSAndroid Build Coastguard Worker    // HCI Command Packets: commands are issued by the HCI Driver to the
34*cf78ab8cSAndroid Build Coastguard Worker    // Host Controller:
35*cf78ab8cSAndroid Build Coastguard Worker    COMMAND = 1;
36*cf78ab8cSAndroid Build Coastguard Worker
37*cf78ab8cSAndroid Build Coastguard Worker    // ACL (asynchronous connectionless) packet.
38*cf78ab8cSAndroid Build Coastguard Worker    ACL = 2;
39*cf78ab8cSAndroid Build Coastguard Worker
40*cf78ab8cSAndroid Build Coastguard Worker    // SCO (synchronous connection orientated) packet.
41*cf78ab8cSAndroid Build Coastguard Worker    SCO = 3;
42*cf78ab8cSAndroid Build Coastguard Worker
43*cf78ab8cSAndroid Build Coastguard Worker    // HCI Event Packets.
44*cf78ab8cSAndroid Build Coastguard Worker    EVENT = 4;
45*cf78ab8cSAndroid Build Coastguard Worker
46*cf78ab8cSAndroid Build Coastguard Worker    // Isochronous Channel, a data transmissions that are time-sensitive
47*cf78ab8cSAndroid Build Coastguard Worker    // and synchronized rendering of these data streams across multiple
48*cf78ab8cSAndroid Build Coastguard Worker    // receivers. See
49*cf78ab8cSAndroid Build Coastguard Worker    // https://www.novelbits.io/bluetooth-version-5-2-le-audio/ for an
50*cf78ab8cSAndroid Build Coastguard Worker    // overview of ISO channels.
51*cf78ab8cSAndroid Build Coastguard Worker    ISO = 5;
52*cf78ab8cSAndroid Build Coastguard Worker  }
53*cf78ab8cSAndroid Build Coastguard Worker
54*cf78ab8cSAndroid Build Coastguard Worker  // Indicates the type of packet contained in the packet bytes.
55*cf78ab8cSAndroid Build Coastguard Worker  PacketType packet_type = 1;
56*cf78ab8cSAndroid Build Coastguard Worker
57*cf78ab8cSAndroid Build Coastguard Worker  // The actual data that was transferred.
58*cf78ab8cSAndroid Build Coastguard Worker  bytes packet = 2;
59*cf78ab8cSAndroid Build Coastguard Worker}