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 --]
next prev parent 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).