telekom / 5g-trace-visualizer

This set of Python scripts allow you to convert pcap, pcapnp or pdml 5G protocol traces (Wireshark, tcpdump, ...) into SVG sequence diagrams.
Apache License 2.0
265 stars 77 forks source link

Linux support #4

Closed testillano closed 4 years ago

testillano commented 4 years ago

I tried this on my linux but i realized that wireshark folder expect for a wireshark portable version with .exe binaries inside, which are used depending on the input (pldm, pcap).

Would it be difficult to migrate on linux environment ? i mean, use tshark instead of tshark.exe, etc., etc. I think that a great job is done on this python script and i wonder about this possibility because i suspect is not far away to achieve.

Thank U !

jkolom commented 4 years ago

Hi Eduardo,

I'm happy that you found the work useful :) As for how to adapt the script, I think that the only required change would be in the tshark call. The easy part is that in the case of Linux one uses "tshark" instead of "tshark.exe" (e.g. https://stackoverflow.com/questions/110362/how-can-i-find-the-current-os-in-python ).

The only issue I see is that I did not see any Wireshark Portable Linux version. For that, it seems that you could compile a statically-linked version from source (I found http://wireshark.askapache.com/lists/wireshark-dev/201103/msg00067.htm http://wireshark.askapache.com/lists/wireshark-dev/201103/msg00067.html) Also, what I could imagine is that have a "special version number" such as "OS" and in that case generate a normal tshark command (instead of with the full path).

It should not be difficult to implement. However I have no Linux machine to test this. Since it seems you are using Wireshark in Linux, could you check it and document know how it should be done? The first change (add a "OS" Wireshark version) I could do, no problem. But to to change the command based on OS settings and to properly document how to use a portable Linux version is not something I could test, so it makes better sense that somebody else does :)

BR, Josep

On Thu, Mar 26, 2020 at 3:59 AM Eduardo Ramos Testillano < notifications@github.com> wrote:

I tried this on my linux but i realized that wireshark folder expect for a wireshark portable version with .exe binaries inside, which are used depending on the input (pldm, pcap).

Would it be difficult to migrate on linux environment ? i mean, use tshark instead of tshark.exe, etc., etc. I think that a great job is done on this python script and i wonder about this possibility because i suspect is not far away to achieve.

Thank U !

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/telekom/5g-trace-visualizer/issues/4, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD7F3VC5RHB67OCBXXAYLLRJLAJLANCNFSM4LT5CDDQ .

jkolom commented 4 years ago

PS: I just checked and subprocess.run can take either tshark.exe and tshark. So I removed the '.exe' part

testillano commented 4 years ago

Good for that. What i did was not so smart. I symlinked "tshark.exe" to my /usr/bin/tshark. I found further problems, probably with passed parameters. I have to find out (no too much time, but i will do my best) I will get sources and try to solve this assuming that all the needed tools are in place (mergecap, etc.). keep in contact. Bye!

testillano commented 4 years ago

I think i executed the tool successfully. The patch attached here is not very robust (there are lot of issues with options for each versions) but could be a good start point. In my cas i have a pcap file, not using mergecap (not migrated to linux this part).

patch.txt

Take a look and feedback.

testillano commented 4 years ago

Updated patch (git diff over your master). Now includes mergecap, and it is running on linux !! Note that I also included '-Djava.awt.headless=true' when executing plantuml jar, because sometimes you don't have a X server display available but wants to create the svg file. Perhaps this could be optional in the python script arguments. patch.diff.txt