Larroy Pedro
Шрифт:
Как установить метку? Просто измените mask и value класса. См. следующий код:
Это изменение пары (mask,value) в хеш-таблице, пометит пакеты, принадлежащие классу 1:1.
Теперь перейдем к описанию фильтра TC_INDEX. Кроме всего прочего, фильтр TC_INDEX может использоваться и в других конфигурациях, а не только в тех, которые включают DS услуги.
14.3.6. Фильтр TC_INDEX.
Базовый синтаксис команды, объявляющей фильтр TC_INDEX:
Ниже приводится пример, который описывает работу TC_INDEX (обратите внимание на места, выделенные жирным шрифтом:
(Это неполный код, я просто привел часть примера EFCBQ, включенного в состав дистрибутива iproute2).
Будем исходить из предположения, что мы получаем пакет, помеченный как EF. Если вы прочитаете RFC2598, то увидите, что рекомендуемое значение DSCP для EF трафика — 101110. Это означает, что в поле DS будет записано 10111000 (не забывайте, что младшие биты в поле TOS не используются в DS), или 0xb8, в шестнадцатиричном представлении.
Полученный пакет имеет значение 0xb8 в поле DS. Дисциплина с идентификатором 1:0 считывает это значение и помещает его в skb->tc_index. На следующем шаге (вторая строка в примере), описанный фильтр выполняет следующие действия: