* [PATCH] hcidump: decode extended flow spec option
@ 2011-07-27 9:23 Emeltchenko Andrei
2011-07-29 10:07 ` Johan Hedberg
0 siblings, 1 reply; 3+ messages in thread
From: Emeltchenko Andrei @ 2011-07-27 9:23 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Decode EFS option in l2cap configuration packets
---
parser/l2cap.c | 52 ++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/parser/l2cap.c b/parser/l2cap.c
index f7f0c3e..6345f8d 100644
--- a/parser/l2cap.c
+++ b/parser/l2cap.c
@@ -277,14 +277,18 @@ static char *status2str(uint16_t status)
static char *confresult2str(uint16_t result)
{
switch (result) {
- case 0x0000:
+ case L2CAP_CONF_SUCCESS:
return "Success";
- case 0x0001:
+ case L2CAP_CONF_UNACCEPT:
return "Failure - unacceptable parameters";
- case 0x0002:
+ case L2CAP_CONF_REJECT:
return "Failure - rejected (no reason provided)";
- case 0x0003:
+ case L2CAP_CONF_UNKNOWN:
return "Failure - unknown options";
+ case L2CAP_CONF_PENDING:
+ return "Pending";
+ case L2CAP_CONF_EFS_REJECT:
+ return "Failure - flowspec reject";
default:
return "Reserved";
}
@@ -304,11 +308,11 @@ static char *inforesult2str(uint16_t result)
static char *type2str(uint8_t type)
{
switch (type) {
- case 0x00:
+ case L2CAP_SERVTYPE_NOTRAFFIC:
return "No traffic";
- case 0x01:
- return "Best effort";
- case 0x02:
+ case L2CAP_SERVTYPE_BESTEFFORT:
+ return "Best Effort";
+ case L2CAP_SERVTYPE_GUARANTEED:
return "Guaranteed";
default:
return "Reserved";
@@ -477,6 +481,25 @@ static void conf_rfc(void *ptr, int len, int in, uint16_t cid)
printf(")");
}
+static void conf_efs(void *ptr)
+{
+ uint8_t id, ser_type;
+ uint16_t max_sdu;
+ uint32_t sdu_itime, access_lat, flush_to;
+
+ id = get_val(ptr, sizeof(id));
+ ser_type = get_val(ptr + 1, sizeof(ser_type));
+ max_sdu = get_val(ptr + 2, sizeof(max_sdu));
+ sdu_itime = get_val(ptr + 4, sizeof(sdu_itime));
+ access_lat = get_val(ptr + 8, sizeof(access_lat));
+ flush_to = get_val(ptr + 12, sizeof(flush_to));
+
+ printf("EFS (Id 0x%02x, SerType %s, MaxSDU 0x%04x, SDUitime 0x%08x, "
+ "AccLat 0x%08x, FlushTO 0x%08x)",
+ id, type2str(ser_type), max_sdu, sdu_itime,
+ access_lat, flush_to);
+}
+
static void conf_fcs(void *ptr, int len)
{
uint8_t fcs;
@@ -489,6 +512,7 @@ static void conf_fcs(void *ptr, int len)
static void conf_opt(int level, void *ptr, int len, int in, uint16_t cid)
{
+ int indent = 0;
p_indent(level, 0);
while (len > 0) {
l2cap_conf_opt *h = ptr;
@@ -499,6 +523,11 @@ static void conf_opt(int level, void *ptr, int len, int in, uint16_t cid)
if (h->type & 0x80)
printf("[");
+ if (indent++) {
+ printf("\n");
+ p_indent(level, 0);
+ }
+
switch (h->type & 0x7f) {
case L2CAP_CONF_MTU:
set_mode(in, cid, 0x00);
@@ -527,6 +556,10 @@ static void conf_opt(int level, void *ptr, int len, int in, uint16_t cid)
conf_fcs(h->val, h->len);
break;
+ case L2CAP_CONF_EFS:
+ conf_efs(h->val);
+ break;
+
default:
printf("Unknown (type %2.2x, len %d)", h->type & 0x7f, h->len);
break;
@@ -562,6 +595,9 @@ static void conf_list(int level, uint8_t *list, int len)
case L2CAP_CONF_FCS:
printf("FCS ");
break;
+ case L2CAP_CONF_EFS:
+ printf("EFS ");
+ break;
default:
printf("%2.2x ", list[i] & 0x7f);
break;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] hcidump: decode extended flow spec option
2011-07-27 9:23 [PATCH] hcidump: decode extended flow spec option Emeltchenko Andrei
@ 2011-07-29 10:07 ` Johan Hedberg
2011-07-29 16:59 ` Luiz Augusto von Dentz
0 siblings, 1 reply; 3+ messages in thread
From: Johan Hedberg @ 2011-07-29 10:07 UTC (permalink / raw)
To: Emeltchenko Andrei; +Cc: linux-bluetooth
Hi Andrei,
On Wed, Jul 27, 2011, Emeltchenko Andrei wrote:
> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
>
> Decode EFS option in l2cap configuration packets
> ---
> parser/l2cap.c | 52 ++++++++++++++++++++++++++++++++++++++++++++--------
> 1 files changed, 44 insertions(+), 8 deletions(-)
Applied. Thanks.
Johan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] hcidump: decode extended flow spec option
2011-07-29 10:07 ` Johan Hedberg
@ 2011-07-29 16:59 ` Luiz Augusto von Dentz
0 siblings, 0 replies; 3+ messages in thread
From: Luiz Augusto von Dentz @ 2011-07-29 16:59 UTC (permalink / raw)
To: Emeltchenko Andrei, linux-bluetooth
Hi Andrei,
On Fri, Jul 29, 2011 at 1:07 PM, Johan Hedberg <johan.hedberg@gmail.com> wrote:
> Hi Andrei,
>
> On Wed, Jul 27, 2011, Emeltchenko Andrei wrote:
>> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
>>
>> Decode EFS option in l2cap configuration packets
>> ---
>> parser/l2cap.c | 52 ++++++++++++++++++++++++++++++++++++++++++++--------
>> 1 files changed, 44 insertions(+), 8 deletions(-)
>
> Applied. Thanks.
>
> Johan
> --
I think we might want to check the version of libbluetooth, otherwise
this might fail to compile with older version.
--
Luiz Augusto von Dentz
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-07-29 16:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-27 9:23 [PATCH] hcidump: decode extended flow spec option Emeltchenko Andrei
2011-07-29 10:07 ` Johan Hedberg
2011-07-29 16:59 ` Luiz Augusto von Dentz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).