Paper for Download - FKFS
Paper for Download - FKFS
Paper for Download - FKFS
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3.1.1 Kapselung des MHP-Quellcodes<br />
Um die mehrfache Instanziierung des MHP-Stacks innerhalb der Netzwerksimulation zu<br />
gewährleisten wurde der vorliegende C-Quellcode in der so genannten MHP-Klasse gekapselt.<br />
Diese bildet das zentrale Element für die virtuellen Geräte. Um die MHP-Klasse<br />
mit Statusdaten und verschiedenen Funktionalitäten wie z.B. Zeitgebern versorgen zu<br />
können wurde die Klasse mit verschiedenen Softwareschnittstellen ausgestattet. Diese<br />
werden bei der Gerätemodellierung näher beschrieben.<br />
Die zentralen An<strong>for</strong>derungen an die Kapselung waren zum einen die Einbettung in den<br />
existierenden Entwicklungsfluss und eine minimale Modifikation der Software um das<br />
Ziel der Mehrfachinstanziierung zu erfüllen. Damit kann sichergestellt werden, dass neue<br />
Versionen schnell für die Durchführung von Regressionstest in das Modell eingebunden<br />
werden können. Abgesehen von Array Definitionen konnten alle Änderungen innerhalb<br />
des Codes in zwei zusammenhängenden Blöcken mittels Makros vorgenommen werden.<br />
Ein Block steht zu Beginn des instrumentierten Codes und beinhaltet zusätzlich die Klassendeklaration<br />
sowie zusätzliche Funktionen und Variablen. Der zweite Block steht am<br />
Ende des Codes und beendet die Klassendeklaration und beseitigt die Makros, welche<br />
zur Instrumentierung verwendet wurden. Zur Einbettung in den Entwicklungsfluss wurden<br />
alle Erweiterungen bzw. Änderungen markiert. Damit ist es möglich den Code für die<br />
Einbettung innerhalb der virtuellen Geräte automatisch zu erzeugen.<br />
3.1.2 Gerätemodellierung<br />
Für die Netzwerksimulation ist es nicht ausreichend, den gegebenen C-Code zu kapseln.<br />
Die MHP-Klasse muss mit Statusdaten und Zeitfunktionalitäten versorgt werden.<br />
Zudem müssen Anwendungen integriert werden können, damit spezifische Verifikationsund<br />
Evaluierungszenarien ausgeführt werden können. Für die Bereitstellung der Statusfunktionalitäten<br />
ist die sogenannte Status-Klasse verantwortlich. Die Timer-Klasse stellt<br />
Zeitfunktionalitäten für das Gerät zur Verfügung. Sie verwaltet Zeitgeber, die durch andere<br />
Klassen parametrisiert, gestartet und gestoppt werden können. Sobald einer der Zeitgeber<br />
überläuft wird eine zuvor definierte Funktion aufgerufen, ähnlich einem Interrupt-<br />
Zeitgeber für Mikroprozessoren.<br />
Mit den im Gerät enthaltenen Klassen Transmit und NetInterface wird die Verbindung<br />
zwischen dem ” External Host Controller (EHC)“ und dem ” Intelligent Network Interface<br />
Controller (INIC)“ simuliert. Weiterhin enthält die NetInterface-Klasse eine abstrakte<br />
Puffermodellierung entsprechend dem INIC-Chip. Diese Erweiterung verbessert die<br />
Abstraktion bezüglich des Zeitverhaltens gegenüber realen Systemen. Für die Kommunikation<br />
mit weiteren Geräten schließt die Geräteklasse einen TLM-2.0 Kanal mit ein.<br />
TLM ist ein High-Level-Ansatz für die abstrakte Kommunikationsmodellbildung zwischen<br />
Modulen.<br />
Um Regressionstests und Integrationstests mit unterschiedlichen MHP-Versionen oder<br />
Applikationen durchführen zu können müssen bestimmte Module des MHP-Gerätes austauschbar<br />
bleiben. Dazu werden die Applikations-, Callback, MHP- und die NetInterface-<br />
Klasse von einer Standardklasse für die jeweiligen Module abgeleitet. Mithilfe der Platt<strong>for</strong>mkonfiguration<br />
können dann verschiedene Versionen aus einer bestehenden Bibliothek<br />
dem Gerät zugeordnet werden (siehe Abbildung 1).