7390 mit Trunk rev 9208 und iptables - fehlendes Modul xt-state (Reboot-Schleife)

Ich habe auch nicht Dich gemeint, die Beiträge haben sich überschnitten. Mein Beitrag war eine Antwort an Oliver.

Es kann gut sein, dass Du damit herausgefunden hast, warum es nicht geht. Wenn ja, wird leider nur AVM wissen, warum das nicht zusammen funktioniert, und ich vermute mal nicht, dass wir von dort eine Auskunft bekommen würden, warum das so ist.

Mir ist aufgefallen, dass in der Datei skbuff.h Florian La Roche erwähnt wird, mit einer deutschen Email Adresse. Man könnte versuchen, ihn zu fragen, ob er Interesse daran hätte, AVM aufzufordern, die Quellen für alle Module, die skbuff verwenden, zur Verfügung zu stellen.
 
Mir ist aufgefallen, dass in der Datei skbuff.h Florian La Roche erwähnt wird, mit einer deutschen Email Adresse. Man könnte versuchen, ihn zu fragen, ob er Interesse daran hätte, AVM aufzufordern, die Quellen für alle Module, die skbuff verwenden, zur Verfügung zu stellen.
Ich habe Florian hierzu kontaktiert und er hat sich bereit erklärt, sich des Problems anzunehmen.
Er bittet aber, erst mal keine tiefergehenden Diskussionen hierzu in diesem Thread zu veröffentlichen, da bei Ihm zu Hause auch eine FRITZ!Box läuft.
 
Das hört sich zwar gut an, ich kann mir aber nicht wirklich vorstellen, dass AVM dem nachkommen wird.
 
Hallo zusammen,

nachdem ich Florian nun noch einige Male angeschrieben hatte und er leider bisher nicht reagiert hatte, würde ich nun selbst versuchen, bei AVM die Veröffentlichung der Code-Bestandteile, die skbuff verwenden, zu erwirken.
Hätte diesbezüglich jemand einen Formulierungstip und/oder ggfs. die Vorlage eines Musterschreibens für mich zur Hand ?
Grüße,

JD.
 
Ich sehe nicht, wie man AVM dazu zwingen könnte die Quellen ihrer Module offenzulegen. Der Kernel steht unter GPL V2. Damit ist es erlaubt nicht quelloffene Module in den Kernel zu laden. Allein die Nutzung von skbuff führt nicht datu, dass ein Modul unter die GPL gestellt werden muß. Man könnte lediglich an AVM appelieren den Code offenzulegen. Das wird aber nicht zum Erfolg führen. Mir ist AVM eher als eine Firma bekannt, die nicht bereit ist irgendwelchen Code offenzulegen. Die Nutzung der Linux Basis ist bequem. Eigener Code wird aber schön unter Verschluß gehalten. Die Konsequenz ist eben, dass bestimmte Kernel Optionen nicht aktiviert werden können, wenn man AVM Module verwenden will (oder mangels Alternative verwenden muß). Das ist der Preis, den der Nutzer zahlen muß.
 
Hallo zusammen,

ich möchte den Thread hier nochmal aufnehmen und habe hierzu diesen Kommentar gelesen. Ein Blick in die Syslogs meiner 7390 liefert bezüglich des AVM Package accelerators lediglich das hier:
Code:
Jan  1 01:00:42 fritz kern.info kernel: AVM PA 2.7.7 2012-05-02
Jan  1 01:00:42 fritz kern.info kernel: AVM PA skb pktinfo at offset 200 size 188
Jan  1 01:00:42 fritz kern.info kernel: [loadcontrol]module avm_pa registered
Lohnt es sich mit der 7390 zu testen, was passiert, wenn ich, wie in dem Ticket angeregt, die Option CONFIG_GENERIC_CONNTRACK disable (und das connection tracking wieder ganz dem netfilter überlasse) ? Die 7390 und die 7270v3 laufen doch mit verschiedenen Kernels ... (?)
Hat das evtl. schon mal jemand getestet ?
Grüße,

JD.
 
