On 08/31/10 09:38, Vishal Kumar Singh wrote:
> [...]
> Please, suggest me a suitable method to this. Can i select based on
> message type to differentiate UL CCCH, UL DCCH, DL CCCH messages? Or, is
> there any other method to differentiate the messages?
>
Hi Vishal,
using Lua this is possible by prefixing each message with e.g. a single byte message
type and calling the appropriate dissector based on the message type like this:
do
rlsmon_proto = Proto("rlsmon","rlsmon","rlsmon Protocol")
function rlsmon_proto.init()
local function rrcdissector(name)
local disname = string.gsub(string.lower(name), "[ -]", ".")
return { protocol = name, dissector = Dissector.get(disname) }
end
rlsmon = {
[0] = rrcdissector("RRC DL-DCCH"),
[1] = rrcdissector("RRC UL-DCCH"),
[2] = rrcdissector("RRC DL-CCCH"),
[3] = rrcdissector("RRC UL-CCCH"),
}
end
function rlsmon_proto.dissector(buffer,pinfo,tree)
local msgtype = buffer(0,1):uint()
local payload = buffer(1):tvb()
pinfo.cols.protocol = rlsmon[msgtype].protocol
rlsmon[msgtype].dissector:call(payload,pinfo,tree)
end
local wtap_encap_table = DissectorTable.get("wtap_encap")
wtap_encap_table:add(wtap.USER1, rlsmon_proto)
end
A similar scheme should also be applicaple for your LTE RRC case.
Regards,
Reinhard