detailed outline
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu Feb 26 21:48:56 2009 +0100 (11 months ago)
changeset 6e24f63454eea
parent 5 d6a17c05a731
child 7 85a194594388
detailed outline
wns3.tex
     1.1 --- a/wns3.tex	Thu Feb 26 19:59:30 2009 +0100
     1.2 +++ b/wns3.tex	Thu Feb 26 21:48:56 2009 +0100
     1.3 @@ -2,8 +2,6 @@
     1.4  \usepackage{beamertexpower}
     1.5  \usetheme{Madrid}
     1.6  \title{}
     1.7 -\author{Mathieu Lacage}
     1.8 -\institute{INRIA}
     1.9  \date{march 2nd 2009}
    1.10  \begin{document}
    1.11  
    1.12 @@ -138,12 +136,19 @@
    1.13  
    1.14  \end{frame}
    1.15  
    1.16 -\begin{frame}{Object aggregation}
    1.17 +\begin{frame}[fragile]{Why don't we have a MobileNode ?}
    1.18 +
    1.19 +\begin{verbatim}
    1.20 +Ptr<Node> node = CreateObject<Node> ();
    1.21 +Ptr<MobilityModel> mobility = CreateObject<...> ();
    1.22 +node->AggregateObject (mobility);
    1.23 +\end{verbatim}
    1.24 +
    1.25  \begin{itemize}
    1.26  \item Some nodes need an IPv4 stack, a position, an energy model. 
    1.27 -Some nodes need just two out of three. Others need other unknown features.
    1.28 -\item The obvious solution: add everything to the Node base class
    1.29 -\item Many problems:
    1.30 +\item Some nodes need just two out of three. 
    1.31 +\item Others need other unknown features.
    1.32 +\item The obvious solution: add everything to the Node base class, but:
    1.33  \begin{itemize}
    1.34  \item The class will grow uncontrolably over time
    1.35  \item Everyone will need to patch the class
    1.36 @@ -160,40 +165,97 @@
    1.37  
    1.38  \begin{frame}[fragile]{Object aggregation}
    1.39  
    1.40 -Connect together two objects:
    1.41 -\begin{verbatim}
    1.42 -Ptr<Node> node = CreateObject<Node> ();
    1.43 -Ptr<MobilityModel> mobility = CreateObject<...> ();
    1.44 -node->AddObject (mobility);
    1.45 -\end{verbatim}
    1.46 -
    1.47 -Get an object back:
    1.48 -\begin{verbatim}
    1.49 -mobility = node->GetObject<MobilityModel> ();
    1.50 -node = mobility->GetObject<Node> ();
    1.51 -\end{verbatim}
    1.52 +XXX: Potentially, explain more about GetObject/AggregateObject
    1.53  
    1.54  \end{frame}
    1.55  
    1.56 -\begin{frame}{Attributes}
    1.57 +\begin{frame}[fragile]{Configuration: Object Attributes}
    1.58 +
    1.59 +\begin{itemize}
    1.60 +\item Set the default value of an attribute from the command-line:
    1.61 +\begin{verbatim}
    1.62 +CommandLine cmd;
    1.63 +cmd.Parse (argc, argv);
    1.64 +\end{verbatim}
    1.65 +\item Set the default value of an attribute with NS\_ATTRIBUTE\_DEFAULT
    1.66 +\item Set an attribute directly on a specific object:
    1.67 +\begin{verbatim}
    1.68 +Ptr<CsmaChannel> csmaChannel = ...;
    1.69 +csmaChannel->SetAttribute ("DataRate", 
    1.70 +                           StringValue ("5Mbps"));
    1.71 +\end{verbatim}
    1.72 +\item Set an attribute on a specific object with a path:
    1.73 +\begin{verbatim}
    1.74 +Config::Set ("/NodeList/3/DeviceList/1/Channel/DataRate",
    1.75 +             StringValue ("5Mbps"));
    1.76 +\end{verbatim}
    1.77 +\item Set an attribute on a specific object with a GUI:
    1.78 +\begin{verbatim}
    1.79 +GtkConfigStore config;
    1.80 +config.Configure ();
    1.81 +\end{verbatim}
    1.82 +\end{itemize}
    1.83 +
    1.84  \end{frame}
    1.85  
    1.86  \begin{frame}{TypeId}
    1.87  \end{frame}
    1.88  
    1.89 -\section{Diving in: runtime}
    1.90 +\section{Diving In: an End To End Tour of a Packet}
    1.91  
    1.92 -\begin{frame}{Event scheduling}
    1.93 +\begin{frame}{The first event scheduled}
    1.94 +Usually, Application::Start, how this creates the first socket.
    1.95  \end{frame}
    1.96  
    1.97 -\begin{frame}{Packets}
    1.98 +\begin{frame}{The first packet created}
    1.99 +Typically, in OnOffApplication::Send
   1.100  \end{frame}
   1.101  
   1.102 -\begin{frame}{Sockets}
   1.103 +\begin{frame}{How the first packet is sent}
   1.104 +
   1.105 +Through a Socket... and reaches the UDP layer.
   1.106  \end{frame}
   1.107  
   1.108 -\begin{frame}{Headers and Trailers}
   1.109 +\begin{frame}{How the first (UDP) header is added}
   1.110  \end{frame}
   1.111  
   1.112 +\begin{frame}{Reaching the IP layer, ip routing}
   1.113 +\end{frame}
   1.114 +
   1.115 +\begin{frame}{ARP cache}
   1.116 +\end{frame}
   1.117 +
   1.118 +\begin{frame}{CsmaNetDevice delays, reception of first broadcast}
   1.119 +\end{frame}
   1.120 +
   1.121 +\begin{frame}{IP forwarding}
   1.122 +\end{frame}
   1.123 +
   1.124 +\begin{frame}{Wifi MAC high}
   1.125 +\end{frame}
   1.126 +
   1.127 +\begin{frame}{Wifi DcaTxop}
   1.128 +\end{frame}
   1.129 +
   1.130 +\begin{frame}{Wifi Dcf}
   1.131 +\end{frame}
   1.132 +
   1.133 +\begin{frame}{Wifi phy}
   1.134 +\end{frame}
   1.135 +
   1.136 +\begin{frame}{Wifi MAC rx}
   1.137 +\end{frame}
   1.138 +
   1.139 +\begin{frame}{IP up}
   1.140 +\end{frame}
   1.141 +
   1.142 +\begin{frame}{UDP up}
   1.143 +\end{frame}
   1.144 +
   1.145 +\begin{frame}{socket up}
   1.146 +\end{frame}
   1.147 +
   1.148 +\begin{frame}{application sink}
   1.149 +\end{frame}
   1.150  
   1.151  \end{document}