summaryrefslogtreecommitdiff
path: root/test/ptf_test/create_veth.sh
blob: 408f46999ce895d61b8914ff675e5f1b8328e920 (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash

set -e

function create_veth() {
  ip link add veth$1 type veth peer name veth$1-ptf$1
  ip link set veth$1 up
  ip link set veth$1-ptf$1 up
}

function delete_veth() {
  for i in $(seq 0 $(( $1 - 1 )))
  do
    ip link delete veth$i
    echo "Deleted veth interface: veth$i"
  done
}

if [[ "$1" == "create" ]]; then
  if [ "$2" == "msgpack" ]; then
     ip link add veth-msgpack-tx type veth peer name veth-msgpack-rx
     ip link set veth-msgpack-rx up
     ip link set veth-msgpack-tx up
  elif [ -z "$2" ]; then
    echo "Usage: $0 create <number_of_veth_interfaces>"
    exit 1
  fi

  for i in $(seq 0 $(( $2 - 1 )))
  do
     create_veth "$i"
     echo "Created veth interface: veth$i"
  done

elif [[ "$1" == "delete" ]]; then
  if [ "$2" == "msgpack" ]; then
     ip link delete veth-msgpack-tx
     echo "Deleted veth interface: veth-msgpack-tx"
  elif [ -z "$2" ]; then
    echo "Usage: $0 delete <number_of_veth_interfaces>"
    exit 1
  fi
    delete_veth "$2"
else
  echo "Usage: $0 <create/delete> <number_of_veth_interfaces>"
  exit 1
fi