From 9ca775cba3b15f0818ffc5c4cc92856a27d1dcd8 Mon Sep 17 00:00:00 2001 From: Bob Lantz Date: Mon, 22 Sep 2014 15:54:58 -0700 Subject: [PATCH] Switch to loxigen-built openflow.lua wireshark plugin The older wireshark dissectors were not well-maintained and were a pain to build. They also added tons of extra junk into our VM images! The ones built into the current wireshark are deficient for 1.3. The solution for the future is almost certainly to go with the lua-based plugin, since it is architecture-independent and should be much easier to maintain and upgrade. --- util/install.sh | 72 +++++++++++++------------------------------------ 1 file changed, 18 insertions(+), 54 deletions(-) diff --git a/util/install.sh b/util/install.sh index b1df4a1..7036b46 100755 --- a/util/install.sh +++ b/util/install.sh @@ -85,10 +85,6 @@ OVS_BUILDSUFFIX=-ignore # was -2 OVS_PACKAGE_NAME=ovs-$OVS_RELEASE-core-$DIST_LC-$RELEASE-$ARCH$OVS_BUILDSUFFIX.tar OVS_TAG=v$OVS_RELEASE -# Command-line versions overrides that simplify custom VM creation -# To use, pass in the vars on the cmd line before install.sh, e.g. -# WS_DISSECTOR_REV=pre-ws-1.10.0 install.sh -w -WS_DISSECTOR_REV=${WS_DISSECTOR_REV:-""} OF13_SWITCH_REV=${OF13_SWITCH_REV:-""} @@ -200,65 +196,33 @@ function of13 { cd $BUILD_DIR } -function wireshark_version_check { - # Check Wireshark version - WS=$(which wireshark) - WS_VER_PATCH=(1 10) # targetting wireshark 1.10.0 - WS_VER=($($WS --version | sed 's/[a-z ]*\([0-9]*\).\([0-9]*\).\([0-9]*\).*/\1 \2 \3/')) - if [ "${WS_VER[0]}" -lt "${WS_VER_PATCH[0]}" ] || - [[ "${WS_VER[0]}" -le "${WS_VER_PATCH[0]}" && "${WS_VER[1]}" -lt "${WS_VER_PATCH[1]}" ]] - then - # pre-1.10.0 wireshark - echo "Setting revision: pre-ws-1.10.0" - WS_DISSECTOR_REV="pre-ws-1.10.0" - fi -} - function wireshark { - echo "Installing Wireshark dissector..." - + echo "Installing Wireshark" if [ "$DIST" = "Fedora" ]; then - # Just install Fedora's wireshark RPMS - # Fedora's wirehark >= 1.10.2-2 includes an OF dissector - # (it has been backported from the future Wireshark 1.12 code base) $install wireshark wireshark-gnome - return - fi - - $install wireshark tshark libgtk2.0-dev - - if [ "$DIST" = "Ubuntu" ] && [ "$RELEASE" != "10.04" ]; then - # Install newer version - $install scons mercurial libglib2.0-dev - $install libwiretap-dev libwireshark-dev - cd $BUILD_DIR - hg clone https://bitbucket.org/barnstorm/of-dissector - if [[ -z "$WS_DISSECTOR_REV" ]]; then - wireshark_version_check - fi - cd of-dissector - if [[ -n "$WS_DISSECTOR_REV" ]]; then - hg checkout ${WS_DISSECTOR_REV} - fi - # Build dissector - cd src - export WIRESHARK=/usr/include/wireshark - scons - # libwireshark0/ on 11.04; libwireshark1/ on later - WSDIR=`find /usr/lib -type d -name 'libwireshark*' | head -1` - WSPLUGDIR=$WSDIR/plugins/ - sudo cp openflow.so $WSPLUGDIR - echo "Copied openflow plugin to $WSPLUGDIR" else - # Install older version from reference source - cd $BUILD_DIR/openflow/utilities/wireshark_dissectors/openflow - make - sudo make install + $install wireshark tshark fi + echo "Cloning LoxiGen and building openflow.lua dissector" + cd $BUILD_DIR + git clone https://github.com/floodlight/loxigen.git + cd loxigen + make wireshark + + # Copy into plugin directory + # libwireshark0/ on 11.04; libwireshark1/ on later + WSDIR=`find /usr/lib -type d -name 'libwireshark*' | head -1` + WSPLUGDIR=$WSDIR/plugins/ + PLUGIN=loxi_output/wireshark/openflow.lua + sudo cp $PLUGIN $WSPLUGDIR + echo "Copied openflow plugin $PLUGIN to $WSPLUGDIR" + # Copy coloring rules: OF is white-on-blue: mkdir -p $HOME/.wireshark cp $MININET_DIR/mininet/util/colorfilters $HOME/.wireshark + + cd $BUILD_DIR }