All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.