Re: [PATCH V2 1/8] mesh: meshctl: Change command names to <cmd>-<get/set>

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Steve,

On Thu, 2017-12-14 at 02:12 -0700, Steve Brown wrote:
> Hi Inga,
> On Thu, 2017-12-14 at 08:08 +0000, Stotland, Inga wrote:
> > Hi Steve,
> > 
> > On Tue, 2017-12-12 at 12:58 +0000, sbrown@xxxxxxxxxxxx wrote:
> > > From: Steve Brown <sbrown@xxxxxxxxxxxx>
> > > 
> > > Fix lines over 80 chars
> > > Move cmd_default()
> > > Add parameter to pub-set to control retransmit count
> > > ---
> > >  mesh/config-client.c | 78 +++++++++++++++++++++++++++-----------
> > > --
> > > --
> > > ----------
> > >  1 file changed, 41 insertions(+), 37 deletions(-)
> > > 
> > > diff --git a/mesh/config-client.c b/mesh/config-client.c
> > > index 3d618b6a6..51adf2c52 100644
> > > --- a/mesh/config-client.c
> > > +++ b/mesh/config-client.c
> > > @@ -170,9 +170,9 @@ static bool client_msg_recvd(uint16_t src,
> > > uint8_t *data,
> > >  		if (len != 12 && len != 14)
> > >  			return true;
> > >  
> > > -		bt_shell_printf("\nSet publication for node
> > > %4.4x
> > > status: %s\n", src,
> > > -				data[0] == MESH_STATUS_SUCCESS ?
> > > "Success" :
> > > -						mesh_status_str(
> > > da
> > > ta
> > > [0]));
> > > +		bt_shell_printf("\nSet publication for node
> > > %4.4x
> > > status: %s\n",
> > > +				src, data[0] ==
> > > MESH_STATUS_SUCCESS
> > > ?
> > > +				"Success" :
> > > mesh_status_str(data[0]));
> > >  
> > >  		if (data[0] != MESH_STATUS_SUCCESS)
> > >  			return true;
> > > @@ -189,6 +189,7 @@ static bool client_msg_recvd(uint16_t src,
> > > uint8_t *data,
> > >  		pub.ttl = data[7];
> > >  		pub.period = data[8];
> > >  		n = (data[8] & 0x3f);
> > > +		bt_shell_printf("Publication address: 0x%04x\n",
> > > pub.u.addr16);
> > >  		switch (data[8] >> 6) {
> > >  		case 0:
> > >  			bt_shell_printf("Period: %d ms\n", n *
> > > 100);
> > > @@ -206,7 +207,8 @@ static bool client_msg_recvd(uint16_t src,
> > > uint8_t *data,
> > >  
> > >  		pub.retransmit = data[9];
> > >  		bt_shell_printf("Retransmit count: %d\n",
> > > data[9]
> > > > > 
> > > 
> > > 5);
> > > -		bt_shell_printf("Retransmit Interval Steps:
> > > %d\n",
> > > data[9] & 0x1f);
> > > +		bt_shell_printf("Retransmit Interval Steps:
> > > %d\n",
> > > +				data[9] & 0x1f);
> > >  
> > >  		ele_idx = ele_addr - node_get_primary(node);
> > >  
> > > @@ -219,6 +221,7 @@ static bool client_msg_recvd(uint16_t src,
> > > uint8_t *data,
> > >  				     node_model_pub_get(node,
> > > ele_idx, mod_id));
> > >  		break;
> > >  	}
> > > +
> > >  	return true;
> > >  }
> > >  
> > > @@ -287,6 +290,23 @@ static bool config_send(uint8_t *buf,
> > > uint16_t
> > > len)
> > >  
> > >  }
> > >  
> > > +static void cmd_default(uint32_t opcode)
> > > +{
> > > +	uint16_t n;
> > > +	uint8_t msg[32];
> > > +
> > > +	if (IS_UNASSIGNED(target)) {
> > > +		bt_shell_printf("Destination not set\n");
> > > +		return;
> > > +	}
> > > +
> > > +	n = mesh_opcode_set(opcode, msg);
> > > +
> > > +	if (!config_send(msg, n))
> > > +		bt_shell_printf("Failed to send command (opcode
> > > 0x%x)\n",
> > > +								
> > > op
> > > co
> > > de);
> > > +}
> > > +
> > >  static void cmd_get_composition(int argc, char *argv[])
> > >  {
> > >  	uint16_t n;
> > > @@ -556,7 +576,7 @@ static void cmd_set_pub(int argc, char
> > > *argv[])
> > >  	n = mesh_opcode_set(OP_CONFIG_MODEL_PUB_SET, msg);
> > >  
> > >  	parm_cnt = read_input_parameters(argc, argv);
> > > -	if (parm_cnt != 5) {
> > > +	if (parm_cnt != 6) {
> > >  		bt_shell_printf("Bad arguments\n");
> > >  		return;
> > >  	}
> > > @@ -574,14 +594,14 @@ static void cmd_set_pub(int argc, char
> > > *argv[])
> > >  	/* Publish period  step count and step resolution */
> > >  	msg[n++] = parms[3];
> > >  	/* Publish retransmit count & interval steps */
> > > -	msg[n++] = (1 << 5) + 2;
> > > +	msg[n++] = parms[4];
> > >  	/* Model Id */
> > > -	if (parms[4] > 0xffff) {
> > > -		put_le16(parms[4] >> 16, msg + n);
> > > -		put_le16(parms[4], msg + n + 2);
> > > +	if (parms[5] > 0xffff) {
> > > +		put_le16(parms[5] >> 16, msg + n);
> > > +		put_le16(parms[5], msg + n + 2);
> > >  		n += 4;
> > >  	} else {
> > > -		put_le16(parms[4], msg + n);
> > > +		put_le16(parms[5], msg + n);
> > >  		n += 2;
> > >  	}
> > >  
> > > @@ -589,23 +609,6 @@ static void cmd_set_pub(int argc, char
> > > *argv[])
> > >  		bt_shell_printf("Failed to send \"SET MODEL
> > > PUBLICATION\"\n");
> > >  }
> > >  
> > > -static void cmd_default(uint32_t opcode)
> > > -{
> > > -	uint16_t n;
> > > -	uint8_t msg[32];
> > > -
> > > -	if (IS_UNASSIGNED(target)) {
> > > -		bt_shell_printf("Destination not set\n");
> > > -		return;
> > > -	}
> > > -
> > > -	n = mesh_opcode_set(opcode, msg);
> > > -
> > > -	if (!config_send(msg, n))
> > > -		bt_shell_printf("Failed to send command (opcode
> > > 0x%x)\n",
> > > -								
> > > op
> > > co
> > > de);
> > > -}
> > > -
> > >  static void cmd_get_ttl(int argc, char *argv[])
> > >  {
> > >  	cmd_default(OP_CONFIG_DEFAULT_TTL_GET);
> > > @@ -614,27 +617,28 @@ static void cmd_get_ttl(int argc, char
> > > *argv[])
> > >  static const struct bt_shell_menu cfg_menu = {
> > >  	.name = "config",
> > >  	.entries = {
> > > -	{"target",		"<unicast>",			
> > > cmd_set_node,
> > > +	{"target",		"<unicast>",		cm
> > > d_
> > > se
> > > t_node,
> > >  						"Set target node
> > > to
> > > configure"},
> > > -	{"get-composition",	"[<page_num>]",		
> > > cm
> > > d_get_composition,
> > > +	{"composition-get",	"[<page_num>]",		
> > > cm
> > > d_get_composition,
> > >  						"Get Composition
> > > Data"},
> > > -	{"add-netkey",		"<net_idx>",		
> > > 	
> > > cmd_add_net_key,
> > > +	{"netkey-add",		"<net_idx>",		
> > > cm
> > > d_add_net_key,
> > >  						"Add network
> > > key"},
> > > -	{"del-netkey",		"<net_idx>",		
> > > 	
> > > cmd_del_net_key,
> > > +	{"netkey-del",		"<net_idx>",		
> > > cm
> > > d_del_net_key,
> > >  						"Delete network
> > > key"},
> > > -	{"add-appkey",		"<app_idx>",		
> > > 	
> > > cmd_add_app_key,
> > > +	{"appkey-add",		"<app_idx>",		
> > > cm
> > > d_add_app_key,
> > >  						"Add application
> > > key"},
> > > -	{"del-appkey",		"<app_idx>",		
> > > 	
> > > cmd_del_app_key,
> > > +	{"appkey-del",		"<app_idx>",		
> > > cm
> > > d_del_app_key,
> > >  						"Delete
> > > application
> > > key"},
> > >  	{"bind",		"<ele_idx> <app_idx> <mod_id>
> > > [cid]",
> > >  				cmd_bind,	"Bind app key
> > > to
> > > a
> > > model"},
> > > -	{"set-ttl",		"<ttl>",			
> > > c
> > > md_set_ttl,
> > > +	{"ttl-set",		"<ttl>",		cmd_s
> > > et
> > > _t
> > > tl,
> > >  						"Set default
> > > TTL"},
> > > -	{"get-ttl",		NULL,			
> > > cm
> > > d_
> > > get_ttl,
> > > +	{"ttl-get",		NULL,			
> > > cm
> > > d_
> > > get_ttl,
> > >  						"Get default
> > > TTL"},
> > > -	{"set-pub", "<ele_addr> <pub_addr> <app_idx> "
> > > -						"<period
> > > (step|res)>
> > > <model>",
> > > +	{"pub-set", "<ele_addr> <pub_addr> <app_idx> "
> > > +			"<period (step|res)> <re-xmt
> > > (count|per)>
> > > <model>",
> > >  				cmd_set_pub,	"Set
> > > publication"},
> > > +
> > >  	{} },
> > >  };
> > >  
> > 
> > Since you are modifying pub-set command, could you please fix it to
> > correctly indicate SIG and vendor models, similarly to "bind"
> > command
> > (adding an optional "cid" parameter for vendor models).
> > 
> > Regards,
> > 
> > Inga Stotland
> 
> It looks like the pub command already assumes it's a vendor model if
> the model id is > 0xffff. Is that a correct assumption?
> 
> If it is, should I make the same change to bind and remove the
> optional
> parameter?
> 
> Steve
> 
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-
> bluetooth" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

The check for model id is > 0xffff is not entirely correct since it
does not account for a case when CID is 0x0000.

Regards,

Inga

Attachment: smime.p7s
Description: S/MIME cryptographic signature


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux