From cf019ce511c23d4816eb14ce9b11991e2b59d1c5 Mon Sep 17 00:00:00 2001 From: giomba Date: Sat, 9 Nov 2019 12:14:20 +0100 Subject: [PATCH] [doc] first documentation stub draft --- doc/.gitignore | 4 ++ doc/Makefile | 11 ++++ doc/img/unipi.pdf | Bin 0 -> 40661 bytes doc/main.tex | 155 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 170 insertions(+) create mode 100644 doc/.gitignore create mode 100644 doc/Makefile create mode 100644 doc/img/unipi.pdf create mode 100644 doc/main.tex 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 0000000000000000000000000000000000000000..5875316f8338cd32d81d2a214d95cce419ec5ee6 GIT binary patch literal 40661 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 XNMtmTeCSXa7y>2_5*F4n)&~6---*Qb literal 0 HcmV?d00001 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}