Hallo,
CONFIG_GENERIC_CONNTRACK zu disablen führt dazu, dass das kdsldmod.ko (zumindest bei der 3370) unaufgelöste Symbole hat. Damit läßt es sich nicht mehr laden und man hat (im besten Fall) keine DSL Verbindung mehr. Ich denke AVM wird das in Zukunft immer aktivieren und damit nf_conntrack unmöglich machen. Ich nehme an CONFIG_GENERIC_CONNTRACK ist irgendein abgespecktes Connection Tracking, mit dem AVM besser schnelle Dieneste wie IP TV verarbeiten kann. Ich habe mir aber nicht die Mühe gemacht die Quellcode Dateien für CONFIG_GENERIC_CONNTRACK anzuschauen. Selbst wenn klar ist was das tut, ändert das nichts an der Tatsache, dass sich nf_conntrack nicht aktivieren läßt.

Gruß
 
Und ist davon auszugehen, das dieses Problem für alle neueren Kernels ( >2.6.28 ) existiert bzw. existieren wird? Wenn CONFIG_GENERIC_CONNTRACK eine "abgespeckte", AVM-eigene Variante von nf_conntrack ist, wieso läßt sich dann ein Modul mit evtl. "größerem" Funktionsumfang nicht mehr aktivieren ?
Oder hat das wieder mit einer veränderten skbuff-Größe zu tun?

Grüße,

JD.
 
Zuletzt bearbeitet:
Wenn CONFIG_GENERIC_CONNTRACK eine "abgespeckte", AVM-eigene Variante von nf_conntrack ist, wieso läßt sich dann ein Modul mit evtl. "größerem" Funktionsumfang nicht mehr aktivieren ?
Oder hat das wieder mit einer veränderten skbuff-Größe zu tun?
Risking that I write some stuff obvious to many, I try to reason here what the impact of the AVM closed source modules is.

Kernel modules can only be loaded if the used kernel was build with a config that enabled these modules, otherwise the kernel lacks the needed module stubs, and also, kernel modules that use common kernel data structures must match the definition of the structure used by the kernel. At build time that definition may depend on settings in the kernel config.

Any AVM closed source module cannot be rebuild such that it agrees with eventual changes in the definitions of commonly used data structures. This is by definition, the sources are not available for compilation. (Tough the kernel config settings needed for building a kernel that can load the module is available, thanks to the requirements of the GPLv2).

Therefore when using closed source AVM modules, the definition in the kernel of the common data types like the skbuf structure must match that of the immutable closed source module. This restriction can be lessened a little: the structure used by the kernel may be expanded, but only after the part that matches the definition of the structure as used by the closed source module. This explains why markuschen made a patch that moved additions to the skbuf structure that are needed for NF conntracking after the part of the structure that is known to the AVM closed sources modules.

Other problems may be caused by the semantics of a module. When a required closed source module implements some semantics that cannot be combined with other modules, these other modules cannot be used.
The following is speculative, since I have not verified whether it is truly the case. AVM's PacketAccelerator (CONFIG_AVM_PA) and its associated generic connection tracking may possibly move packets directly from one interface to another thereby completely bypassing some of NF's tables and associated logic. As stated: I do not know whether this is true.

As long as AVM can build and distribute modules that they do not consider to be "derived work" in terms of the GPL2 (which would imply that the source code should be made available), this technical company has quite a few means to (purposely) frustrate modifications of their products. Sadly this may disqualify their product for proper firewalls.
 
So as it seems that the CONFIG_AVM_PA appeared first with the .05-FWs: Is' it likely possible that the "ordinary" connection tracking for the 7390 may work with the .91-FW ?
Does the Kernel-Version of these two FWs (maybe 2.6.19.2 vs. 2.6.28.10) play a role in this ?
Greets,

JD.
 
Hallo zusammen

und Entschuldigung, daß ich den Thread nochmal hochhole ... aber steht das hier in Verbindung mit dem Problem in diesem Thread ?
Wenn ja: Hat den Patch jemand mit einer .5er-FW auf einer 7390 getestet ? Ich kann das leider erst am Wochenende tun ...
Grüße,

JD.

Edit: Hallo Jörg, meine Blindheit ... Link ist angepaßt.
 
Zuletzt bearbeitet:
Korrigiere bitte mal den Link, damit man es prüfen kann ;-)
 
Sorry, keine funktionale Änderung. Nur kosmetisch. Ich fürchte da wird sich auch in Zukunft nichts tun. Dafür ist das Problem einfach zu komplex.

Gruß
Oliver
 
Hallo Oli und alle Anderen,

in Anlehnung an das hier: Gibt es eine Möglichkeit, herauszufinden, welche Pakete/Module generell die skbuff-Struktur benutzen ? Mir ist durchaus bewußt, daß sich während des Build-Prozesses (also natürlich abhängig von meinen ausgewählten Paketen) die Größe und interne Datenstruktur ändert (dazu habe ich unter anderem hier was gefunden). Aber wenn schon die Größe des skbuff-Structs mit und ohne ersetztem Kernel nicht übereinstimmt, kann das ja nichts werden. Könnte man nicht versuchen, in jedem der Pakete, die (potentiell) skbuff benutzen, eine ähnliche Ausgabezeile während des Build-Prozesses einzufügen ?
Ich wäre bei einer solchen Sache gerne behilflich - wenn ich wüßte, welche Pakete ich zu bearbeiten hätte.
Beste Grüße,

JD.
 
Zuletzt bearbeitet:
Gibt es eine Möglichkeit, herauszufinden, welche Pakete/Module generell die skbuff-Struktur benutzen ?
grep skbuff
Mir ist durchaus bewußt, daß sich während des Build-Prozesses (also natürlich abhängig von meinen ausgewählten Paketen) die Größe und interne Datenstruktur ändert
Die Struktur änderst sih nicht während dem Build-Prozess, und nicht abhängig von gewählten Paketen, sondern sie ist abhängig von einigen wenigen Kernel-Optionen. Welche das sind, und das ist wohl der Sinn der ersten Frage, sieht man einfach im Quelltext. Bei der 7390 ist das source/kernel/ref-iks-16mb-7390_05.21/linux/include/linux/skbuff.h
Code:
#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE)
#if defined(CONFIG_FUSIV_KERNEL_HOST_IPQOS) || defined(CONFIG_FUSIV_KERNEL_HOST_IPQOS_MODULE)
#if defined(CONFIG_FUSIV_ENABLE_AP_MBUF) || defined(CONFIG_FUSIV_ENABLE_MBUF_AP)
#if (CONFIG_FUSIV_ENABLE_AP_MBUF | CONFIG_FUSIV_ENABLE_MBUF_AP)
#ifdef CONFIG_AVM_PA
#ifdef CONFIG_GENERIC_CONNTRACK
#ifdef CONFIG_BRIDGE_NETFILTER
#ifdef CONFIG_NET_SCHED
#ifdef CONFIG_NET_CLS_ACT
#ifdef CONFIG_IPV6_NDISC_NODETYPE
#if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE)
#ifdef CONFIG_NET_DMA
#ifdef CONFIG_NETWORK_SECMARK
#ifdef CONFIG_TI_META_DATA
#ifdef CONFIG_TI_DOCSIS_INPUT_DEV
#ifdef CONFIG_TI_L2_SELECTIVE_FORWARDER
#ifdef CONFIG_TI_PACKET_PROCESSOR
#ifdef CONFIG_NET_DEBUG_SKBUFF_LEAK
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
Aber wenn schon die Größe des skbuff-Structs mit und ohne ersetztem Kernel nicht übereinstimmt, kann das ja nichts werden.
Die Struktur stimmt überein, wenn man die Freetz Kernel Konfiguration verwendet.
Könnte man nicht versuchen, in jedem der Pakete, die (potentiell) skbuff benutzen, eine ähnliche Ausgabezeile während des Build-Prozesses einzufügen?
Es sind nicht Pakete, die skbuff verwenden, sondern Kernel-Optionen beeinflussen die Größe der Struktur.
Was für eine Ausgabezeile willst Du einfügen, und was ist der Nutzen davon?
 
