\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 {\ttfamily \#include \char`\"{}ss7\+\_\+instance.\+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()}.