
\newpage
\begin{appendix}
\section{Appendix}

% Fixed Bugs
\addcontentsline{toc}{subsection}{Corrected Bugs and Optimizations}
\subsection*{Corrected Bugs and Optimizations}
\label{fixed-bugs}

Below is a brief summary of the bugs that could be identified and
fixed during the development of this thesis. The items have been
extracted from the commit logs of the version control system used, and
only bugs which were not introduced by the author himself are
included. Some minor optimizations, which were not mentioned in the
main part of the thesis are included as well.

\begin{itemize}
\item Fixed the use of an unitialized address length parameter in the
  Open MPI BTL component.
\item Fixed the dereferencing of a \NULL\/ pointer in
  \fname{mca\_btl\_tcp\_proc\_remove}.
\item Optimization: Two-split the acknowledgement processing: First,
  check if the ACK is valid and update \fname{una\_seq}, then send out
  pending packets, and finally remove the ack'd packets from the write
  queue. This gets new data on wire earlier.
\item Some code expected the sequence number to increase with every
  packet, but only data, SYN and FIN frames eat sequence numbers.
\item Several cleanups on socket close / destroy to avoid state
  diagramm violations in cases where the application and the remote
  host both want to close the connection at the same time.
\item Taking care to always stop the RTX timer on socket close.
\item Taking care to always clone the socket buffer prior to xmission.
\item Optimization: Doing backlog processing without leaving the
  \fname{recvmsg} loop by releasing and locking the socket.
\item There was another severe problem with simultaneous close, which
  is resolved now.
\item Purge receive queue on \fname{FIN\_WAIT\_2} timeout. The memory
  was leaked previously.
\item Added \fname{set\_state(ESP\_CLOSE)} in
  \fname{sock\_esp\_release} if unread data was purged to avoid state
  diagramm violation.
\item Under certain conditions, the socket was not completely removed
  from the established hash table.
\item Fixed the endless FIN retransmission bug. Finally, we're doing
  the \fname{CLOSE\_WAIT} to \fname{LAST\_ACK} transition.
\item Taking care not to send out duplicate ACKs if they are not
  needed.
\item Fixed hanging userspace application in sendmsg handler for
  closing / closed sockets.
\item Fixed a \fname{dev} $\leftrightarrow$ \fname{input\_dev}
  mistaken bug in \fname{esp\_send\_rst(...)}.
\item The \fname{ack\_seq} was not always incremented when it needed
  to.
\item Added a missing \fname{dev\_put(...)} for the case when
  \fname{esp\_connect(...)} fails.
\item Added missing write lock for the bound hash table in
  \fname{esp\_sk\_spawn\_child(...)}.
\item Fixed some kernel-version dependent debugging code.
\item Fix for change of struct \fname{packet\_type} as of kernel version
  2.6.14.
\item A crash in the function \fname{esp\_get\_port(...)} was fixed.
\end{itemize}

% Clusters
\newpage
\addcontentsline{toc}{subsection}{Configuration of the Cluster test Systems}
\subsection*{Configuration of the Cluster test Systems}
\bgroup
\tabcolsep=0.3cm % bissel Abstand zwischen den Spalten

\subsubsection*{Cluster 1}

\begin{tabular}{rrl}
  -- & CPU               & 2 $\times$ AMD Athlon MP 1600+\\
  -- & main memory       & 512 MB\\
  -- & network interface & SysKonnect SK-9821 V2.0 GigE Adapter (66MHz
                           PCI)\\
  -- & support for TSO   & no\\
  -- & operating system  & CentOS 4.2 (Linux 2.6.9-22.ELsmp \#6 SMP)
\end{tabular}

\subsubsection*{Cluster 2}

\begin{tabular}{rrl}
  -- & CPU               & 2 $\times$ Intel Xeon (Woodcrest) Dual Core
                           CPU, 2.0 GHz\\
  -- & main memory       & 2.0 GB\\
  -- & network interface & Intel 631xESB/632xESB DPT (PCI-X)\\
  -- & support for TSO   & yes\\
  -- & operating system  & CentOS 4.2 (Linux 2.6.9-22.ELsmp \#6 SMP)
\end{tabular}

\egroup

% References

\newpage
 \addcontentsline{toc}{subsection}{References}
\bibliography{cites}

% List of figures
\newpage
%\markboth{List of Figures}{List of Figures}
\addcontentsline{toc}{subsection}{List of Figures}
\listoffigures

\newpage
\centering
\begin{minipage}{0.8 \textwidth}
\vspace{3cm}
\addcontentsline{toc}{subsection}{Statutory Declaration}
\subsection*{Statutory Declaration}

I hereby declare that this thesis is my own work and that, to the
best of my knowledge and belief, no other sources or auxiliary
tools except those stated, referenced and acknowledged have
been used.

\setlength{\parindent}{0cm}
\vspace{1cm}

Chemnitz, \today

\vspace{2cm}

Matthias Treydte
\end{minipage}

\end{appendix}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "main"
%%% End: 

