• [^] # Re: Une erreur, mais pas de recherche de cause...

    Posté par . En réponse à la page de wiki Exemple de script pour de la QoS. Évalué à 2 (+0/-0).

    Étonnant, je viens de vérifier que je n’avais pas mis de coquille et ici ça marche. Peux-tu vérifier que ce ne soit pas juste la ligne concernant IPv6 qui pose problème (si tu n’as pas IPv6). Il suffit de commenter :

    tc filter add dev $DEV parent ffff: protocol ipv6 \
     u32 match ip6 dst ::/128 action mirred egress redirect dev $IFB
    À priori tu as bien le module ifb0 de chargé. Le noyau est pas trop vieux ? La série 2.6.3* devrait être ok. Du coup le script marchera pour l’upload, par contre pour le download ça ne doit pas marcher.

    Pour la plage de port, c’est très compliqué... le match fonctionne avec un masque, qui est le 0xffff écrit après le numéro de port : on vérifie alors la correspondance exacte. Pour définir une plage de port il suffit « d’éteindre » les bons bits du masque. L’inconvénient est que le choix de la plage de port n’est pas totalement libre, ceci pour des raisons de performance.

    Attention ! Quand tu écris un filter avec un flowid 2:3 tu enverras vers la priorité que j’ai appelée « normal », qui n’est pas la plus basse. En l’état actuel du script ton client P2P utilisera la plus basse priorité car c’est celle par défaut (sauf si ta plage de port passe par 8000 qui est celui de MPD).

    Donc du coup je ne sais pas trop ce que tu veux : élever la priorité de client P2P, ou lui donner la plus basse priorité ? Dans le premier cas c’est faisable mais il faut jeter un œil au lartc pour voir précisément comment fonctionne le masque. Dans le second cas, il n’y a rien à faire.