1syntax = "proto3";
2
3package blueberry.facade.hci;
4
5import "google/protobuf/empty.proto";
6import "blueberry/facade/common.proto";
7
8service LeAclManagerFacade {
9  rpc CreateConnection(CreateConnectionMsg) returns (stream LeConnectionEvent) {}
10  rpc CancelConnection(blueberry.facade.BluetoothAddressWithType) returns (google.protobuf.Empty) {}
11  rpc Disconnect(LeHandleMsg) returns (google.protobuf.Empty) {}
12  rpc ConnectionCommand(LeConnectionCommandMsg) returns (google.protobuf.Empty) {}
13  rpc SendAclData(LeAclData) returns (google.protobuf.Empty) {}
14  rpc FetchAclData(LeHandleMsg) returns (stream LeAclData) {}
15  rpc FetchIncomingConnection(google.protobuf.Empty) returns (stream LeConnectionEvent) {}
16  rpc AddDeviceToResolvingList(IrkMsg) returns (google.protobuf.Empty) {}
17  rpc IsOnBackgroundList(BackgroundRequestMsg) returns (BackgroundResultMsg) {}
18  rpc RemoveFromBackgroundList(BackgroundRequestMsg)
19      returns (google.protobuf.Empty) {}
20}
21
22message LeHandleMsg {
23  uint32 handle = 1;
24}
25
26message LeConnectionEvent {
27  bytes payload = 1;
28}
29
30message LeConnectionCommandMsg {
31  bytes packet = 1;
32}
33
34message LeAclData {
35  uint32 handle = 1;
36  bytes payload = 2;
37}
38
39message CreateConnectionMsg {
40  blueberry.facade.BluetoothAddressWithType peer_address = 1;
41  bool is_direct = 2;
42}
43
44message IrkMsg {
45  blueberry.facade.BluetoothAddressWithType peer = 1;
46  bytes peer_irk = 2;
47  bytes local_irk = 3;
48}
49
50message BackgroundRequestMsg {
51  blueberry.facade.BluetoothAddressWithType peer_address = 1;
52}
53
54message BackgroundResultMsg {
55  bool is_on_background_list = 1;
56}
57