[Bluez,v2] doc: Add Suspend and Resume events
diff mbox series

Message ID 20200714125120.Bluez.v2.1.I9181af521cf0fba8f4315c9b89975848d437d6dd@changeid
State Superseded
Headers show
Series
  • [Bluez,v2] doc: Add Suspend and Resume events
Related show

Commit Message

Abhishek Pandit-Subedi July 14, 2020, 7:51 p.m. UTC
Add Controller Suspend Event and Controller Resume Event to identify
suspend or resume of the Bluetooth stack has occurred.

Also update Device Disconnected Event to indicate a new disconnect
reason: "Connection terminated by local host for suspend"

Reviewed-by: Alain Michaud <alainm@chromium.org>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
---

Changes in v2:
- Moved Wake_Reason to first value
- Reduced Wake_Reason to not Bluetooth, unexpected event and remote wake

 doc/mgmt-api.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

Comments

Abhishek Pandit-Subedi July 22, 2020, 3:18 a.m. UTC | #1
Hi Marcel,

Please take a look at this v2 patch.

Thanks
Abhishek

On Tue, Jul 14, 2020 at 12:51 PM Abhishek Pandit-Subedi
<abhishekpandit@chromium.org> wrote:
>
> Add Controller Suspend Event and Controller Resume Event to identify
> suspend or resume of the Bluetooth stack has occurred.
>
> Also update Device Disconnected Event to indicate a new disconnect
> reason: "Connection terminated by local host for suspend"
>
> Reviewed-by: Alain Michaud <alainm@chromium.org>
> Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
> ---
>
> Changes in v2:
> - Moved Wake_Reason to first value
> - Reduced Wake_Reason to not Bluetooth, unexpected event and remote wake
>
>  doc/mgmt-api.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 48 insertions(+)
>
> diff --git a/doc/mgmt-api.txt b/doc/mgmt-api.txt
> index ca0d38469..e7a713824 100644
> --- a/doc/mgmt-api.txt
> +++ b/doc/mgmt-api.txt
> @@ -3834,6 +3834,7 @@ Device Disconnected Event
>                 2       Connection terminated by local host
>                 3       Connection terminated by remote host
>                 4       Connection terminated due to authentication failure
> +               5       Connection terminated by local host for suspend
>
>         Note that the local/remote distinction just determines which side
>         terminated the low-level connection, regardless of the
> @@ -4577,3 +4578,50 @@ Advertisement Monitor Removed Event
>
>         The event will only be sent to management sockets other than the
>         one through which the command was sent.
> +
> +
> +Controller Suspend Event
> +========================
> +
> +       Event code:             0x002d
> +       Controller Index:       <controller_id>
> +       Event Parameters:       Suspend_State (1 octet)
> +
> +       This event indicates that the controller is suspended for host suspend.
> +
> +       Possible values for the Suspend_State parameter:
> +               0       Running (not disconnected)
> +               1       Disconnected and not scanning
> +               2       Page scanning and/or passive scanning.
> +
> +       The value 0 is used for the running state and may be sent if the
> +       controller could not be configured to suspend properly.
> +
> +       This event will be sent to all management sockets.
> +
> +
> +Controller Resume Event
> +=======================
> +
> +       Event code:             0x002e
> +       Controller Index:       <controller_id>
> +       Event Parameters:       Wake_Reason (1 octet)
> +                               Address (6 octets)
> +                               Address_Type (1 octet)
> +
> +       This event indicates that the controller has resumed from suspend.
> +
> +       Possible values for the Wake_Reason parameter:
> +               0       Resume from non-Bluetooth wake source
> +               1       Wake due to unexpected event
> +               2       Remote wake due to peer device connection
> +
> +       Currently, we expect that only peer reconnections should wake us from
> +       the suspended state. Any other events that occurred while the system
> +       should have been suspended results in wake due to unexpected event.
> +
> +       If the Wake_Reason is Remote wake due to connection, the address of the
> +       peer device that caused the event will be shared in Address and
> +       Address_Type. Otherwise, Address and Address_Type will both be zero.
> +
> +       This event will be sent to all management sockets.
> --
> 2.27.0.389.gc38d7665816-goog
>
Marcel Holtmann July 28, 2020, 7:16 a.m. UTC | #2
Hi Abhishek,

