This Wireshark Plugin dissect the general Open MPI TCP-Traffic.
Please note: It is a proof of concept plugin with no claim to completeness! Usage at your own risk! It was only tested on a Linux machine with Wireshark 1.99.2
and Open MPI 1.8.4
.
To install this dissector, please read README.plugins. The help file is also available in the Wireshark doc
folder.
-
Download, if you have not already done, the Wireshark sources or clone the git repository
git clone https://code.wireshark.org/review/wireshark
-
Pack the following files in the
wireshark/plugins/mpi
folder- AUTHORS
- COPYING
- ChangeLog
- CMakeLists.txt
- Makefile.am
- Makefile.common
- Makefile.nmake
- moduleinfo.h
- moduleinfo.nmake
- packer-mpi.c
- packer-mpi.h
- plugin.rc.in
-
Changes to existing Wireshark files (e.g. see section
3.2 Permanent addition
in the readme file)
Make all changes in alphabetical order!
You will need to change the following files:- configure.ac
- CMakeLists.txt
- epan/Makefile.am
- Makefile.am
- packaging/nsis/Makefile.nmake
- packaging/nsis/wireshark.nsi
- plugins/Makefile.am
- plugins/Makefile.nmake
3.1. Changes to plugins/Makefile.am
SUBDIRS = $(_CUSTOM_SUBDIRS_) \
docsis \
...
mate \
mpi \
opcua \
...
3.2. Changes to plugins/Makefile.nmake
PLUGIN_LIST = \
docsis \
...
mate \
mpi \
opcua \
...
3.3. Changes to the top level Makefile.am
if HAVE_PLUGINS
-include plugins/Custom.make
plugin_ldadd = $(_CUSTOM_plugin_ldadd_) \
-dlopen plugins/docsis/docsis.la \
...
-dlopen plugins/mate/mate.la \
-dlopen plugins/mpi/mpi.la \
-dlopen plugins/opcua/opcua.la \
...
3.4. Changes to the top level configure.ac
AC_CONFIG_HEADERS(config.h)
AC_OUTPUT(
Makefile
...
plugins/mate/Makefile
plugins/mpi/Makefile
plugins/opcua/Makefile
...
3.5. Changes to epan/Makefile.am
if ENABLE_STATIC
-include ../plugins/Custom.make
plugin_src = \
../plugins/asn1/packet-asn1.c \
...
../plugins/m2m/wimax_tlv.c \
../plugins/mpi/packet-mpi.c \
../plugins/wimax/crc.c \
...
3.6. Changes to CMakeLists.txt
if(ENABLE_PLUGINS)
...
set(PLUGIN_SRC_DIRS
plugins/docsis
...
plugins/mate
plugins/mpi
plugins/opcua
...
3.7. Changes to the installers
If you want to include your plugin in an installer you have to change following files:
* packaging/nsis/Makefile.nmake
* packaging/nsis/wireshark.nsi
3.7.1. Changes to packaging/nsis/Makefile.nmake
PLUGINS= \
../../plugins/docsis/docsis.dll \
...
../../plugins/mate/mate.dll \
../../plugins/mpi/mpi.dll \
../../plugins/opcua/opcua.dll \
...
3.7.2. Changes to packaging/nsis/wireshark.nsi
Section "Dissector Plugins" SecPlugins
;-------------------------------------------
SetOutPath '$INSTDIR\plugins\${VERSION}'
File "${STAGING_DIR}\plugins\${VERSION}\docsis.dll"
...
File "${STAGING_DIR}\plugins\${VERSION}\m2m.dll"
File "${STAGING_DIR}\plugins\${VERSION}\mpi.dll"
File "${STAGING_DIR}\plugins\${VERSION}\opcua.dll"
...
-
(Re)Build/Install Wireshark
Run the following commands in the Wireshark root folder.autogen.sh ./configure #optional with some options, e.g. --prefix=... make install
This will also create the Makfile for the Plugin. For future works on the plugin, just run
make install
in the plugin dir (plugins/mpi/
).
- dissect oob headers
- basic oob header
- support more oob headers in one packet
- carry the length over packets
- dissect oob messages
- connection ack
- send handler (partly)
- orte daemon tree spawn
- orte daemon add local procs
- orte daemon message local procs
- orte daemon exit cmd
- orte plm update proc state
- orte plm init routes cmd
- orte grpcomm peer_modex
- orte grpcomm peer_init_barrier
- orte grpcomm peer_fini_barrier
- orte rml tag iof
- orte rml tag show help
- dissect btl header
- base header
- common header
- match header
- rendezvous header (not tested!)
- rget header (not tested!)
- ack header (not tested!)
- nack header
- frag header (not tested!)
- get header
- put/rdma header (not tested!)
- fin header (not tested!)
- rndvrestartnotify header (not tested!)
- rndvrestartack header
- rndvrestartnack header
- recverrnotify header
- dissect btl message
- synchronization
- barrier
- push the todo's to the milestones