From 0177500584de83145f3a5620d61013043027a6a4 Mon Sep 17 00:00:00 2001
From: Loic Guegan <manzerbredes@mailbox.org>
Date: Thu, 29 Jun 2023 11:10:26 +0200
Subject: Update user manual

---
 manual/manual.tex | 44 ++++++++++++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 12 deletions(-)

(limited to 'manual/manual.tex')

diff --git a/manual/manual.tex b/manual/manual.tex
index cb0024d..fff1e30 100644
--- a/manual/manual.tex
+++ b/manual/manual.tex
@@ -5,6 +5,7 @@
 \usepackage{minted}
 \usepackage{booktabs}
 \usepackage{xspace}
+\usepackage{hyperref}
 \usepackage{graphicx}
 \usepackage{makecell}
 \usepackage[utf8]{inputenc}
@@ -60,11 +61,11 @@
 \label{architecture}
 \end{figure}
 
-ESDS simulator comprises two major components: 1) The Simulation Orchestrator (SO) 2) The Simulated
-Nodes (SN). This architecture is depicted in Figure \ref{architecture}. The SO is the main process
+The ESDS simulator comprises two major components: 1) The Simulation Orchestrator (SO) 2) The Simulated
+Nodes (SN). This architecture is depicted on Figure~\ref{architecture}. The SO is the main process
 in charge of implementing the simulation main loop. It instantiates the network (e.g bandwidths and
-latencies), collects and processes the events (e.g communications,turn on/off). On the other hand,
-nodes are threads that implement the node behaviors.
+latencies matrices), collects and processes the events (e.g communications,turn on/off). On the other hand,
+the SNs are threads that implement the node behaviors by following so called \textit{node API}.
 
 \section{Getting started}
 
@@ -87,6 +88,10 @@ Nodes implementations are written using python. Here is the implementation of th
 the last \verb|platform.yaml| file:
 \addsource{assets/node.py}{python}
 
+More details about implementations of nodes are availablein the
+\href{https://gitlab.com/manzerbredes/esds/-/raw/main/example/sender.py}{\textit{example code}} and the
+\href{https://gitlab.com/manzerbredes/esds/-/raw/main/example/sender.py}{\textit{ESDS implementation of the SNs interface}}.
+
 \subsection{Execution}
 \label{sec:firstsimulation:execution}
 
@@ -199,6 +204,15 @@ implementations:
    - 1-@ receiver.py
     \end{tabminted}
     \\ \cmidrule{1-3}
+
+    \textbf{groups} & Specify the group to use in the nodes log reports. Useful to filter logs. By default, nodes are in the \textit{def} group. &
+    \begin{tabminted}{yaml}
+groups:
+   - 0 groupA
+   - 1-@ groupB
+    \end{tabminted}
+    \\ \cmidrule{1-3}
+
     
     \textbf{arguments} & Define the arguments that will be passed to each node implementation (keys of each element uses \textbf{the range syntax}). &
     \begin{tabminted}{yaml}
@@ -212,8 +226,8 @@ arguments:
   \label{keywords:nodes}
 \end{table}
 
-Several entries in the platform file use a \textbf{range syntax} to map informations (node
-implementations, links etc.) to node $ids$. Indeed, when running a simulation with $p$ nodes, each
+Several entries in the platform file use a \textbf{range syntax} to bind data (node
+implementations, links etc.) to node $ids$. For a simulation with $p$ nodes, each
 node will have an allocated $id$ such that $id \in [0,1,...,p-1]$. Here are examples of valid range
 syntax for a simulation that uses 5 nodes:
 \begin{itemize}
@@ -242,8 +256,15 @@ available keywords.
 type: "wireless"
     \end{tabminted}
     \\ \cmidrule{1-3}
+
+    \textbf{nodes} & Specify the nodes that have access the current network/interface (uses the \textbf{range syntax}) &
+    \begin{tabminted}{yaml}
+nodes: 2-@
+    \end{tabminted}
+    \\ \cmidrule{1-3}
+
     
-    \textbf{links} & List all the links between nodes on the interface (uses \textbf{the range syntax}). &
+    \textbf{links} & List all the links between nodes on the interface (uses the \textbf{range syntax}). &
     \begin{tabminted}{yaml}
 links:
   # Link node 0 to node 1:
@@ -255,7 +276,7 @@ links:
     
     \textbf{txprefs} & Define the transmission performance of each wireless node (keys of each element uses \textbf{the range syntax}). This keyword is only available for wireless interfaces. &
     \begin{tabminted}{yaml}
-txprefs:
+txperfs:
   - 0 10kbps 0s
   - 1 10kbps 5s
     \end{tabminted}
@@ -266,10 +287,9 @@ txprefs:
   \label{keywords:interfaces}
 \end{table}
 
-In esds, txprefs (or transmission preferences) corresponds to the transmission performance of the
-wireless interface. It is used to compute the transmission duration of the wireless
-communication. When using custom orchestrator instantiation, the txprefs can be assigned on the
-diagonal components of the bandwidth and latency matrices.
+In esds, txperfs (or transmission performance) corresponds to the transmission performance on the
+wireless interface. It is used to compute the transmission duration of wireless communications.
+When using custom orchestrator instantiation, the txperfs parameter of a given node can be assigned by fixing the diagonal components of the bandwidth and latency matrices.
 
 \end{document}
 
-- 
cgit v1.2.3

