* [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 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.