linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH BlueZ] mesh: Remove unused parameters from internal rx functions
@ 2020-02-27  6:56 Inga Stotland
  2020-03-05 16:04 ` Gix, Brian
  0 siblings, 1 reply; 2+ messages in thread
From: Inga Stotland @ 2020-02-27  6:56 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: brian.gix, Inga Stotland

This removes unused ttl parameter from mesh_model_rx(). The TTL value
is not processed at the access layer, so there is no need to pass it
to a model.
Also, remove "uint32_t dst" parameter from the typedef of
mesh_model_recv_cb: providing a just destination address is sufficient
for internally implemented models (currently, it's only Config Server)
---
 mesh/cfgmod-server.c | 29 ++++++++++++++---------------
 mesh/model.c         | 17 +++++++----------
 mesh/model.h         | 11 +++++------
 mesh/net.c           |  4 ++--
 4 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/mesh/cfgmod-server.c b/mesh/cfgmod-server.c
index 3eb7316fc..a1f682765 100644
--- a/mesh/cfgmod-server.c
+++ b/mesh/cfgmod-server.c
@@ -704,10 +704,9 @@ static void node_reset(struct l_timeout *timeout, void *user_data)
 	node_remove(node);
 }
 
-static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
-				uint16_t app_idx, uint16_t net_idx,
-				const uint8_t *data, uint16_t size,
-				uint8_t ttl, const void *user_data)
+static bool cfg_srv_pkt(uint16_t src, uint16_t dst, uint16_t app_idx,
+				uint16_t net_idx, const uint8_t *data,
+				uint16_t size, const void *user_data)
 {
 	struct mesh_node *node = (struct mesh_node *) user_data;
 	struct mesh_net *net;
@@ -782,7 +781,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
 		if (size != 25 && size != 27)
 			return true;
 
-		config_pub_set(node, net_idx, src, unicast, pkt, 14, size == 27,
+		config_pub_set(node, net_idx, src, dst, pkt, 14, size == 27,
 				!!(opcode & OP_UNRELIABLE));
 		break;
 
@@ -790,26 +789,26 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
 		if (size != 11 && size != 13)
 			return true;
 
-		config_pub_set(node, net_idx, src, unicast, pkt, 0, size == 13,
+		config_pub_set(node, net_idx, src, dst, pkt, 0, size == 13,
 				!!(opcode & OP_UNRELIABLE));
 		break;
 
 	case OP_CONFIG_MODEL_PUB_GET:
-		config_pub_get(node, net_idx, src, unicast, pkt, size);
+		config_pub_get(node, net_idx, src, dst, pkt, size);
 		break;
 
 	case OP_CONFIG_VEND_MODEL_SUB_GET:
 		if (size != 6)
 			return true;
 
-		config_sub_get(node, net_idx, src, unicast, pkt, size);
+		config_sub_get(node, net_idx, src, dst, pkt, size);
 		break;
 
 	case OP_CONFIG_MODEL_SUB_GET:
 		if (size != 4)
 			return true;
 
-		config_sub_get(node, net_idx, src, unicast, pkt, size);
+		config_sub_get(node, net_idx, src, dst, pkt, size);
 		break;
 
 	case OP_CONFIG_MODEL_SUB_VIRT_OVERWRITE:
@@ -821,7 +820,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
 	case OP_CONFIG_MODEL_SUB_DELETE:
 	case OP_CONFIG_MODEL_SUB_ADD:
 	case OP_CONFIG_MODEL_SUB_DELETE_ALL:
-		config_sub_set(node, net_idx, src, unicast, pkt, size, virt,
+		config_sub_set(node, net_idx, src, dst, pkt, size, virt,
 									opcode);
 		break;
 
@@ -1087,20 +1086,20 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
 
 	case OP_MODEL_APP_BIND:
 	case OP_MODEL_APP_UNBIND:
-		model_app_bind(node, net_idx, src, unicast, pkt, size,
+		model_app_bind(node, net_idx, src, dst, pkt, size,
 				opcode != OP_MODEL_APP_BIND);
 		break;
 
 	case OP_VEND_MODEL_APP_GET:
 		if (size != 6)
 			return true;
-		model_app_list(node, net_idx, src, unicast, pkt, size);
+		model_app_list(node, net_idx, src, dst, pkt, size);
 		break;
 
 	case OP_MODEL_APP_GET:
 		if (size != 4)
 			return true;
-		model_app_list(node, net_idx, src, unicast, pkt, size);
+		model_app_list(node, net_idx, src, dst, pkt, size);
 		break;
 
 	case OP_CONFIG_HEARTBEAT_PUB_SET:
@@ -1225,7 +1224,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
 	case OP_NODE_RESET:
 		n = mesh_model_opcode_set(OP_NODE_RESET_STATUS, msg);
 		/*
-		 * delay node removal to give it a chance to send back the
+		 * Delay node removal to give it a chance to send back the
 		 * status
 		 */
 		l_timeout_create(1, node_reset, node, NULL);
@@ -1234,7 +1233,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
 
 	if (n) {
 		/* print_packet("App Tx", long_msg ? long_msg : msg, n); */
-		mesh_model_send(node, unicast, src,
+		mesh_model_send(node, dst, src,
 				APP_IDX_DEV_LOCAL, net_idx, DEFAULT_TTL,
 				long_msg ? long_msg : msg, n);
 	}
diff --git a/mesh/model.c b/mesh/model.c
index e02658363..d11c95ab9 100644
--- a/mesh/model.c
+++ b/mesh/model.c
@@ -71,7 +71,6 @@ struct mod_forward {
 	uint16_t app_idx;
 	uint16_t net_idx;
 	uint16_t size;
-	uint8_t ttl;
 	int8_t rssi;
 	bool szmict;
 	bool has_dst;
@@ -359,17 +358,16 @@ static void forward_model(void *a, void *b)
 	uint16_t dst;
 	bool result;
 
-	l_debug("model %8.8x with idx %3.3x", mod->id, fwd->app_idx);
-
 	if (fwd->app_idx != APP_IDX_DEV_LOCAL &&
 				fwd->app_idx != APP_IDX_DEV_REMOTE &&
 				!has_binding(mod->bindings, fwd->app_idx))
 		return;
 
 	dst = fwd->dst;
-	if (dst == fwd->unicast || IS_FIXED_GROUP_ADDRESS(dst))
+
+	if (dst == fwd->unicast || IS_FIXED_GROUP_ADDRESS(dst)) {
 		fwd->has_dst = true;
-	else if (fwd->virt) {
+	} else if (fwd->virt) {
 		virt = l_queue_find(mod->virtuals, simple_match, fwd->virt);
 		if (virt) {
 			fwd->has_dst = true;
@@ -390,9 +388,9 @@ static void forward_model(void *a, void *b)
 	result = false;
 
 	if (mod->cbs->recv)
-		result = mod->cbs->recv(fwd->src, dst, fwd->unicast,
-				fwd->app_idx, fwd->net_idx,
-				fwd->data, fwd->size, fwd->ttl, mod->user_data);
+		result = mod->cbs->recv(fwd->src, dst, fwd->app_idx,
+				fwd->net_idx,
+				fwd->data, fwd->size, mod->user_data);
 
 	if (dst == fwd->unicast && result)
 		fwd->done = true;
@@ -899,7 +897,7 @@ static void send_msg_rcvd(struct mesh_node *node, uint8_t ele_idx,
 }
 
 bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
-			uint32_t seq, uint32_t iv_index, uint8_t ttl,
+			uint32_t seq, uint32_t iv_index,
 			uint16_t net_idx, uint16_t src, uint16_t dst,
 			uint8_t key_aid, const uint8_t *data, uint16_t size)
 {
@@ -909,7 +907,6 @@ bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
 		.dst = dst,
 		.data = NULL,
 		.size = size - (szmict ? 8 : 4),
-		.ttl = ttl,
 		.virt = NULL,
 	};
 	struct mesh_net *net = node_get_net(node);
diff --git a/mesh/model.h b/mesh/model.h
index 0613c9cca..153ab9bfd 100644
--- a/mesh/model.h
+++ b/mesh/model.h
@@ -46,10 +46,9 @@ struct mesh_model_pub {
 };
 
 typedef void (*mesh_model_unregister)(void *user_data);
-typedef bool (*mesh_model_recv_cb)(uint16_t src, uint32_t dst, uint16_t unicast,
+typedef bool (*mesh_model_recv_cb)(uint16_t src, uint16_t unicast,
 					uint16_t app_idx, uint16_t net_idx,
-					const uint8_t *data,
-					uint16_t len, uint8_t ttl,
+					const uint8_t *data, uint16_t len,
 					const void *user_data);
 typedef int (*mesh_model_bind_cb)(uint16_t app_idx, int action);
 typedef int (*mesh_model_pub_cb)(struct mesh_model_pub *pub);
@@ -101,9 +100,9 @@ bool mesh_model_send(struct mesh_node *node, uint16_t src, uint16_t dst,
 int mesh_model_publish(struct mesh_node *node, uint32_t mod_id, uint16_t src,
 				uint8_t ttl, const void *msg, uint16_t msg_len);
 bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
-			uint32_t seq, uint32_t iv_index, uint8_t ttl,
-			uint16_t net_idx, uint16_t src, uint16_t dst,
-			uint8_t key_aid, const uint8_t *data, uint16_t size);
+			uint32_t seq, uint32_t iv_index, uint16_t net_idx,
+			uint16_t src, uint16_t dst, uint8_t key_aid,
+			const uint8_t *data, uint16_t size);
 void mesh_model_app_key_generate_new(struct mesh_node *node, uint16_t net_idx);
 void mesh_model_app_key_delete(struct mesh_node *node, struct l_queue *models,
 								uint16_t idx);
diff --git a/mesh/net.c b/mesh/net.c
index 5cf358fbd..d3325e073 100644
--- a/mesh/net.c
+++ b/mesh/net.c
@@ -1778,8 +1778,8 @@ static bool msg_rxed(struct mesh_net *net, bool frnd, uint32_t iv_index,
 	}
 
 not_for_friend:
-	return mesh_model_rx(net->node, szmic, seqAuth, seq, iv_index, ttl,
-					net_idx, src, dst, key_aid, data, size);
+	return mesh_model_rx(net->node, szmic, seqAuth, seq, iv_index, net_idx,
+						src, dst, key_aid, data, size);
 }
 
 static uint16_t key_id_to_net_idx(struct mesh_net *net, uint32_t key_id)
-- 
2.21.1


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

* Re: [PATCH BlueZ] mesh: Remove unused parameters from internal rx functions
  2020-02-27  6:56 [PATCH BlueZ] mesh: Remove unused parameters from internal rx functions Inga Stotland
@ 2020-03-05 16:04 ` Gix, Brian
  0 siblings, 0 replies; 2+ messages in thread
