WIP FPC-III support
[linux/fpc-iii.git] / tools / testing / selftests / bpf / with_addr.sh
blobffcd3953f94cf2301f0e5158d141ccb48b2fb1c0
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0
4 # add private ipv4 and ipv6 addresses to loopback
6 readonly V6_INNER='100::a/128'
7 readonly V4_INNER='192.168.0.1/32'
9 if getopts ":s" opt; then
10 readonly SIT_DEV_NAME='sixtofourtest0'
11 readonly V6_SIT='2::/64'
12 readonly V4_SIT='172.17.0.1/32'
13 shift
16 fail() {
17 echo "error: $*" 1>&2
18 exit 1
21 setup() {
22 ip -6 addr add "${V6_INNER}" dev lo || fail 'failed to setup v6 address'
23 ip -4 addr add "${V4_INNER}" dev lo || fail 'failed to setup v4 address'
25 if [[ -n "${V6_SIT}" ]]; then
26 ip link add "${SIT_DEV_NAME}" type sit remote any local any \
27 || fail 'failed to add sit'
28 ip link set dev "${SIT_DEV_NAME}" up \
29 || fail 'failed to bring sit device up'
30 ip -6 addr add "${V6_SIT}" dev "${SIT_DEV_NAME}" \
31 || fail 'failed to setup v6 SIT address'
32 ip -4 addr add "${V4_SIT}" dev "${SIT_DEV_NAME}" \
33 || fail 'failed to setup v4 SIT address'
36 sleep 2 # avoid race causing bind to fail
39 cleanup() {
40 if [[ -n "${V6_SIT}" ]]; then
41 ip -4 addr del "${V4_SIT}" dev "${SIT_DEV_NAME}"
42 ip -6 addr del "${V6_SIT}" dev "${SIT_DEV_NAME}"
43 ip link del "${SIT_DEV_NAME}"
46 ip -4 addr del "${V4_INNER}" dev lo
47 ip -6 addr del "${V6_INNER}" dev lo
50 trap cleanup EXIT
52 setup
53 "$@"
54 exit "$?"