Существует несколько примеров использования iptable для установки поля DSCP IP-пакетов. Я пытаюсь не использовать iptables, а установить поле DSCP только на нескольких выбранных сокетах.
Читая man 7 ip
, я обнаружил, что могу использовать что-то по ссылке
int tos_local = 0x28;
setsockopt(sockfd, IPPROTO_IP, IP_TOS, &tos_local, sizeof(tos_local));
Есть одна вещь, которая мне не понятна. IP_TOS
описывается для работы со старым полем Type-Of-Service, которое было переопределено RFC2474 для использования в дифференцированных сервисах.
Итак, мой вопрос: могу ли я использовать setsockopt
с IPPROTO_IP
и IP_TOS
, чтобы установить любое значение DSCP между 0 и 63, или я ограничен только IPTOS_LOWDELAY
, IPTOS_THROUGHPUT
, IPTOS_RELIABILITY
и IPTOS_MINCOST
?