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}