\doxysection{include/osmocom/netif/stream.h File Reference}
\label{stream_8h}\index{include/osmocom/netif/stream.h@{include/osmocom/netif/stream.h}}
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/msgb.\+h$>$}\newline
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\label{stream_8h_a123b7866ed4985a81246bfede79a8ea9} 
\#define {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SCTP\+\_\+\+MSG\+\_\+\+FLAGS\+\_\+\+NOTIFICATION}~0x80 /$\ast$ sctp\+\_\+recvmsg() flags=MSG\+\_\+\+NOTIFICATION, msgb\+\_\+data() contains "{}union sctp\+\_\+notification$\ast$"{} $\ast$/
\begin{DoxyCompactList}\small\item\em Access SCTP flags from the msgb control buffer. \end{DoxyCompactList}\item 
\label{stream_8h_a745784ba45ae5d91e4bce0ed2acbe57f} 
\#define {\bfseries msgb\+\_\+sctp\+\_\+msg\+\_\+flags}(msg)~(msg)-\/$>$cb[2]
\item 
\label{stream_8h_a2693c0cc5c6222dd9ed42c8c4bf8aec8} 
\#define {\bfseries msgb\+\_\+sctp\+\_\+ppid}(msg)~(msg)-\/$>$cb[3]
\begin{DoxyCompactList}\small\item\em Access the SCTP PPID from the msgb control buffer. \end{DoxyCompactList}\item 
\label{stream_8h_ac2c359892ad63309b59a4b402f6a3e81} 
\#define {\bfseries msgb\+\_\+sctp\+\_\+stream}(msg)~(msg)-\/$>$cb[4]
\begin{DoxyCompactList}\small\item\em Access the SCTP Stream ID from the msgb control buffer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+accept\+\_\+cb\+\_\+t}) (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int fd)
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+read\+\_\+cb\+\_\+t}) (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+closed\+\_\+cb\+\_\+t}) (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\item 
typedef int($\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+read\+\_\+cb2\+\_\+t}) (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, int res, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em Completion call-\/back function when something was read from from the stream client socket. \end{DoxyCompactList}\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+segmentation\+\_\+cb\+\_\+t}) (struct msgb $\ast$msg)
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+segmentation\+\_\+cb2\+\_\+t}) (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, struct msgb $\ast$msg)
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+cli\+\_\+connect\+\_\+cb\+\_\+t}) (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+cli\+\_\+disconnect\+\_\+cb\+\_\+t}) (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+cli\+\_\+read\+\_\+cb\+\_\+t}) (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\item 
typedef int($\ast$ \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+read\+\_\+cb2\+\_\+t}) (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, int res, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em Completion call-\/back function when something was read from from the stream client socket. \end{DoxyCompactList}\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+cli\+\_\+segmentation\+\_\+cb\+\_\+t}) (struct msgb $\ast$msg)
\item 
typedef int($\ast$ {\bfseries osmo\+\_\+stream\+\_\+cli\+\_\+segmentation\+\_\+cb2\+\_\+t}) (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, struct msgb $\ast$msg)
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
\label{group__stream__srv_ga4448bfb5af99a9b949c0fe2a23e0806c} 
enum {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+param} \{ \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+SOCKOPT\+\_\+\+AUTH\+\_\+\+SUPPORTED}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+SOCKOPT\+\_\+\+ASCONF\+\_\+\+SUPPORTED}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+INIT\+\_\+\+NUM\+\_\+\+OSTREAMS}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+INIT\+\_\+\+MAX\+\_\+\+INSTREAMS}
, \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPALIVE} = 256
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPIDLE}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPINTVL}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPCNT}
, \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+LINK\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+USER\+\_\+\+TIMEOUT}
 \}
\item 
\label{group__stream__srv_gae2ff5d96e4fe26aceec92924963cd172} 
enum {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+param} \{ \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPALIVE} = 256
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPIDLE}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPINTVL}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPCNT}
, \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SRV\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+USER\+\_\+\+TIMEOUT}
 \}
