mendrugory / tcd

traffic control daemon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tcd

traffic control daemon

Try it out

  • Download tcd with go get github.com/kinvolk/tcd
  • Compile with ./build.sh
  • Install the D-Bus system policy with sudo ./install.sh
  • Start tcd with sudo ./bin/tcd
  • Start a rkt pod sudo rkt run kinvolk.io/aci/busybox:1.24 --exec ping -- 8.8.8.8
  • Get the machine id with machinectl
  • Install the network emulator queuing discipline and change its egress/ingress configuration
sudo gdbus call --system \
        --dest com.github.kinvolk.tcd \
        --object-path /com/github/kinvolk/tcd \
        --method com.github.kinvolk.tcd.Install \
        rkt-a6bd320a-2978-4789-90ae-233d5a221932
sudo gdbus call --system \
        --dest com.github.kinvolk.tcd \
        --object-path /com/github/kinvolk/tcd \
        --method com.github.kinvolk.tcd.ConfigureEgress \
        rkt-a6bd320a-2978-4789-90ae-233d5a221932 \
        10 0 800000 # latency: 10ms drop: 0% rate: 800000kbit
sudo gdbus call --system \
        --dest com.github.kinvolk.tcd \
        --object-path /com/github/kinvolk/tcd \
        --method com.github.kinvolk.tcd.ConfigureIngress \
        rkt-a6bd320a-2978-4789-90ae-233d5a221932 \
        15 50 800000 # latency: 15ms drop: 50% rate: 800000kbit
  • Notice that it increases the latency by 25ms (10ms egress + 15ms ingress) and packet loss to 50%
  • Call the D-Bus methods ConfigureIngress and ConfigureEgress again and notices that ping is modified immediately

About

traffic control daemon

License:Apache License 2.0


Languages

Language:Go 93.0%Language:Shell 5.4%Language:Dockerfile 1.6%