\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 \doxysubsection*{Macros} \begin{DoxyCompactItemize} \item \mbox{\label{stream_8h_a123b7866ed4985a81246bfede79a8ea9}} \#define {\bfseries OSMO\+\_\+\+STREAM\+\_\+\+SCTP\+\_\+\+MSG\+\_\+\+FLAGS\+\_\+\+NOTIFICATION}~0x80 /$\ast$ sctp\+\_\+recvmsg() flags=MSG\+\_\+\+NOTIFICATION, msgb\+\_\+data() contains \char`\"{}union sctp\+\_\+notification$\ast$\char`\"{} $\ast$/ \begin{DoxyCompactList}\small\item\em Access SCTP flags from the msgb control buffer. \end{DoxyCompactList}\item \mbox{\label{stream_8h_a745784ba45ae5d91e4bce0ed2acbe57f}} \#define {\bfseries msgb\+\_\+sctp\+\_\+msg\+\_\+flags}(msg)~(msg)-\/$>$cb[2] \item \mbox{\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 \mbox{\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} \doxysubsection*{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\+\_\+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) \end{DoxyCompactItemize} \doxysubsection*{Enumerations} \begin{DoxyCompactItemize} \item \mbox{\label{group__stream__srv_ga4448bfb5af99a9b949c0fe2a23e0806c}} enum {\bfseries osmo\+\_\+stream\+\_\+srv\+\_\+link\+\_\+param} \{ {\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} \} \item \mbox{\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} \} \end{DoxyCompactItemize} \doxysubsection*{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 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 type 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 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 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 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\+\_\+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 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 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 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 type for the stream server 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 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\+\_\+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}