\item 
\label{group__stream__cli_ga72a162cb959f4d3145087e076800b816} 
enum {\bfseries osmo\+\_\+stream\+\_\+cli\+\_\+param} \{ \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+SOCKOPT\+\_\+\+AUTH\+\_\+\+SUPPORTED}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+SOCKOPT\+\_\+\+ASCONF\+\_\+\+SUPPORTED}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+INIT\+\_\+\+NUM\+\_\+\+OSTREAMS}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+INIT\+\_\+\+MAX\+\_\+\+INSTREAMS}
, \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+INIT\+\_\+\+MAX\+\_\+\+ATTEMPTS}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+SCTP\+\_\+\+INIT\+\_\+\+TIMEOUT}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPALIVE} = 256
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPIDLE}
, \newline
{\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPINTVL}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+KEEPCNT}
, {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+CLI\+\_\+\+PAR\+\_\+\+TCP\+\_\+\+SOCKOPT\+\_\+\+USER\+\_\+\+TIMEOUT}
 \}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+create} (void $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Create an Osmocom Stream Server Link. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+destroy} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Destroy the stream server link. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+name} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Set a name on the srv\+\_\+link object (used during logging). \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+get\+\_\+name} (const struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Retrieve name previously set on the srv\+\_\+link object (see \doxyref{osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+name()}{p.}{group__stream__srv_gadef998825a4739660b198151fcee4201}). \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+nodelay} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, bool nodelay)
