<p>Hoernchen has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/simtrace2/+/24737">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">contrib: add a basic simtrace lua dissector for wireshark<br><br>See Help->About Wireshark->Folders tab,the usual place this should go is<br>~/.local/lib/wireshark/plugins<br>Hot reload possible after editing using Analyze->Reload Lua Plugins<br><br>Change-Id: I360ab522dabc3a378969df36efd3b48fc4cade3c<br>---<br>A contrib/simtrace.lua<br>1 file changed, 67 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/37/24737/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/contrib/simtrace.lua b/contrib/simtrace.lua</span><br><span>new file mode 100644</span><br><span>index 0000000..68eb961</span><br><span>--- /dev/null</span><br><span>+++ b/contrib/simtrace.lua</span><br><span>@@ -0,0 +1,67 @@</span><br><span style="color: hsl(120, 100%, 40%);">+usb_simtrace_protocol = Proto("USB_simtrace",  "USB simtrace protocol")</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+local control_commands = {</span><br><span style="color: hsl(120, 100%, 40%);">+-- /* SIMTRACE_MSGC_GENERIC */</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0000] = "SIMTRACE_CMD_DO_ERROR",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0001] = "SIMTRACE_CMD_BD_BOARD_INFO",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+-- /* SIMTRACE_MSGC_CARDEM */</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0101] = "SIMTRACE_MSGT_DT_CEMU_TX_DATA",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0102] = "SIMTRACE_MSGT_DT_CEMU_SET_ATR",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0103] = "SIMTRACE_MSGT_BD_CEMU_STATS",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0104] = "SIMTRACE_MSGT_BD_CEMU_STATUS",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0105] = "SIMTRACE_MSGT_DT_CEMU_CARDINSERT",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0106] = "SIMTRACE_MSGT_DO_CEMU_RX_DATA",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0107] = "SIMTRACE_MSGT_DO_CEMU_PTS",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0108] = "SIMTRACE_MSGT_BD_CEMU_CONFIG",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+-- /* SIMTRACE_MSGC_MODEM */</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0201] = "SIMTRACE_MSGT_DT_MODEM_RESET",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0202] = "SIMTRACE_MSGT_DT_MODEM_SIM_SELECT",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0203] = "SIMTRACE_MSGT_BD_MODEM_STATUS",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+-- /* SIMTRACE_MSGC_SNIFF */</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0300] = "SIMTRACE_MSGT_SNIFF_CHANGE",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0301] = "SIMTRACE_MSGT_SNIFF_FIDI",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0302] = "SIMTRACE_MSGT_SNIFF_ATR",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0304] = "SIMTRACE_MSGT_SNIFF_TPDU",</span><br><span style="color: hsl(120, 100%, 40%);">+[0x0303] = "SIMTRACE_MSGT_SNIFF_PPS"</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+local msgtype  = ProtoField.uint16("usb_simtrace.msgtype", "Message Type", base.HEX_DEC, control_commands)</span><br><span style="color: hsl(120, 100%, 40%);">+local seqnr  = ProtoField.uint8("usb_simtrace.seqnr", "Sequence Number", base.HEX_DEC)</span><br><span style="color: hsl(120, 100%, 40%);">+local slotnr  = ProtoField.uint8("usb_simtrace.slotnr", "Slot Number", base.HEX_DEC)</span><br><span style="color: hsl(120, 100%, 40%);">+local reserved  = ProtoField.uint16("usb_simtrace.reserved", "reserved", base.HEX_DEC)</span><br><span style="color: hsl(120, 100%, 40%);">+local payloadlen  = ProtoField.uint16("usb_simtrace.length", "length", base.HEX_DEC)</span><br><span style="color: hsl(120, 100%, 40%);">+local payload  = ProtoField.bytes("usb_simtrace.payload", "Data")</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+usb_simtrace_protocol.fields = {</span><br><span style="color: hsl(120, 100%, 40%);">+  msgtype, seqnr, slotnr, reserved, payloadlen, payload</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+function usb_simtrace_protocol.dissector(buffer, pinfo, tree)</span><br><span style="color: hsl(120, 100%, 40%);">+  length = buffer:len()</span><br><span style="color: hsl(120, 100%, 40%);">+  if length == 0 then return end</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  pinfo.cols.protocol = usb_simtrace_protocol.name</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  local subtree = tree:add(usb_simtrace_protocol, buffer(), "USB simtrace Data")</span><br><span style="color: hsl(120, 100%, 40%);">+  local command = buffer(0,2):uint()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  subtree:add(msgtype, command):set_generated()</span><br><span style="color: hsl(120, 100%, 40%);">+  subtree:add(seqnr, buffer(2,1))</span><br><span style="color: hsl(120, 100%, 40%);">+  subtree:add(slotnr, buffer(3,1))</span><br><span style="color: hsl(120, 100%, 40%);">+  subtree:add_le(payloadlen, buffer(6,2))</span><br><span style="color: hsl(120, 100%, 40%);">+  pinfo.cols.info = string.format("Cmd 0x%04X : %s", command, control_commands[command])</span><br><span style="color: hsl(120, 100%, 40%);">+  subtree:add(payload, buffer(8,length-8))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+end</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+function usb_simtrace_protocol.init()</span><br><span style="color: hsl(120, 100%, 40%);">+local usb_product_dissectors = DissectorTable.get("usb.product")</span><br><span style="color: hsl(120, 100%, 40%);">+usb_product_dissectors:add(0x1d50616d, usb_simtrace_protocol)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+-- DissectorTable.get("usb.bulk"):add(0xffff, usb_simtrace_protocol)</span><br><span style="color: hsl(120, 100%, 40%);">+end</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/simtrace2/+/24737">change 24737</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/simtrace2/+/24737"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: simtrace2 </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I360ab522dabc3a378969df36efd3b48fc4cade3c </div>
<div style="display:none"> Gerrit-Change-Number: 24737 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>