From: Gix, Brian @ 2020-03-05 16:04 UTC (permalink / raw)
  To: linux-bluetooth, Stotland, Inga

Applied
On Wed, 2020-02-26 at 22:56 -0800, Inga Stotland wrote:
> This removes unused ttl parameter from mesh_model_rx(). The TTL value
> is not processed at the access layer, so there is no need to pass it
> to a model.
> Also, remove "uint32_t dst" parameter from the typedef of
> mesh_model_recv_cb: providing a just destination address is sufficient
> for internally implemented models (currently, it's only Config Server)
> ---
>  mesh/cfgmod-server.c | 29 ++++++++++++++---------------
>  mesh/model.c         | 17 +++++++----------
>  mesh/model.h         | 11 +++++------
>  mesh/net.c           |  4 ++--
>  4 files changed, 28 insertions(+), 33 deletions(-)
> 
> diff --git a/mesh/cfgmod-server.c b/mesh/cfgmod-server.c
> index 3eb7316fc..a1f682765 100644
> --- a/mesh/cfgmod-server.c
> +++ b/mesh/cfgmod-server.c
> @@ -704,10 +704,9 @@ static void node_reset(struct l_timeout *timeout, void *user_data)
>  	node_remove(node);
>  }
>  
> -static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
> -				uint16_t app_idx, uint16_t net_idx,
> -				const uint8_t *data, uint16_t size,
> -				uint8_t ttl, const void *user_data)
> +static bool cfg_srv_pkt(uint16_t src, uint16_t dst, uint16_t app_idx,
> +				uint16_t net_idx, const uint8_t *data,
> +				uint16_t size, const void *user_data)
>  {
>  	struct mesh_node *node = (struct mesh_node *) user_data;
>  	struct mesh_net *net;
> @@ -782,7 +781,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
>  		if (size != 25 && size != 27)
>  			return true;
>  
> -		config_pub_set(node, net_idx, src, unicast, pkt, 14, size == 27,
> +		config_pub_set(node, net_idx, src, dst, pkt, 14, size == 27,
>  				!!(opcode & OP_UNRELIABLE));
>  		break;
>  
> @@ -790,26 +789,26 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
>  		if (size != 11 && size != 13)
>  			return true;
>  
> -		config_pub_set(node, net_idx, src, unicast, pkt, 0, size == 13,
> +		config_pub_set(node, net_idx, src, dst, pkt, 0, size == 13,
>  				!!(opcode & OP_UNRELIABLE));
>  		break;
>  
>  	case OP_CONFIG_MODEL_PUB_GET:
> -		config_pub_get(node, net_idx, src, unicast, pkt, size);
> +		config_pub_get(node, net_idx, src, dst, pkt, size);
>  		break;
>  
>  	case OP_CONFIG_VEND_MODEL_SUB_GET:
>  		if (size != 6)
>  			return true;
>  
> -		config_sub_get(node, net_idx, src, unicast, pkt, size);
> +		config_sub_get(node, net_idx, src, dst, pkt, size);
>  		break;
>  
>  	case OP_CONFIG_MODEL_SUB_GET:
>  		if (size != 4)
>  			return true;
>  
> -		config_sub_get(node, net_idx, src, unicast, pkt, size);
> +		config_sub_get(node, net_idx, src, dst, pkt, size);
>  		break;
>  
>  	case OP_CONFIG_MODEL_SUB_VIRT_OVERWRITE:
> @@ -821,7 +820,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
>  	case OP_CONFIG_MODEL_SUB_DELETE:
>  	case OP_CONFIG_MODEL_SUB_ADD:
>  	case OP_CONFIG_MODEL_SUB_DELETE_ALL:
> -		config_sub_set(node, net_idx, src, unicast, pkt, size, virt,
> +		config_sub_set(node, net_idx, src, dst, pkt, size, virt,
>  									opcode);
>  		break;
>  
> @@ -1087,20 +1086,20 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
>  
>  	case OP_MODEL_APP_BIND:
>  	case OP_MODEL_APP_UNBIND:
> -		model_app_bind(node, net_idx, src, unicast, pkt, size,
> +		model_app_bind(node, net_idx, src, dst, pkt, size,
>  				opcode != OP_MODEL_APP_BIND);
>  		break;
>  
>  	case OP_VEND_MODEL_APP_GET:
>  		if (size != 6)
>  			return true;
> -		model_app_list(node, net_idx, src, unicast, pkt, size);
> +		model_app_list(node, net_idx, src, dst, pkt, size);
>  		break;
>  
>  	case OP_MODEL_APP_GET:
>  		if (size != 4)
>  			return true;
> -		model_app_list(node, net_idx, src, unicast, pkt, size);
> +		model_app_list(node, net_idx, src, dst, pkt, size);
>  		break;
>  
>  	case OP_CONFIG_HEARTBEAT_PUB_SET:
> @@ -1225,7 +1224,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
>  	case OP_NODE_RESET:
>  		n = mesh_model_opcode_set(OP_NODE_RESET_STATUS, msg);
>  		/*
> -		 * delay node removal to give it a chance to send back the
> +		 * Delay node removal to give it a chance to send back the
>  		 * status
>  		 */
>  		l_timeout_create(1, node_reset, node, NULL);
> @@ -1234,7 +1233,7 @@ static bool cfg_srv_pkt(uint16_t src, uint32_t dst, uint16_t unicast,
>  
>  	if (n) {
>  		/* print_packet("App Tx", long_msg ? long_msg : msg, n); */
> -		mesh_model_send(node, unicast, src,
> +		mesh_model_send(node, dst, src,
>  				APP_IDX_DEV_LOCAL, net_idx, DEFAULT_TTL,
>  				long_msg ? long_msg : msg, n);
>  	}
> diff --git a/mesh/model.c b/mesh/model.c
> index e02658363..d11c95ab9 100644
> --- a/mesh/model.c
> +++ b/mesh/model.c
> @@ -71,7 +71,6 @@ struct mod_forward {
>  	uint16_t app_idx;
>  	uint16_t net_idx;
>  	uint16_t size;
> -	uint8_t ttl;
>  	int8_t rssi;
>  	bool szmict;
>  	bool has_dst;
> @@ -359,17 +358,16 @@ static void forward_model(void *a, void *b)
>  	uint16_t dst;
>  	bool result;
>  
> -	l_debug("model %8.8x with idx %3.3x", mod->id, fwd->app_idx);
> -
>  	if (fwd->app_idx != APP_IDX_DEV_LOCAL &&
>  				fwd->app_idx != APP_IDX_DEV_REMOTE &&
>  				!has_binding(mod->bindings, fwd->app_idx))
>  		return;
>  
>  	dst = fwd->dst;
> -	if (dst == fwd->unicast || IS_FIXED_GROUP_ADDRESS(dst))
> +
> +	if (dst == fwd->unicast || IS_FIXED_GROUP_ADDRESS(dst)) {
>  		fwd->has_dst = true;
> -	else if (fwd->virt) {
> +	} else if (fwd->virt) {
>  		virt = l_queue_find(mod->virtuals, simple_match, fwd->virt);
>  		if (virt) {
>  			fwd->has_dst = true;
> @@ -390,9 +388,9 @@ static void forward_model(void *a, void *b)
>  	result = false;
>  
>  	if (mod->cbs->recv)
> -		result = mod->cbs->recv(fwd->src, dst, fwd->unicast,
> -				fwd->app_idx, fwd->net_idx,
> -				fwd->data, fwd->size, fwd->ttl, mod->user_data);
> +		result = mod->cbs->recv(fwd->src, dst, fwd->app_idx,
> +				fwd->net_idx,
> +				fwd->data, fwd->size, mod->user_data);
>  
>  	if (dst == fwd->unicast && result)
>  		fwd->done = true;
> @@ -899,7 +897,7 @@ static void send_msg_rcvd(struct mesh_node *node, uint8_t ele_idx,
>  }
>  
>  bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
> -			uint32_t seq, uint32_t iv_index, uint8_t ttl,
> +			uint32_t seq, uint32_t iv_index,
>  			uint16_t net_idx, uint16_t src, uint16_t dst,
>  			uint8_t key_aid, const uint8_t *data, uint16_t size)
>  {
> @@ -909,7 +907,6 @@ bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
>  		.dst = dst,
>  		.data = NULL,
>  		.size = size - (szmict ? 8 : 4),
> -		.ttl = ttl,
>  		.virt = NULL,
>  	};
>  	struct mesh_net *net = node_get_net(node);
> diff --git a/mesh/model.h b/mesh/model.h
> index 0613c9cca..153ab9bfd 100644
> --- a/mesh/model.h
> +++ b/mesh/model.h
> @@ -46,10 +46,9 @@ struct mesh_model_pub {
>  };
>  
>  typedef void (*mesh_model_unregister)(void *user_data);
> -typedef bool (*mesh_model_recv_cb)(uint16_t src, uint32_t dst, uint16_t unicast,
> +typedef bool (*mesh_model_recv_cb)(uint16_t src, uint16_t unicast,
>  					uint16_t app_idx, uint16_t net_idx,
> -					const uint8_t *data,
> -					uint16_t len, uint8_t ttl,
> +					const uint8_t *data, uint16_t len,
>  					const void *user_data);
>  typedef int (*mesh_model_bind_cb)(uint16_t app_idx, int action);
>  typedef int (*mesh_model_pub_cb)(struct mesh_model_pub *pub);
> @@ -101,9 +100,9 @@ bool mesh_model_send(struct mesh_node *node, uint16_t src, uint16_t dst,
>  int mesh_model_publish(struct mesh_node *node, uint32_t mod_id, uint16_t src,
>  				uint8_t ttl, const void *msg, uint16_t msg_len);
>  bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
> -			uint32_t seq, uint32_t iv_index, uint8_t ttl,
> -			uint16_t net_idx, uint16_t src, uint16_t dst,
> -			uint8_t key_aid, const uint8_t *data, uint16_t size);
> +			uint32_t seq, uint32_t iv_index, uint16_t net_idx,
> +			uint16_t src, uint16_t dst, uint8_t key_aid,
> +			const uint8_t *data, uint16_t size);
>  void mesh_model_app_key_generate_new(struct mesh_node *node, uint16_t net_idx);
>  void mesh_model_app_key_delete(struct mesh_node *node, struct l_queue *models,
>  								uint16_t idx);
> diff --git a/mesh/net.c b/mesh/net.c
> index 5cf358fbd..d3325e073 100644
> --- a/mesh/net.c
> +++ b/mesh/net.c
> @@ -1778,8 +1778,8 @@ static bool msg_rxed(struct mesh_net *net, bool frnd, uint32_t iv_index,
>  	}
>  
>  not_for_friend:
> -	return mesh_model_rx(net->node, szmic, seqAuth, seq, iv_index, ttl,
> -					net_idx, src, dst, key_aid, data, size);
> +	return mesh_model_rx(net->node, szmic, seqAuth, seq, iv_index, net_idx,
> +						src, dst, key_aid, data, size);
>  }
>  
>  static uint16_t key_id_to_net_idx(struct mesh_net *net, uint32_t key_id)

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

end of thread, other threads:[~2020-03-05 16:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-27  6:56 [PATCH BlueZ] mesh: Remove unused parameters from internal rx functions Inga Stotland
2020-03-05 16:04 ` 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).