\chapter{Theoretical Underpinnings for SDN controllers} \label{ch:underpinnings} \section{What is a network at all?} \label{ch:underpinnings:network} Some loose thoughts for this chapter, as data networks consists out of: \begin{enumerate} \item interfaces \item links connecting interfaces \item hosts having at least or n interfaces \item hosts with ability to do forwarding decisions, e.g., an IP router on layer 3, an Ethernet-switch on layer 2, or an optical switch on layer 1 (i.e., wavelength) \item differentiation between physical and logical links is needed, as \begin{enumerate} \item physical links cannot be changed by a software, as some entity has to change the physical connection, i.e., either a human or by robots (see~\cite{de-cix:robots} as one possible example). \item logical links can be changed by a software, but the ways of doing so depend on~\ref{ch:underpinnings:network:changes}. \end{enumerate} \item a logical link is tight to a physical link or to an underlying logical link (a case of recursion) \item basic properties of links: directionality (uni or bi) \begin{enumerate} \item directionality (uni or bi) \item point-to-point \item point-to-multipoint (multicast or broadcast) \item multi-point-to-multipoint (multicast or broadcast) (XXX is this really true?) \end{enumerate} \end{enumerate} \subsection{Can the network be changed during operation?} \label{ch:underpinnings:network:changes} Changes of device or service configurations -- this is intended for semi-static configurations: \begin{enumerate} \item classical way: physical links can be changed by a software via the command line interface (CLI), e.g., a router can create a new IP~subnetwork on an interface via the CLI. \item SDN way: physical links can be changed by a software via an Application Programming Interface (API), e.g., a router can create a new IP~subnetwork via an API \end{enumerate} Changes of forwarding behavior -- this is intended for dynamic configurations that require to keep state in the network: \begin{enumerate} \item classical way: not possible, as human interaction is just too slow for any reaction. \item network build-in: the control plane of a network device autonomously decides to change the flow forwarding behavior. Examples are: IP routing, firewwalls and Network Address Translators (NATs). \item SDN way: forwarding behavior of the network can be changed via an API \end{enumerate} \subsection{Network Management} \label{ch:underpinnings:network:management} ISO/IEC ISO/IEC 7498-4, FCAPS, ITIL, Assets, configuration, etc \section{Requirements} \label{ch:underpinnings:requirements} Some requirements to be filed here.