1
\chapter{{\tt l\_in}: the low-level interconnect}\label{chap:l-in}
2
\index{low-level interconnect}
3
\section{Introduction}
4
The {\tt l\_in}, or {\em low-level interconnect} abstracts the network and the
5
idiosyncracies of specific network protocols from the rest of NoTA, in
6
particular from the {\tt h\_in} that is discussed in chapter
7
\ref{chap:h-in}. 
8
9
The {\tt l\_in} consists of two parts:
10
\begin{itemize}
11
  \item the {\tt l\_in-down} implements the network-protocol specific
12
    handling; there are different {\tt l\_in-down}-modules, for example for
13
    TCP, Bluetooth and USB.
14
  \item the {\tt l\_in-up} is situated on top of these modules, and provides a
15
    generic interface to the higher levels, ie. to the {\tt h\_in}.
16
\end{itemize}
17
18
Application programmers usually do not have to use the {\tt l\_in} directly,
19
but instead use it through the {\tt h\_in} or layers on top of that. However,
20
we feel that it is still important to understand the {\tt l\_in} to some
21
extent, as it is invaluable to understand what really happens when you send
22
some bytes from one node to another.
23
24
Another reason for discussing the {\tt l\_in} is that programmers might be
25
interested to implement new {\tt l\_in-down}-modules to support other network
26
types. We won't discuss that in too much detail in this guide, but we feel
27
that some understanding of the {\tt l\_in} together with the examples of the
28
existing {\tt l\_in-down}s will go a long way.