\doxysection{src/sccp\+\_\+vty.c File Reference}
\label{sccp__vty_8c}\index{src/sccp\_vty.c@{src/sccp\_vty.c}}
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$arpa/inet.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/vty.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/command.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/telnet\+\_\+interface.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/misc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/mtp.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sccp/sccp\+\_\+types.\+h$>$}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}sccp\+\_\+internal.\+h\char`\"{}}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \textbf{ show\+\_\+user} (struct vty $\ast$vty, struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$user)
\item 
\textbf{ DEFUN} (show\+\_\+sccp\+\_\+users, show\+\_\+sccp\+\_\+users\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp users\char`\"{}, SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ SCCP\+\_\+\+STR} \char`\"{}Show List of SCCP Users registered\textbackslash{}n\char`\"{})
\item 
\textbf{ DEFUN} (show\+\_\+sccp\+\_\+user\+\_\+ssn, show\+\_\+sccp\+\_\+user\+\_\+ssn\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp ssn $<$0-\/65535$>$\char`\"{}, SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ SCCP\+\_\+\+STR} \char`\"{}Find an SCCP User registered for the given SSN\textbackslash{}n\char`\"{} \char`\"{}Subsystem Number (SSN)\textbackslash{}n\char`\"{})
\item 
\textbf{ DEFUN} (show\+\_\+sccp\+\_\+connections, show\+\_\+sccp\+\_\+connections\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp connections\char`\"{}, SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ SCCP\+\_\+\+STR} \char`\"{}Show List of active SCCP connections\textbackslash{}n\char`\"{})
\item 
\textbf{ DEFUN\+\_\+\+ATTR} (sccp\+\_\+timer, sccp\+\_\+timer\+\_\+cmd, NULL, NULL, CMD\+\_\+\+ATTR\+\_\+\+IMMEDIATE)
\item 
\textbf{ DEFUN\+\_\+\+ATTR} (sccp\+\_\+max\+\_\+optional\+\_\+data, sccp\+\_\+max\+\_\+optional\+\_\+data\+\_\+cmd, \char`\"{}sccp max-\/optional-\/\textbf{ data} ($<$0-\/999999$>$$\vert$standard)\char`\"{}, \char`\"{}Configure SCCP behavior\textbackslash{}n\char`\"{} \char`\"{}Adjust the upper bound for the optional \textbf{ data} length (the payload) for CR, CC, CREF and RLSD messages.\char`\"{} \char`\"{} For any Optional Data part larger than this value in octets, send CR, CC, CREF and RLSD\char`\"{} \char`\"{} messages without any payload, and send the \textbf{ data} payload in a separate Data Form 1 message.\char`\"{} \char`\"{} ITU-\/T Q.\+713 sections 4.\+2 thru 4.\+5 define a limit of 130 bytes for the \textquotesingle{}Data\textquotesingle{} parameter. This limit can be\char`\"{} \char`\"{} adjusted here. May be useful for interop with nonstandard SCCP peers.\textbackslash{}n\char`\"{} \char`\"{}Set a non-\/standard maximum allowed number of bytes\textbackslash{}n\char`\"{} \char`\"{}Use the ITU-\/T Q.\+713 4.\+2 to 4.\+5 standard value of 130\textbackslash{}n\char`\"{}, CMD\+\_\+\+ATTR\+\_\+\+IMMEDIATE)
\item 
static void \textbf{ gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs} (struct cmd\+\_\+element $\ast$cmd)
\item 
static void \textbf{ write\+\_\+sccp\+\_\+timers} (struct vty $\ast$vty, const char $\ast$indent, struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, bool default\+\_\+if\+\_\+unset)
\item 
void \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node} (struct vty $\ast$vty, const char $\ast$indent, struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\item 
\textbf{ DEFUN} (show\+\_\+sccp\+\_\+timers, show\+\_\+sccp\+\_\+timers\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp timers\char`\"{}, SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \char`\"{}Signaling Connection Control Part\textbackslash{}n\char`\"{} \char`\"{}Show List of SCCP timers\textbackslash{}n\char`\"{})
\item 
void \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+init} (void)
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{sccp__vty_8c_a4d12d55e242b6aa5f0297847962d26e7}} 
\index{sccp\_vty.c@{sccp\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+connections}]{,  }\item[{show\+\_\+sccp\+\_\+connections\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp connections\char`\"{}}]{,  }\item[{SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ SCCP\+\_\+\+STR} \char`\"{}Show List of active SCCP connections\textbackslash{}n\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+find()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, and \textbf{ sccp\+\_\+scoc\+\_\+show\+\_\+connections()}.

\mbox{\label{sccp__vty_8c_ab7caed0e1abddbbcd0719f7b88cf607c}} 
\index{sccp\_vty.c@{sccp\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+timers}]{,  }\item[{show\+\_\+sccp\+\_\+timers\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp timers\char`\"{}}]{,  }\item[{SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \char`\"{}Signaling Connection Control Part\textbackslash{}n\char`\"{} \char`\"{}Show List of SCCP timers\textbackslash{}n\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+find()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, and \textbf{ write\+\_\+sccp\+\_\+timers()}.

\mbox{\label{sccp__vty_8c_ae06bffd8ae2b509eedfe4c47b074f1b6}} 
\index{sccp\_vty.c@{sccp\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+user\+\_\+ssn}]{,  }\item[{show\+\_\+sccp\+\_\+user\+\_\+ssn\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp ssn $<$0-\/65535$>$\char`\"{}}]{,  }\item[{SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ SCCP\+\_\+\+STR} \char`\"{}Find an SCCP User registered for the given SSN\textbackslash{}n\char`\"{} \char`\"{}Subsystem Number (SSN)\textbackslash{}n\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+find()}, \textbf{ sccp\+\_\+user\+\_\+find()}, \textbf{ show\+\_\+user()}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+::ssn}.

\mbox{\label{sccp__vty_8c_a8219193e11137c4bfc40faa0dfb3f6c0}} 
\index{sccp\_vty.c@{sccp\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+users}]{,  }\item[{show\+\_\+sccp\+\_\+users\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp users\char`\"{}}]{,  }\item[{SHOW\+\_\+\+STR \textbf{ CS7\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ INST\+\_\+\+STR} \textbf{ SCCP\+\_\+\+STR} \char`\"{}Show List of SCCP Users registered\textbackslash{}n\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+find()}, \textbf{ show\+\_\+user()}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::users}.

\mbox{\label{sccp__vty_8c_aed4bcac61e8b664f86c37e7b371dc15e}} 
\index{sccp\_vty.c@{sccp\_vty.c}!DEFUN\_ATTR@{DEFUN\_ATTR}}
\index{DEFUN\_ATTR@{DEFUN\_ATTR}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{DEFUN\_ATTR()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily DEFUN\+\_\+\+ATTR (\begin{DoxyParamCaption}\item[{sccp\+\_\+max\+\_\+optional\+\_\+data}]{,  }\item[{sccp\+\_\+max\+\_\+optional\+\_\+data\+\_\+cmd}]{,  }\item[{\char`\"{}sccp max-\/optional-\/\textbf{ data} ($<$0-\/999999$>$$\vert$standard)\char`\"{}}]{,  }\item[{\char`\"{}Configure SCCP behavior\textbackslash{}n\char`\"{} \char`\"{}Adjust the upper bound for the optional \textbf{ data} length (the payload) for}]{CR,  }\item[{CC}]{,  }\item[{CREF and RLSD messages.\char`\"{} \char`\"{} For any Optional Data part larger than this value in}]{octets,  }\item[{send}]{CR,  }\item[{CC}]{,  }\item[{CREF and RLSD\char`\"{} \char`\"{} messages without any}]{payload,  }\item[{and send the \textbf{ data} payload in a separate Data Form 1 message.\char`\"{} \char`\"{} ITU-\/T Q.\+713 sections 4.\+2 thru 4.\+5 define a limit of 130 bytes for the \textquotesingle{}Data\textquotesingle{} parameter. This limit can be\char`\"{} \char`\"{} adjusted here. May be useful for interop with nonstandard SCCP peers.\textbackslash{}n\char`\"{} \char`\"{}Set a non-\/standard maximum allowed number of bytes\textbackslash{}n\char`\"{} \char`\"{}Use the ITU-\/T Q.\+713 4.\+2 to 4.\+5 standard value of 130\textbackslash{}n\char`\"{}}]{,  }\item[{CMD\+\_\+\+ATTR\+\_\+\+IMMEDIATE}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+set\+\_\+max\+\_\+optional\+\_\+data()}, \textbf{ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp()}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}.

\mbox{\label{sccp__vty_8c_a0c914ef5757459cb9ab098bedf64fa08}} 
\index{sccp\_vty.c@{sccp\_vty.c}!DEFUN\_ATTR@{DEFUN\_ATTR}}
\index{DEFUN\_ATTR@{DEFUN\_ATTR}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{DEFUN\_ATTR()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily DEFUN\+\_\+\+ATTR (\begin{DoxyParamCaption}\item[{sccp\+\_\+timer}]{,  }\item[{sccp\+\_\+timer\+\_\+cmd}]{,  }\item[{NULL}]{,  }\item[{NULL}]{,  }\item[{CMD\+\_\+\+ATTR\+\_\+\+IMMEDIATE}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}, \textbf{ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::tdefs}.

\mbox{\label{sccp__vty_8c_af01dd1c42be7e714ed61c2fc1f1102ca}} 
\index{sccp\_vty.c@{sccp\_vty.c}!gen\_sccp\_timer\_cmd\_strs@{gen\_sccp\_timer\_cmd\_strs}}
\index{gen\_sccp\_timer\_cmd\_strs@{gen\_sccp\_timer\_cmd\_strs}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{gen\_sccp\_timer\_cmd\_strs()}
{\footnotesize\ttfamily static void gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs (\begin{DoxyParamCaption}\item[{struct cmd\+\_\+element $\ast$}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+defaults}, and \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+init()}.

\mbox{\label{sccp__vty_8c_a6d4d5f16593e9d3f087228dd064dc3ef}} 
\index{sccp\_vty.c@{sccp\_vty.c}!osmo\_sccp\_vty\_init@{osmo\_sccp\_vty\_init}}
\index{osmo\_sccp\_vty\_init@{osmo\_sccp\_vty\_init}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{osmo\_sccp\_vty\_init()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+vty\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



References \textbf{ gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs()}.

\mbox{\label{sccp__vty_8c_a03d33d5b19ae71529da0ac0984de2794}} 
\index{sccp\_vty.c@{sccp\_vty.c}!osmo\_sccp\_vty\_write\_cs7\_node@{osmo\_sccp\_vty\_write\_cs7\_node}}
\index{osmo\_sccp\_vty\_write\_cs7\_node@{osmo\_sccp\_vty\_write\_cs7\_node}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{osmo\_sccp\_vty\_write\_cs7\_node()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{const char $\ast$}]{indent,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::max\+\_\+optional\+\_\+data}, and \textbf{ write\+\_\+sccp\+\_\+timers()}.



Referenced by \textbf{ write\+\_\+one\+\_\+cs7()}.

\mbox{\label{sccp__vty_8c_a021ce75d068f12ebf0856fab8df4380c}} 
\index{sccp\_vty.c@{sccp\_vty.c}!show\_user@{show\_user}}
\index{show\_user@{show\_user}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{show\_user()}
{\footnotesize\ttfamily static void show\+\_\+user (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{user }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+::ssn}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{sccp__vty_8c_ad2accb3b7294d5a38b243f08bd3cfa97}} 
\index{sccp\_vty.c@{sccp\_vty.c}!write\_sccp\_timers@{write\_sccp\_timers}}
\index{write\_sccp\_timers@{write\_sccp\_timers}!sccp\_vty.c@{sccp\_vty.c}}
\doxysubsubsection{write\_sccp\_timers()}
{\footnotesize\ttfamily static void write\+\_\+sccp\+\_\+timers (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{const char $\ast$}]{indent,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{bool}]{default\+\_\+if\+\_\+unset }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::tdefs}.



Referenced by \textbf{ DEFUN()}, and \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node()}.

