.titleBar { margin-bottom: 5px!important; }

CBQ scheduler in Freetz 1.1.3 mit iproute

Dieses Thema im Forum "Freetz" wurde erstellt von xentric, 19 Juni 2010.

  1. xentric

    xentric Neuer User

    Registriert seit:
    19 Juni 2010
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hey!

    ich probiere Traffic-Shaping bei meinem ADSL anschluss auf einer 7270v3 Fritzbox.

    Der Freetz Buildvorgang war wirklich gut erklärt, und einfach. Nach feststellung, das kein cbq und u32 vorhanden ist um per 'tc' meine Bandbreite auf verschiedene IP adressen zu verteilen habe ich die passenden Kernelmodule neukompiliert. Jedoch findet mein tc die scheduler nicht, nur die standardmäßig installierten.

    Meine Frage, woran liegt das? ist das mitgelieferte tc hardcoded, wo sucht es die module, oder wieso geht das nicht? Ich meine, der kernel läd sie, aber das ist alles :(
    ich habe lange zeit gar nichts mehr mit QoS gemacht. Oder sind die kernel module nur fürs iptables brauchbar, und braucht iproute eigene?

    Bin für jeden Tipp wies weitergehen kann dankbar!

    Output:
    Code:
    /var/mod/root # lsmod 
    Module                  Size  Used by    Tainted: P  
    cls_u32                 7450  0 
    sch_cbq                16898  0 
    rtc_sysfs               2704  0 
    rtc_proc                3847  0 
    rtc_dev                 5493  1 
    sch_sfq                 5619  4 
    sch_llq                 9102  1 
    sch_tbf                 5664  1 
    userman                33702  2 
    wlan_scan_ap            8481  1 
    wlan_acl                4090  1 
    wlan_wep                6114  0 
    wlan_tkip              12521  2 
    wlan_ccmp               8524  2 
    wlan_xauth              1182  0 
    ath_pci               152567  0 
    ath_rate_atheros       61891  1 ath_pci
    wlan                  229944  9 wlan_scan_ap,wlan_acl,wlan_wep,wlan_tkip,wlan_ccmp,wlan_xauth,ath_pci,ath_rate_atheros
    ath_dfs                39236  2 ath_pci,wlan
    ath_hal               237540  4 ath_pci,ath_rate_atheros,ath_dfs
    avm_ath_extensions     41518  4 ath_pci,ath_rate_atheros,wlan,ath_hal
    kdsldmod              873597  7 userman
    musb_hdrc              36999  0 
    usbcore               126440  2 musb_hdrc
    dect_io                21126  2 
    avm_dect              390881  1 dect_io
    capi_codec            142935  0 
    isdn_fbox_fon5        761750  0 
    pcmlink               262925  3 avm_dect,capi_codec,isdn_fbox_fon5
    rtc_avm                 6573  2 pcmlink
    rtc_core                7083  4 rtc_sysfs,rtc_proc,rtc_dev,rtc_avm
    rtc_lib                 2712  3 rtc_sysfs,rtc_avm,rtc_core
    dsl_ur8               173781  1 
    jffs2                 115345  1 
    Piglet_noemif          36534  0 
    led_modul_Fritz_Box_7270plus    63229  7 ath_hal
    
    
    /var/mod/root # tc qdisc add dev adsl root handle 1: cbq avpkt 1000 bandwidth 6m
    bit
    Unknown qdisc "cbq", hence option "avpkt" is unparsable
    
    
    /var/mod/root # tc qdisc show dev adsl
    qdisc tbf 2: rate 633600bit burst 3199b lat 10.3ms 
    qdisc llq 10: parent 2: minq 1 maxq 255 default 6
    qdisc sfq 104: parent 10:4 limit 32p quantum 100b perturb 10sec 
    qdisc sfq 105: parent 10:5 limit 32p quantum 100b perturb 10sec 
    qdisc sfq 106: parent 10:6 limit 32p quantum 100b perturb 10sec 
    qdisc sfq 107: parent 10:7 limit 32p quantum 100b perturb 10sec 
    
    
    /var/mod/root # 
    
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,761
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Es kann schon sein, dass AVM das tc "kastriert" hat. Haben wir das in Freetz nicht auch als Paket?

    MfG Oliver
     
  3. xentric

    xentric Neuer User

    Registriert seit:
    19 Juni 2010
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hey!

    Danke für die antwort, und das ist auch die richtige ;)

    Wusste gar nicht, dass das tc von AVM ist. ich hab mir jetzt einfach die iproute2 src gezogen und die kompiliert, jetzt gehts genau wies soll =). Jeder client auf ungefähr n mbit begrenzt,..

    Code:
     $ wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.35-rc3.tar.bz2
    --2010-06-20 01:17:06--  http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.35-rc3.tar.bz2
    Resolving www.kernel.org... 199.6.1.164, 130.239.17.4
    Connecting to www.kernel.org|199.6.1.164|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 69527672 (66M) [application/x-bzip2]
    Saving to: “linux-2.6.35-rc3.tar.bz2”
    
     0% [                                                 ] 585,768     98.7K/s  eta 11m 27s 
    ich hab im make menuconfig nichts von iproute2 gefunden, deshalb dachte ich, das ist einfach irgednwie n standard package, das immer mitkommt, ..
    Ich hatte nur n ticket vom Bugtracker gefunden.

    Jedenfalls, mit den richtigen iproute2 läufs, ..

    Code:
    /var/flash # tc class show dev wifi0 
    class cbq 1: root rate 6000Kbit (bounded,isolated) prio no-transmit
    class cbq 1:1 parent 1: rate 768000bit (bounded,isolated) prio 5
    
    /var/flash # tc qdisc show dev wifi0 
    qdisc cbq 1: rate 6000Kbit (bounded,isolated) prio no-transmit
    
    danke!
     
  4. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,761
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Kannst du bitte eine kleine Anleitung schreiben? Welche Freetz Version hast du benutzt? Was hast du jetzt genau gemacht? Und wofür ist das ganze gut?
    Hört sich für mich interessant an.

    Mfg Oliver
     
  5. xentric

    xentric Neuer User

    Registriert seit:
    19 Juni 2010
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Gib mir 1-2 Tage, dann paste ich hier den patch auf die aktuelle src, und schreib was ich gemacht hab.

    Ich hab das aktuelle freetz 1.1.3, und jetzt eben um 2 scheduler die ich wollte erweitert, und iproute2 geadded, ..


    Muss noch mit den regeln bisschen rumbauen, aber eigentlich will ich pro computer einfach die bandbreite begrenzen, .. nachdem ich ernüchternd festgestellt hab, dass alles was die fritzbox kann diese komischen prioritäten sind.

    Mehr zu cbq:
    http://en.wikipedia.org/wiki/Class-based_queueing

    Oder 2 Beispiele:
    http://www.wlug.org.nz/TrafficShaping
    http://lartc.org/howto/lartc.ratelimit.single.html


    ich werd dran denken, ..
     
  6. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    Es wäre nett, würdest du dies gegen den trunk noch einmal gegenchecken, und vllt. einen Patch dazu zu veröffentlichen, das spart das Portieren von uns, um das evtl. in den trunk einzuchecken.
     
  7. xentric

    xentric Neuer User

    Registriert seit:
    19 Juni 2010
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @olistudent
    Also, hier ist n gutes Bild, was CBQ ist: Aber das weißt du ja sicher, .. scheinst ja mit das freetz hier aufrecht zu halten.

    http://ace-host.stuart.id.au/russell/files/tc/doc/sch_cbq.txt

    @olistudent, Silent-Tears
    Patch ist dran. Musste nur beim iproute die loadlibs weglassen, weil er probleme mit der 'libresolv' hatte. Sonst lief das eigentlich ohne Anstand durch. Wobei ich gerade beim portieren auf den aktuellen trunk gesehen hab, dass ihr die in dem external zweig drin habt (scheint bei.1.1.3 noch nicht zu sein) Weiß nicht, ob ihr das jetzt gebrauchen könnt, und was extenal überhaupt ist (Zu groß deshalb auf external storgae?)? Habe seit 3 Tagen freetz Kontakt ;)

    Der 1.1.3 patch geht, hab ich ausprobiert.
    Dann hab einfach das ziemlich 1:1 auf den trunk übertragen, zumal ich da auch nur die gleichen 4 standard Scheduler von AVM gefunden hab, und in der Config.in auch kein iproute2 zum auswählen war. Deshalb dachte ich: Okay, machen wirs einfach wie bei der 1.1.3.
    Der Patch im trunk läuft auch durch, ..
     

    Anhänge:

  8. vel_tins

    vel_tins Mitglied

    Registriert seit:
    27 Mai 2005
    Beiträge:
    353
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Läuft auch im neuesten Trunk freetz-devel-6419M durch.
    Abgesehen davon, das im Trunk "iproute2" fehlte.
    Hab dann einfach die config angepasst und Dateien aus Stable genommen.
    Jetzt würde mich nur noch interessieren wie man den Upload begrenzen kann...
     
  9. xentric

    xentric Neuer User

    Registriert seit:
    19 Juni 2010
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Man, ich krieg doch echt ne email, weil hier wer auf meinen 6 Monate alten Thread geantwortet hat :p.


    Einfach mal nach 'cbq limit download upload' suchen, da findest genügend Beispiele.
    Es gibt auch fertige ScriptSammlungen, wo du nur die Upload/Download-Rate und die IP anpassen musst, ..

    Beispiele:

    zu emfehlen:
    http://sourceforge.net/projects/cbqinit/

    oder:
    http://sp9wun.republika.pl/linux/shaperd_cbq_en_old.html
    http://www.wlug.org.nz/TrafficShaping

    Wenn du schon den patch eingebaut hast, und Freetz compilieren konntest, kriegst du schon hin.
    Aber gut zu wissen, dass es auch bei der aktuellen Version noch geht, ..
     
  10. vel_tins

    vel_tins Mitglied

    Registriert seit:
    27 Mai 2005
    Beiträge:
    353
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #10 vel_tins, 12 Jan. 2011
    Zuletzt bearbeitet: 12 Jan. 2011
    jo, weil ich erst jetzt, für einige Zeit einen Wlan Klienten (DAU) ertragen muß, der leider ein Fan von diversen Movie-Streaming Seiten ist.:roll:
    Naja, mal sehen wie weit er mit 400 K/Bit kommt.
    Ich wollte es ja nicht zu auffällig gestalten, ansonsten hätte ich ihm nur 200 Kbit zugeteilt..:cool:

    EDIT: Habe mir die Links mal angesehen, scheint recht kompliziert zu sein, bzw überdimensioniert.
    Ich habe jetzt auch, wie in deinem Beispiel "wifi0" als Device benutzt, allerdings wird dann wohl auch die Geschwindigkeit im internen WLan begrenzt. Das sollte eigentlich nicht sein.
    Welches Device der 7270 muß ich benutzen, wenn es NUR um den Internet-Traffic gehen soll?
    Folgendes steht zur Auswahl:
    Code:
    root@fritz:/var/mod/root# ifconfig
    adsl      
    ath0      
    cpmac0    
    dsl       
    eth0      
    guest     
    lan       
    lan:0     
    lo        
    wifi0 
    EDIT2: Habs rausgefunden, es ist "ath0"
     
  11. eYo

    eYo Neuer User

    Registriert seit:
    5 Jan. 2008
    Beiträge:
    165
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #11 eYo, 11 Nov. 2012
    Zuletzt bearbeitet: 11 Nov. 2012
    7390

    Hi,
    da dieser Thread ja schon uralt ist und die Patches nicht mehr funktionieren, habe ich im Anhang einen Patch inkl. iproute2 v3.0.6

    Habe das ganze mit meiner 7390 getestet und es funktioniert bei mir zumindest im Download. Vielleicht kanns jemand gebrauchen und findet noch heraus wie das im Upload funktioniert...

    Für iproute2 musste ich einiges in der Source patchen, damit er überhaupt kompiliert. z.B. gibt es in der Freetz Umgebung kein "unshare".

    Ich hoffe es nimmt sich jemand dem an :)

    [Edit1]
    Achso, das Skript was ich zum download "throttlen" nutze, ist das von "xentric" erwähnte:
    http://www.wlug.org.nz/TrafficShaping

    Als device nutze ich "cpmac0".


    [Edit2]
    Und jetzt ist im Anhang auch noch die entsprechende Config für den Kernel + Box von mir zu finden.
     

    Anhänge:

  12. Bernd Kraut

    Bernd Kraut Neuer User

    Registriert seit:
    3 Dez. 2014
    Beiträge:
    1
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Sorry wenn ich nach so langer Zeit den Thread nochmal hochhole, aber ich hab ebenfalls Interesse an iproute bzw. tc. Nur leider läuft der Compiliervorgang nicht mehr durch, nachdem ich den Patch benutzt und iproute2 der Kernel-Config hinzugefügt habe.

    Die Fehlermeldung:
    Code:
    o  -lresolv ../lib/libnetlink.a ../lib/libutil.a -ldl -o rtmon
    /home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.8.3_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.3/../../../../mips-linux-uclibc/bin/ld: cannot find -lresolv
    collect2: error: ld returned 1 exit status
    make[2]: *** [rtmon] Fehler 1
    make[2]: *** Warte auf noch nicht beendete Prozesse...
    /home/freetz/freetz-trunk/toolchain/build/mips_gcc-4.8.3_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.3/../../../../mips-linux-uclibc/bin/ld: cannot find -lresolv
    collect2: error: ld returned 1 exit status
    make[2]: *** [ip] Fehler 1
    make[2]: Verlasse Verzeichnis '/home/freetz/freetz-trunk/source/target-mips_gcc-4.8.3_uClibc-0.9.33.2-nptl/iproute2-3.6.0/ip'
    make[1]: *** [all] Fehler 2
    make[1]: Verlasse Verzeichnis '/home/freetz/freetz-trunk/source/target-mips_gcc-4.8.3_uClibc-0.9.33.2-nptl/iproute2-3.6.0'
    make: *** [source/target-mips_gcc-4.8.3_uClibc-0.9.33.2-nptl/iproute2-3.6.0/tc/tc] Fehler 2
    PS: Ich habe eine FB7360v2.
    PPS: Nach dem Patchen habe ich zwar ein Verzeichnis b/make/iproute2/, aber kein b/make/Config.in. Ist das soweit richtig?
     
  13. clevergirl

    clevergirl Neuer User

    Registriert seit:
    5 Juli 2011
    Beiträge:
    14
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #13 clevergirl, 3 Jan. 2016
    Zuletzt bearbeitet: 5 Jan. 2016
    Hat das inzwischen jemand hinbekommen im trunk?
    stehe vor dem gleichen Problem

    Anscheinend ist es inzwischen im trunk eingepflegt. Iproute2 sollte out of the box funktionieren. Manche kernel Module scheinen allerdings zu fehlen (z.B. advanced routing für ip rule).
     
  14. hvoigt

    hvoigt Neuer User

    Registriert seit:
    25 Jan. 2016
    Beiträge:
    1
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich habe mir mal die Patches geschnappt und versucht sie auf die aktuelle freetz Version zu heben. Noch ist nichts getestet aber alles kompiliert schonmal. Falls jemand eine Box zum rumspielen hat kann er gerne schonmal testen: https://github.com/hvoigt/freetz/tree/hv/tc-rebase