linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Stotland, Inga" <inga.stotland@intel.com>
To: "michal.hobot@silvair.com" <michal.hobot@silvair.com>
Cc: "linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>
Subject: Re: meshctl cannot parse its own config file
Date: Mon, 27 Nov 2017 18:45:40 +0000	[thread overview]
Message-ID: <1511808337.3924.2.camel@intel.com> (raw)
In-Reply-To: <3516B3B5-B03B-48BF-A0C0-227E5BF3FD9D@silvair.com>

[-- Attachment #1: Type: text/plain, Size: 3217 bytes --]

Hi Michal,

On Fri, 2017-11-24 at 22:13 +0100, Michał Hobot wrote:
> Inga,
> I think I found root cause of the problem. There is a bug in a way
> custom models are parsed, so parsing fails quietly and correct
> information doesn't get written to the provisioner db.
> This happens only when there is more than one custom model in
> composition data.
> 
> The patch is pretty trivial and self-explanatory:
> 
> --- bluez.orig/mesh/node.c	2017-11-21 18:04:57.000000000 +0100
> +++ bluez/mesh/node.c	2017-11-24 21:37:16.000000000 +0100
> @@ -432,7 +432,7 @@ bool node_parse_composition(struct mesh_
>  			len -= 2;
>  		}
>  		while (len >= 4 && v--) {
> -			mod_id = get_le16(data);
> +			mod_id = get_le16(data + 2);
>  			vendor_id = get_le16(data);
>  			mod_id |= (vendor_id << 16);
>  			if (!node_set_model(node, ele->index,
> mod_id))
> 
> 
> Identical error prevents composition data from being printed out
> correctly:
> 
> --- bluez.orig/mesh/prov-db.c	2017-11-21 18:04:57.000000000
> +0100
> +++ bluez/mesh/prov-db.c	2017-11-24 21:36:12.000000000 +0100
> @@ -676,7 +676,7 @@ bool prov_db_add_node_composition(struct
>  		}
>  
>  		while (len >= 4 && v--) {
> -			mod_id = get_le16(data);
> +			mod_id = get_le16(data + 2);
>  			vendor_id = get_le16(data);
>  			mod_id |= (vendor_id << 16);
>  			data += 4;
> 
> 
> Btw, should I post an official patch? I'm new to this group.
> 
> Regards,
> Michal Hobot
> 
> 
> > Wiadomość napisana przez Stotland, Inga <inga.stotland@intel.com> w
> > dniu 21.11.2017, o godz. 08:25:
> > 
> > Hi Michal,
> > 
> > On Mon, 2017-11-20 at 19:19 +0100, Michał Hobot wrote:
> > > Hi,
> > > I'm testing meshctl of bluez 5.47 with a lighting device with
> > > Silvair
> > > mesh stack.
> > > I am able to provision a device using a following sequence of
> > > commands:
> > > 
> > > provision a9d8....(UUID follows)
> > > add-appkey 1
> > > bind 0 1 1000
> > > 
> > > Im then able to turn the light on and off using onoff 1 / onoff
> > > 0.
> > > Get also works.
> > > 
> > > When I'm leaving meshctl and start it once again, it fails while
> > > parsing provisioner_db.json
> > > 
> > > I found out that the problem was caused by:
> > > 
> > > "bind":[
> > >  1
> > > ]
> > > 
> > > in nodes/elements/models
> > > When I remove "bind" element, everything seems to work fine.
> > > 
> > > Is it a bug in the software or am I doing something wrong?
> > > 
> > > Attaching configuration files.
> > > 
> > > Regards,
> > > Michal Hobot
> > > 
> > 
> > Looks like you discovered a loophole: the provisioner
> > should not try to issue any configuration commands that require
> > knowledge of model/element setup on the node without first getting
> > node
> > composition. The result is a malformed database.
> > 
> > I submitted a patch: "[PATCH BlueZ] mesh: validate configuration
> > target" to address this issue.
> > 
> > Meanwhile, I suggest calling "get-composition" command prior to any
> > config command that deals with models.
> > 
> > Thanks,
> > 
> > Inga
> 
> 

Yes, please go ahead and submit an official patch using git send-email.

Thank you,

Inga

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 3266 bytes --]

  reply	other threads:[~2017-11-27 18:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-20 18:19 meshctl cannot parse its own config file Michał Hobot
2017-11-21  7:25 ` Stotland, Inga
2017-11-24 21:13   ` Michał Hobot
2017-11-27 18:45     ` Stotland, Inga [this message]
2017-11-28 14:09       ` Johan Hedberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1511808337.3924.2.camel@intel.com \
    --to=inga.stotland@intel.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=michal.hobot@silvair.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).