> Add Controller Suspend Event and Controller Resume Event to identify
> suspend or resume of the Bluetooth stack has occurred.
> 
> Also update Device Disconnected Event to indicate a new disconnect
> reason: "Connection terminated by local host for suspend"
> 
> Reviewed-by: Alain Michaud <alainm@chromium.org>
> Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
> ---
> 
> Changes in v2:
> - Moved Wake_Reason to first value
> - Reduced Wake_Reason to not Bluetooth, unexpected event and remote wake
> 
> doc/mgmt-api.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 48 insertions(+)
> 
> diff --git a/doc/mgmt-api.txt b/doc/mgmt-api.txt
> index ca0d38469..e7a713824 100644
> --- a/doc/mgmt-api.txt
> +++ b/doc/mgmt-api.txt
> @@ -3834,6 +3834,7 @@ Device Disconnected Event
> 		2	Connection terminated by local host
> 		3	Connection terminated by remote host
> 		4	Connection terminated due to authentication failure
> +		5	Connection terminated by local host for suspend
> 
> 	Note that the local/remote distinction just determines which side
> 	terminated the low-level connection, regardless of the
> @@ -4577,3 +4578,50 @@ Advertisement Monitor Removed Event
> 
> 	The event will only be sent to management sockets other than the
> 	one through which the command was sent.
> +
> +
> +Controller Suspend Event
> +========================
> +
> +	Event code:		0x002d
> +	Controller Index:	<controller_id>
> +	Event Parameters:	Suspend_State (1 octet)
> +
> +	This event indicates that the controller is suspended for host suspend.
> +
> +	Possible values for the Suspend_State parameter:
> +		0	Running (not disconnected)
> +		1	Disconnected and not scanning
> +		2	Page scanning and/or passive scanning.
> +
> +	The value 0 is used for the running state and may be sent if the
> +	controller could not be configured to suspend properly.
> +
> +	This event will be sent to all management sockets.
> +
> +
> +Controller Resume Event
> +=======================
> +
> +	Event code:		0x002e
> +	Controller Index:	<controller_id>
> +	Event Parameters:	Wake_Reason (1 octet)
> +				Address (6 octets)
> +				Address_Type (1 octet)
> +
> +	This event indicates that the controller has resumed from suspend.
> +
> +	Possible values for the Wake_Reason parameter:
> +		0	Resume from non-Bluetooth wake source
> +		1	Wake due to unexpected event
> +		2	Remote wake due to peer device connection
> +
> +	Currently, we expect that only peer reconnections should wake us from
> +	the suspended state. Any other events that occurred while the system
> +	should have been suspended results in wake due to unexpected event.
> +
> +	If the Wake_Reason is Remote wake due to connection, the address of the
> +	peer device that caused the event will be shared in Address and
> +	Address_Type. Otherwise, Address and Address_Type will both be zero.
> +
> +	This event will be sent to all management sockets.

so far so good. I am going to have second look once you have RFC implementation to review.

Regards

Marcel

Patch
diff mbox series

diff --git a/doc/mgmt-api.txt b/doc/mgmt-api.txt
index ca0d38469..e7a713824 100644
--- a/doc/mgmt-api.txt
+++ b/doc/mgmt-api.txt
@@ -3834,6 +3834,7 @@  Device Disconnected Event
 		2	Connection terminated by local host
 		3	Connection terminated by remote host
 		4	Connection terminated due to authentication failure
+		5	Connection terminated by local host for suspend
 
 	Note that the local/remote distinction just determines which side
 	terminated the low-level connection, regardless of the
@@ -4577,3 +4578,50 @@  Advertisement Monitor Removed Event
 
 	The event will only be sent to management sockets other than the
 	one through which the command was sent.
+
+
+Controller Suspend Event
+========================
+
+	Event code:		0x002d
+	Controller Index:	<controller_id>
+	Event Parameters:	Suspend_State (1 octet)
+
+	This event indicates that the controller is suspended for host suspend.
+
+	Possible values for the Suspend_State parameter:
+		0	Running (not disconnected)
+		1	Disconnected and not scanning
+		2	Page scanning and/or passive scanning.
+
+	The value 0 is used for the running state and may be sent if the
+	controller could not be configured to suspend properly.
+
+	This event will be sent to all management sockets.
+
+
+Controller Resume Event
+=======================
+
+	Event code:		0x002e
+	Controller Index:	<controller_id>
+	Event Parameters:	Wake_Reason (1 octet)
+				Address (6 octets)
+				Address_Type (1 octet)
+
+	This event indicates that the controller has resumed from suspend.
+
+	Possible values for the Wake_Reason parameter:
+		0	Resume from non-Bluetooth wake source
+		1	Wake due to unexpected event
+		2	Remote wake due to peer device connection
+
+	Currently, we expect that only peer reconnections should wake us from
+	the suspended state. Any other events that occurred while the system
+	should have been suspended results in wake due to unexpected event.
+
+	If the Wake_Reason is Remote wake due to connection, the address of the
+	peer device that caused the event will be shared in Address and
+	Address_Type. Otherwise, Address and Address_Type will both be zero.
+
+	This event will be sent to all management sockets.