\begin{DoxyCompactList}\small\item\em Set the NODELAY socket option to avoid Nagle-\/like behavior. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+priority} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int sk\+\_\+prio)
\begin{DoxyCompactList}\small\item\em Set the priority value of the stream socket. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+ip\+\_\+dscp} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, uint8\+\_\+t ip\+\_\+dscp)
\begin{DoxyCompactList}\small\item\em Set the DSCP (differentiated services code point) of the stream socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+addr} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, const char $\ast$addr)
\begin{DoxyCompactList}\small\item\em Set the local address to which we bind. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+addrs} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, const char $\ast$$\ast$addr, size\+\_\+t addrcnt)
\begin{DoxyCompactList}\small\item\em Set the local address set to which we bind. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+port} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, uint16\+\_\+t port)
\begin{DoxyCompactList}\small\item\em Set the local port number to which we bind. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+proto} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, uint16\+\_\+t proto)
\begin{DoxyCompactList}\small\item\em Set the protocol for the stream server link. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+type} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int type)
\begin{DoxyCompactList}\small\item\em Set the socket type for the stream server link. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+domain} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int domain)
\begin{DoxyCompactList}\small\item\em Set the socket domain for the stream server link. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+accept\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int($\ast$accept\+\_\+cb)(struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int fd))
\begin{DoxyCompactList}\small\item\em Set the accept() call-\/back of the stream server link. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+data} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set application private data of the stream server link. \end{DoxyCompactList}\item 
void $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+get\+\_\+data} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Retrieve application private data of the stream server link. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+tx\+\_\+queue\+\_\+max\+\_\+length} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, unsigned int size)
\begin{DoxyCompactList}\small\item\em Set the maximum length queue of the stream servers accepted and allocated from this server link. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+get\+\_\+sockname} (const struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Retrieve description of the stream server link e. \end{DoxyCompactList}\item 
struct osmo\+\_\+fd $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+get\+\_\+ofd} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Retrieve Osmocom File Descriptor of the stream server link. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+get\+\_\+fd} (const struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Retrieve File Descriptor of the stream server link. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+msgb\+\_\+alloc\+\_\+info} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, unsigned int size, unsigned int headroom)
\begin{DoxyCompactList}\small\item\em Set the msgb allocation parameters on child osmo\+\_\+stream\+\_\+srv objects. \end{DoxyCompactList}\item 
bool \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+is\+\_\+opened} (const struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Check whether the stream server link is opened. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+open} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Open the stream server link. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+close} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link)
\begin{DoxyCompactList}\small\item\em Close the stream server link and unregister from select loop. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+set\+\_\+param} (struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, enum osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+param par, void $\ast$val, size\+\_\+t val\+\_\+len)
\begin{DoxyCompactList}\small\item\em Set given parameter of stream\+\_\+srv\+\_\+link to given value. \end{DoxyCompactList}\item 
struct osmo\+\_\+stream\+\_\+srv $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+create} (void $\ast$ctx, struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int fd, osmo\+\_\+stream\+\_\+srv\+\_\+read\+\_\+cb\+\_\+t read\+\_\+cb, osmo\+\_\+stream\+\_\+srv\+\_\+closed\+\_\+cb\+\_\+t closed\+\_\+cb, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Create a legacy osmo\+\_\+fd mode Stream Server inside the specified link. \end{DoxyCompactList}\item 
struct osmo\+\_\+stream\+\_\+srv $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+create2} (void $\ast$ctx, struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$link, int fd, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Create an osmo\+\_\+iofd mode Stream Server inside the specified link. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+name} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Set a name on the srv object (used during logging). \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+name\+\_\+f} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, const char $\ast$fmt,...)
\begin{DoxyCompactList}\small\item\em Set a name on the srv object using arguments like printf() (used during logging). \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+get\+\_\+name} (const struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Retrieve name previously set on the srv object (see \doxyref{osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+name()}{p.}{group__stream__srv_ga196834d254fd94922d6be91b7b5b1ed3}). \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+read\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+read\+\_\+cb2\+\_\+t} read\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the call-\/back function for incoming data on an osmo\+\_\+io stream\+\_\+srv. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+closed\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, osmo\+\_\+stream\+\_\+srv\+\_\+closed\+\_\+cb\+\_\+t closed\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the call-\/back function called when the stream server socket was closed. \end{DoxyCompactList}\item 
void $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+get\+\_\+data} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Retrieve application private data of the stream server. \end{DoxyCompactList}\item 
struct osmo\+\_\+stream\+\_\+srv\+\_\+link $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+get\+\_\+master} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Retrieve the master (Link) from a Stream Server. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+get\+\_\+sockname} (const struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Retrieve the stream server socket description. \end{DoxyCompactList}\item 
struct osmo\+\_\+fd $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+get\+\_\+ofd} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Retrieve Osmocom File Descriptor of a stream server in osmo\+\_\+fd mode. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+get\+\_\+fd} (const struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Retrieve File Descriptor of the stream server. \end{DoxyCompactList}\item 
struct osmo\+\_\+io\+\_\+fd $\ast$ \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+get\+\_\+iofd} (const struct osmo\+\_\+stream\+\_\+srv $\ast$srv)
\begin{DoxyCompactList}\small\item\em Retrieve osmo\+\_\+io descriptor of the stream server socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+destroy} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Destroy given Stream Server. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+flush\+\_\+and\+\_\+destroy} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\begin{DoxyCompactList}\small\item\em Prepare to send out all pending messages on the connection\textquotesingle{}s Tx queue. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+data} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set application private data of the stream server. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+segmentation\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, osmo\+\_\+stream\+\_\+srv\+\_\+segmentation\+\_\+cb\+\_\+t segmentation\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the segmentation callback for target osmo\+\_\+stream\+\_\+srv structure. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+segmentation\+\_\+cb2} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, osmo\+\_\+stream\+\_\+srv\+\_\+segmentation\+\_\+cb2\+\_\+t segmentation\+\_\+cb2)
\begin{DoxyCompactList}\small\item\em Set the segmentation callback for target osmo\+\_\+stream\+\_\+srv structure. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+send} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em Enqueue data to be sent via an Osmocom stream server. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+recv} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em Receive data via an Osmocom stream server in osmo\+\_\+fd mode. \end{DoxyCompactList}\item 
void {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+clear\+\_\+tx\+\_\+queue} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn)
\item 
int \textbf{ osmo\+\_\+stream\+\_\+srv\+\_\+set\+\_\+param} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, enum osmo\+\_\+stream\+\_\+srv\+\_\+param par, void $\ast$val, size\+\_\+t val\+\_\+len)
\begin{DoxyCompactList}\small\item\em Set given parameter of stream\+\_\+srv to given value. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+name} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Set a name on the cli object (used during logging). \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+name\+\_\+f} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, const char $\ast$fmt,...)
\begin{DoxyCompactList}\small\item\em Set a name on the cli object using arguments like printf() (used during logging). \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+get\+\_\+name} (const struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Retrieve name previously set on the cli object (see \doxyref{osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+name()}{p.}{group__stream__cli_gaeb712dc553735736047f9b11d9583baa}). \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+nodelay} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, bool nodelay)
\begin{DoxyCompactList}\small\item\em Set the NODELAY socket option to avoid Nagle-\/like behavior. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+priority} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, int sk\+\_\+prio)
\begin{DoxyCompactList}\small\item\em Set the priority value of the stream socket. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+ip\+\_\+dscp} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, uint8\+\_\+t ip\+\_\+dscp)
\begin{DoxyCompactList}\small\item\em Set the DSCP (differentiated services code point) of the stream socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+addr} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, const char $\ast$addr)
\begin{DoxyCompactList}\small\item\em Set the remote address to which we connect. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+addrs} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, const char $\ast$$\ast$addr, size\+\_\+t addrcnt)
\begin{DoxyCompactList}\small\item\em Set the remote address set to which we connect. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+port} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, uint16\+\_\+t port)
\begin{DoxyCompactList}\small\item\em Set the remote port number to which we connect. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+type} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, int type)
\begin{DoxyCompactList}\small\item\em Set the socket type for the stream server link. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+domain} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, int domain)
\begin{DoxyCompactList}\small\item\em Set the socket domain for the stream client link. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+proto} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, uint16\+\_\+t proto)
\begin{DoxyCompactList}\small\item\em Set the protocol for the stream client socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+local\+\_\+addr} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, const char $\ast$addr)
\begin{DoxyCompactList}\small\item\em Set the local address for the socket (to be bound to). \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+local\+\_\+addrs} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, const char $\ast$$\ast$addr, size\+\_\+t addrcnt)
\begin{DoxyCompactList}\small\item\em Set the local address set to which we bind. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+local\+\_\+port} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, uint16\+\_\+t port)
\begin{DoxyCompactList}\small\item\em Set the local port number for the socket (to be bound to). \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+data} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set application private data of the stream client socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+reconnect\+\_\+timeout} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, int timeout)
\begin{DoxyCompactList}\small\item\em Set the reconnect time of the stream client socket. \end{DoxyCompactList}\item 
void $\ast$ \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+get\+\_\+data} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Retrieve application private data of the stream client socket. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+tx\+\_\+queue\+\_\+max\+\_\+length} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, unsigned int size)
\begin{DoxyCompactList}\small\item\em Set the maximum length queue of the stream client. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+get\+\_\+sockname} (const struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Retrieve the stream client socket description. \end{DoxyCompactList}\item 
struct osmo\+\_\+fd $\ast$ \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+get\+\_\+ofd} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Retrieve Osmocom File Descriptor of the stream client socket. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+get\+\_\+fd} (const struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Retrieve file descriptor of the stream client socket. \end{DoxyCompactList}\item 
struct osmo\+\_\+io\+\_\+fd $\ast$ \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+get\+\_\+iofd} (const struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Retrieve osmo\+\_\+io descriptor of the stream client socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+connect\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, osmo\+\_\+stream\+\_\+cli\+\_\+connect\+\_\+cb\+\_\+t connect\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the call-\/back function called on connect of the stream client socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+disconnect\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, osmo\+\_\+stream\+\_\+cli\+\_\+disconnect\+\_\+cb\+\_\+t disconnect\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the call-\/back function called on disconnect of the stream client socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+read\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, osmo\+\_\+stream\+\_\+cli\+\_\+read\+\_\+cb\+\_\+t read\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the call-\/back function called to read from the stream client socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+read\+\_\+cb2} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+read\+\_\+cb2\+\_\+t} read\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the call-\/back function called to read from the stream client socket. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+segmentation\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, osmo\+\_\+stream\+\_\+cli\+\_\+segmentation\+\_\+cb\+\_\+t segmentation\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Set the segmentation callback for the client. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+segmentation\+\_\+cb2} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, osmo\+\_\+stream\+\_\+cli\+\_\+segmentation\+\_\+cb2\+\_\+t segmentation\+\_\+cb2)
\begin{DoxyCompactList}\small\item\em Set the segmentation callback for the client. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+reconnect} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Re-\/connect an Osmocom Stream Client. \end{DoxyCompactList}\item 
bool \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+is\+\_\+connected} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Check if Osmocom Stream Client is in connected state. \end{DoxyCompactList}\item 
struct osmo\+\_\+stream\+\_\+cli $\ast$ \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+create} (void $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Create an Osmocom stream client. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+destroy} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Destroy a Osmocom stream client (includes close). \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+open} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Open connection of an Osmocom stream client. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+open2} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, int reconnect)
\begin{DoxyCompactList}\small\item\em DEPRECATED\+: use \doxyref{osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+reconnect\+\_\+timeout()}{p.}{group__stream__cli_gade74792afe35f31dd2584c888db3dd62} or \doxyref{osmo\+\_\+stream\+\_\+cli\+\_\+reconnect()}{p.}{group__stream__cli_ga11d2615f6197f33073ba7245e5ba95ee} instead! Open connection of an Osmocom stream client. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+close} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Close an Osmocom Stream Client. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+send} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em Enqueue data to be sent via an Osmocom stream client. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+recv} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em Receive data via an Osmocom stream client in osmo\+\_\+fd mode. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+clear\+\_\+tx\+\_\+queue} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli)
\begin{DoxyCompactList}\small\item\em Clear the transmit queue of the stream client. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+stream\+\_\+cli\+\_\+set\+\_\+param} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli, enum osmo\+\_\+stream\+\_\+cli\+\_\+param par, void $\ast$val, size\+\_\+t val\+\_\+len)
\begin{DoxyCompactList}\small\item\em Set given parameter of stream client to given value. \end{DoxyCompactList}\end{DoxyCompactItemize}
