From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Stotland, Inga" To: "michal.hobot@silvair.com" CC: "linux-bluetooth@vger.kernel.org" Subject: Re: meshctl cannot parse its own config file Date: Mon, 27 Nov 2017 18:45:40 +0000 Message-ID: <1511808337.3924.2.camel@intel.com> References: <1511249147.6536.13.camel@intel.com> <3516B3B5-B03B-48BF-A0C0-227E5BF3FD9D@silvair.com> In-Reply-To: <3516B3B5-B03B-48BF-A0C0-227E5BF3FD9D@silvair.com> Content-Type: multipart/signed; micalg=sha-1; protocol="application/x-pkcs7-signature"; boundary="=-BEy9ec4Vem3WcbntaP/P" MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --=-BEy9ec4Vem3WcbntaP/P Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Michal, On Fri, 2017-11-24 at 22:13 +0100, Micha=C5=82 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. >=20 > The patch is pretty trivial and self-explanatory: >=20 > --- 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 -=3D 2; > } > while (len >=3D 4 && v--) { > - mod_id =3D get_le16(data); > + mod_id =3D get_le16(data + 2); > vendor_id =3D get_le16(data); > mod_id |=3D (vendor_id << 16); > if (!node_set_model(node, ele->index, > mod_id)) >=20 >=20 > Identical error prevents composition data from being printed out > correctly: >=20 > --- 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 > } > =20 > while (len >=3D 4 && v--) { > - mod_id =3D get_le16(data); > + mod_id =3D get_le16(data + 2); > vendor_id =3D get_le16(data); > mod_id |=3D (vendor_id << 16); > data +=3D 4; >=20 >=20 > Btw, should I post an official patch? I'm new to this group. >=20 > Regards, > Michal Hobot >=20 >=20 > > Wiadomo=C5=9B=C4=87 napisana przez Stotland, Inga w > > dniu 21.11.2017, o godz. 08:25: > >=20 > > Hi Michal, > >=20 > > On Mon, 2017-11-20 at 19:19 +0100, Micha=C5=82 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: > > >=20 > > > provision a9d8....(UUID follows) > > > add-appkey 1 > > > bind 0 1 1000 > > >=20 > > > Im then able to turn the light on and off using onoff 1 / onoff > > > 0. > > > Get also works. > > >=20 > > > When I'm leaving meshctl and start it once again, it fails while > > > parsing provisioner_db.json > > >=20 > > > I found out that the problem was caused by: > > >=20 > > > "bind":[ > > > 1 > > > ] > > >=20 > > > in nodes/elements/models > > > When I remove "bind" element, everything seems to work fine. > > >=20 > > > Is it a bug in the software or am I doing something wrong? > > >=20 > > > Attaching configuration files. > > >=20 > > > Regards, > > > Michal Hobot > > >=20 > >=20 > > 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. > >=20 > > I submitted a patch: "[PATCH BlueZ] mesh: validate configuration > > target" to address this issue. > >=20 > > Meanwhile, I suggest calling "get-composition" command prior to any > > config command that deals with models. > >=20 > > Thanks, > >=20 > > Inga >=20 >=20 Yes, please go ahead and submit an official patch using git send-email. Thank you, Inga --=-BEy9ec4Vem3WcbntaP/P Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 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 Zg5mBVQoBK5apmk2/QnKNb/XBUyu62quyTXRahXz2KXRqznXj++7MiP2dYTRzC1XMK1lAgMBAAGj ggIxMIICLTAdBgNVHQ4EFgQUzeWQY29S+1e6mTvizPBEGBE3JGUwHwYDVR0jBBgwFoAU2kEjnFqP ca9Xgz4g0+Nl2wzLC9swZQYDVR0fBF4wXDBaoFigVoZUaHR0cDovL3d3dy5pbnRlbC5jb20vcmVw b3NpdG9yeS9DUkwvSW50ZWwlMjBFeHRlcm5hbCUyMEJhc2ljJTIwSXNzdWluZyUyMENBJTIwNEIu Y3JsMIGfBggrBgEFBQcBAQSBkjCBjzAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AuaW50ZWwuY29t LzBpBggrBgEFBQcwAoZdaHR0cDovL3d3dy5pbnRlbC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0 ZXMvSW50ZWwlMjBFeHRlcm5hbCUyMEJhc2ljJTIwSXNzdWluZyUyMENBJTIwNEIuY3J0MAsGA1Ud DwQEAwIHgDA8BgkrBgEEAYI3FQcELzAtBiUrBgEEAYI3FQiGw4x1hJnlUYP9gSiFjp9TgpHACWeB 3r05lfBDAgFkAgEJMB8GA1UdJQQYMBYGCCsGAQUFBwMEBgorBgEEAYI3CgMMMCkGCSsGAQQBgjcV CgQcMBowCgYIKwYBBQUHAwQwDAYKKwYBBAGCNwoDDDBLBgNVHREERDBCoCcGCisGAQQBgjcUAgOg GQwXaW5nYS5zdG90bGFuZEBpbnRlbC5jb22BF2luZ2Euc3RvdGxhbmRAaW50ZWwuY29tMA0GCSqG SIb3DQEBBQUAA4IBAQCoG+97GZuQEwQnuWIVQWcpVw1Ym/kJEGjRAiB8JMflkvaemGuUV/xS2ccg o4V80bU6Ee3jhFp3DH8aiO068JigsTZRDt172E7E/p187o2M6FicC63aUgWW/FZfEaOXuky/8jdz 9oaWcDIwFm+L6vpSQrE5Wbk5sCX04SvRlJ6X/+KAWJGE5sU9lA4XB0yJapCCoVyNZln3H3PdSXC2 rdOl2HSUdGOvmIwNkaSLLaVgUjz6mFzzRi/64tOfROIQSEdBYNStKYCixc2KP/sWL6LtfW+sQVLZ r+HHDskuWTuEbYxFinLxC1gayzk80cz9z4qMg5bQJWyClLIwh4qpnUpoMYICFzCCAhMCAQEwgZAw eTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRQwEgYDVQQHEwtTYW50YSBDbGFyYTEaMBgGA1UE ChMRSW50ZWwgQ29ycG9yYXRpb24xKzApBgNVBAMTIkludGVsIEV4dGVybmFsIEJhc2ljIElzc3Vp bmcgQ0EgNEICEzMAAE9zKgiM3IZosrQAAAAAT3MwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzEL BgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MTEyNzE4NDUzN1owIwYJKoZIhvcNAQkEMRYE FD5ApOmlhoQ7zaPKvf8N/POeXSOKMA0GCSqGSIb3DQEBAQUABIIBAE+5+DEip0UBSDpOZCFHO+KI bfaxQvzAF5uDSh4bsS6PBz/EWv1lYw4qPsNr6yDuc11/3r0aHTX7CP5yI+8o8CcchQDPysOolTdE WDDjxedlDFyXWHAcmaC+AeFthYX0dbjGVVOUcrreWf9h4lO6cd4sVnhwWVG+dH8mNkJ3m8edwoPa KhUTH7imSjjFPYX8CfngpQi7RnyRzs2pLNLNMeDiAD56tJQExVKO8JNHOkml5QkKQI/e0l1pgpDe H2swT3XItgj0gJIRjJNZBt1VI8JDpMOXxf8pea0pJRsBTiayqk4NQjpF+FRdC+1rraxKH8DHKc/S pVC6z7jOcyONLTQAAAAAAAA= --=-BEy9ec4Vem3WcbntaP/P--