Удаление конфигурации tc на определенном интерфейсе

Я новичок в использовании команды tc.

Я пишу тестовый скрипт для добавления задержек в интерфейс. Это делается с использованием python и fabric api.

Итак, сценарий будет делать что-то вроде:

sudo tc qdisc add dev eth1 root netem delay

И в конце сценария мы сделаем

sudo tc qdisc del dev eth1 root netem

Но в то же время я хотел с самого начала убедиться, что в системе не было никакого контроля tc. Поэтому я хотел запустить команду удаления до запуска всего сценария. но это дает мне ошибку, если конфигурация tc не выполнена.

abc @ abcvmm: ~ $ sudo tc qdisc del dev eth1 root netem

RTNETLINK отвечает: недопустимый аргумент

Есть ли способ удалить интерфейс, настроенный только в том случае, если существует существующая конфигурация tc, а не иначе.


person Akshya11235    schedule 05.05.2014    source источник


Ответы (2)


ваш первый шаг: tc qdisc del dev eth1 root

а затем: tc qdisc add dev eth1 root handle 1: htb default 100

Проверить мой код в моем репозитории git: https://github.com/Puneeth-n/tcp-eval/blob/development/topology/build_net.py.

Думаю, я уже реализовал то, что вы пытаетесь реализовать (используя ткань). Или, может быть, вы можете использовать части кода.

Код гарантирует, что если нет ошибки при попытке удалить несуществующий qdisc.

person puneeth    schedule 13.06.2014

Думаю, я нашел способ сделать это.

Я могу использовать что-то вроде:

netem_exists= run("tc qdisc show dev eth1 | grep netem | awk '{print $2}'")
        if netem_exists=="netem":
            print "Delete"
            run("sudo tc qdisc del dev eth1 root netem")
        else:
            print "No delete"
person Akshya11235    schedule 05.05.2014
comment
Простой sudo tc qdisc del dev eth1 root netem 2 ›/ dev / null || true также должно помочь, так как эта ошибка - это то, чего вы ожидаете - person V13; 06.05.2014