⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slides.tex

📁 xorp源码hg
💻 TEX
📖 第 1 页 / 共 2 页
字号:
\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 + -