%*
%* Copyright (c) 2007 by Lukas Ruf (lukas.ruf@lpr.ch)
%*
%* Create: 2007-01-30:1703G
%* Modify: 2007-01-30:1704
%* Commit: $Id: originalproblem.tex 272 2007-03-06 21:45:29Z ruf $
%*

\chapter{Original Problem}
\label{originalproblem}

%-----------------------------------------------------------------------------
\section{Einf\"uhrung}

Netzwerkprozessoren~\cite{ixp2xxxhrm,np4gs3} (NPs) werden in einer Chip-Multicore Prozessor
Architektur mit einem sog. Control Prozessor (CP) und mehreren
Paket Prozessoren (PPs) gefertigt.  In Netzwerkinterfacekarten
(NICs) eingebettet, sind sie durch die Parallelschaltung mehrerer
PPs in der Lagen, Netzwerkverkehr mit hohen Durchsatzraten zu
bearbeiten.

Topsy v3~\cite{topsyv3} -- a Teachable Operating
System~\cite{topsy} -- wurde an der ETH
Z\"urich entwickelt und wird an verschiedenen Universit\"aten und
Fachhochschulen im Unterricht eingesetzt.  Einer
Schichtenarchitektur folgend wurde Topsy v3 als portables
Betriebssystem konzipiert, das f\"ur unterschiedliche Plattformen
zur Verf\"ugung steht.  Unter anderen wurde Topsy v3 in zwei
vorangehenden Arbeiten~\cite{sddr,topsyv3} auf die Evaluation Plattform des Intel
IXP1200 NPs~\cite{ixp1k2prodbrief} portiert.

%-LR \begin{compactenum} \item \end{compactenum}
%-LR \begin{inparaenum} \item \end{inparaenum}
%-LR \begin{description} \item[Blalba] \end{description}


%-----------------------------------------------------------------------------
\section{Aufgaben:}

In dieser Doppelsemesterarbeit von Matthias Bader und Robert Natau
soll Topsy v3 auf die Nachfolgeversion des IXP1200, den Intel
IXP2400, portiert werden.  Diese Portierung umfasst die
Anpassungen des Hardware Abstraktionsschicht (HAL, Hardware
Abstraction Layer) und, wo ben\"otigt, die Implementierung und
Anpassung geeigneter Mechanismen in der portablen Kernelschicht von
Topsy v3.

%-----------------------------------------------------------------------------
\newpage
\section{Vorgehen}

Die Portierung von Topsy v3 erfolgt in zwei Phasen.  In der ersten
Phasen wird Topsy v3 auf den bin\"ar kompatiblen Emulator der
IXP2400 Plattform portiert, in der zweiten wird die Portierung so
erweitert, dass Topsy v3 auf der realen Radisys
ENP2611~\cite{enp2611prodbrief}
Entwicklungsplattform des Intel IXP2400 ausgef\"uhrt werden kann.

Zur Erreichung dieses Ziels wird die Arbeit nach folgendem
Vorgehen durchgef\"uhrt:

\begin{itemize}
\setlength{\parsep}{0.5ex plus0.2ex minus0.1ex}
\setlength{\itemsep}{0ex plus0.2ex}
\item Richten Sie sich eine Entwicklungsumgebung
      (GNU Tools) unter Linux ein.
\item Machen Sie sich vertraut mit den Unterlagen
      (Dokumentation und Source Code) zum bestehenden Topsy v3
      f\"ur den Intel IXP1200.
\item Erstellen Sie einen Zeitplan, in welchem Sie die von
      Ihnen zu erreichenden Meilensteine Ihrer Arbeit
      identifizieren.
\item Arbeiten Sie sich in die Dokumentation des Intel
      IXP2400s~\cite{ixp2k4prm,ixp2k4prodbrief} und
      Radisys ENP2611s ein.
\item Analysieren Sie verschiedene Protokolle und definieren Sie
      Funktionsmodule, die in verschiedenen Protokollen ben\"otigt werden.
\item Identifizieren Sie die anzupassenden Funktionen und
      Parameter in Topsy v3, die f\"ur die Portierung angepasst
      werden m\"ussen.
\item Implementieren Sie diese f\"ur den Intel IXP2400.
\item Beachten Sie insbesondere die Problematik des Startvorgangs
      des Radisys ENP2611s.
\item[optional] Entwickeln Sie die ben\"otigten Mechanismen, um
      die Paket Prozessoren des IXP2400s einsetzen zu k\"onnen.
\item Zeigen Sie die erfolgreiche Implementierung auf dem IXP2400
      durch eine Ausf\"uhrung der Demo-Applikationen unter Topsy
      v3.
\end{itemize}

Auf eine klare und ausf\"uhrliche Dokumentation
wird besonders Wert gelegt. Es wird empfohlen, diese
laufend nachzuf\"uhren und insbesondere die entwickelten
Konzepte und untersuchten Varianten vor dem definitiven
Variantenentscheid ausf\"uhrlich schriftlich festzuhalten.


%-----------------------------------------------------------------------------
\section{Organisatorische Hinweise}

\begin{itemize}
\setlength{\parsep}{0.5ex plus0.2ex minus0.1ex}
\setlength{\itemsep}{0ex plus0.2ex}
%
\item Am Ende der zweiten Woche ist ein Zeitplan f\"ur den
  Ablauf der Arbeit vorzulegen und mit dem Betreuer
  abzustimmen.
%
\item Mit dem Betreuer sind regelm\"assige, zumindest
  w\"ochentliche Sitzungen zu vereinbaren.  In diesen
  Sitzungen sollen die Studenten m\"undlich \"uber den
  Fortgang der Arbeit und die Einhaltung des Zeitplanes
  berichten und anstehende Probleme diskutieren.  Die Sitzungen
  k\"onnen mittels geeigneten Telekommunikationsmitteln abgehalten
  werden, falls m\"oglich.
%
\item Am Ende des ersten Monates muss eine Vorabversion
  des Inhaltsverzeichnis zur Dokumentation dem Betreuer
  abgegeben und mit diesem besprochen werden.
%
\item Nach der H\"alfte der Arbeitsdauer soll ein kurzer
  m\"undlicher Zwischenbericht abgegeben werden, der
  \"uber den Stand der Arbeit Auskunft gibt. Dieser
  Zwischenbericht besteht aus einer \textbf{viertelst\"undigen},
  m\"undlichen Darlegung der bisherigen Schritte und des
  weiteren Vorgehens gegen\"uber Professor Plattner.
%
\item Am Schluss der Arbeit muss eine Pr\"asentation von {\bf 20
  Minuten} im Fachgruppen- oder Institutsrahmen gegeben
  werden. Anschliessend an die Schlusspr\"asentation soll
  die Arbeit Interessierten praktisch vorgef\"uhrt werden.
%
\item Ein einheitlicher Coding Style muss eingehalten werden.
%
\item Bereits vorhandene Software kann \"ubernommen und
  gegebenenfalls angepasst werden; Quellen m\"ussen korrekt
  zitiert werden.
%
\item Die Dokumentation muss mit dem Satzsystem \LaTeX\,
  Graphiken m\"ussen mit Open Source Werkzeugen erstellt werden,
  w\"ahrend f\"ur
  die Pr\"asentation auch Staroffice
  oder Microsoft PowerPoint verwendet werden kann.
%
\item Quellcode der Arbeit muss regelm\"assig (mind. t\"aglich) auf dem
  Topsy subversion Server gesichert werden
  (\url{https://svn.topsy.net}).
%
\item Es ist ein mit Bindespiralen (am TIK vorhanden) gebundener
  Schlussbericht \"uber die geleisteten Arbeit abzuliefern (4
  Exemplare).  Dieser Bericht besteht aus einer Zusammenfassung,
  einer Einleitung, einer Analyse von verwandten und verwendeten
  Arbeiten, sowie einer vollst\"andigen Beschreibung der
  Konfiguration von den eingesetzten Programmen. Der Bericht ist in
  Deutsch oder Englisch zu halten.  Die Zusammenfassung muss in
  Deutsch und Englisch verfasst werden.
%
\item Die Arbeit muss auf CDROM archiviert abgegeben
  werden. Stellen Sie sicher, dass alle Programme sowie die
  Dokumentation und die Pr\"asentationen
  sowohl in der lauff\"ahigen, resp. druckbaren Version als auch
  im Quellformat vorhanden, lesbar und verwendbar sind.
  \\
  Mit Hilfe der abgegebenen Dokumentation muss der entwickelte
  Code zu einem ausf\"uhrbaren Programm erneut \"ubersetzt und
  eingesetzt werden k\"onnen.
%
\item Diese Arbeit steht unter der GNU General Public
  License~\cite{gnugpl} (GNU GPL) v2.
%
\item F\"ur die Arbeit werden Informationen eingesetzt, welche nur durch das
    Unterzeichnen eines NDA (Non-Disclosure Agreement) zwischen
    Intel Corp. und der ETH Z\"urich erhalten werden konnten.
    Alle Informationen, die unter das NDA fallen, d\"urfen nur an
    Dritte weitergegeben werden, wenn eine schriftliche Einwilligung von
    Intel Corp. vorliegt.
%
\item Diese Arbeit wird als Diplomarbeit an der ETH Z\"urich
      durchgef\"uhrt.  Es gelten die Bestimmungen hinsichtlich Kopier-
      und Verwertungsrechte der ETH Z\"urich.
\end{itemize}


