Книга: UNIX: разработка сетевых приложений

Задание и получение класса трафика

Задание и получение класса трафика

Объект вспомогательных данных IPV6_TCLASS задает класс трафика для дейтаграммы. Элемент cmsg_level структуры cmsghdr, содержащей эти данные, будет равен IPPROTO_IPV6, элемент cmsg_type будет равен IPV6_TCLASS, а первый байт данных будет первым байтом целочисленного (4-байтового) значения класса трафика (см. рис. 22.5). Согласно разделу А.3, класс трафика состоит из полей DSCP и ECN. Эти поля должны устанавливаться одновременно. Ядро может маскировать или игнорировать указанное пользователем значение, если ему это нужно (например, если ядро реализует ECN, оно может установить биты ECN равными какому-либо значению, игнорируя два бита, указанных с параметром IPV6_TCLASS). Класс трафика обычно лежит в диапазоне 0–255. Значение -1 говорит ядру о необходимости использовать значение по умолчанию.

Чтобы задать класс трафика для пакета, нужно отправить вспомогательные данные вместе с этим пакетом. Чтобы задать класс трафика для всех пакетов, отправляемых через сокет, необходимо использовать параметр сокета IPV6_TCLASS (раздел 27.7). Класс трафика для принятого пакета возвращается функцией recvmsg во вспомогательных данных, только если приложение включило параметр сокета IPV6_RECVTCLASS.

Оглавление книги


Генерация: 1.137. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз