mldonkey-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AW: [Mldonkey-users] Traffic shaping


From: Roland Praml
Subject: AW: [Mldonkey-users] Traffic shaping
Date: Wed, 25 Dec 2002 21:23:07 +0100

Hi, you can try my TC script.

You need a kernel with
-HTB packet scheduler
-IP: use netfilter MARK value as routing key
-Owner match support (EXPERIMENTAL)
-LENGTH match support
-Packet mangling
-MARK target support
-and mybe some other options

Roland

-- htb-shaper-script:
#!/bin/sh

IPTABLES="/sbin/iptables"
#Traffic management
TC="/sbin/tc"

#clean, delete all TC rules
$IPTABLES -F -t mangle
$TC qdisc del dev ppp0 root
$TC qdisc del dev ppp0 ingres
$TC qdisc del dev ppp0 root
$TC qdisc del dev lo root

## root: default traffic assigned to class 1:12
$TC qdisc add dev ppp0 root handle 1: htb default 12

## Mainclass, max 127 kbit upstream
$TC class add dev ppp0 parent 1: classid 1:1 htb rate 127kbit ceil 127kbit

# class for small Ack-Packets
$TC class add dev ppp0 parent 1:1 classid 1:10 htb rate 16kbit ceil 48kbit
prio 1

# class for SSH
$TC class add dev ppp0 parent 1:1 classid 1:11 htb rate 30kbit ceil 125kbit
prio 1

# class for normal traffic
$TC class add dev ppp0 parent 1:1 classid 1:12 htb rate 90kbit ceil 100kbit
prio 2

## Total MLdonkey Traffic
$TC class add dev ppp0 parent 1:1 classid 1:13 htb rate 10kbit ceil 80kbit
prio 3 # total (12,5 kb/s)

# split into real Donkey Traffic & ack-packets from MLD
$TC class add dev ppp0 parent 1:13 classid 1:20 htb rate 30kbit ceil 50kbit
prio 4 # ack's
$TC class add dev ppp0 parent 1:13 classid 1:21 htb rate 50kbit ceil 60kbit
prio 5 # traffic

## SSH
$IPTABLES -A OUTPUT -t mangle -o ppp0 -p tcp --dport 22 -j MARK --set-mark
11
## ssh output
$IPTABLES -A OUTPUT -t mangle -o ppp0 -p tcp --sport 22 -j MARK --set-mark
11

# Acks & Pings in oberste Klasse
$IPTABLES -A OUTPUT -t mangle -o pppo -m length --length :64 -j
MARK --set-mark 10
$IPTABLES -A OUTPUT -t mangle -p icmp -j MARK --set-mark 10

#MLD-packets
$IPTABLES -A OUTPUT -t mangle -m owner --pid-owner \
    `ps ax | grep mldonkey | grep grep -v | awk '{ print $1}'` \
     -j MARK --set-mark 21

#packets from edonkey smaller than 256 bytes get higher priority
$IPTABLES -A OUTPUT -t mangle -m owner --pid-owner \
    `ps ax | grep mldonkey | grep grep -v | awk '{ print $1}'` \
    -m length --length :256 -j MARK --set-mark 20


$TC filter add dev ppp0 parent 1: prio 0 protocol ip handle 10 fw flowid
1:10
$TC filter add dev ppp0 parent 1: prio 1 protocol ip handle 11 fw flowid
1:11
$TC filter add dev ppp0 parent 1: prio 4 protocol ip handle 20 fw flowid
1:20
$TC filter add dev ppp0 parent 1: prio 5 protocol ip handle 21 fw flowid
1:21

echo "Traffic shaper started";








reply via email to

[Prev in Thread] Current Thread [Next in Thread]