Зараз я працюю над рішенням щодо формування трафіку для компаній на рівні провайдерів і зіткнувся з цікавою (філософською) проблемою.
Дивлячись на кількість кінцевих точок, якими повинна працювати система (що становить приблизно ~ 20 кб), я трохи переживав, що буде, коли мені потрібно буде формувати трафік більшої кількості користувачів. Оскільки я зараз використовую дерево формування форми HFSC (див. Tc-hfsc, здебільшого те саме, але більш круте, що і більш відоме HTB) для всієї мережі, мені потрібно використовувати більше ClassID (очевидно, принаймні один для кожного користувача в мережа). Проблема, яку я знайшов, полягала в тому, що TC ClassID є обмеженими - це 16-бітне число, що дає мені максимум 64k користувачів, сформованих цим рішенням.
Так само, якщо я хочу ефективно керувати фільтрами TC (наприклад, не використовуючи "техніку промивання всіх"), мені потрібно мати змогу видалити або змінити окремі записи фільтра. (Я використовую щось подібне до хеш-таблиці від LARTC [1]). Знову ж таки, єдиний метод, який, здається, працює з цим - це нумерація всіх фільтрів за допомогою індивідуальних пріоритетів (tc filter add dev ... prio 1). Немає іншого параметра, який міг би бути використаний для цієї мети, і, на жаль, пріо є також 16-бітовим.
Моє запитання наступне: чи існує якийсь хороший метод розширення доступного "простору ідентифікаторів", наприклад 32-розрядний clsid для команди "tc class" та 32-бітні пріоритети (або будь-які інші ручки модифікації) для "фільтра tc" командувати?
Дуже дякую,
-мк
(btw Я сподіваюся, що це не піде на сценарій "64k користувачів повинно вистачити на всіх").