[linux] CBQ a problem s definiciou podtried

root root na procomp-ap2.procomp.sk
Pondělí Listopad 10 17:58:52 CET 2003


Ahojte vospolok

Zoznamujem sa s cbq, ale akosi sa mi nedari spravne zadefinovat
triedy. Delim linku 128kbit na 6 tried a to 2 x 32 + 4 x 16.
Toto mi prejde. Ale potom chcem este 4 16-stky rozdelit kazdu na
8 x 2kbit a toto mi uz neprejde.
Ide mi o to, ze dvom praccovnym skupinam, pridelim po 32k.
A potom pre 32 pocitacov chcem dat zdielat zvysok,
ale tak, aby mal kazdy zarucenych aspon 2kbit a po 8 kusoch
aby boli zdruzene v 16-kach, aby si poziciavali pasmo v ramci
svojej 16-ky a vsetky tie 16-ky spolu s 32-mi si poziciavali 
nevyuzitu kapacitu zo 128.
Ale nieco robim, zle a pri definovani tych 2-ovych tried
pod 16-mi mi skript neprejde s chybou "invalid argument".

Co robim zle ? Ved 2-ove tiedy v 2. urovni stromu definujem
presne ako triedy v 1. urovni, kde to prejde.
Vid skript prilozeny v prilohe.

Dakujem za kazdu radu.

Rony
------------- další část ---------------
#!/bin/sh

# Nastavenia
TC=/sbin/tc
TRIEDA="$TC class add dev"

echo "OK 00"

# Vymazat vsetky qdisc-i

$TC qdisc del dev eth0 root

#korenove radenie do front

$TC qdisc add dev eth0 root handle 1: cbq bandwidth 100Mbit allot 1514 cell 8 avpkt 1000 mpu 64

#korenova trieda v 0 urovni hierarchie tried
$TRIEDA eth0 classid 1:1 parent 1:0 cbq bandwidth 100Mbit rate 128kbit maxburst 20 allot 1514 cell 8 avpkt 1000 mpu 64

#skupinove triedy v 1 urovni hierarcie tried

$TRIEDA eth0 classid 1:11 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:12 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:13 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:14 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:15 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 32kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:16 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 32kbit maxburst 20 avpkt 1000

echo "OK 01"

#triedy na 2 urovni hierarcie s uz s nominalnymi rychlostami
## rodicovska 1:11

$TRIEDA eth0 classid 11:111 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:112 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000        
$TRIEDA eth0 classid 11:113 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:114 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:115 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:116 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:117 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:118 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000

echo "OK 02"

## rodicovska 1:12

$TRIEDA eth0 classid 12:121 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:122 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:123 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:124 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:125 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:126 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:127 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:128 parent 1:12 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000

## rodicovska 1:13

$TRIEDA eth0 classid 13:131 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:132 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:133 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:134 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:135 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:136 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:137 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:138 parent 1:13 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000

## rodicovska 1:14

$TRIEDA eth0 classid 14:141 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:142 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:143 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:144 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:145 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:146 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:147 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:148 parent 1:14 cbq allot 1514 \
		bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000

# tc qdisc add dev eth0 parent 1:11 handle 11:0 sfq perturb 10
# tc qdisc add dev eth0 parent 1:12 handle 12:0 sfq perturb 10
# tc qdisc add dev eth0 parent 1:13 handle 13:0 sfq perturb 10
# tc qdisc add dev eth0 parent 1:14 handle 14:0 sfq perturb 10 

echo "OK 10"

# Znackovanie paketov podla pravidiel
# POZOR !!! Ak je ten isty packet oznackovany viac krat,
# plati znacka posledna
# Packety budema znackovat cislom poslednym z IP zakaznika

## nastavenie standardnej znacky, ktorou je 10000

iptables -t mangle -A POSTROUTING -j MARK --set-mark 10000

echo "OK 11"

## Zo sieti 172.16.1.0/24 znackujeme 1xxx , kde xxx je IP z 1 siete 

# KAMENSKY

iptables -t mangle -A POSTROUTING -d 172.16.1.6 -j MARK --set-mark 1006

# HORVATH PROCOMP

iptables -t mangle -A POSTROUTING -d 172.16.1.6 -j MARK --set-mark 1007
iptables -t mangle -A POSTROUTING -d 172.16.1.8 -j MARK --set-mark 1008

# FABIAN

iptables -t mangle -A POSTROUTING -d 172.16.1.9 -j MARK --set-mark 1009

# KNIZNICA

iptables -t mangle -A POSTROUTING -d 172.16.1.10 -j MARK --set-mark 1010
iptables -t mangle -A POSTROUTING -d 172.16.1.11 -j MARK --set-mark 1011
iptables -t mangle -A POSTROUTING -d 172.16.1.12 -j MARK --set-mark 1012
iptables -t mangle -A POSTROUTING -d 172.16.1.13 -j MARK --set-mark 1013
iptables -t mangle -A POSTROUTING -d 172.16.1.14 -j MARK --set-mark 1014

