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

Priority Manager aus Labor-FW

Dieses Thema im Forum "Freetz" wurde erstellt von MReimer, 14 Sep. 2008.

  1. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ich benötige den Prioritäten-Manager der in der Labor-Firmware dazugekommen ist. Meine Hoffnung ist, dass damit VoIP effektiver priorisiert werden kann, denn der Shaper taugt leider nicht viel. Bei gleichzeitiger Internetaktivität wird bei unserem DSL-Light das VoIP unerträglich...

    Ich habe aber nur eine FBF 5140. Also nix mit "einfach Labor-Firmware drauf".

    Der relevante Bereich in der ar7.cfg ist "prios", der bei mir einfach "prios {}" heißt. Also da aber ohne Inhalt.

    Wenn ich dort nun manuell Einträge mache, wird die aktuelle Firmware der FBF 5140 dann die Werte auslesen und nutzen?

    Ich bin gerade dabei mir eine entsprechende ar7.cfg zu besorgen um das zu testen, mich würde aber interessieren wie die Erfahrungen da so sind. Sind all die Features der Labor-Firmwares eigentlich bereits da, werden aber erst später auch konfiguriert oder ist es mit einfachem Erweitern der ar7.cfg mit höchster Wahrscheinlichkeit nicht getan?
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Da müsstest du dir die libar7cfg anschauen, wenn die Einstellungen dort drin stehen, dann werden sie schonmal erkannt. Ob der dsld (?) dann auch noch was damit anzufangen weiß kann ich dir aber nicht sagen.

    MfG Oliver
     
  3. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nehmen wir an es wäre der dsld. Könnte man dann auch den dsld der Labor-Firmware in die Box packen oder führt das zu weit?

    libar7cfg werde ich mir mal anschauen. Sobald ich die nötigen Werkzeuge habe um Firmware-Images zu entpacken sollte ich in diesen ja wohl fündig werden.
     
  4. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Einzelne Teile zu portieren halte ich für nicht machbar. Du müsstest dich an unseren Alien-Varianten orientieren und die Labor Firmware nehmen und dann die nötigen Komponenten aus der 5140 Firmware rüber kopieren. Falls das denn funktioniert.

    MfG Oliver
     
  5. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ... ich komme hier so nicht weiter. Die ar7.cfg die in der Firmware als Default liegt hat auch keinen prios-Teil. Eine FBF 7270 zum Testen hab ich nicht. Woher bekomme ich die Syntax für diesen Prios-Kram und wo liegt libar7cfg? Auch diese ist wohl nicht im Image vorhanden...
     
  6. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Code:
    /var/mod/root # ls -l /lib/libar7*
    lrwxrwxrwx    1 root     root           18 Sep 14  2008 /lib/libar7cfg.so -> libar7cfg.so.1.0.0
    lrwxrwxrwx    1 root     root           18 Sep 14  2008 /lib/libar7cfg.so.1 -> libar7cfg.so.1.0.0
    -rwxr-xr-x    1 root     root       198176 Sep  5  2008 /lib/libar7cfg.so.1.0.0
    /var/mod/root #
    Code:
    qos {
            always_set_tos = no;
            rules {
                    tcclass = "sip";
                    rules = "udp.dport 5060";
            } {
                    tcclass = "dns";
                    rules = "udp.dport 53";
            } {
                    tcclass = "http_req";
                    rules = "tcp.dport 80 ip.len <= 800",
                            "tcp.dport 8080 ip.len <= 800",
                            "tcp.dport 3128 ip.len <= 800";
            } {
                    tcclass = "tcp_ack";
                    rules = "ip.proto == tcp ip.len <= 64";
            } {
                    tcclass = "icmp";
                    rules = "ip.proto == icmp";
            }
    }
    
    prios {
            users {
                    ip = 0.0.0.0;
                    profile = "Internettelefonie";
                    type = prio_very_high;
                    weight = 0;
            } {
                    ip = 0.0.0.0;
                    profile = "FRITZ! Media Videostreaming";
                    type = prio_very_high;
                    weight = 0;
            }
            profiles {
                    name = "HTTP-Server";
                    rules = "TCP 80 0 0 0";
            } {
                    name = "FTP-Server";
                    rules = "TCP 20 21 0 0";
            } {
                    name = "eMule";
                    rules = "TCP 0 0 4662 0", "UDP 0 0 4672 0";
            } {
                    name = "BitTorrent";
                    rules = "TCP 0 0 6881 6999";
            } {
                    name = "MS Remotedesktop";
                    rules = "TCP 3389 0 0 0";
            } {
                    name = "SSH";
                    rules = "TCP 0 0 22 0";
            } {
                    name = "Telnet";
                    rules = "TCP 0 0 23 0";
            }
    }
    
    nqos {
            version = 1;
            defaultresult {
                    tos = -1;
                    vlan_prio = -1;
                    queueref = "default";
            }
            appls {
                    enabled = yes;
                    name = "sip-appl";
                    protocol = qos_classifier_appl_sip;
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "hrealtime";
                    }
            }
            classifiers {
                    enabled = yes;
                    name = "igmp";
                    type = qos_cfg_hidden;
                    iface = qos_local;
                    rule = "localmark none ip.proto == igmp";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "ifacectl";
                    }
            } {
                    enabled = yes;
                    name = "tr069";
                    type = qos_cfg_hidden;
                    iface = qos_local;
                    rule = "localmark sipdns,ntpdns,tr069dns,tr069";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "hprio";
                    }
            } {
                    enabled = yes;
                    name = "mstv";
                    type = qos_cfg_hidden;
                    iface = qos_lan;
                    rule = "udp.dport 43962";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "hprio";
                    }
            } {
                    enabled = yes;
                    name = "mstv";
                    type = qos_cfg_hidden;
                    iface = qos_lan;
                    rule = "udp.dport 47806";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "hprio";
                    }
            } {
                    enabled = yes;
                    name = "icmp";
                    type = qos_cfg_hidden;
                    iface = qos_lan;
                    rule = "ip.proto icmp";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "hprio";
                    }
            } {
                    enabled = yes;
                    name = "dns";
                    type = qos_cfg_hidden;
                    iface = qos_lan;
                    rule = "udp.dport 53";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "hprio";
                    }
            } {
                    enabled = yes;
                    name = "Internettelefonie";
                    type = qos_cfg_internal;
                    iface = qos_local;
                    rule = "localmark sip";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "realtime";
                    }
            } {
                    enabled = yes;
                    name = "Internettelefonie";
                    type = qos_cfg_internal;
                    iface = qos_local;
                    rule = "localmark rtp";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "realtime";
                    }
            } {
                    enabled = yes;
                    name = "Internettelefonie";
                    type = qos_cfg_internal;
                    iface = qos_lan;
                    rule = "udp.dport 5060";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "realtime";
                            applref = "sip-appl";
                    }
            } {
                    enabled = yes;
                    name = "FRITZ! Media Videostreaming";
                    type = qos_cfg_internal;
                    iface = qos_lan;
                    rule = "dhcpoption 12 FRITZ!Media* mediatab";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "realtime";
                    }
            } {
                    enabled = yes;
                    name = "FRITZ! Media Videostreaming";
                    type = qos_cfg_internal;
                    iface = qos_lan;
                    rule = "ethsrctab mediatab";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "realtime";
                    }
            } {
                    enabled = no;
                    name = "Surfen";
                    type = qos_cfg_system;
                    iface = qos_lan;
                    rule = "ip.proto == tcp ip.len <= 64";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "none";
                    }
            } {
                    enabled = no;
                    name = "Surfen";
                    type = qos_cfg_system;
                    iface = qos_lan;
                    rule = "tcp.dest 80 ip.len <= 800";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "none";
                    }
            } {
                    enabled = no;
                    name = "Surfen";
                    type = qos_cfg_system;
                    iface = qos_lan;
                    rule = "tcp.dest 8080 ip.len <= 800";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "none";
                    }
            } {
                    enabled = no;
                    name = "Surfen";
                    type = qos_cfg_system;
                    iface = qos_lan;
                    rule = "tcp.dest 3128 ip.len <= 800";
                    result {
                            tos = -1;
                            vlan_prio = -1;
                            queueref = "none";
                    }
            }
            queues {
                    enabled = yes;
                    with_sfq = no;
                    type = qos_cfg_system;
                    name = "ifacectl";
                    iface = qos_wan;
                    precedence = 0;
                    weight = 0;
                    shapingrate = 0;
                    shapingburst = 0;
            } {
                    enabled = yes;
                    with_sfq = no;
                    type = qos_cfg_system;
                    name = "hprio";
                    iface = qos_wan;
                    precedence = 10;
                    weight = 0;
                    shapingrate = 0;
                    shapingburst = 0;
            } {
                    enabled = yes;
                    with_sfq = no;
                    type = qos_cfg_system;
                    name = "hrealtime";
                    iface = qos_wan;
                    precedence = 20;
                    weight = 0;
                    shapingrate = 0;
                    shapingburst = 0;
            } {
                    enabled = yes;
                    with_sfq = yes;
                    type = qos_cfg_system;
                    name = "realtime";
                    iface = qos_wan;
                    precedence = 30;
                    weight = 0;
                    shapingrate = 0;
                    shapingburst = 0;
            } {
                    enabled = yes;
                    with_sfq = yes;
                    type = qos_cfg_system;
                    name = "important";
                    iface = qos_wan;
                    precedence = 100;
                    weight = 90;
                    shapingrate = 0;
                    shapingburst = 0;
            } {
                    enabled = yes;
                    with_sfq = yes;
                    type = qos_cfg_system;
                    name = "default";
                    iface = qos_wan;
                    precedence = 100;
                    weight = 10;
                    shapingrate = 0;
                    shapingburst = 0;
            } {
                    enabled = yes;
                    with_sfq = yes;
                    type = qos_cfg_system;
                    name = "low";
                    iface = qos_wan;
                    precedence = 200;
                    weight = 0;
                    shapingrate = 0;
                    shapingburst = 0;
            }
    }
    
    MfG Oliver
     
  7. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke für die Infos. Ich werde mir libar7cfg auf meiner Box mal anschauen. Bei der Komplexität wäre es aber wohl schon sehr viel Glück wenn das Backend tatsächlich schon in der 5140 drin ist.
     
  8. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo nochmal.

    Ich habe die libar7cfg.so-Dateien mal beide nach "prio" durchsucht:

    Code:
    root@linux:~/fbfw# strings labor/var/tmp/squashfs-root/lib/libar7cfg.so | grep prio
    AR7CFG_prios_struct
    AR7CFG_prio_profile_struct
    AR7CFG_prio_user_struct
    AR7CFG_prio_type_enumdef
    AR7CFG_prio_type_enum
    AR7CFG_prio_user_alloc
    AR7CFG_prio_user_free
    AR7CFG_prio_profile_alloc
    AR7CFG_prio_profile_free
    AR7CFG_prios_alloc
    AR7CFG_prios_free
    prio_user
    prio_profile
    prios
    vlan_prio
    prio_type
    igmp_prio
    priority
    vlanprio
    prio_none
    prio_very_high
    prio_high
    prio_medium
    prio_low
    vlanencap_fixed_prio
    vlanencap_class_prio
    hprio
    sip_prio
    rtp_prio
    prio_low_codec
    root@linux:~/fbfw# strings final/var/tmp/squashfs-root/lib/libar7cfg.so | grep prio
    AR7CFG_prios_struct
    AR7CFG_prio_user_struct
    AR7CFG_prio_type_enumdef
    AR7CFG_prio_type_enum
    AR7CFG_prio_user_alloc
    AR7CFG_prio_user_free
    AR7CFG_prios_alloc
    AR7CFG_prios_free
    prio_user
    prios
    vlan_prio
    prio_order
    prio_very_high
    prio_high
    prio_medium
    prio_type
    igmp_prio
    vlanprio
    prio_none
    vlanencap_fixed_prio
    vlanencap_class_prio
    min_priority
    max_priority
    sip_prio
    rtp_prio
    prio_low_codec
    
    Was in der aktuellen Final für die 5140 zum Beispiel fehlt ist AR7CFG_prio_profile_struct. Andererseits sind aber auch einige Dinge durchaus vorhanden, wie z.B. prio_very_high. Wenn der Priority-Manager aber wirklich schon in der 5140 existiert, dann wird er wohl über eine andere Syntax konfiguriert, die mir nicht bekannt ist...

    Ich schreibe jetzt nochmal AVM an. Wenn das nix bringt, dann gebe ich das ganze erstmal auf und hänge jetzt einen zusätzlichen Router vor die Box...