From: "Frédéric Danis" <frederic.danis@collabora.com>
To: linux-bluetooth@vger.kernel.org
Subject: [PATCH] Bluetooth: rfcomm: Accept any XON/XOFF char
Date: Mon, 31 Mar 2025 15:15:03 +0200 [thread overview]
Message-ID: <20250331131503.63375-1-frederic.danis@collabora.com> (raw)
The latest version of PTS test RFCOMM/DEVA-DEVB/RFC/BV-17-C
(RFCOMM v11.7.6.3) used unusual chars for XON (0x28 instead of
0x11) and XOFF (0xC8 instead of 0x13) and expect a reply with RPN
parameters set for XON and XOFF.
Current btmon traces:
> ACL Data RX: Handle 11 flags 0x02 dlen 18
Channel: 64 len 14 [PSM 3 mode Basic (0x00)] {chan 0}
RFCOMM: Unnumbered Info with Header Check (UIH) (0xef)
Address: 0x03 cr 1 dlci 0x00
Control: 0xef poll/final 0
Length: 10
FCS: 0x70
MCC Message type: Remote Port Negotiation Command CMD (0x24)
Length: 8
dlci 32
br 3 db 3 sb 0 p 0 pt 0 xi 0 xo 0
rtri 0 rtro 0 rtci 0 rtco 0 xon 40 xoff 200
pm 0xff7f
< ACL Data TX: Handle 11 flags 0x00 dlen 18
Channel: 64 len 14 [PSM 3 mode Basic (0x00)] {chan 0}
RFCOMM: Unnumbered Info with Header Check (UIH) (0xef)
Address: 0x01 cr 0 dlci 0x00
Control: 0xef poll/final 0
Length: 10
FCS: 0xaa
MCC Message type: Remote Port Negotiation Command RSP (0x24)
Length: 8
dlci 32
br 3 db 3 sb 0 p 0 pt 0 xi 0 xo 0
rtri 0 rtro 0 rtci 0 rtco 0 xon 17 xoff 19
pm 0x3f1f
Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
---
net/bluetooth/rfcomm/core.c | 20 ++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index ad5177e3a69b..0c0525939aa0 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -1562,23 +1562,15 @@ static int rfcomm_recv_rpn(struct rfcomm_session *s, int cr, int len, struct sk_
}
}
- if (rpn->param_mask & cpu_to_le16(RFCOMM_RPN_PM_XON)) {
+ if (rpn->param_mask & cpu_to_le16(RFCOMM_RPN_PM_XON))
xon_char = rpn->xon_char;
- if (xon_char != RFCOMM_RPN_XON_CHAR) {
- BT_DBG("RPN XON char mismatch 0x%x", xon_char);
- xon_char = RFCOMM_RPN_XON_CHAR;
- rpn_mask ^= RFCOMM_RPN_PM_XON;
- }
- }
+ else
+ rpn_mask ^= RFCOMM_RPN_PM_XON;
- if (rpn->param_mask & cpu_to_le16(RFCOMM_RPN_PM_XOFF)) {
+ if (rpn->param_mask & cpu_to_le16(RFCOMM_RPN_PM_XOFF))
xoff_char = rpn->xoff_char;
- if (xoff_char != RFCOMM_RPN_XOFF_CHAR) {
- BT_DBG("RPN XOFF char mismatch 0x%x", xoff_char);
- xoff_char = RFCOMM_RPN_XOFF_CHAR;
- rpn_mask ^= RFCOMM_RPN_PM_XOFF;
- }
- }
+ else
+ rpn_mask ^= RFCOMM_RPN_PM_XOFF;
rpn_out:
rfcomm_send_rpn(s, 0, dlci, bit_rate, data_bits, stop_bits,
--
2.43.0
next reply other threads:[~2025-03-31 13:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-31 13:15 Frédéric Danis [this message]
2025-03-31 13:30 ` [PATCH] Bluetooth: rfcomm: Accept any XON/XOFF char Luiz Augusto von Dentz
2025-04-01 7:19 ` Frédéric Danis
2025-03-31 14:03 ` bluez.test.bot
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=20250331131503.63375-1-frederic.danis@collabora.com \
--to=frederic.danis@collabora.com \
--cc=linux-bluetooth@vger.kernel.org \
/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.