Diff between 87420ada414a8d73e471dddb8a788a84a44553d7 and 245bb41fd5045633133717ce2fceed12c6858b61

Changed Files

File Additions Deletions Status
tools/parser/att.c +20 -0 modified

Full Patch

diff --git a/tools/parser/att.c b/tools/parser/att.c
index a1cd9af..7046357 100644
--- a/tools/parser/att.c
+++ b/tools/parser/att.c
@@ -507,6 +507,22 @@ static void att_signed_write_dump(int level, struct frame *frm)
 	printf("\n");
 }
 
+static void att_prep_write_dump(int level, struct frame *frm)
+{
+	uint16_t handle = btohs(htons(get_u16(frm)));
+	uint16_t val_offset = btohs(htons(get_u16(frm)));
+
+	p_indent(level, frm);
+	printf("attr handle 0x%4.4x, value offset 0x%4.4x\n", handle,
+								val_offset);
+
+	p_indent(level, frm);
+	printf("part attr value ");
+	while (frm->len > 0)
+		printf(" 0x%2.2x", get_u8(frm));
+	printf("\n");
+}
+
 static void att_handle_notify_dump(int level, struct frame *frm)
 {
 	uint16_t handle = btohs(htons(get_u16(frm)));
@@ -587,6 +603,10 @@ void att_dump(int level, struct frame *frm)
 		case ATT_OP_SIGNED_WRITE_CMD:
 			att_signed_write_dump(level + 1, frm);
 			break;
+		case ATT_OP_PREP_WRITE_REQ:
+		case ATT_OP_PREP_WRITE_RESP:
+			att_prep_write_dump(level + 1, frm);
+			break;
 		case ATT_OP_HANDLE_NOTIFY:
 			att_handle_notify_dump(level + 1, frm);
 			break;