История изменений
Исправление Pinkbyte, (текущая версия) :
даже в английском варианте HFSC я там не нашел.
Да, документации по нему кот наплакал, но могу рассказать вкратце суть.
У HFSC есть 3 типа подклассов(очередей, хз, как удобнее): ls(link-share, по сути засрать выделенную полосу как получиться), rt(real-time - как траффик придёт в полосу - сразу же отдать, не важно где в иерархии классов он находится) и sc(гибридная дисциплина, может содержать внутри себя как rt так и ls-подклассы. Ну и другие sc-подклассы, конечно же).
Есть еще директива ul - аналог htb-шного ceil - описывает верхний потолок скорости класса, который он может отдать.
Классических приоритетов(атрибут prio как в HTB) в HFSC нет! Если сильно надо, то можно прицепить на ls подкласс дочерний класс, например, HTB и разруливать там как привычнее.
То есть, простейший вариант с 2 полосами: высокоприоритетной(для VOIP) и низкоприоритетной(для всего остального) выглядит так(рабочий пример, скопипащено с конфига домашнего сервера):
BAND="6Mbit"
HIGH_LIMIT="5Mbit"
MAIN_IFACE="imq0"
tc qdisc add dev ${MAIN_IFACE} root handle 1: hfsc default 11
# Internet traffic (full MAXIMUM speed)
tc class add dev ${MAIN_IFACE} parent 1:0 classid 1:1 hfsc sc rate ${BAND} ul rate ${BAND}
# Subclasses of Internet traffic
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:10 hfsc rt rate 1Mbit ls rate ${HIGH_LIMIT}
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:11 hfsc ls rate 1Mbit
Да, забыл сказать - классы могут быть гибридными - содержать как link-share так и real-time составляющую. Тут классу 1:10 гарантируется 1 мегабит при любых раскладах, остальное - как получится, верхняя граница не указана -> упрётся в верхнюю границу класса 1:1. А вот класс 1:11 - от мегабита и выше может сожрать, но будет конкурировать за скорость с ls-частью класса 1:10, упираясь в верхнюю границу всё того же 1:1
Еще фишка есть у HFSC называется «Нелинейная кривая обслуживания»(Non-linear service curve). Типа можно первые N(1, 2, 3, 10, 100500) секунд отдавать на одной скорости для соединения, а потом - на другой, более низкой, например. Я этим пока не пользуюсь, но подумываю заюзать.
Исправление Pinkbyte, :
даже в английском варианте HFSC я там не нашел.
Да, документации по нему кот наплакал, но могу рассказать вкратце суть.
У HFSC есть 3 типа подклассов(очередей, хз, как удобнее): ls(link-share, по сути засрать выделенную полосу как получиться), rt(real-time - как траффик придёт в полосу - сразу же отдать, не важно где в иерархии классов он находится) и sc(гибридная дисциплина, может содержать внутри себя как rt так и ls-подклассы. Ну и другие sc-подклассы, конечно же).
Есть еще директива ul - аналог htb-шного ceil - описывает верхний потолок скорости класса, который он может отдать.
Классических приоритетов(атрибут prio как в HTB) в HFSC нет!
То есть, простейший вариант с 2 полосами: высокоприоритетной(для VOIP) и низкоприоритетной(для всего остального) выглядит так(рабочий пример, скопипащено с конфига домашнего сервера):
BAND="6Mbit"
HIGH_LIMIT="5Mbit"
MAIN_IFACE="imq0"
tc qdisc add dev ${MAIN_IFACE} root handle 1: hfsc default 11
# Internet traffic (full MAXIMUM speed)
tc class add dev ${MAIN_IFACE} parent 1:0 classid 1:1 hfsc sc rate ${BAND} ul rate ${BAND}
# Subclasses of Internet traffic
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:10 hfsc rt rate 1Mbit ls rate ${HIGH_LIMIT}
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:11 hfsc ls rate 1Mbit
Да, забыл сказать - классы могут быть гибридными - содержать как link-share так и real-time составляющую. Тут классу 1:10 гарантируется 1 мегабит при любых раскладах, остальное - как получится, верхняя граница не указана -> упрётся в верхнюю границу класса 1:1. А вот класс 1:11 - от мегабита и выше может сожрать, но будет конкурировать за скорость с ls-частью класса 1:10, упираясь в верхнюю границу всё того же 1:1
Еще фишка есть у HFSC называется «Нелинейная кривая обслуживания»(Non-linear service curve). Типа можно первые N(1, 2, 3, 10, 100500) секунд отдавать на одной скорости для соединения, а потом - на другой, более низкой, например. Я этим пока не пользуюсь, но подумываю заюзать.
Исправление Pinkbyte, :
даже в английском варианте HFSC я там не нашел.
Да, документации по нему кот наплакал, но могу рассказать вкратце суть.
У HFSC есть 3 типа подклассов(очередей, хз, как удобнее): ls(link-share, по сути засрать выделенную полосу как получиться), rt(real-time - как траффик придёт в полосу - сразу же отдать, не важно где в иерархии классов он находится) и sc(гибридная дисциплина, может содержать внутри себя как rt так и ls-подклассы. Ну и другие sc-подклассы, конечно же).
Есть еще директива ul - аналог htb-шного ceil - описывает верхний потолок скорости класса, который он может отдать.
Классических приоритетов(атрибут prio как в HTB) в HFSC нет!
То есть, простейший вариант с 2 полосами: высокоприоритетной(для VOIP) и низкоприоритетной(для всего остального) выглядит так(рабочий пример, скопипащено с конфига домашнего сервера):
BAND="6Mbit"
HIGH_LIMIT="5Mbit"
MAIN_IFACE="imq0"
tc qdisc add dev ${MAIN_IFACE} root handle 1: hfsc default 11
# Internet traffic (full MAXIMUM speed)
tc class add dev ${MAIN_IFACE} parent 1:0 classid 1:1 hfsc sc rate ${BAND} ul rate ${BAND}
# Subclasses of Internet traffic
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:10 hfsc rt rate 1Mbit ls rate ${HIGH_LIMIT}
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:11 hfsc ls rate 1Mbit
Да, забыл сказать - классы могут быть гибридными - содержать как link-share так и real-time составляющую. Тут классу 1:10 гарантируется 1 мегабит при любых раскладах, остальное - как получится, верхняя граница не указана -> упрётся в верхнюю границу класса 1:1. А вот класс 1:11 - от мегабита и выше может сожрать, но будет конкурировать за скорость с классом 1:10, упираясь в верхнюю границу всё того же 1:1
Еще фишка есть у HFSC называется «Нелинейная кривая обслуживания»(Non-linear service curve). Типа можно первые N(1, 2, 3, 10, 100500) секунд отдавать на одной скорости для соединения, а потом - на другой, более низкой, например. Я этим пока не пользуюсь, но подумываю заюзать.
Исходная версия Pinkbyte, :
даже в английском варианте HFSC я там не нашел.
Да, документации по нему кот наплакал, но могу рассказать вкратце суть.
У HFSC есть 3 типа подклассов(очередей, хз, как удобнее): ls(link-share, по сути засрать выделенную полосу как получиться), rt(real-time - как траффик придёт в полосу - сразу же отдать, не важно где в иерархии классов он находится) и sc(гибридная дисциплина, может содержать внутри себя как rt так и ls-подклассы. Ну и другие sc-подклассы, конечно же).
Есть еще директива ul - аналог htb-шного ceil - описывает верхний потолок скорости класса, который он может отдать.
Классических приоритетов(атрибут prio как в HTB) в HFSC нет!
То есть, простейший вариант с 2 полосами: высокоприоритетной(для VOIP) и низкоприоритетной(для всего остального) выглядит так(рабочий пример, скопипащено с конфига домашнего сервера):
BAND="6Mbit"
HIGH_LIMIT="5Mbit"
MAIN_IFACE="imq0"
tc qdisc add dev ${MAIN_IFACE} root handle 1: hfsc default 11
# Internet traffic (full MAXIMUM speed)
tc class add dev ${MAIN_IFACE} parent 1:0 classid 1:1 hfsc sc rate ${BAND} ul rate ${BAND}
# Subclasses of Internet traffic
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:10 hfsc rt rate 1Mbit ls rate ${HIGH_LIMIT}
tc class add dev ${MAIN_IFACE} parent 1:1 classid 1:11 hfsc ls rate 1Mbit
Да, забыл сказать - классы могут быть гибридными - содержать как link-share так и real-time составляющую. Тут классу 1:10 гарантируется 1 мегабит при любых раскладах, остальное - как получится, верхняя граница не указана -> упрётся в верхнюю границу класса 1:1. А вот класс 1:11 - от мегабита и выше может сожрать, но будет конкурировать за скорость с классом 1:10, упираясь в верхнюю границу всё того же 1:1