2022-09-22 21:41:48

by Gix, Brian

[permalink] [raw]
Subject: [PATCH BlueZ v3 1/2] mesh: Improve PB-ADV timing for reliability

Because provisioning is not speed dependent, Timing on outbound PB-ADV
packets have been modified to be less likely missed by remote controlers
with looser timing capabilities.
---
mesh/pb-adv.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/mesh/pb-adv.c b/mesh/pb-adv.c
index 83f922aa8..180b16258 100644
--- a/mesh/pb-adv.c
+++ b/mesh/pb-adv.c
@@ -23,6 +23,8 @@
#include "mesh/provision.h"
#include "mesh/pb-adv.h"

+#include "mesh/util.h"
+

struct pb_adv_session {
mesh_prov_open_func_t open_cb;
@@ -158,7 +160,7 @@ static void send_adv_segs(struct pb_adv_session *session, const uint8_t *data,
l_debug("max_seg: %2.2x", max_seg);
l_debug("size: %2.2x, CRC: %2.2x", size, buf[9]);

- pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 200,
+ pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 500,
buf, init_size + 10);

consumed = init_size;
@@ -174,7 +176,7 @@ static void send_adv_segs(struct pb_adv_session *session, const uint8_t *data,
buf[6] = (i << 2) | 0x02;
memcpy(buf + 7, data + consumed, seg_size);

- pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 200,
+ pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 500,
buf, seg_size + 7);

consumed += seg_size;
@@ -270,7 +272,8 @@ static void send_ack(struct pb_adv_session *session, uint8_t trans_num)
ack.trans_num = trans_num;
ack.opcode = PB_ADV_ACK;

- pb_adv_send(session, 1, 100, &ack, sizeof(ack));
+ pb_adv_send(session, MESH_IO_TX_COUNT_UNLIMITED, 500,
+ &ack, sizeof(ack));
}

static void send_close_ind(struct pb_adv_session *session, uint8_t reason)
--
2.37.3


2022-09-22 22:27:36

by bluez.test.bot

[permalink] [raw]
Subject: RE: Mesh demon switched to using kernel Mesh MGMT

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=679618

---Test result---

Test Summary:
CheckPatch PASS 3.35 seconds
GitLint PASS 2.02 seconds
Prep - Setup ELL PASS 27.26 seconds
Build - Prep PASS 0.79 seconds
Build - Configure PASS 8.77 seconds
Build - Make FAIL 108.23 seconds
Make Check FAIL 1223.49 seconds
Make Check w/Valgrind FAIL 86.48 seconds
Make Distcheck FAIL 11.67 seconds
Build w/ext ELL - Configure PASS 8.99 seconds
Build w/ext ELL - Make FAIL 39.97 seconds
Incremental Build w/ patches FAIL 149.47 seconds
Scan Build FAIL 535.96 seconds

Details
##############################
Test: Build - Make - FAIL
Desc: Build the BlueZ source tree
Output:
tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:12470:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
12470 | int main(int argc, char *argv[])
| ^~~~
mesh/mesh-io.c:27:10: fatal error: mesh/mesh-io-mgmt.h: No such file or directory
27 | #include "mesh/mesh-io-mgmt.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:7491: mesh/mesh-io.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4451: all] Error 2


##############################
Test: Make Check - FAIL
Desc: Run 'make check'
Output:
unit/test-avdtp.c: In function ‘main’:
unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
766 | int main(int argc, char *argv[])
| ^~~~
unit/test-avrcp.c: In function ‘main’:
unit/test-avrcp.c:989:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
989 | int main(int argc, char *argv[])
| ^~~~
mesh/mesh-io.c:27:10: fatal error: mesh/mesh-io-mgmt.h: No such file or directory
27 | #include "mesh/mesh-io-mgmt.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:7491: mesh/mesh-io.o] Error 1
make: *** [Makefile:11588: check] Error 2


##############################
Test: Make Check w/Valgrind - FAIL
Desc: Run 'make check' with Valgrind
Output:
tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:12470:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
12470 | int main(int argc, char *argv[])
| ^~~~
mesh/mesh-io.c:27:10: fatal error: mesh/mesh-io-mgmt.h: No such file or directory
27 | #include "mesh/mesh-io-mgmt.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:7491: mesh/mesh-io.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4451: all] Error 2


##############################
Test: Make Distcheck - FAIL
Desc: Run distcheck to check the distribution
Output:
make[2]: *** No rule to make target 'mesh/mesh-io-mgmt.h', needed by 'distdir-am'. Stop.
make[1]: *** [Makefile:11421: distdir] Error 2
make: *** [Makefile:11497: dist] Error 2


##############################
Test: Build w/ext ELL - Make - FAIL
Desc: Build BlueZ source with '--enable-external-ell' configuration
Output:
mesh/mesh-io.c:27:10: fatal error: mesh/mesh-io-mgmt.h: No such file or directory
27 | #include "mesh/mesh-io-mgmt.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:7491: mesh/mesh-io.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4451: all] Error 2


##############################
Test: Incremental Build w/ patches - FAIL
Desc: Incremental build per patch in the series
Output:
mesh/mesh-io.c:27:10: fatal error: mesh/mesh-io-mgmt.h: No such file or directory
27 | #include "mesh/mesh-io-mgmt.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:7491: mesh/mesh-io.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4451: all] Error 2


##############################
Test: Scan Build - FAIL
Desc: Run Scan Build with patches
Output:
tools/btpclient.c:2494:3: warning: Value stored to 'reply' is never read
reply = l_dbus_message_new_error(ag.pending_req,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
In file included from unit/test-mesh-crypto.c:20:
In file included from ./mesh/crypto.c:18:
In file included from ./ell/ell.h:1:
./ell/util.h:187:9: warning: 1st function call argument is an uninitialized value
return L_BE32_TO_CPU(L_GET_UNALIGNED((const uint32_t *) ptr));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./ell/util.h:89:28: note: expanded from macro 'L_BE32_TO_CPU'
#define L_BE32_TO_CPU(val) bswap_32(val)
^~~~~~~~~~~~~
/usr/include/byteswap.h:34:21: note: expanded from macro 'bswap_32'
#define bswap_32(x) __bswap_32 (x)
^~~~~~~~~~~~~~
unit/test-mesh-crypto.c:965:11: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
key_aid |= KEY_ID_AKF;
~~~~~~~ ^
unit/test-mesh-crypto.c:1008:2: warning: 4th function call argument is an uninitialized value
verify_uint8("NID", 0, keys->net_nid, nid);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unit/test-mesh-crypto.c:1289:6: warning: Branch condition evaluates to a garbage value
if (ctl) {
^~~
unit/test-mesh-crypto.c:1509:7: warning: Branch condition evaluates to a garbage value
if (net_ctl) {
^~~~~~~
unit/test-mesh-crypto.c:1763:2: warning: 1st function call argument is an uninitialized value
l_put_be64(cmac_tmp, cmac);
^~~~~~~~~~~~~~~~~~~~~~~~~~
6 warnings generated.
mesh/mesh-io.c:27:10: fatal error: mesh/mesh-io-mgmt.h: No such file or directory
27 | #include "mesh/mesh-io-mgmt.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:7491: mesh/mesh-io.o] Error 1
make: *** [Makefile:4451: all] Error 2




---
Regards,
Linux Bluetooth