the specified --rwdir path for logs to persist on
the host.
+ SUDO_USER The user name that should be used for tcpdump
+ --relinquish-privileges. Set this to a user
+ belonging to the sudoers group to avoid drop
+ privilege errors with the vng 9p filesystem
+ which may result in empty pcaps
+
EXAMPLE:
# Create a suitable gcov enabled .config
# launch the tests in a VM
vng -v --rwdir ./ --run . --user root --cpus 4 -- \
"export PYTHONPATH=tools/testing/selftests/net/; \
+ export SUDO_USER=example_user; \
export RDS_LOG_DIR=tools/testing/selftests/net/rds/rds_logs; \
tools/testing/selftests/net/rds/run.sh"
for net in [NET0, NET1]:
pcap = logdir+'/'+net+'.pcap'
fd, pcap_tmp = tempfile.mkstemp(suffix=".pcap", prefix=f"{net}-", dir="/tmp")
+
+ tcpdump_cmd = ['ip', 'netns', 'exec', net, '/usr/sbin/tcpdump']
+ sudo_user = os.environ.get('SUDO_USER')
+ if sudo_user:
+ tcpdump_cmd.extend(['-Z', sudo_user])
+ tcpdump_cmd.extend(['-i', 'any', '-w', pcap_tmp])
+
# pylint: disable-next=consider-using-with
- p = subprocess.Popen(
- ['ip', 'netns', 'exec', net,
- '/usr/sbin/tcpdump', '-i', 'any', '-w', pcap_tmp])
+ p = subprocess.Popen(tcpdump_cmd)
tcpdump_procs.append((p, pcap_tmp, pcap, fd))
# simulate packet loss, duplication and corruption