xref: /linux/tools/testing/selftests/net/in_netns.sh (revision c13aca79ff3c4af5fd31a5b2743a90eba6e36a26)
1cc30c93fSWillem de Bruijn#!/bin/sh
2cc30c93fSWillem de Bruijn# SPDX-License-Identifier: GPL-2.0
3cc30c93fSWillem de Bruijn#
4cc30c93fSWillem de Bruijn# Execute a subprocess in a network namespace
5cc30c93fSWillem de Bruijn
6cc30c93fSWillem de Bruijnset -e
7cc30c93fSWillem de Bruijn
8cc30c93fSWillem de Bruijnreadonly NETNS="ns-$(mktemp -u XXXXXX)"
9cc30c93fSWillem de Bruijn
10cc30c93fSWillem de Bruijnsetup() {
11cc30c93fSWillem de Bruijn	ip netns add "${NETNS}"
12cc30c93fSWillem de Bruijn	ip -netns "${NETNS}" link set lo up
13cc30c93fSWillem de Bruijn}
14cc30c93fSWillem de Bruijn
15cc30c93fSWillem de Bruijncleanup() {
16cc30c93fSWillem de Bruijn	ip netns del "${NETNS}"
17cc30c93fSWillem de Bruijn}
18cc30c93fSWillem de Bruijn
19cc30c93fSWillem de Bruijntrap cleanup EXIT
20cc30c93fSWillem de Bruijnsetup
21cc30c93fSWillem de Bruijn
22*4d1e46a5SPrashant Bholeip netns exec "${NETNS}" "$@"
23cc30c93fSWillem de Bruijnexit "$?"
24