Wireshark mailing list archives

Re: Wireshark lua (wslua) and bit fields - how to do it?


From: Daniel Lynes <dlynes () pv-labs com>
Date: Fri, 22 Oct 2010 13:36:59 +0000

Thanks, Tamás,

Is this the best way of doing bitfields in wireshark, if you want to
make them filterable?

On Fri, 2010-10-22 at 13:05 +0800, Tamás Regõs wrote:
Hi,
 
Try ByteArray.tvb(hexba,"hex") instead of Tvb.new_real(hexba, "hex")
Tvb.new_real does not exists.
 
Regards,
Tamas
 




______________________________________________________________________
From: wireshark-dev-bounces () wireshark org
[mailto:wireshark-dev-bounces () wireshark org] On Behalf Of Daniel Lynes
Sent: Friday, 22 October 2010 4:46 AM
To: wireshark-dev () wireshark org
Subject: [Wireshark-dev] Wireshark lua (wslua) and bit fields - how to
do it?




I'm trying to output some bit values in my wireshark dissector decode.
However, I want to be able to filter based on those bit values.

I can't seem to use the LUA bitop library to do it, because lua
complains that the result is not a uservalue.

I've got the following code:

                        for shred = 1, num_shreds
                        do
                                subtree:add("----- NV Storage Shred
" .. shred .. " -----")
                                subtree:add(fields.shred_id,
buffer(offset, 8))
                                subtree:add(fields.shred_flags,
buffer(offset+8, 8))
                                local
flags=tonumber(tostring(buffer(offset+8,8):uint64()))
                                local
hex=tostring(bit.tohex(bit.band(flags,0x02)))
                                subtree:add("----- NV Storage hex
flags: " .. hex)
                                local hexba=ByteArray.new(hex)
                          -- The following line complains about a nil
uservalue
                                local rdonly=Tvb.new_real(hexba,
"hex")
                          -- The following line complains about the
value being a number instead of a uservalue
                                subtree:add(fields.shred_rd,
bit.band(flags, 0x02))
                                offset=offset+inc
                        end

Does anyone happen to have any clues as to what I'm doing wrong?
Fwiw, I'm using 1.2.0 (1.3, 1.4, and 1.5 all have video corruption
issues, and 1.0 has issues with 64-bit integers).

Thanks. 

Daniel Lynes
Software Engineer
PV Labs Intelligent Imaging
(905) 667-7308

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: