From a6996ea00ba6075b11fb239a6dcf779e93a7e9e4 Mon Sep 17 00:00:00 2001 From: Max Krasnyansky Date: Fri, 17 Aug 2001 06:17:58 +0000 Subject: [PATCH] hcidump: Initial implementation of CID to PSM mapping. --- tools/parser/l2cap.c | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tools/parser/l2cap.c b/tools/parser/l2cap.c index 0fe443cf2..b328ee0ca 100644 --- a/tools/parser/l2cap.c +++ b/tools/parser/l2cap.c @@ -39,6 +39,43 @@ #include "parser.h" +typedef struct { + __u16 cid; + __u16 psm; +} cid_info; +#define CID_TABLE_SIZE 20 + +static cid_info scid_table[CID_TABLE_SIZE]; +static cid_info dcid_table[CID_TABLE_SIZE]; + +#define SCID scid_table +#define DCID dcid_table + +static void add_cid(cid_info *table, __u16 cid) +{ + register int i; + for (i=0; iptr; @@ -51,6 +88,8 @@ static inline void conn_req(int level, struct frame *frm) l2cap_conn_req *h = frm->ptr; printf("Connect req: psm %d scid 0x%4.4x\n", btohs(h->psm), btohs(h->scid)); + + //add_cid(SCID, scid); } static inline void conn_rsp(int level, struct frame *frm) @@ -59,6 +98,8 @@ static inline void conn_rsp(int level, struct frame *frm) printf("Connect rsp: dcid 0x%4.4x scid 0x%4.4x result %d status %d\n", btohs(h->dcid), btohs(h->scid), btohs(h->result), btohs(h->status)); + + //add_cid(DCID, dcid); } static __u32 conf_opt_val(__u8 *ptr, __u8 len) @@ -132,6 +173,8 @@ static inline void disconn_rsp(int level, struct frame *frm) l2cap_disconn_rsp *h = frm->ptr; printf("Disconn rsp: dcid 0x%4.4x scid 0x%4.4x\n", btohs(h->dcid), btohs(h->scid)); + //del_cid(DCID, dcid); + //del_cid(SCID, scid); } static inline void echo_req(int level, l2cap_cmd_hdr *cmd, struct frame *frm) @@ -236,6 +279,19 @@ void l2cap_dump(int level, struct frame *frm) } } else { printf("L2CAP(d): cid 0x%x len %d\n", cid, dlen); + + /* + if (frm->in) + psm = get_psm(DCID, cid); + else + psm = get_psm(SCID, cid); + + switch (psm) { + case RFCOMM: + case SDP: + } + */ + raw_dump(level, frm); } } -- 2.47.3