summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorArchie Pusaka <apusaka@chromium.org>2020-12-15 18:10:36 +0800
committerMarcel Holtmann <marcel@holtmann.org>2020-12-21 19:02:22 +0100
commit65231892cdf8a352fbf91e6ca1f96801618c6c17 (patch)
tree71ea14ec6cbb8d4eb0947a048b40c3ebf726d33f /doc
parent07cc7547602149fbec5eee1a353f48663d5e80c4 (diff)
downloadbluez-65231892cdf8a352fbf91e6ca1f96801618c6c17.tar.gz
doc/mgmt-api: Add opcode for adding advertisement monitor with RSSI
This is to leverage the filtering by RSSI feature on those controllers which supports advertisement packet filtering. To avoid changing the existing API and breaking it, a new opcode is required. Reviewed-by: Manish Mandlik <mmandlik@chromium.org> Reviewed-by: Miao-chen Chou <mcchou@chromium.org> Reviewed-by: Yun-Hao Chung <howardchung@google.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/mgmt-api.txt52
1 files changed, 52 insertions, 0 deletions
diff --git a/doc/mgmt-api.txt b/doc/mgmt-api.txt
index 1aa43d6c3..1736ef009 100644
--- a/doc/mgmt-api.txt
+++ b/doc/mgmt-api.txt
@@ -3800,6 +3800,58 @@ Add Extended Advertising Data Command
Busy
+Add Advertisement Patterns Monitor With RSSI Threshold Command
+==============================================================
+
+ Command Code: 0x0056
+ Controller Index: <controller id>
+ Command Parameters: RSSI_Data {
+ High_Threshold (1 Octet)
+ High_Threshold_Timer (2 Octets)
+ Low_Threshold (1 Octet)
+ Low_Threshold_Timer (2 Octets)
+ Sampling_Period (1 Octet)
+ }
+ Pattern_Count (1 Octet)
+ Pattern1 {
+ AD_Type (1 Octet)
+ Offset (1 Octet)
+ Length (1 Octet)
+ Value (31 Octets)
+ }
+ Pattern2 { }
+ ...
+ Return Parameters: Monitor_Handle (2 Octets)
+
+ This command is essentially the same as Add Advertisement Patterns
+ Monitor Command (0x0052), but with an additional RSSI parameters.
+ As such, if the kernel supports advertisement filtering, then the
+ advertisement data will be filtered in accordance with the set
+ RSSI parameters. Otherwise, it would behave exactly the same as the
+ Add Advertisement Patterns Monitor Command.
+
+ Devices would be considered "in-range" if the RSSI of the received adv
+ packets are greater than High_Threshold dBm for High_Threshold_Timer
+ seconds. Similarly, devices would be considered lost if no received
+ adv have RSSI greater than Low_Threshold dBm for Low_Threshold_Timer
+ seconds. Only adv packets of "in-range" device would be propagated.
+
+ The meaning of Sampling_Period is as follows:
+ 0x00 All adv packets from "in-range" devices would be
+ propagated.
+ 0xFF Only the first adv data of "in-range" devices would be
+ propagated. If the device becomes lost, then the first
+ data when it is found again will also be propagated.
+ other Advertisement data would be grouped into 100ms * N
+ time period. Data in the same group will only be
+ reported once, with the RSSI value being averaged out.
+
+ Possible errors: Failed
+ Busy
+ No Resources
+ Invalid Parameters
+
+
Command Complete Event
======================