2bbc9bbbb8
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
44 lines
979 B
Bash
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
|