# Mestske kulturne stredisko

iptables -t mangle -A POSTROUTING -d 172.16.1.18 -j MARK --set-mark 1018
iptables -t mangle -A POSTROUTING -d 172.16.1.19 -j MARK --set-mark 1019

# Novohradska ulica

iptables -t mangle -A POSTROUTING -d 172.16.1.20 -j MARK --set-mark 1020
iptables -t mangle -A POSTROUTING -d 172.16.1.21 -j MARK --set-mark 1021
iptables -t mangle -A POSTROUTING -d 172.16.1.22 -j MARK --set-mark 1022
iptables -t mangle -A POSTROUTING -d 172.16.1.23 -j MARK --set-mark 1023
iptables -t mangle -A POSTROUTING -d 172.16.1.24 -j MARK --set-mark 1024
iptables -t mangle -A POSTROUTING -d 172.16.1.25 -j MARK --set-mark 1025
iptables -t mangle -A POSTROUTING -d 172.16.1.26 -j MARK --set-mark 1026

# Lucenecka ulica

iptables -t mangle -A POSTROUTING -d 172.16.1.30 -j MARK --set-mark 1030
iptables -t mangle -A POSTROUTING -d 172.16.1.31 -j MARK --set-mark 1031
iptables -t mangle -A POSTROUTING -d 172.16.1.32 -j MARK --set-mark 1032
iptables -t mangle -A POSTROUTING -d 172.16.1.33 -j MARK --set-mark 1033
iptables -t mangle -A POSTROUTING -d 172.16.1.34 -j MARK --set-mark 1034
iptables -t mangle -A POSTROUTING -d 172.16.1.35 -j MARK --set-mark 1035
iptables -t mangle -A POSTROUTING -d 172.16.1.36 -j MARK --set-mark 1036

# TRESO

iptables -t mangle -A POSTROUTING -d 172.16.1.40 -j MARK --set-mark 1040
iptables -t mangle -A POSTROUTING -d 172.16.1.41 -j MARK --set-mark 1041

# PASKA

iptables -t mangle -A POSTROUTING -d 172.16.1.44 -j MARK --set-mark 1044

# Informacne centrum mladych

iptables -t mangle -A POSTROUTING -d 172.16.1.45 -j MARK --set-mark 1045
iptables -t mangle -A POSTROUTING -d 172.16.1.46 -j MARK --set-mark 1046
iptables -t mangle -A POSTROUTING -d 172.16.1.47 -j MARK --set-mark 1047
iptables -t mangle -A POSTROUTING -d 172.16.1.48 -j MARK --set-mark 1048
iptables -t mangle -A POSTROUTING -d 172.16.1.49 -j MARK --set-mark 1049

# MsU

iptables -t mangle -A POSTROUTING -d 172.16.1.50 -j MARK --set-mark 1050
iptables -t mangle -A POSTROUTING -d 172.16.1.51 -j MARK --set-mark 1051

# PSS 

iptables -t mangle -A POSTROUTING -d 172.16.1.53 -j MARK --set-mark 1053
iptables -t mangle -A POSTROUTING -d 172.16.1.54 -j MARK --set-mark 1054

# MICHA Ing. Chamula

iptables -t mangle -A POSTROUTING -d 172.16.1.59 -j MARK --set-mark 1059

# GEOMERKART

iptables -t mangle -A POSTROUTING -d 172.16.1.60 -j MARK --set-mark 1060

# KMK Slovakia plus 

iptables -t mangle -A POSTROUTING -d 172.16.1.65 -j MARK --set-mark 1065
iptables -t mangle -A POSTROUTING -d 172.16.1.66 -j MARK --set-mark 1066
iptables -t mangle -A POSTROUTING -d 172.16.1.67 -j MARK --set-mark 1067
iptables -t mangle -A POSTROUTING -d 172.16.1.68 -j MARK --set-mark 1068
iptables -t mangle -A POSTROUTING -d 172.16.1.69 -j MARK --set-mark 1069

# PAZZ s.r.o.

iptables -t mangle -A POSTROUTING -d 172.16.1.70 -j MARK --set-mark 1070
iptables -t mangle -A POSTROUTING -d 172.16.1.71 -j MARK --set-mark 1071

# OMP

iptables -t mangle -A POSTROUTING -d 172.16.1.80 -j MARK --set-mark 1080

# Bozeny Nemcovej 49

iptables -t mangle -A POSTROUTING -d 172.16.1.100 -j MARK --set-mark 1100
iptables -t mangle -A POSTROUTING -d 172.16.1.101 -j MARK --set-mark 1101
iptables -t mangle -A POSTROUTING -d 172.16.1.102 -j MARK --set-mark 1102
iptables -t mangle -A POSTROUTING -d 172.16.1.103 -j MARK --set-mark 1103
iptables -t mangle -A POSTROUTING -d 172.16.1.104 -j MARK --set-mark 1104
iptables -t mangle -A POSTROUTING -d 172.16.1.105 -j MARK --set-mark 1105

# Bozeny Nemcovej 43

