1 | initial version |
Save the Lua script below to a file ending in .lua
in the
Help->About Wireshark->Folders: Personal Lua Plugins
folder.
Start Wireshark or if Wireshark is already running, do Analyze->Reload Lua Plugins
.
It creates a new field (my_ppi.rate
) formatted like the field in the Packet Details.
-- my_ppi.lua -- https://ask.wireshark.org/question/26798/data-rate-formatting-possible/ -- Grab and format fields as needed -- Step 1 - document as you go. See header above and set_plugin_info(). local my_ppi_info = { version = "1.0.0", author = "Chuck Craft", description = "Copy ppi.80211-common.rate with custom format", } set_plugin_info(my_ppi_info) -- Step 2 - create a protocol to attach new fields to local my_ppi_p = Proto.new("my_ppi","Custom formatted ppi fields") -- Step 3 - add some field(s) to Step 2 protocol local pf = { rate = ProtoField.string("my_ppi.rate", "ppi.80211-common.rate with units") } my_ppi_p.fields = pf -- Step 4 - grab existing field(s) that will have different output format ppi_rate_f = Field.new("ppi.80211-common.rate") -- Step 5 - create the postdissector function that will run on each frame/packet function my_ppi_p.dissector(tvb,pinfo,root) local tree = nil finfo = ppi_rate_f() if not (finfo == nil) then if not tree then tree = root:add(my_ppi_p) end local field_data = string.format("%.1f Mbps", finfo() / 1000.0) tree:add(pf.rate, field_data) end end -- Step 6 - register the new protocol as a postdissector register_postdissector(my_ppi_p)
2 | No.2 Revision |
Save the Lua script below to a file ending in .lua
in the
Help->About Wireshark->Folders: Personal Lua Plugins
folder.
Start Wireshark or if Wireshark is already running, do Analyze->Reload Lua Plugins
.
It creates a new field (my_ppi.rate
) formatted like the field in the Packet Details.
-- my_ppi.lua -- https://ask.wireshark.org/question/26798/data-rate-formatting-possible/ -- Grab and format fields as needed -- Step 1 - document as you go. See header above and set_plugin_info(). local my_ppi_info = { version = "1.0.0", author = "Chuck Craft", description = "Copy ppi.80211-common.rate with custom format", } set_plugin_info(my_ppi_info) -- Step 2 - create a protocol to attach new fields to local my_ppi_p = Proto.new("my_ppi","Custom formatted ppi fields") -- Step 3 - add some field(s) to Step 2 protocol local pf = { rate = ProtoField.string("my_ppi.rate", "ppi.80211-common.rate with units") } my_ppi_p.fields = pf -- Step 4 - grab existing field(s) that will have different output format ppi_rate_f = Field.new("ppi.80211-common.rate") -- Step 5 - create the postdissector function that will run on each frame/packet function my_ppi_p.dissector(tvb,pinfo,root) local tree = nil finfo = ppi_rate_f() if not (finfo == nil) then if not tree then tree = root:add(my_ppi_p) end local field_data = string.format("%.1f Mbps", finfo() / 1000.0) tree:add(pf.rate, field_data) end end -- Step 6 - register the new protocol as a postdissector register_postdissector(my_ppi_p)