aboutsummaryrefslogtreecommitdiffstats
path: root/ttcn3-gbproxy-test-fr/netdev-to-docker.sh
blob: 492758ec83b17303d34f111260db1a803ed52b49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash

set -e

NETDEV="$1"
CONTAINER="$2"

die () {
  status="$1"
  shift
  warn "$@"
  exit "$status"
}

DOCKER_PID=$(docker inspect --format='{{ .State.Pid }}' $2)

[ ! -d /var/run/netns ] && mkdir -p /var/run/netns
rm -f "/var/run/netns/$DOCKER_PID"
ln -s "/proc/$DOCKER_PID/ns/net" "/var/run/netns/$DOCKER_PID"

[ "$DOCKERPID" = 0 ] && {
        die 1 "Docker inspect returned invalid PID 0"
}

[ "$DOCKERPID" = "<no value>" ] && {
        die 1 "Container $GUESTNAME not found, and unknown to Docker."
}

ip link set "$NETDEV" netns "$DOCKER_PID"
ip netns exec "$DOCKER_PID" sethdlc "$NETDEV" fr lmi none
ip netns exec "$DOCKER_PID" ip link set "$NETDEV" up

rm -f "/var/run/netns/$DOCKER_PID"