2024-06-06 16:32:51

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ v1] isotest: Fix ISO send data rate

From: Luiz Augusto von Dentz <[email protected]>

We are sending data to controller at wrong average rate not equal to
1 packet / SDU interval, if Transport_Latency is not an integer multiple
of SDU_Interval. The calculation currently may also give zero, so no
data gets sent.
---
tools/isotest.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tools/isotest.c b/tools/isotest.c
index 68154b19caa4..c1bb6abd29aa 100644
--- a/tools/isotest.c
+++ b/tools/isotest.c
@@ -46,6 +46,7 @@
#define NSEC_USEC(_t) (_t / 1000L)
#define SEC_USEC(_t) (_t * 1000000L)
#define TS_USEC(_ts) (SEC_USEC((_ts)->tv_sec) + NSEC_USEC((_ts)->tv_nsec))
+#define ROUND_CLOSEST(_x, _y) (((_x) + (_y / 2)) / (_y))

#define DEFAULT_BIG_ID 0x01
#define DEFAULT_BIS_ID 0x01
@@ -834,7 +835,9 @@ static void do_send(int sk, int fd, char *peer, bool repeat)
}

/* num of packets = latency (ms) / interval (us) */
- num = (out->latency * 1000 / out->interval);
+ num = ROUND_CLOSEST(out->latency * 1000, out->interval);
+ if (!num)
+ num = 1;

syslog(LOG_INFO, "Number of packets: %d", num);

@@ -843,8 +846,7 @@ static void do_send(int sk, int fd, char *peer, bool repeat)
* latency:
* jitter buffer = 2 * (SDU * subevents)
*/
- sndbuf = 2 * ((out->latency * 1000 / out->interval) *
- out->sdu);
+ sndbuf = 2 * (num * out->sdu);

len = sizeof(sndbuf);
if (setsockopt(sk, SOL_SOCKET, SO_SNDBUF, &sndbuf, len) < 0) {
--
2.45.1



2024-06-06 18:07:00

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v1] isotest: Fix ISO send data rate

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=859627

---Test result---

Test Summary:
CheckPatch PASS 0.48 seconds
GitLint PASS 0.34 seconds
BuildEll PASS 24.70 seconds
BluezMake PASS 1778.70 seconds
MakeCheck PASS 13.34 seconds
MakeDistcheck PASS 181.33 seconds
CheckValgrind PASS 255.58 seconds
CheckSmatch PASS 355.87 seconds
bluezmakeextell PASS 120.02 seconds
IncrementalBuild PASS 1481.70 seconds
ScanBuild PASS 1004.49 seconds



---
Regards,
Linux Bluetooth

2024-06-07 15:33:39

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [PATCH BlueZ v1] isotest: Fix ISO send data rate

Hello:

This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <[email protected]>:

On Thu, 6 Jun 2024 12:29:03 -0400 you wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> We are sending data to controller at wrong average rate not equal to
> 1 packet / SDU interval, if Transport_Latency is not an integer multiple
> of SDU_Interval. The calculation currently may also give zero, so no
> data gets sent.
>
> [...]

Here is the summary with links:
- [BlueZ,v1] isotest: Fix ISO send data rate
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=272d8e8c9599

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html