Acho que você quer encontrar uma maneira de moldar seu tráfego antes que o encapsulamento ocorra, dentro de uma VM com Ethernet em ponte, por exemplo. Seu computador molda e encaminha para sua VM, sua VM faz o encapsulamento.
Além disso, como não é possível corrigir uma taxa, você deve usar o prio scheduler com tc. Como o TCP possui mecanismo de prevenção de congestionamento e o UDP não (exceto QUIC), coloque UDP e TCP em qdiscs diferentes. Seu problema pode estar na taxa de abaixamento dos fluxos TCP enquanto os UDP não.
Além disso, você deve, neste caso, não conhecer sua taxa de linha, priorizar qdiscs TCP sobre qdiscs UDP, com uma exceção: fluxos UDP de prioridade alta de baixa taxa (DNS, NTP) devem ter a prioridade mais alta. p>