📄 slides.tex
字号:
\documentclass[landscape]{icsislides}\usepackage[dvips]{graphicx}%\usepackage[dvips]{color}%\usepackage{subfigure}\usepackage[T1]{fontenc}\usepackage{psfrag}\usepackage{xspace}\usepackage{alltt}\usepackage{colordvi}\newcommand{\etc}{\emph{etc.}\xspace}\newcommand{\ie}{\emph{i.e.,}\xspace}\newcommand{\eg}{\emph{e.g.,}\xspace}%\def\makeslidenum#1{\Gray{\fontseries{u}\selectfont#1}}%%% XXX: comment-out to include logo\newlogo{}\begin{document}%%======================================================================\begin{titlepage}\begin{center}{\LARGE \Red{XORP: An eXtensible Open Router Platform}} \\\vskip20pt\vskip100pt\begin{tabular}{c}Atanu Ghosh \qquad Mark Handley \qquad Orion Hodson \\Eddie Kohler \qquad \textbf{Pavlin Radoslavov} \\\Gray{International Computer Science Institute}\end{tabular}\vskip-5pt\begin{tabular}{c@{\qquad\qquad}c}Adam Greenhalgh & Luigi Rizzo \\\Gray{University College London} & \Gray{University of Pisa}\end{tabular}\end{center}\end{titlepage}% %%======================================================================% \begin{titlepage}% \begin{center}% {\LARGE \bf XORP}% \end{center}% \vspace*{1.0in}% \begin{center}% Pavlin Radoslavov\\% \vspace*{0.5in}% \small {\it pavlin@icsi.berkeley.edu}\\% \small International Computer Science Institute\\% \small Berkeley, CA, USA% \end{center}% \end{titlepage}%%======================================================================\begin{slide}\slidetitle{Outline}\begin{enumerate} \item Motivations \item XORP introduction \item XORP IPC mechanism \item What does it take to implement a routing protocol? \item Dependency tracking mechanism \item Conclusions\end{enumerate}\end{slide}%%======================================================================\begin{slide}\slidetitle{Networking research: divorced from reality?}\begin{itemize} \item Gap between research and practice \item Most of the important Internet protocols originated in research \item It used to be that researchers designed systems, \emph{build implementations}, \emph{tried them out}, and standardized the ones that \emph{survived and proved useful}. \item What happened?\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Networking research: why the divorce?}\begin{itemize} \item The commercial Internet \begin{itemize} \item Network stability is critical, so experimentation is difficult \item Major infrastructure vendors not motivated to support experimentation \end{itemize} \item Network simulators \begin{itemize} \item Nice tool, but usually too abstract from reality \end{itemize}\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Simulation is not a substitute for experimentation}\begin{itemize} \item Many questions require real-world traffic and/or routing information \item Many people: \begin{itemize} \item Give up, implement their protocol in \emph{ns} \item Set \emph{ns} parameters based on guesses, existing scripts \item Write a paper that may or may not bear any relationship to reality \end{itemize} \item We need to be able to run experiments when required!\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Options}\begin{itemize} \item Option 1: \begin{itemize} \item Persuade Cisco to implement your protocol; \item Persuade ISPs that your protocol won't destabilize their networks; \item Conduct experiment. \end{itemize}\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Options (cont.)}\begin{itemize} \item Option 2: \begin{itemize} \item Implement routing protocol part in MRTd, GateD, or Zebra; \item Implement forwarding part in FreeBSD, Linux, Click, etc; \item Persuade network operators to replace their Ciscos with your PC; \item Conduct experiment. \end{itemize}\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Likelihood of success?}\begin{center} \includegraphics[width=6.0in]{figs/flyingpig}\end{center}\end{slide}%%======================================================================\begin{slide}\slidetitle{Possible solutions}\begin{itemize} \item Solution 1: A router vendor opens their development environment and APIs: \begin{itemize} \item Third-party router applications \item Basic router functionality cannot be changed \end{itemize} \item Solution 2: Someone (\emph{hint, hint}) builds a complete open-source router software stack explicitly designed for {\bf extensibility} and {\bf robustness}: \begin{itemize} \item Adventurous network operators deploy this router on their networks % it develops a reputation for stability and configurability. \item Result: a fully extensible platform suitable for {\bf research} and {\bf deployment} \end{itemize}\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{XORP: eXtensible Open Router Platform}Complete software stack for an IP router:\begin{itemize} \item Routing protocols: unicast and multicast \begin{itemize} \item Protocols can be run in simulation-like environment \end{itemize} \item Management Interfaces \item Forwarding path\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{XORP Architecture}\begin{center} \includegraphics[width=6.0in]{figs/xorp_arch}\end{center}\end{slide}%%======================================================================\begin{slide}\slidetitle{Challenges}\begin{itemize} \item {\bf Features}: real-world routers support a long feature list \item {\bf Extensibility}: \begin{itemize} \item Every aspect of the router should be extensible \item Multiple extensions should be able to coexist \end{itemize} \item {\bf Performance}: raw forwarding performance; routing table size (not core routers; even edge routing is hard enough) \item {\bf Robustness}: must not crash or misroute packets\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{XORP Features}\begin{itemize} \item IPv4 and \Gray{IPv6} \item Unicast routing protocols: BGP4+, OSPF, RIPv2/RIPng, \Gray{IS-IS} \item Multicast: PIM-SM/\Gray{SSM}, IGMPv1,2,\Gray{3}/MLDv1,\Gray{2} \item \Gray{DHCP, PPP} \item Management: CLI, \Gray{SNMP}, \Gray{WWW} \item Forwarding path: UNIX (native), Click\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Extensibility: Intra-router APIs}Separate abstract request (API) from concrete request (which process?which arguments? which version?)In particular, the caller:\begin{itemize} \item Should not care about IPC mechanism \item Should not know in advance which process is relevant \dots unless required\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Extensibility: XRLs (XORP Resource Locators)}XORP IPC mechanism (like URLs for IPC):\begin{center}\texttt{finder://fea/fea/1.0/add\char`\_address4?vif:txt=fxp0\&addr:ipv4=10.0.0.1}\vskip20pt\end{center}\begin{itemize} \item Library marshals arguments, implements transport, handles responses \item Redirection into a single XRL or an XRL sequence \item Programmer explicitly handles failure\end{itemize}\end{slide}\def\LN#1{\setbox0\hbox{\lower\baselineskip\hbox{\rmfamily\BrickRed{#1}}}\wd0=0pt\ht0=0pt\dp0=0pt\box0\relax}\def\RN#1{\setbox0\hbox{\lower\baselineskip\hbox to0pt{\hskip0pt plus-1000pt \rmfamily\BrickRed{#1}}}\ht0=0pt\dp0=0pt\box0\relax}\let\t\texttt%%======================================================================\begin{slide}\slidetitle{Extensibility: XRLs (XORP Resource Locators)}XORP IPC mechanism (like URLs for IPC):\begin{center}\texttt{\LN{IPC mechanism: \t{finder}, \t{xudp}, \t{snmp}, \dots}\Red{finder}://fea/fea/1.0/add\char`\_address4?vif:txt=fxp0\&addr:ipv4=10.0.0.1}\vskip20pt\end{center}\begin{itemize} \item Library marshals arguments, implements transport, handles responses \item Redirection into a single XRL or an XRL sequence \item Programmer explicitly handles failure\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Extensibility: XRLs (XORP Resource Locators)}XORP IPC mechanism (like URLs for IPC):\begin{center}\texttt{finder://\LN{Module/process name: \t{fea}, \t{rib}, \t{bgp}, \dots}\Red{fea}/fea/1.0/add\char`\_address4?vif:txt=fxp0\&addr:ipv4=10.0.0.1}\vskip20pt\end{center}\begin{itemize} \item Library marshals arguments, implements transport, handles responses \item Redirection into a single XRL or an XRL sequence \item Programmer explicitly handles failure\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Extensibility: XRLs (XORP Resource Locators)}XORP IPC mechanism (like URLs for IPC):\begin{center}\texttt{finder://fea/\LN{Interface name: \t{fea}, \t{routing-process}, \dots}\Red{fea}/1.0/add\char`\_address4?vif:txt=fxp0\&addr:ipv4=10.0.0.1}\vskip20pt\end{center}\begin{itemize} \item Library marshals arguments, implements transport, handles responses \item Redirection into a single XRL or an XRL sequence \item Programmer explicitly handles failure\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Extensibility: XRLs (XORP Resource Locators)}XORP IPC mechanism (like URLs for IPC):\begin{center}\texttt{finder://fea/fea/\LN{Version number}\Red{1.0}/add\char`\_address4?vif:txt=fxp0\&addr:ipv4=10.0.0.1}\vskip20pt\end{center}\begin{itemize} \item Library marshals arguments, implements transport, handles responses \item Redirection into a single XRL or an XRL sequence \item Programmer explicitly handles failure\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Extensibility: XRLs (XORP Resource Locators)}XORP IPC mechanism (like URLs for IPC):\begin{center}\texttt{finder://fea/fea/1.0/\LN{Method name: \t{delete\char`\_address4},\t{get\char`\_mtu}, \dots}\Red{add\char`\_address4}?vif:txt=fxp0\&addr:ipv4=10.0.0.1}\vskip20pt\end{center}\begin{itemize} \item Library marshals arguments, implements transport, handles responses \item Redirection into a single XRL or an XRL sequence \item Programmer explicitly handles failure\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Extensibility: XRLs (XORP Resource Locators)}XORP IPC mechanism (like URLs for IPC):\begin{center}\texttt{finder://fea/fea/1.0/add\char`\_address4?\LN{Arguments}\Red{vif:txt=fxp0\&addr:ipv4=10.0.0.1}}\vskip20pt\end{center}\begin{itemize} \item Library marshals arguments, implements transport, handles responses \item Redirection into a single XRL or an XRL sequence \item Programmer explicitly handles failure\end{itemize}\end{slide}%%======================================================================\begin{slide}\slidetitle{Defining XRL interface}XRL interface is defined in XRL-specific files:\begin{verbatim}interface pim/0.1 { /** * Enable a PIM virtual interface. * * @param vif_name the name of the vif to enable. * @param fail true if failure has occurred. * @param reason contains failure reason if it occurred. */ enable_vif ? vif_name:txt -> fail:bool & reason:txt ...}\end{verbatim}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -