linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH BlueZ v2] mesh: Allow to set-up the CRPL with application
@ 2019-07-02 12:31 Jakub Witowski
  2019-07-02 17:50 ` Gix, Brian
  0 siblings, 1 reply; 2+ messages in thread
From: Jakub Witowski @ 2019-07-02 12:31 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Inga Stotland

This adds an optional CRPL property to org.bluez.mesh.Application1
interface, allowing to indicate the depth of reply protection list.
---
 doc/mesh-api.txt |  4 ++++
 mesh/node.c      | 18 +++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt
index 4e0a8bff1..893a1a6c0 100644
--- a/doc/mesh-api.txt
+++ b/doc/mesh-api.txt
@@ -724,6 +724,10 @@ Properties:
 
 		A 16-bit vendor-assigned product version identifier
 
+	uint16 CRPL [read-only, optional]
+
+		A 16-bit minimum number of replay protection list entries
+
 
 Mesh Element Hierarchy
 ======================
diff --git a/mesh/node.c b/mesh/node.c
index 7383793d9..adc2aa93e 100644
--- a/mesh/node.c
+++ b/mesh/node.c
@@ -1312,10 +1312,6 @@ static bool create_node_config(struct mesh_node *node)
 static void set_defaults(struct mesh_node *node)
 {
 	/* TODO: these values should come from mesh.conf */
-	if (!node->comp)
-		node->comp = l_new(struct node_composition, 1);
-
-	node->comp->crpl = DEFAULT_CRPL;
 	node->lpn = MESH_MODE_UNSUPPORTED;
 	node->proxy = MESH_MODE_UNSUPPORTED;
 	node->friend = MESH_MODE_UNSUPPORTED;
@@ -1338,8 +1334,10 @@ static bool get_app_properties(struct mesh_node *node, const char *path,
 
 	l_debug("path %s", path);
 
-	if (is_new)
+	if (is_new) {
 		node->comp = l_new(struct node_composition, 1);
+		node->comp->crpl = DEFAULT_CRPL;
+	}
 
 	while (l_dbus_message_iter_next_entry(properties, &key, &variant)) {
 
@@ -1372,6 +1370,16 @@ static bool get_app_properties(struct mesh_node *node, const char *path,
 				return false;
 
 			node->comp->vid = value;
+
+		} else if (!strcmp(key, "CRPL")) {
+			if (!l_dbus_message_iter_get_variant(&variant, "q",
+									&value))
+				return false;
+
+			if (!is_new && node->comp->crpl != value)
+				return false;
+
+			node->comp->crpl = value;
 		}
 	}
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH BlueZ v2] mesh: Allow to set-up the CRPL with application
  2019-07-02 12:31 [PATCH BlueZ v2] mesh: Allow to set-up the CRPL with application Jakub Witowski
@ 2019-07-02 17:50 ` Gix, Brian
  0 siblings, 0 replies; 2+ messages in thread
From: Gix, Brian @ 2019-07-02 17:50 UTC (permalink / raw)
  To: jakub.witowski@silvair.com, linux-bluetooth@vger.kernel.org
  Cc: Stotland, Inga

Patch Applied

On Tue, 2019-07-02 at 14:31 +0200, Jakub Witowski wrote:
> This adds an optional CRPL property to org.bluez.mesh.Application1
> interface, allowing to indicate the depth of reply protection list.
> ---
>  doc/mesh-api.txt |  4 ++++
>  mesh/node.c      | 18 +++++++++++++-----
>  2 files changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt
> index 4e0a8bff1..893a1a6c0 100644
> --- a/doc/mesh-api.txt
> +++ b/doc/mesh-api.txt
> @@ -724,6 +724,10 @@ Properties:
>  
>  		A 16-bit vendor-assigned product version identifier
>  
> +	uint16 CRPL [read-only, optional]
> +
> +		A 16-bit minimum number of replay protection list entries
> +
>  
>  Mesh Element Hierarchy
>  ======================
> diff --git a/mesh/node.c b/mesh/node.c
> index 7383793d9..adc2aa93e 100644
> --- a/mesh/node.c
> +++ b/mesh/node.c
> @@ -1312,10 +1312,6 @@ static bool create_node_config(struct mesh_node *node)
>  static void set_defaults(struct mesh_node *node)
>  {
>  	/* TODO: these values should come from mesh.conf */
> -	if (!node->comp)
> -		node->comp = l_new(struct node_composition, 1);
> -
> -	node->comp->crpl = DEFAULT_CRPL;
>  	node->lpn = MESH_MODE_UNSUPPORTED;
>  	node->proxy = MESH_MODE_UNSUPPORTED;
>  	node->friend = MESH_MODE_UNSUPPORTED;
> @@ -1338,8 +1334,10 @@ static bool get_app_properties(struct mesh_node *node, const char *path,
>  
>  	l_debug("path %s", path);
>  
> -	if (is_new)
> +	if (is_new) {
>  		node->comp = l_new(struct node_composition, 1);
> +		node->comp->crpl = DEFAULT_CRPL;
> +	}
>  
>  	while (l_dbus_message_iter_next_entry(properties, &key, &variant)) {
>  
> @@ -1372,6 +1370,16 @@ static bool get_app_properties(struct mesh_node *node, const char *path,
>  				return false;
>  
>  			node->comp->vid = value;
> +
> +		} else if (!strcmp(key, "CRPL")) {
> +			if (!l_dbus_message_iter_get_variant(&variant, "q",
> +									&value))
> +				return false;
> +
> +			if (!is_new && node->comp->crpl != value)
> +				return false;
> +
> +			node->comp->crpl = value;
>  		}
>  	}
>  

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-07-02 17:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-02 12:31 [PATCH BlueZ v2] mesh: Allow to set-up the CRPL with application Jakub Witowski
2019-07-02 17:50 ` Gix, Brian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).