Je ne suis pas un spécialiste de PF/ALTQ, mais je connais IPFW/DummyNet et il peut faire essentiellement ce que vous recherchez, en programmant la priorité en fonction de l'utilisation du débit.
Un exemple très simple (car je n'ai pas de détails sur la configuration de votre routeur) :
ipfw pipe 1 bw 300Kbit/s
ipfw sched 1 config pipe 1 mask src-ip 0xffffffff
ipfw queue 1 config sched 1
ipfw add 10 queue 1 ip from 192.168.1.0/24 to any
Je ne recommanderais pas d'utiliser ces règles sans les modifier.....
Ils prennent simplement tout le trafic venant de 192.168.1.0, le font passer par la file d'attente 1.
La file d'attente 1 est associée au programme 1
Le programme 1 utilise FWQ+ pour distribuer la bande passante (lorsqu'il n'y en a pas assez) en fonction de la priorité accordée au moins d'utilisation. Les flux sont regroupés par adresse IP source (je suppose que vous voulez que tout le trafic provenant d'une IP particulière soit traité de la même manière).
Le programme est contraint par le Pipe, qui lui indique qu'il dispose de 300Kbps pour travailler (sinon il supposerait qu'il dispose de toute la vitesse de l'interface Ethernet, ce qui n'est probablement pas le cas de votre connexion Internet). Vous devez modifier les 300Kbps en fonction de votre connexion réelle.
Une explication rapide de ce que cela fait : Cela va construire une file d'attente de paquets, par défaut d'une profondeur de 50 paquets. Disons que vous avez deux utilisateurs sur votre réseau, l'un envoie des fichiers BitTorrent sur la connexion, l'autre vérifie simplement son courrier électronique ; aucun d'entre eux ne limite son utilisation de quelque manière que ce soit. L'IP à partir de laquelle le client BitTorrent envoie ses fichiers génère suffisamment de trafic pour remplir la file d'attente et saturer la connexion Internet. Lorsque la personne qui consulte son courrier électronique envoie un message, celui-ci est placé en première position dans la file d'attente (et est donc envoyé le plus rapidement possible) car elle n'a pas envoyé de données. Si la situation était celle de deux clients BT, ils obtiendraient chacun la moitié de la connexion puisque la file d'attente serait constamment saturée.
DummyNet permet une mise en forme très complexe du trafic avec les bonnes options, il suffit d'être très spécifique quant à ce que vous essayez d'accomplir. Gardez également à l'esprit qu'un routeur ne peut contrôler que ce qu'il envoie, il ne peut jamais contrôler ce qui est reçu (car cela est contrôlé par ce qui l'a envoyé). Pensez-y comme à votre boîte aux lettres postale, le facteur détermine ce que vous recevez, vous déterminez ce que vous envoyez à travers elle.