Die Struktur stimmt überein, wenn man die Freetz Kernel Konfiguration verwendet.
Leider erlaubt die Freetz Kernel Konfiguration hinsichtlich netfilter/iptables kein (fehlerfreies) connection tracking. Also werde ich um einen ersetzten Kernel nicht herumkommen.

Was für eine Ausgabezeile willst Du einfügen, und was ist der Nutzen davon?
Ich will einfach während des Build-Prozesses bzw. danach abschätzen können, ob ein direktes KO-Kriterium für ein nicht funktionsfähiges Image aufgrund verschiedener skbuff-Größen (Original AVM bzw. nicht ersetzter vs. erstetzter Kernel) vorliegt.
In dem von mir verlinkten (und mittlerweile im Trunk wieder gelöschten) Patch gab es eine Zeile, die die (aktuelle) Größe der skbuff-Struktur ausgibt.
Grüße,

JD.
 
Leider erlaubt die Freetz Kernel Konfiguration hinsichtlich netfilter/iptables kein (fehlerfreies) connection tracking. Also werde ich um einen ersetzten Kernel nicht herumkommen.
Die AVM Kernel Konfiguration erlaubt kein connection tracking. Das hat nichts damit zu tun, ob man den Kernel ersetzt oder nicht. Die Freetz Kernel Konfiguration ist kompatibel mit der AVM Kernel Konfiguration weil es sonst nicht funktioniert.
Ich will einfach während des Build-Prozesses bzw. danach abschätzen können, ob ein direktes KO-Kriterium für ein nicht funktionsfähiges Image aufgrund verschiedener skbuff-Größen (Original AVM bzw. nicht ersetzter vs. erstetzter Kernel) vorliegt.
Ich habe Dir oben alle Optionen aufgelistet, die für die skbuff Struktur von Bedeutung sind. Wenn eine davon verschieden ist, kann man davon ausgehen, dass es Probleme mit skbuff geben wird.
Wenn Du willst, kannst Du Dir auch einen Weg überlegen, wie Du auf dem Build-System die Größe der Struktur angezeigt bekommst.
 
Wenn Du willst, kannst Du Dir auch einen Weg überlegen, wie Du auf dem Build-System die Größe der Struktur angezeigt bekommst.
Okay, da im vorliegenden Fall vermutlich erst mal
Code:
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
von Interesse ist:
Könnte man nicht (in skbuff.c) hier
Code:
skb->truesize = size + sizeof(struct sk_buff);
und hier
Code:
nf_conntrack_put_reasm(skb->nfct_reasm);
hinter jeweils einen Konsolenoutput, welcher den aktuellen Wert von skbuff.truesize() ausgibt, hinzufügen ?
Grüße,

JD.

Edit: Nochmal in Anlehnung an den o.g. Patch: Ich vermute (da ich mir die Quelle nicht genauer angeschaut habe), das
Code:
AVMNET_INFO
zumindest in obigem File eine solche Ausgabe veranlasst. Existiert dieses über das o.g. File (linux-2.6.32/drivers/net/avm_cpmac/common/avmnet_config.c) hinaus, sprich: Könnte man dies hier auch nutzen ?
 
Zuletzt bearbeitet:
Okay, da im vorliegenden Fall vermutlich erst mal
Code:
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
von Interesse ist ...
Damit erübrigt sich doch alles weitere, weil man direkt das Symbol in der Kernel-Konfiguration abfragen kann.
Könnte man nicht (in skbuff.c) hier ... und hier ... hinter jeweils einen Konsolenoutput, welcher den aktuellen Wert von skbuff.truesize() ausgibt, hinzufügen ?
Abgesehen davon, dass der Wert von skb->truesize (nicht skbuff.truesize()) keinen interessiert, könnte man das natürlich machen. Die Anweisung würde aber erst zur Laufzeit ausgeführt werden und nur im syslog landen. Wenn der Kernel funktioniert, kann man sich den Wert ansehen, braucht ihn aber nicht. Wenn der Kernel nicht funktioniert, kann man sich den Wert nicht ansehen.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.