ethernetgmii: updated kernel config, simpleImage.xilinx and other misc files
[ana-net.git] / doc / talk / 1 / main.tex
blobe76177609bb0c696e803bfce5e42c726e2aad166
1 \documentclass[black,white]{beamer}
3 \usepackage{beamerthemesplit}
4 \usepackage{epstopdf}
5 \usepackage{graphicx}
6 \usepackage{subfigure}
7 \usepackage{hyperref}
8 \usepackage[utf8]{inputenc}
9 \usepackage[english]{babel}
10 \usepackage{listings}
11 \usepackage{array}
12 \usepackage{color}
13 \usepackage{colortbl}
15 \usefonttheme{professionalfonts}
16 \usecolortheme{dove}
17 \useoutertheme{infolines}
18 \useinnertheme{rectangles}
20 \setlength{\parindent}{0pt}
21 \newcommand*\sfb[1]{\textbf{#1}}
22 \definecolor{red2}{rgb}{.7,0,.39}
23 \usebackgroundtemplate{
24 \includegraphics[width=\paperwidth,height=\paperheight]{img/bg.png}
27 \begin{document}
29 \title[LANA for Embedded Devices]{\newline \newline \normalsize{Master Thesis} \newline
30 \huge{\textcolor{red2}{Lightweight Autonomic Network Architecture for Embedded Devices}}}
31 \author[Daniel Borkmann] {
32 \vspace*{-20pt}
33 \newline
34 Daniel Borkmann \texttt{<dborkma@tik.ee.ethz.ch>}\\
35 \footnotesize{intermediate presentation}
37 \institute[ETH Zurich] {
38 Communication Systems Group\\
39 ETH Zurich\\\bigskip
40 Faculty of Computer Science, Mathematics and Natural Sciences\\
41 Leipzig University of Applied Sciences
43 \date[\today]{}
45 \frame {
46 \titlepage
50 \frame {
51 \frametitle{\textcolor{red2}{ETH Zurich}}
52 \begin{center}
53 \hspace*{-40pt}
54 \includegraphics[width=0.9\textwidth]{img/eth.png} \footnotesize{[Src: flickr.com]}
55 \end{center}
58 \frame {
59 \frametitle{\textcolor{red2}{Communication Systems Group, \newline ETH Zurich}}
60 \bigskip
61 \begin{itemize}
62 \item Communication Systems Group conducts \textbf{research on modeling, design, and implementation of communication systems} [1]:\medskip
63 \begin{itemize}
64 \item Wireless mobile networks and social networks\medskip
65 \item Network measurements and security\medskip
66 \item Future Internet architecture and protocols\medskip
67 \end{itemize}
68 \item \textbf{Thesis advisors:} Ariane Keller, Dr. Wolfgang Mühlbauer\medskip
69 \item \textbf{Professor:} Prof. Dr. Bernhard Plattner
70 \end{itemize}
73 \frame {
74 \frametitle{\textcolor{red2}{Table of Contents}}
75 \tableofcontents
78 \section{Introduction}
79 \subsection{EPiCS Project}
80 \frame {
81 \frametitle{\textcolor{red2}{Introduction}}
82 \bigskip
83 \bigskip
84 \bigskip
85 \bigskip
86 \bigskip
87 \begin{itemize}
88 \item Thesis in \textbf{context of the EPiCS} research project [2]\medskip
89 \begin{itemize}
90 \item Concepts and foundations for self-aware and self-expressive systems\medskip
91 \item Hardware/software platform technologies for autonomic compute nodes\medskip
92 \item Self-aware network architecture\medskip
93 \end{itemize}
94 \item For communication purposes, the \textbf{Autonomic Network Architecture (ANA)} [3] will be used
95 \end{itemize}
97 \vspace*{-20pt}
98 \hspace*{+200pt}
99 \includegraphics[width=0.35\textwidth]{img/ana.pdf}
102 \subsection{Basics of ANA}
103 \frame {
104 \frametitle{\textcolor{red2}{Basic idea of ANA}}
105 \bigskip
106 \bigskip
107 \begin{itemize}
108 \item \textbf{No "one-size-fits-all" approach} as in classical network architectures\medskip
109 \item Network stack is composed by building block processing elements, called \textbf{Functional Blocks (FB)}\medskip
110 \item Idea of flexible UNIX Sockets for communication and packet forwarding between Functional Blocks\medskip
111 \item Results in a graph of Functional Blocks where the edges represent communication connections\medskip
112 \item Packets traverse specific paths of this graph
113 \end{itemize}
116 \frame {
117 \frametitle{\textcolor{red2}{Basic idea of ANA}}
118 \bigskip
119 \bigskip
120 \bigskip
121 \begin{center}
122 \includegraphics[width=0.20\textwidth]{img/stack_normal.pdf}
123 \hspace*{10pt}
124 \includegraphics[width=0.20\textwidth]{img/ana_stack.pdf}
125 \end{center}
128 \frame {
129 \frametitle{\textcolor{red2}{Advantages of this idea}}
130 \bigskip
131 \begin{itemize}
132 \item \textbf{Smaller size of the network stack}\medskip
133 \item \textbf{Network stack reconfiguration during runtime}\medskip
134 \item Functional Blocks need no a-priori knowledge about their "neighbors"\medskip
135 \item Easier to adapt new technologies and protocols\medskip
136 \item Application developers do not need to care about underlying addressing schemes, i.e. IPv4 versus IPv6\medskip
137 \item \textbf{Not only suited for Internet!}
138 \end{itemize}
141 \subsection{Motivation}
142 \frame {
143 \frametitle{\textcolor{red2}{Motivation}}
144 \bigskip
145 \bigskip
146 \begin{itemize}
147 \item \textbf{Autonomic Network Architecture important for \newline Embedded Systems [4]}\medskip
148 \item Limited resources require network stack adaptions to \newline different networking situations\medskip
149 \item Implementation of ANA rather resource-intensive, lightweight \newline redesign is needed\medskip
150 \item \textit{Short example:}\medskip
151 \begin{itemize}
152 \item Currently, packets are being copied between Functional Blocks\medskip
153 \item Can be avoided to save CPU processing resources
154 \end{itemize}
155 \end{itemize}
158 \subsection{Aims of this thesis}
159 \frame {
160 \frametitle{\textcolor{red2}{Aims of this thesis}}
161 \bigskip
162 \bigskip
163 \bigskip
164 \begin{itemize}
165 \item \textbf{Lightweight redesign and implementation of ANA (LANA)}\medskip
166 \item \textit{Requirements:}\medskip
167 \begin{itemize}
168 \item Needs to outperform the original architecture regarding performance\medskip
169 \item Needs to run on embedded Linux devices\medskip
170 \item Functional Block adding/removal/swapping during runtime
171 \end{itemize}
172 \end{itemize}
174 \hspace*{+200pt}
175 \includegraphics[width=0.35\textwidth]{img/ml605.png}
178 \section{Architectural Changes}
179 \subsection{Fundamental changes in LANA}
180 \frame {
181 \frametitle{\textcolor{red2}{Fundamental changes in LANA \newline Core Machinery}}
182 \bigskip
183 \bigskip
184 \begin{tabular}{p{0.22\textwidth} p{0.35\textwidth} p{0.35\textwidth}}
185 \arrayrulecolor{gray}
186 \textbf{Criterion} & \textbf{Current implementation} & \textbf{New implementation}\\[1pt]
187 \hline\\[-2.1ex]
188 \textit{Message passing between FBs} & Memory is copied & Memory is referenced\\[1pt]
189 \hline\\[-2.1ex]
190 \textit{API} & 3 Layers & 1 Layer\\[1pt]
191 \hline\\[-2.1ex]
192 \textit{Threads\footnotemark[1]} & 1 FB $\hat{=}$ 1 Thread & "1 CPU $\hat{=}$ 1 Thread"\\[1pt]
193 \hline\\[-2.1ex]
194 \textit{Centrality\footnotemark[1]} & Central MINMEX & Cache-friendly, decentralized\\[1pt]
195 \hline\\[-2.1ex]
196 \textit{Address space} & User- and Kernelspace & Kernelspace\\
197 \end{tabular}
199 \vspace*{-30pt}
200 \hspace*{+280pt}
201 \includegraphics[width=0.15\textwidth]{img/tux.png}
202 \footnotetext[1]{under the assumption that multiple CPUs are used}
205 \frame {
206 \frametitle{\textcolor{red2}{Fundamental changes in LANA \newline Architectural changes}}
207 \bigskip
208 \bigskip
209 \begin{itemize}
210 \item New VLink layer for \textbf{virtual networking devices} and \newline \textbf{virtual networks}\medskip
211 \item Network stack changes announced via \textbf{Functional Block Notifier}\medskip
212 \item Better usage of \textbf{optimized and matured Kernel-APIs}\medskip
213 \item Two central userspace tools (\textit{vlink, fbctl}) for administration\medskip
214 \item Integration into \textbf{Linux Socket API}
215 \end{itemize}
217 \vspace*{-30pt}
218 \hspace*{+280pt}
219 \includegraphics[width=0.15\textwidth]{img/tux.png}
222 \subsection{Architecture overview}
223 \frame {
224 \frametitle{\textcolor{red2}{Architecture overview}}
225 \begin{center}
226 \includegraphics[width=0.73\textwidth]{img/arch.png}
227 \end{center}
230 \section{Performance Evaluation and Testing Tools}
231 \frame {
232 \frametitle{\textcolor{red2}{Performance Evaluation and \newline Testing Tools}}
233 \bigskip
234 \bigskip
235 \begin{itemize}
236 \item \textbf{Measurement example scenario} (fig. 1)\medskip
237 \item Based on the \textbf{netsniff-ng networking toolkit} [5]\medskip
238 \item Extended with \textbf{trafgen}, a packet generator\medskip
239 \begin{itemize}
240 \item Used for performance evaluation, stress-testing, \newline debugging, and the development of LANA\medskip
241 \item Uses high-performance Zero-Copy Linux API\medskip
242 \item First evaluation shows maximum 422.000 pps \newline (fig. 2, 64 Byte, Gigabit-Ethernet, 2.6 Ghz)\medskip
243 \end{itemize}
244 \item \textbf{ifpps} used to gather kernel networking statistics\bigskip
245 \end{itemize}
247 \vspace*{-180pt}
248 \hspace*{+245pt}
249 \begin{minipage}[h]{0.3\textwidth}
250 \begin{flushright}
251 \includegraphics[width=0.9\textwidth]{img/scen.png}\\\medskip
252 \includegraphics[width=\textwidth]{img/tx.png}
253 \end{flushright}
254 \end{minipage}
257 \section{Open Questions}
258 \frame {
259 \frametitle{\textcolor{red2}{Open Questions}}
260 \bigskip
261 \begin{itemize}
262 \item What about Userspace Functional Blocks?\medskip
263 \item How to find the correct path for network stack traversal?
264 \end{itemize}
267 \section{Project Plan}
268 \frame {
269 \frametitle{\textcolor{red2}{Project Plan}}
270 \bigskip
271 \bigskip
272 \bigskip
273 \begin{itemize}
274 \item Introductory reading, setup of work environment: \textcolor{green}{\textbf{done}}
275 \item ANA compilation, test run, written own 'Brick': \textcolor{green}{\textbf{done}}
276 \item Architecture design: \textcolor{orange}{\textbf{in progress}}
277 \item Implementation of core components: \textcolor{orange}{\textbf{in progress}}
278 \item Implementation of 'Functional Blocks': \textcolor{red}{\textbf{to do}}
279 \item Testing, debugging: \textcolor{orange}{\textbf{in progress}}
280 \item Userspace tools, example applications and manpages: \textcolor{orange}{\textbf{in progress}}
281 \item Literature study: \textcolor{orange}{\textbf{in progress}}
282 \item Performance evaluation: \textcolor{orange}{\textbf{in progress}}
283 \item Final report: \textcolor{red}{\textbf{to do}}
284 \end{itemize}
287 \section{Questions}
288 \frame{
289 \frametitle{\textcolor{red2}{Questions}}
290 \bigskip
291 \bigskip
292 \begin{center}
293 \Large{Thanks for your attention! Questions?}
294 \end{center}
297 \section{Resources}
298 \frame{
299 \frametitle{\textcolor{red2}{Resources}}
300 \bigskip
301 \bigskip
302 \medskip
303 \vspace*{-10pt}
304 \begin{itemize}
305 \item [1]\textbf{CSG, ETH Zurich}, \textcolor{blue}{\url{http://www.csg.ethz.ch/}} (3/2011)\medskip
306 \item [2]\textbf{EPiCS project}, \textcolor{blue}{\url{http://www.epics-project.eu/}} (3/2011)\medskip
307 \item [3]\textbf{ANA project}, \textcolor{blue}{\url{http://www.ana-project.org/}} (3/2011)\medskip
308 \item [4]\textbf{Reconfigurable nodes for future networks}, A. Keller, B. Plattner,
309 E. Lübbers, M. Platzner, and C. Plessl in Proc. IEEE Globecom Workshop
310 on Network of the Future (FutureNet), pages 372376. IEEE, Dec. 2010\medskip
311 \item [5]\textbf{netsniff-ng}, \textcolor{blue}{\url{http://www.netsniff-ng.org/}} (3/2011)
312 \end{itemize}
315 \end{document}