Dieser Abschnitt enthält eine Referenz der Konzepte, die in diesem Kapitel eingeführt wurden. Er erläutert darüber hinaus die Bedeutung jeder Header-Datei, die ein Treiber einbinden muß. Die Liste der Felder in net_device und sk_buff wird dagegen nicht wiederholt.
Diese Header-Datei enthält die Definitionen von struct net_device und struct net_device_stats und bindet einige zusätzliche Header-Dateien ein, die von Netzwerk-Treibern benötigt werden.
Registrieren und deregistrieren eines Netzwerk-Geräts.
Dieses Makro speichert einen Zeiger auf das aktuelle Modul in der Geräte-Struktur (oder übrigens auch in jeder anderen Struktur mit einem owner-Feld). Damit kann das Netzwerk-Subsystem den Verwendungszähler des Moduls pflegen.
Diese Funktionen steuern die Übergabe von zu übertragenden Paketen an den Treiber. Es werden keine Pakete übertragen, solange nicht netif_start_queue aufgerufen worden ist. netif_stop_queue hält die Übertragung an und netif_wake_queue startet die Warteschlange wieder und stubst die Netzwerk-Schicht an, damit diese wieder Pakete überträgt.
Diese Funktion kann zur Interrupt-Zeit aufgerufen werden, um dem Kernel mitzuteilen, daß ein Paket empfangen und in einem Socket-Buffer gekapselt wurde.
Wird von netdevice.h eingebunden und deklariert die Schnittstellen-Flags (die IFF_-Makros) sowie struct ifmap, das eine bedeutende Rolle in der ioctl-Implementation von Netzwerk_Treibern spielt.
Die ersten beiden Funktionen können dazu verwendet werden, dem Kernel mitzuteilen, ob eine bestimmte Schnittstelle gerade ein Carrier-Signal hat. netif_carrier_ok fragt den Carrier-Zustand ab, wie er in der Gerätestruktur steht.
Wird von netdevice.h eingebunden und definiert alle ETH_-Makros, mit denen Oktett-Längen (wie die Adreßlänge) und Netzwerk-Protokolle (wie IP) repräsentiert werden. Außerdem wird in dieser Datei die Struktur ethhdr definiert.
Enthält die Definition von struct sk_buff und verwandten Strukturen sowie mehrere Inline-Funktionen, die auf diesen Puffern operieren. Diese Header-Datei wird auch von netdevice.h eingebunden.
Diese Funktionen kümmern sich um das Allozieren und Freigeben von Socket-Buffern. Treiber sollten normalerweise die für diesen Zweck vorgesehenen dev_-Varianten verwenden.
Diese Funktionen fügen einem skb Daten hinzu; skb_put stellt die Daten an das Ende des skb, skb_push dagegen an den Anfang. Die normalen Versionen überprüfen, ob hinreichend Platz zur Verfügung steht, die Versionen mit den führenden Unterstrichen tun das nicht.
Diese Funktionen verwalten Platz in einem skb. skb_headroom und skb_tailroom geben zurück, wieviel Platz am Anfang beziehungsweise am Ende eines skb zur Verfügung steht. skb_reserve kann verwendet werden, um Platz am Anfang eines skb zu reservieren, der leer sein muß.
skb_pull “entfernt” Daten aus einem skb durch Anpassen der internen Zeiger.
Diese Funktion setzt die Zeiger der meisten Gerätemethoden auf die allgemein verwendbaren Implementationen für Ethernet-Treiber. Außerdem wird hier dev->flags gesetzt und der nächste verfügbare ethx-Name an dev->name zugewiesen, wenn das erste Zeichen im Namen ein Leer- oder Nullzeichen ist.
Wenn eine Ethernet-Schnittstelle ein Paket empfängt, dann kann diese Funktion aufgerufen werden, um skb->pkt_type zu setzen. Der Rückgabewert ist eine Protokoll-Nummer, die normalerweise in skb->protocol abgelegt wird.
Der erste der 16 ioctl-Befehle, die von jedem Treiber zur privaten Verwendung implementiert werden können. Alle Netzwerk-ioctl-Befehle sind in sockios.h definiert.