devstack/lib/tcpdump
Ian Wienand 2bbc9bbbb8 Add service to tcpdump during run
This adds a service to run a tcpdump during the run.  This can be
useful to capture various network traffic for post analysis.

There didn't seem to quite be an appropriate place to document it, so
a new debugging file is started, with some terse explaination of our
various system-wide debugging services.

Change-Id: I09aaa57611c5047d09a9bce7932d34e9d50b30e6
2019-03-29 11:20:19 -07:00

44 lines
979 B
Bash

#!/bin/bash
#
# lib/tcpdump
# Functions to start and stop a tcpdump
# Dependencies:
#
# - ``functions`` file
# ``stack.sh`` calls the entry points in this order:
#
# - start_tcpdump
# - stop_tcpdump
# Save trace setting
_XTRACE_TCPDUMP=$(set +o | grep xtrace)
set +o xtrace
TCPDUMP_OUTPUT=${TCPDUMP_OUTPUT:-$LOGDIR/tcpdump.pcap}
# e.g. for iscsi
# "-i any tcp port 3260"
TCPDUMP_ARGS=${TCPDUMP_ARGS:-""}
# start_tcpdump() - Start running processes
function start_tcpdump {
# Run a tcpdump with given arguments and save the packet capture
if is_service_enabled tcpdump; then
if [[ -z "${TCPDUMP_ARGS}" ]]; then
die $LINENO "The tcpdump service requires TCPDUMP_ARGS to be set"
fi
touch ${TCPDUMP_OUTPUT}
run_process tcpdump "/usr/sbin/tcpdump -w $TCPDUMP_OUTPUT $TCPDUMP_ARGS" root root
fi
}
# stop_tcpdump() stop tcpdump process
function stop_tcpdump {
stop_process tcpdump
}
# Restore xtrace
$_XTRACE_TCPDUMP