diff --git a/dissector.lua b/dissector.lua index da1eb62..a846446 100644 --- a/dissector.lua +++ b/dissector.lua @@ -26,6 +26,11 @@ ilnk_proto.fields.payload_len = ProtoField.uint32("iLnkP2P.payload_len", "Payl ilnk_proto.fields.frame_no = ProtoField.uint32("iLnkP2P.frame_no", "Frame no") -- audio ilnk_proto.fields.audio_header = ProtoField.bytes("iLnkP2P.audio_header", "Audio Header") +ilnk_proto.fields.hdr_streamid = ProtoField.uint16("iLnkP2P.hdr_streamid", "Header Stream ID") +ilnk_proto.fields.hdr_frameno = ProtoField.uint32("iLnkP2P.hdr_frameno", "Header Frame") +ilnk_proto.fields.hdr_len = ProtoField.uint16("iLnkP2P.hdr_len", "Header Len") +ilnk_proto.fields.hdr_ver = ProtoField.uint16("iLnkP2P.hdr_ver", "Header version") +ilnk_proto.fields.hdr_res = ProtoField.uint16("iLnkP2P.hdr_red", "Header resolution") ilnk_proto.fields.encrypted = ProtoField.bool("iLnkP2P.encrypted", "Encrypted") ilnk_proto.fields.cmd_type = ProtoField.string("iLnkP2P.cmd_type", "Cmd Pkt Type") @@ -57,6 +62,12 @@ lut = { [0xf171] = "RlyHelloAck2", } +control_lut = { + [0x2010] = "ConnectUser", + [0x2011] = "ConnectUserAck", + [0x0811] = "ConnectUserAck", +} + -- Define a function to dissect the packets function ilnk_proto.dissector(buffer, pinfo, tree) local packet_length = buffer:len() @@ -153,6 +164,12 @@ function ilnk_proto.dissector(buffer, pinfo, tree) if payload_tvb:range(0, 4):uint() == 0x55aa15a8 then payload_type = "audio" subtree:add(ilnk_proto.fields.audio_header, buffer(8, 32)) + subtree:add(ilnk_proto.fields.hdr_streamid, buffer(13, 1)) + subtree:add(ilnk_proto.fields.hdr_frameno, buffer(20, 4), buffer(20, 4):le_uint()) + subtree:add(ilnk_proto.fields.hdr_len, buffer(24, 4), buffer(24, 4):le_uint()) + subtree:add(ilnk_proto.fields.hdr_ver, buffer(28, 1), buffer(28, 1):le_uint()) + subtree:add(ilnk_proto.fields.hdr_res, buffer(29, 1), buffer(29, 1):le_uint()) + subtree:add(ilnk_proto.fields.payload_len, buffer(24, 4), buffer(24, 4):le_uint()) subtree:add(ilnk_proto.fields.frame_no, buffer(20, 4), buffer(20, 4):le_uint()) if payload_tvb:range(4, 1):uint() == 0x06 then