iptables -t mangle -A POSTROUTING -d 172.16.1.110 -j MARK --set-mark 1110
iptables -t mangle -A POSTROUTING -d 172.16.1.111 -j MARK --set-mark 1111
iptables -t mangle -A POSTROUTING -d 172.16.1.112 -j MARK --set-mark 1112
iptables -t mangle -A POSTROUTING -d 172.16.1.113 -j MARK --set-mark 1113

## nase stroje zo 172.16.2.0/24 znackujeme 2xxx , kde xxxx je IP z 2 siete

iptables -t mangle -A POSTROUTING -d 172.16.2.1 -j MARK --set-mark 2001
iptables -t mangle -A POSTROUTING -d 172.16.2.2 -j MARK --set-mark 2002

## Zo sieti 172.16.4.0/24 znackujeme 4xxx , kde xxx je IP zo 4 siete
# PLASTLINE

iptables -t mangle -A POSTROUTING -d 172.16.4.10 -j MARK --set-mark 4010
iptables -t mangle -A POSTROUTING -d 172.16.4.11 -j MARK --set-mark 4011
iptables -t mangle -A POSTROUTING -d 172.16.4.12 -j MARK --set-mark 4012
iptables -t mangle -A POSTROUTING -d 172.16.4.13 -j MARK --set-mark 4013
iptables -t mangle -A POSTROUTING -d 172.16.4.14 -j MARK --set-mark 4014
iptables -t mangle -A POSTROUTING -d 172.16.4.15 -j MARK --set-mark 4015
iptables -t mangle -A POSTROUTING -d 172.16.4.16 -j MARK --set-mark 4016

# filtre pre shaper
# KNIZNICA 32 kbit zdielana len strojmi kniznice 

tc filter add dev eth0 parent 1:0 protocol ip handle 1010 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1011 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1012 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1013 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1014 fw flowid 1:15

# MsU 32 kbit zdielana len strojmi ktore su z MsU a ktorym MsU poskytuje
# pripojenie

tc filter add dev eth0 parent 1:0 protocol ip handle 1050 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1051 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1053 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1054 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1059 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1060 fw flowid 1:16

#### BEGIN 11: 
# 
tc filter add dev eth0 parent 1:0 protocol ip handle 1006 fw flowid 11:111
tc filter add dev eth0 parent 1:0 protocol ip handle 1009 fw flowid 11:112
#                                             handle 1020 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1021 fw flowid 11:113
tc filter add dev eth0 parent 1:0 protocol ip handle 1022 fw flowid 11:114
tc filter add dev eth0 parent 1:0 protocol ip handle 1023 fw flowid 11:115
tc filter add dev eth0 parent 1:0 protocol ip handle 1024 fw flowid 11:116
tc filter add dev eth0 parent 1:0 protocol ip handle 1025 fw flowid 11:117
tc filter add dev eth0 parent 1:0 protocol ip handle 1026 fw flowid 11:118
#
#### END 11:

#### BEGIN 12:
#                                             handle 1030 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1031 fw flowid 12:121
tc filter add dev eth0 parent 1:0 protocol ip handle 1032 fw flowid 12:122
tc filter add dev eth0 parent 1:0 protocol ip handle 1033 fw flowid 12:123
tc filter add dev eth0 parent 1:0 protocol ip handle 1034 fw flowid 12:124
tc filter add dev eth0 parent 1:0 protocol ip handle 1035 fw flowid 12:125
tc filter add dev eth0 parent 1:0 protocol ip handle 1036 fw flowid 12:126
#                                             handle 1040 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1041 fw flowid 12:127
tc filter add dev eth0 parent 1:0 protocol ip handle 1044 fw flowid 12:128
#
#### END 12:

#### BEGIN 13:
#
#                                             handle 1065 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1066 fw flowid 13:131
tc filter add dev eth0 parent 1:0 protocol ip handle 1067 fw flowid 13:131
tc filter add dev eth0 parent 1:0 protocol ip handle 1068 fw flowid 13:131
tc filter add dev eth0 parent 1:0 protocol ip handle 1069 fw flowid 13:131
#                                             handle 1070 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1071 fw flowid 13:132
tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 13:133
#                                             handle 1100 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1101 fw flowid 13:134
tc filter add dev eth0 parent 1:0 protocol ip handle 1102 fw flowid 13:135
tc filter add dev eth0 parent 1:0 protocol ip handle 1103 fw flowid 13:136
tc filter add dev eth0 parent 1:0 protocol ip handle 1104 fw flowid 13:137
tc filter add dev eth0 parent 1:0 protocol ip handle 1105 fw flowid 13:138
#
#### END 13:

#### BEGIN 14:
#
#                                             handle 1110 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1111 fw flowid 14:141
tc filter add dev eth0 parent 1:0 protocol ip handle 1112 fw flowid 14:142
tc filter add dev eth0 parent 1:0 protocol ip handle 1113 fw flowid 14:143
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:144
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:145
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:146
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:147
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:148
#
#### END 14:


Další informace o konferenci linux