github.com/yggdrasil-network/yggdrasil-go@v0.5.6/misc/run-twolink-test (about)

     1  #!/bin/bash
     2  
     3  # Connects nodes in two namespaces by two links with different bandwidth (10mbit and 100mbit)
     4  
     5  ip netns add node1
     6  ip netns add node2
     7  
     8  ip link add veth11 type veth peer name veth21
     9  ip link set veth11 netns node1 up
    10  ip link set veth21 netns node2 up
    11  
    12  ip link add veth12 type veth peer name veth22
    13  ip link set veth12 netns node1 up
    14  ip link set veth22 netns node2 up
    15  
    16  ip netns exec node1 tc qdisc add dev veth11 root tbf rate 10mbit burst 8192 latency 1ms
    17  ip netns exec node2 tc qdisc add dev veth21 root tbf rate 10mbit burst 8192 latency 1ms
    18  
    19  ip netns exec node1 tc qdisc add dev veth12 root tbf rate 100mbit burst 8192 latency 1ms
    20  ip netns exec node2 tc qdisc add dev veth22 root tbf rate 100mbit burst 8192 latency 1ms
    21  
    22  echo '{AdminListen: "unix://node1.sock"}' | ip netns exec node1 env PPROFLISTEN=localhost:6060 ./yggdrasil -logging "info,warn,error,debug" -useconf &> node1.log &
    23  echo '{AdminListen: "unix://node2.sock"}' | ip netns exec node2 env PPROFLISTEN=localhost:6060 ./yggdrasil -logging "info,warn,error,debug" -useconf &> node2.log &
    24  
    25  echo "Started, to continue you should (possibly w/ sudo):"
    26  echo "kill" $(jobs -p)
    27  wait
    28  
    29  ip netns delete node1
    30  ip netns delete node2
    31  
    32  ip link delete veth11
    33  ip link delete veth12