Atualmente, estou trabalhando em uma solução de modelagem de tráfego para empresas no nível ISP e cheguei a um problema interessante (tipo de filosofia).
Observando o número de pontos de extremidade que o sistema deve manipular (que é de aproximadamente 20k), fiquei um pouco preocupado com o que aconteceria quando eu precisasse definir políticas / modelar o tráfego de mais usuários. Como atualmente estou usando a árvore de modelagem HFSC (consulte tc-hfsc, geralmente a mesma coisa, porém mais legal, como HTB mais conhecido) para toda a rede, eu precisaria usar mais ClassIDs (obviamente, pelo menos um para cada usuário no rede). O problema que descobri foi que os TC ClassIDs são meio limitados - são números de 16 bits, o que me dá um máximo possível de 64k usuários modelados por esta solução.
Da mesma forma, se eu quiser gerenciar filtros de TC com eficiência (por exemplo, não usar a técnica 'flush all'), preciso poder excluir ou modificar entradas de filtro individuais. (Estou usando algo semelhante à tabela de hash do LARTC [1]). Novamente, o único método que parece estar trabalhando com isso é numerar todos os filtros usando prioridades individuais (tc filter add dev ... prio 1). Não há outro parâmetro que possa ser usado para esse fim e, infelizmente, o prio também é apenas de 16 bits.
Minha pergunta é a seguinte: Existe algum bom método para ampliar o "espaço identificador" disponível, como clsid de 32 bits para o comando 'tc class' e prioridades de 32 bits (ou quaisquer outros identificadores de modificação) para 'tc filter' comando?
Muito obrigado,
-mk
(espero que isso não vá para o cenário "64k usuários devem ser suficientes para todos" ...)