blob: b9b4841dd004487fd8b404130bee5528dfab9489 [file] [log] [blame]
syntax = "proto3";
package bluetooth.l2cap.le;
import "google/protobuf/empty.proto";
import "facade/common.proto";
service L2capLeModuleFacade {
rpc FetchL2capData(google.protobuf.Empty) returns (stream L2capPacket) {}
// Initiate a credit based connection request and block until response is received for up to some timeout (2s)
rpc OpenDynamicChannel(OpenDynamicChannelRequest) returns (OpenDynamicChannelResponse) {}
rpc CloseDynamicChannel(CloseDynamicChannelRequest) returns (google.protobuf.Empty) {}
rpc SetDynamicChannel(SetEnableDynamicChannelRequest) returns (google.protobuf.Empty) {}
rpc SendDynamicChannelPacket(DynamicChannelPacket) returns (google.protobuf.Empty) {}
rpc SetFixedChannel(SetEnableFixedChannelRequest) returns (google.protobuf.Empty) {}
rpc SendFixedChannelPacket(FixedChannelPacket) returns (google.protobuf.Empty) {}
rpc SendConnectionParameterUpdate(ConnectionParameter) returns (google.protobuf.Empty) {}
}
message L2capPacket {
oneof channel_type {
uint32 psm = 1;
uint32 fixed_cid = 2;
}
bytes payload = 3;
}
message DynamicChannelOpenEvent {
uint32 psm = 1;
uint32 connection_response_result = 2;
}
message OpenDynamicChannelRequest {
facade.BluetoothAddressWithType remote = 1;
uint32 psm = 2;
}
message OpenDynamicChannelResponse {
uint32 status = 1;
}
message CloseDynamicChannelRequest {
facade.BluetoothAddressWithType remote = 1;
uint32 psm = 2;
}
enum SecurityLevel {
NO_SECURITY = 0;
UNAUTHENTICATED_PAIRING_WITH_ENCRYPTION = 1;
AUTHENTICATED_PAIRING_WITH_ENCRYPTION = 2;
AUTHENTICATED_PAIRING_WITH_128_BIT_KEY = 3;
AUTHORIZATION = 4;
}
message SetEnableDynamicChannelRequest {
uint32 psm = 1;
bool enable = 2;
SecurityLevel security_level = 3;
}
message DynamicChannelPacket {
facade.BluetoothAddressWithType remote = 1;
uint32 psm = 2;
bytes payload = 3;
}
message SetEnableFixedChannelRequest {
uint32 cid = 1;
bool enable = 2;
}
message FixedChannelPacket {
facade.BluetoothAddressWithType remote = 1;
uint32 cid = 2;
bytes payload = 3;
}
message ConnectionParameter {
uint32 conn_interval_min = 2;
uint32 conn_interval_max = 3;
uint32 conn_latency = 4;
uint32 supervision_timeout = 5;
uint32 min_ce_length = 6;
uint32 max_ce_length = 7;
}