klitzekleine c Frage...

  • Thread starter Thread starter das.chaos
  • Start date Start date
D

das.chaos

Guest
Als blutiger c-Anfaenger (der sich momentan versucht c beizubringen) frage ich mich, warum spuckt der cc mir eine Fehlermeldung bzgl.

... undefined reference to `if_attach'

aus, obwohl ich laut man

... ifnet(9)

die notwendigen Header-Dateien per #include <xyz.h> eingebunden hab [um bspw. die Funktion void if_attach(struct ifnet *ifp) zu benutzen], bzw. welche Option bzgl. dem Kompilieren

... cc -o programm progamm.c -lxyz

waehre denn notwendig um Funktionen aus "net/if.c" zu verwenden? Ich waer` ueber einen kleinen Denkanstosz dankbar.... Falls diese Frage zu allgemein sei, wuerde ich mich ansonsten ueber einen Literatur-Tip freuen bzgl. Programmierung bzgl. OSI-Layer-2.
 
Last edited by a moderator:
if_attach() (wie alle Funktionen, die in Abschnitt 9 beschrieben werden) ist eine Funktion innerhalb des Kerns. Du kannst sie nicht von einem normalen Programm aus aufrufen. Du müsstest ein Kernmodul bauen.
 
Nun... mir ist eine kleine Frage bzgl. pfil(9) eingefallen...

... nachdem ich mir ein Kernelmodul geschrieben habe (charDevice, welches Informationen aus dem UserSpace in den KernelSpace transportiert und umgekehrt, funktioniert perfekt, wobei die an das Geraet gesendeten Informationen von einem mir realisierten Daemon entstammen, welcher ebenso perfekt funzt)...

... der erwaehnte Daemon wertet PPPoE-Rahmen bzgl. innerhalb diesen PDUs dort abgekapselten IP-SDU bzgl. diesen zugeordneten IP-Protokollkoepfen aus und erzeugt Steuerinformationen bzw. Nachrichten , welche an das charDev gesendet werden, wobei diese Informationen mitunter die analysierten PPPoE-Rahmen beschreiben.

Zielvorstellung meinerseits ist es bzgl. irgendeinem if_ether (welches sich auf einer Bridge bzw. einem Switch befindet), die mbuf-chains* von ein- und ausgehenden PPPoE-Rahmen zu bestimmen, wenn das charDev Informationen durch dem Daemon erhaelt, damit dieses durch Funktionen aus dem Abschnitt 9 (man pages) spezifische mbuf-chains anhand bspw. in

... m->m_data, m->m_len, usw.usf vorhandenen Informationen

vergleichen kann mit den Informationen, welche der Daemon ermittelt hat.

... beschraenkt sich pfil(9) nur auf Daten bzgl. Internet-Level (also nur auf IP-Datagramme) oder lassen sich Funktionen aus pfil(9) auch auf rawEthernet-Rahmen bzgl. dem Network-Level anwenden?

Oder ist dies via netgraph moeglich, bspw. mittels einer spezifischen ng_node (bzgl. dem in netgraph/ng_sample* gelieferten Beispiel)?

Waere ueber einen klitzekleinen Denkanstosz gluecklich...



----
*) aufgrund intensiver Beschaeftigung mit dem Buch "TCP/IP Illustrated Vol. 2",
habe ich verstanden was mbufs sind
 
Last edited by a moderator:
Back
Top