summaryrefslogtreecommitdiff
path: root/cesar/bsu/doc
diff options
context:
space:
mode:
authorlaranjeiro2010-05-17 09:08:03 +0000
committerlaranjeiro2010-05-17 09:08:03 +0000
commit75e65578cc26ec84491d43fdb824634cec6e2e0e (patch)
tree5d26f214ba3ff2ce723409207a86ee2713bc53ae /cesar/bsu/doc
parent4e148db9e903b5621e4895f041396c19576717ae (diff)
cesar/bsu: specification
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@7014 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/bsu/doc')
-rw-r--r--cesar/bsu/doc/Makefile36
-rw-r--r--cesar/bsu/doc/architecture.diabin0 -> 2513 bytes
-rw-r--r--cesar/bsu/doc/beacon_data_exchange_p1.diabin0 -> 1454 bytes
-rw-r--r--cesar/bsu/doc/beacon_data_exchange_p2.diabin0 -> 1502 bytes
-rw-r--r--cesar/bsu/doc/bsu.odtbin0 -> 167315 bytes
-rw-r--r--cesar/bsu/doc/bsu.pngbin0 -> 40831 bytes
-rw-r--r--cesar/bsu/doc/bsu_brecv.sdl7
-rw-r--r--cesar/bsu/doc/whitepaper.tex279
8 files changed, 322 insertions, 0 deletions
diff --git a/cesar/bsu/doc/Makefile b/cesar/bsu/doc/Makefile
new file mode 100644
index 0000000000..da48f847c8
--- /dev/null
+++ b/cesar/bsu/doc/Makefile
@@ -0,0 +1,36 @@
+PICTURES=architecture beacon_data_exchange_p1 \
+ beacon_data_exchange_p2
+SDL=bsu_brecv
+TEX=whitepaper
+
+TOOLS_DIR = ../../common/tools
+DOTFLAGS = -Gbgcolor='\#f7f7f7' -Nstyle=filled -Nfillcolor=white
+CONVERTFLAGS = -border 1 -bordercolor '\#d7d7d7'
+
+png: $(SDL:%=%.png)
+ps: $(SDL:%=%.ps)
+png: $(PICTURES:%=%.png)
+png: $(MSC:%=%.png)
+pdf: $(TEX:%=%.pdf)
+
+%.pdf: %.tex $(SDL:%=%.png)
+ pdflatex -output-directory /tmp $<
+ pdflatex -output-directory /tmp $<
+ mv /tmp/$@ $@;
+
+%.png: %.ps
+ convert $(CONVERTFLAGS) $< $@
+ rm -f $<
+
+%.ps: %.sdl $(TOOLS_DIR)/sdl.ps $(TOOLS_DIR)/sdl2dot
+ $(TOOLS_DIR)/sdl2dot $< | dot $(DOTFLAGS) -Tps -l $(TOOLS_DIR)/sdl.ps -o $@
+
+%.png: %.dia
+ dia $< --export $@
+
+all: png pdf
+
+clean:
+ rm -rf $(PICTURES:%=%.png)
+ rm -rf $(SDL:%=%.png)
+ rm -rf $(TEX:%=%.pdf)
diff --git a/cesar/bsu/doc/architecture.dia b/cesar/bsu/doc/architecture.dia
new file mode 100644
index 0000000000..bed7f1047c
--- /dev/null
+++ b/cesar/bsu/doc/architecture.dia
Binary files differ
diff --git a/cesar/bsu/doc/beacon_data_exchange_p1.dia b/cesar/bsu/doc/beacon_data_exchange_p1.dia
new file mode 100644
index 0000000000..08484cf787
--- /dev/null
+++ b/cesar/bsu/doc/beacon_data_exchange_p1.dia
Binary files differ
diff --git a/cesar/bsu/doc/beacon_data_exchange_p2.dia b/cesar/bsu/doc/beacon_data_exchange_p2.dia
new file mode 100644
index 0000000000..25f2e2301b
--- /dev/null
+++ b/cesar/bsu/doc/beacon_data_exchange_p2.dia
Binary files differ
diff --git a/cesar/bsu/doc/bsu.odt b/cesar/bsu/doc/bsu.odt
new file mode 100644
index 0000000000..599681feae
--- /dev/null
+++ b/cesar/bsu/doc/bsu.odt
Binary files differ
diff --git a/cesar/bsu/doc/bsu.png b/cesar/bsu/doc/bsu.png
new file mode 100644
index 0000000000..4455a943d3
--- /dev/null
+++ b/cesar/bsu/doc/bsu.png
Binary files differ
diff --git a/cesar/bsu/doc/bsu_brecv.sdl b/cesar/bsu/doc/bsu_brecv.sdl
new file mode 100644
index 0000000000..fb33ffc6eb
--- /dev/null
+++ b/cesar/bsu/doc/bsu_brecv.sdl
@@ -0,0 +1,7 @@
+(IDLE) -> | Beacon > -> < Central beacon ? >
+
+< Central beacon ? > -yes-> |NTB \n compute Frequency error| -tick offset, rho-> < Tracked beacon ? >
+< Central beacon ? > -no-> |Callback upper layer|
+< Tracked beacon ? > -no-> |Callback upper layer|
+< Tracked beacon ? > -yes-> |Compute schedules\nand update ACLF| -schedules-> |Program CA| -tick offset, rho, bpsd[4]-> |Callback upper layer|
+|Callback upper layer| -> (IDLE)
diff --git a/cesar/bsu/doc/whitepaper.tex b/cesar/bsu/doc/whitepaper.tex
new file mode 100644
index 0000000000..730e8d78ec
--- /dev/null
+++ b/cesar/bsu/doc/whitepaper.tex
@@ -0,0 +1,279 @@
+\documentclass[a4paper,10pt]{article}
+\usepackage{a4}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath, amsthm}
+\usepackage{float}
+\usepackage[utf8]{inputenc}
+\usepackage{hyperref}
+\usepackage{graphicx}
+\usepackage{fancyhdr}
+
+\hypersetup{
+backref=true, colorlinks=true, urlcolor= bleu, bookmarksopen=true, linkcolor= black,
+pdfstartview=FitH, pdfkeywords={}, pdfsubject={}, pdfauthor={}, pdftitle={}, }
+
+\def\project{Cesar}
+\def\title{BSU Whitepaper}
+\def\author{Nélio Laranjeiro}
+\def\rev{A0}
+\def\firm{SPiDCOM}
+
+\newenvironment{vcenterpage}
+{\newpage\vspace*{\fill}} {\vspace*{\fill}\par\pagebreak}
+
+\begin{document}
+
+% Page style.
+\pagestyle{fancy}
+
+\lhead{\firm}
+\chead{\hrule}
+\rhead{\project \title}
+
+\rfoot{Rev.\rev \today\vskip 2pt \hrule}
+\cfoot{\thepage}
+\lfoot{CONFIDENTIAL}
+
+\renewcommand{\footrulewidth}{0,4pt}
+% End Page style.
+
+% First Page.
+\noindent
+\begin{vcenterpage}
+\begin{minipage}{\textwidth}
+ \Huge
+ \textbf {\project}\\
+
+ \textbf {\title}\\
+
+ \small
+ \today\\
+
+ Rev\rev\\
+\end{minipage}
+\end{vcenterpage}
+% End First Page.
+
+\newpage
+\tableofcontents
+
+\newpage
+\section {Architecture}
+
+\begin{figure}[H]
+ \includegraphics[width=\textwidth]{architecture.png}
+ \caption {BSU Architecture.\label{archi}}
+\end{figure}
+
+\section {Beacon reception}
+
+Each time a beacon is received the BSU is in charge to get all necessary
+information from it to keep the station synchronized with the CCo. For that
+the BSU and the two others sub modules NTB and ACLF will process the
+informations received within the beacons (both central and discover) and the
+RX parameters provided by the PHY.
+
+\paragraph{NTB} is responsible for computing the frequency error and the
+offset between the STA's clock and the CCo's clock.\\
+To keep a better synchronization, the NTB will compute those difference on
+central beacons with all AVLNs. It is responsible for programming the
+frequency error in the PHY to keep an accurate clock.
+
+\paragraph{ACLF} is responsible for keeping or computing the beacon
+period start time (in PHY date).\\
+When the station is acting as STA, it should compute the beacon period start
+time using the BTS\footnote{BTS: Beacon Time Stamp.}, the
+BTOs\footnote{BTO: Beacon Time Offset.} and the BPSTO\footnote{BPSTO: Beacon
+Period Start Time Offset, only present in CSMA only mode.} if it is present.
+When the station is acting as CCo, it should compute the beacon period start
+time using the frequency variation from the AC Line.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=150pt]{bsu_brecv.png}
+ \caption{BSU beahavior.\label{BSU}}
+\end{figure}
+
+Figure \ref{BSU} represent the actions the BSU should do when a beacon
+is received.
+
+On beacon reception we can handle multiple cases:
+\begin{itemize}
+ \item beacon is a central beacon.
+ \begin {itemize}
+ \item From Our AVLN.
+ \item From neighbour AVLN.
+ \end {itemize}
+\end{itemize}
+
+\subsection {Central beacon from our AVLN}
+
+The BSU will track this beacon using the track data provided by the CP
+(SNID\footnote{SNID: Short Network IDentifier.},
+TEI\footnote{TEI: Terminal Equipment Identifier},
+NID\footnote{NID: Network IDentifier}).\\
+From this beacon, the BSU should use:
+\begin {itemize}
+ \item RX Parameters:
+ \begin {itemize}
+ \item SNID,
+ \item TEI,
+ \item BTO.
+ \end {itemize}
+ \item MPDU variant fields:
+ \begin {itemize}
+ \item Beacon Type,
+ \item Hybrid mode,
+ \item Network Mode.
+ \end {itemize}
+ \item Beacon entries:
+ \begin {itemize}
+ \item Persistent Schedules,
+ \item Non Persistent Schedules,
+ \item Discover
+ \item Beacon Period Start Time Offset,
+ \item Change SNID,
+ \item Encryption Key Change,
+ \item Change HM,
+ \item Change SNID.
+ \end {itemize}
+\end {itemize}
+
+It should compute the new Schedules for the Channel Access using the
+Schedules, Change SNID, Change HM, Encryption Key Change Beacon Entries
+present in the beacon.\\
+The Beacon period start date should be computed by the ACLF sub module using
+the BTS, BTOs and BPSTO using equation.
+
+\begin{eqnarray*}
+ bpsd_0 = bts - bpsto + bto_0\\
+ bpsd_n = bpsd_{n-1} + bp_date + bto_{n}\\
+ with\; n \in [0,3]
+ \label{aclf_compute}
+\end{eqnarray*}
+
+Frequency error and tick offset should be computed by the NTB module using the
+BTS, the preamble detection date and the detection phy date. Once this is
+computed the result is stored in the NTB's context.\\
+
+Discover bentry is handled in the case the CCo request the STA to send a
+discover beacon, in this case the BSU creates and send a discover beacon.\\
+
+\subsection {Central beacon from neighbour AVLN}
+
+The NTB should only compute the NTB data i.e. frequency error and the tick
+offset.
+
+\subsection {beacon Processed}
+
+Once the beacon has been processed, the BSU must provide it to the Control
+Plane with:
+\begin {itemize}
+ \item PHY RX parameters.
+ \item Beacon Period Start Date,
+ \item tick offset,
+ \item frequency error.
+\end {itemize}
+
+The Control plane should get the tick offset to convert the
+BPSD\footnote{BPSD: Beacon Period Start Date}.
+
+\begin{equation}
+ ntb = phy date + tick offset
+\end{equation}
+
+\section {Timer expires}
+
+When the timer expires, two cases can happened, the station is acting as a STA
+and the central beacon has not been received. The station is acting as CCo it
+must send the central beacon.
+
+\subsection {Acting as STA\label{ActingAsSTA}}
+
+The central beacon has not been received, the BSU will use the previous
+received data and compute the new Channel Access Schedules from it.\\
+Theses data are the ones use on the normal reception beacon behavior, so old
+central beacon data.
+
+The BSU should:
+\begin {itemize}
+ \item request ACLF for the new beacon period start date,
+ \item verify each present countdown in the previous beacon and decrement it
+(expired Persistent schedules are replaced by CSMA allocations).
+\end {itemize}
+Once this is done, it can create the new CA schedules needed and provide the
+beacon period description to the CA.
+
+\subsection {Acting as CCo}
+
+The BSU get the last beacon data, if it is up to date, it will use it to
+compute CA schedules and create a central beacon to send.\\
+
+Otherwise, it will does the same job as it do when the station acts as a STA
+(see \ref{ActingAsSTA}). In addition, it just creates the central beacon and
+sends it.
+
+\section {NTB}
+
+To handle its job, it will have to keep some data in the BSU context, like:
+\begin {itemize}
+ \item Initialised.
+ \item Beacon number.
+ \item SNID.
+ \item NID.
+ \item Frequency error.
+ \item beacon time stamp.
+ \item Preamble sys date.
+ \item Preamble STA date.
+ \item Station frequency numerator.
+ \item NTB clock tick offset.
+\end {itemize}
+
+\section {BSU beacon schedule extraction.}
+
+The BSU is responsible for extracting the schedules in the central beacon of
+the STA's AVLN to program the CA with it. Fot that it should only parse the
+schedule beacon entry and store it in a block for each kind i.e. persistent
+schedules and non persistent schedules.\\
+
+The common data of the block are the Session Allocation Information (SAI) which
+can be coded as followed:
+\begin {table}[H]
+ \centering
+ \begin {tabular}{|l|l|l|}
+ \hline
+ Type & Name & Comment \\
+ \hline
+ \hline
+ u8 & stpf & Start time present flag. \\
+ \hline
+ u8 & glid & Global link identifier. \\
+ \hline
+ u32 & st\_tck & Start Time in ticks. \\
+ \hline
+ u32 & et\_tck & End Time in ticks. \\
+ \hline
+ \hline
+ & 10 & bytes used. \\
+ \hline
+ \end {tabular}
+ \caption {SAI description.}
+\end {table}
+
+\section {History}
+
+\begin {table}[H]
+ \centering
+ \begin {tabular}{|l|l|l|}
+ \hline
+ Rev & Date & Comments \\
+ \hline
+ A0 & 27/01/2010 & Nélio Laranjeiro: Create. \\
+ \hline
+ \end {tabular}
+\end {table}
+
+\newpage
+\listoffigures
+
+\end{document}