diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..0ffafd5 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,4 @@ +build/ +dist/ +*.swp + diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..6f0e29c --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,11 @@ +all: + mkdir -p build + pdflatex -output-directory build main.tex + pdflatex -output-directory build main.tex + pdflatex -output-directory build main.tex + mkdir -p dist + mv build/main.pdf dist + +clean: + rm -rf build + diff --git a/doc/img/unipi.pdf b/doc/img/unipi.pdf new file mode 100644 index 0000000..5875316 Binary files /dev/null and b/doc/img/unipi.pdf differ diff --git a/doc/main.tex b/doc/main.tex new file mode 100644 index 0000000..f346723 --- /dev/null +++ b/doc/main.tex @@ -0,0 +1,155 @@ +\documentclass[a4paper,12pt]{article} +\usepackage[english]{babel} +\usepackage[utf8]{inputenc} +\usepackage{setspace} + +% Larger borders -- we do not want do waste paper, even if it is only paper on screen =) +\usepackage[top=2.5cm, bottom=2.5cm, left=2cm, right=2cm]{geometry} +% Remove auto indentation of paragraphs. +\setlength\parindent{0pt} + +% Palatino font (nicer serif font: Times is for oldies) +\renewcommand*\rmdefault{ppl} + +% Nested itemize list bullet style +\renewcommand{\labelitemi}{$\bullet$} +\renewcommand{\labelitemii}{$\circ$} +\renewcommand{\labelitemiii}{--} + +% Math packages +\usepackage{mathtools} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} + +% Graphic packages +\usepackage{graphicx} +\usepackage{float} +\usepackage{adjustbox} +\usepackage{tikz} +\usepackage{forest,array} +\usetikzlibrary{shadows} + +% Graphs styles +\forestset{ + giombatree/.style={ + for tree={ + grow = east, + parent anchor=east, + child anchor=west, + edge={rounded corners=2mm}, + fill=violet!5, + drop shadow, + l sep=10mm, + edge path={ + \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) -- +(5mm,0) -- (.child anchor)\forestoption{edge label}; + } + } + } +} +\forestset{ + qtree/.style={ + for tree={ + parent anchor=south, + child anchor=north, + align=center, + edge={rounded corners=2mm}, + fill=violet!5, + drop shadow, + l sep=10mm, + } + } +} + +% Project Name +\newcommand{\projectname}{NetPP} + +% Hides ugly links from the index +\usepackage[hidelinks]{hyperref} +% Landscape format pdf pagess +\usepackage{pdflscape} + +\begin{document} +\pagenumbering{gobble} + +{\setstretch{1.0} + \begin{titlepage} + \centering + \includegraphics[width=6cm]{img/unipi.pdf}\par + \vspace{1.5cm} + {\Large Department of Information Engineering \par} + \vspace{1.5cm} + {\huge\textsc{\projectname{}}\par} + \vspace{0.5cm} + {\Large Advanced Networks and Wireless Systems project \par} + \vspace{2cm} + Francesco \textsc{Barbarulo}\par + Bruk Tekalgne \textsc{Gurmesa}\par + Giovan Battista \textsc{Rolandi} + + \vfill + + % Bottom of the page + {\large A.Y. 2019-2020\par} + \end{titlepage} +} + +\tableofcontents % do we really need it? it should be a very quick small doc TODO + +\pagenumbering{arabic} + +\section{Introduction} +\projectname{} is a simulation of a sensors network which makes use of the following stack: +\begin{itemize} + \item wireless IEEE 802.15.4 + \item 6LowPAN + \item IPv6 (routing via RPL) + \item UDP + \item CoAP +\end{itemize} + +It is developed on Z1 nodes with Contiki OS, and simulated inside Cooja. +A Java CoAP cache proxy has been developed using Eclipse Californium library, and all CoAP messages are RFC8428 (SenML) compliant. +The Trickle algorithm used inside RPL has been properly tuned in order to deal with a maximum of 40 wireless nodes randomly and uniformly distributed, and a maximum of 4 hops. % TODO please make sure it really is like this + +\section{Overview} +Usage of RPL objective function 0 is mandatory by specification. +It is designed to find the nearest grounded (ie. connected to external network) root \cite{rfc:rplof0}. + +\section{Trickle Parameters} +Depending on the specific network we want to develop, three different goals can be of interest: +\begin{itemize} + \item energy consumption + \item network formation time + \item network stretch +\end{itemize} + +Depending on the most relevant goal for the specific application, the Trickle algorithm used in RPL can be tuned via two parameters: +\begin{itemize} + \item $k$ + \item $I_{min}$ +\end{itemize} + +Since we decided that \$somegoal was more important, and we read mingozzi, %% TODO +from \cite{bib:mingozzi:tricklef} we can infer that... % TODO infer something please + +%% ETX expected transmissions %% TODO should we put this somewhere? + +\begin{thebibliography}{9} + +\bibitem{bib:mingozzi:tricklef} + Mingozzi Enzo, Vallati Carlo -- + \emph{Trickle-F Fair broadcast suppression to improve energy-efficient route formation with the RPL routing protocol} -- + Università di Pisa + (2013) + +\bibitem{rfc:rplof0} + Pascal Thubert -- + \emph{RFC6552 (Proposed Standard) Objective Function Zero for the Routing Protocol for Low-Power and Lossy Networks (RPL)} -- + Cisco Systems + (2012) + + +\end{thebibliography} + +\end{document}