next up previous contents
Next: Vorhandener Code Up: Schnittstelle zur Basissoftware Previous: Schnittstelle zur Basissoftware

Erweiterung des Kernels

  Grundlage der Erweiterung ist die Kernelversion 2.1.59. Die ungerade Zahl zwischen den beiden Punkten deutet dabei auf einen als nicht stabil geltenden Kernel hin. Da aber der Bridging-Code in den stabilen Kernelversionen (2.0.x) Bugs aufweist (bspw. ließ sich der Switch selbst nicht mehr von außen erreichen), kommt nur ein Entwicklerkernel in Frage. Der Kernel mit der höchsten Versionsnummer war zum Zeitpunkt des Arbeitsbeginns 2.1.80. Leider stürzt bei diesem Kernel das ganze System ab, sobald der Bridging-Code gestartet wird. So war es nötig, schrittweise downzugraden, bis sich die Version 2.1.59 als geeigneter Ausgangskernel erwies. Tests mit dem zum Ende dieser Arbeit aktuellen Entwicklerkernel 2.1.113 haben ergeben, daß auch hier der als experimental gekennzeichnete Bridging-Code nur sehr instabil läuft und nach kurzer Zeit zu heftigen Betriebssystemabstürzen führt. Daher muß auf eine Portierung der Kernelerweiterung um VLAN-Funktionalität auf einen Kernel mit höherer Versionsnummer vorerst verzichtet werden.

Den Bridging-Code findet man im Verzeichnisbaum (siehe Abbildung 5.2) unter /usr/src/linux/net/bridge. Neben dem Makefile befinden sich dort die Quelltextdateien br.c für den Bridging-Code und br_tree.c, der die Forwardingtabellen implementiert. Die Datei sysctl_net_bridge.c soll später mal die Schnittstelle zum /proc-Dateisystem von Linux bilden. Gegenwärtig existiert diese Schnittstelle jedoch noch nicht.

Die Erweiterung des Codes um VLAN-Funktionalität teilt sich in zwei Schritte auf. Zum einen müssen VLAN's auf Port-Ebene (Schicht 1) implementiert werden zum anderen VLAN's auf MAC-Adressen-Ebene (Schicht 2). Ausgangspunkt für die Erweiterung ist die Datei br.h. Dabei gilt es zunächst festzustellen, welche Funktionen des Codes die Bridge ausführt, wenn sie ein Datenpaket erhält.


  
Abbildung: Verzeichnisbaum für den Bridgingcode



 
next up previous contents
Next: Vorhandener Code Up: Schnittstelle zur Basissoftware Previous: Schnittstelle zur Basissoftware
Root on HPHEGER0
3/3/1999