From: Marcel Holtmann <marcel@holtmann.org>
To: ngh@isomerica.net
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH] Add support to hcidump for parsing Enhanced L2CAP configuration options
Date: Tue, 28 Apr 2009 08:17:51 -0700 [thread overview]
Message-ID: <1240931871.997.15.camel@localhost.localdomain> (raw)
In-Reply-To: <1240930749.3441.5873.camel@localhost.localdomain>
Hi Nathan,
> This allows hcidump to parse the FCS and other options that are used to
> negotiate an Enhanced Retransmission or Streaming mode L2CAP connection.
>
> I've add an #indef L2CAP_CONF_FCS to the top of the code which mirrors
> a change under the kernel headers to allow building on systems without
> the modified kernel headers.
this needs to be submitted against libbluetooth. I just added that value
to it.
> ---
> l2cap.c | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/parser/l2cap.c b/parser/l2cap.c
> index a906f42..64839f5 100644
> --- a/parser/l2cap.c
> +++ b/parser/l2cap.c
> @@ -65,6 +65,10 @@ static cid_info cid_table[2][CID_TABLE_SIZE];
> #define SCID cid_table[0]
> #define DCID cid_table[1]
>
> +#ifndef L2CAP_CONF_FCS
> +#define L2CAP_CONF_FCS 0x05
> +#endif
> +
> static struct frame *add_handle(uint16_t handle)
> {
> register handle_info *t = handle_table;
> @@ -306,6 +310,10 @@ static char *mode2str(uint8_t mode)
> return "Retransmission";
> case 0x02:
> return "Flow control";
> + case 0x03:
> + return "Enhanced Retransmission";
> + case 0x04:
> + return "Streaming";
> default:
> return "Reserved";
> }
> @@ -428,7 +436,7 @@ static void conf_rfc(void *ptr, int len, int in,
> uint16_t cid)
> set_mode(in, cid, mode);
>
> printf("RFC 0x%02x (%s", mode, mode2str(mode));
> - if (mode == 0x01 || mode == 0x02) {
> + if (mode >= 0x01 && mode <= 0x08) {
> uint8_t txwin, maxtrans;
> uint16_t rto, mto, mps;
> txwin = *((uint8_t *) (ptr + 1));
> @@ -478,6 +486,12 @@ static void conf_opt(int level, void *ptr, int len,
> int in, uint16_t cid)
> conf_rfc(h->val, h->len, in, cid);
> break;
>
> + case L2CAP_CONF_FCS:
> + printf("FCS Option");
> + if (h->len > 0);
> + printf(" 0x%x", get_val(h->val, h->len));
> + break;
> +
> default:
> printf("Unknown (type %2.2x, len %d)", h->type & 0x7f, h->len);
> break;
> @@ -510,6 +524,9 @@ static void conf_list(int level, uint8_t *list, int
> len)
> case L2CAP_CONF_RFC:
> printf("RFC ");
> break;
> + case L2CAP_CONF_FCS:
> + printf("FCS Option");
> + break;
please add proper parsing of FCS Option here. And of course if has to
have an extra " " at the end.
Regards
Marcel
next prev parent reply other threads:[~2009-04-28 15:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-28 14:59 [PATCH] Add support to hcidump for parsing Enhanced L2CAP configuration options Nathan Holstein
2009-04-28 15:17 ` Marcel Holtmann [this message]
2009-04-28 16:06 ` Nathan Holstein
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=1240931871.997.15.camel@localhost.localdomain \
--to=marcel@holtmann.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=ngh@isomerica.net \
/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