• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1syntax = "proto2";
2
3package rootcanal.configuration;
4option optimize_for = CODE_SIZE;
5
6enum ControllerPreset {
7  // Version 5.3, all features enabled, all quirks disabled.
8  DEFAULT = 0;
9}
10
11message ControllerFeatures {
12  optional bool le_extended_advertising = 1;
13  optional bool le_periodic_advertising = 2;
14  optional bool ll_privacy = 3;
15  optional bool le_2m_phy = 4;
16  optional bool le_coded_phy = 5;
17}
18
19message ControllerQuirks {
20  // Randomly send ACL payloads before the Connection Complete event
21  // is sent to the Host stack.
22  optional bool send_acl_data_before_connection_complete = 1;
23  // Configure a default value for the LE random address.
24  optional bool has_default_random_address = 2;
25  // Send the Role Change event before the Connection Complete event
26  // in the case where a role switch is initiated at connection establishment.
27  optional bool send_role_change_before_connection_complete = 3;
28  // Send an Hardware Error event if any command is called before HCI Reset.
29  optional bool hardware_error_before_reset = 4;
30}
31
32message Controller {
33  // Configure the controller preset. Presets come with a pre-selection
34  // of features and quirks, but these can be overridden with the next fields.
35  optional ControllerPreset preset = 1;
36  // Configure support for controller features.
37  optional ControllerFeatures features = 2;
38  // Enable controller quirks.
39  // Quirks are behaviors observed in real controllers that are not valid
40  // according to the specification.
41  optional ControllerQuirks quirks = 3;
42}
43
44message TcpServer {
45  // Configure the TCP port on which the controller with this defined
46  // configuration will be served.
47  required int32 tcp_port = 1;
48  // Controller configuration for this port.
49  optional Controller configuration = 2;
50}
51
52message Configuration {
53  repeated TcpServer tcp_server = 1;
54}
55