<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-abis/+/20487">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">vty: add attributes to VTY commands indicating when they apply<br><br>Change-Id: Ie0182351bd8a10085563c403dfab04c4d1b4305c<br>Depends: libosmocore I0efc57f2cb54798ba207ae6fef9af4771d96bfa9<br>Related: SYS#4937, OS#1601<br>---<br>M src/e1_input_vty.c<br>1 file changed, 59 insertions(+), 47 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/87/20487/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/e1_input_vty.c b/src/e1_input_vty.c</span><br><span>index 2dc873f..d915c19 100644</span><br><span>--- a/src/e1_input_vty.c</span><br><span>+++ b/src/e1_input_vty.c</span><br><span>@@ -43,6 +43,8 @@</span><br><span> #include <osmocom/abis/e1_input.h></span><br><span> #include <osmocom/abis/ipa.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define X(x) (1 << x)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* CONFIG */</span><br><span> </span><br><span> #define E1_DRIVER_NAMES "(misdn|misdn_lapd|dahdi|e1d|ipa|unixsocket)"</span><br><span>@@ -55,6 +57,8 @@</span><br><span> </span><br><span> #define E1_LINE_HELP "Configure E1/T1/J1 Line\n" "Line Number\n"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Note: This requires a full restart of the application, since once created</span><br><span style="color: hsl(120, 100%, 40%);">+ * an E1 line can not be destroyed again. */</span><br><span> DEFUN(cfg_e1line_driver, cfg_e1_line_driver_cmd,</span><br><span> "e1_line <0-255> driver " E1_DRIVER_NAMES,</span><br><span> E1_LINE_HELP "Set driver for this line\n"</span><br><span>@@ -77,10 +81,11 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_port, cfg_e1_line_port_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "e1_line <0-255> port <0-255>",</span><br><span style="color: hsl(0, 100%, 40%);">- E1_LINE_HELP "Set physical port/span/card number\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "E1/T1 Port/Span/Card number\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_e1line_port, cfg_e1_line_port_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ X(OSMO_ABIS_LIB_ATTR_LINE_UPD),</span><br><span style="color: hsl(120, 100%, 40%);">+ "e1_line <0-255> port <0-255>",</span><br><span style="color: hsl(120, 100%, 40%);">+ E1_LINE_HELP "Set physical port/span/card number\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "E1/T1 Port/Span/Card number\n")</span><br><span> {</span><br><span> struct e1inp_line *line;</span><br><span> int e1_nr = atoi(argv[0]);</span><br><span>@@ -96,10 +101,11 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_socket, cfg_e1_line_socket_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "e1_line <0-255> socket .SOCKET",</span><br><span style="color: hsl(0, 100%, 40%);">- E1_LINE_HELP "Set socket path for unixsocket\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "socket path\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_e1line_socket, cfg_e1_line_socket_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ X(OSMO_ABIS_LIB_ATTR_LINE_UPD),</span><br><span style="color: hsl(120, 100%, 40%);">+ "e1_line <0-255> socket .SOCKET",</span><br><span style="color: hsl(120, 100%, 40%);">+ E1_LINE_HELP "Set socket path for unixsocket\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "socket path\n")</span><br><span> {</span><br><span> struct e1inp_line *line;</span><br><span> int e1_nr = atoi(argv[0]);</span><br><span>@@ -146,29 +152,32 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_keepalive, cfg_e1_line_keepalive_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "e1_line <0-255> keepalive",</span><br><span style="color: hsl(0, 100%, 40%);">- E1_LINE_HELP KEEPALIVE_HELP)</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_e1line_keepalive, cfg_e1_line_keepalive_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ X(OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK),</span><br><span style="color: hsl(120, 100%, 40%);">+ "e1_line <0-255> keepalive",</span><br><span style="color: hsl(120, 100%, 40%);">+ E1_LINE_HELP KEEPALIVE_HELP)</span><br><span> {</span><br><span> return set_keepalive_params(vty, atoi(argv[0]),</span><br><span> E1INP_USE_DEFAULT, E1INP_USE_DEFAULT,</span><br><span> E1INP_USE_DEFAULT);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_keepalive_params, cfg_e1_line_keepalive_params_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "e1_line <0-255> keepalive <1-300> <1-20> <1-300>",</span><br><span style="color: hsl(0, 100%, 40%);">- E1_LINE_HELP KEEPALIVE_HELP</span><br><span style="color: hsl(0, 100%, 40%);">- "Idle interval in seconds before probes are sent\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "Number of probes to sent\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "Delay between probe packets in seconds\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_e1line_keepalive_params, cfg_e1_line_keepalive_params_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ X(OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK),</span><br><span style="color: hsl(120, 100%, 40%);">+ "e1_line <0-255> keepalive <1-300> <1-20> <1-300>",</span><br><span style="color: hsl(120, 100%, 40%);">+ E1_LINE_HELP KEEPALIVE_HELP</span><br><span style="color: hsl(120, 100%, 40%);">+ "Idle interval in seconds before probes are sent\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "Number of probes to sent\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "Delay between probe packets in seconds\n")</span><br><span> {</span><br><span> return set_keepalive_params(vty, atoi(argv[0]),</span><br><span> atoi(argv[1]), atoi(argv[2]), atoi(argv[3]));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_no_keepalive, cfg_e1_line_no_keepalive_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "no e1_line <0-255> keepalive",</span><br><span style="color: hsl(0, 100%, 40%);">- NO_STR E1_LINE_HELP KEEPALIVE_HELP)</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_e1line_no_keepalive, cfg_e1_line_no_keepalive_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ X(OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK),</span><br><span style="color: hsl(120, 100%, 40%);">+ "no e1_line <0-255> keepalive",</span><br><span style="color: hsl(120, 100%, 40%);">+ NO_STR E1_LINE_HELP KEEPALIVE_HELP)</span><br><span> {</span><br><span> return set_keepalive_params(vty, atoi(argv[0]), 0, 0, 0);</span><br><span> }</span><br><span>@@ -198,25 +207,26 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_ipa_keepalive, cfg_e1_line_ipa_keepalive_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "e1_line <0-255> ipa-keepalive <1-300> <1-300>",</span><br><span style="color: hsl(0, 100%, 40%);">- E1_LINE_HELP IPA_KEEPALIVE_HELP</span><br><span style="color: hsl(0, 100%, 40%);">- "Idle interval in seconds before probes are sent\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "Time to wait for PONG response\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_ATTR(cfg_e1line_ipa_keepalive, cfg_e1_line_ipa_keepalive_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "e1_line <0-255> ipa-keepalive <1-300> <1-300>",</span><br><span style="color: hsl(120, 100%, 40%);">+ E1_LINE_HELP IPA_KEEPALIVE_HELP</span><br><span style="color: hsl(120, 100%, 40%);">+ "Idle interval in seconds before probes are sent\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "Time to wait for PONG response\n", CMD_ATTR_IMMEDIATE)</span><br><span> {</span><br><span> return set_ipa_keepalive_params(vty, atoi(argv[0]), atoi(argv[1]), atoi(argv[2]));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_no_ipa_keepalive, cfg_e1_line_no_ipa_keepalive_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "no e1_line <0-255> ipa-keepalive",</span><br><span style="color: hsl(0, 100%, 40%);">- NO_STR E1_LINE_HELP IPA_KEEPALIVE_HELP)</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_ATTR(cfg_e1line_no_ipa_keepalive, cfg_e1_line_no_ipa_keepalive_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "no e1_line <0-255> ipa-keepalive",</span><br><span style="color: hsl(120, 100%, 40%);">+ NO_STR E1_LINE_HELP IPA_KEEPALIVE_HELP, CMD_ATTR_IMMEDIATE)</span><br><span> {</span><br><span> return set_ipa_keepalive_params(vty, atoi(argv[0]), 0, 0);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1line_name, cfg_e1_line_name_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "e1_line <0-255> name .LINE",</span><br><span style="color: hsl(0, 100%, 40%);">- E1_LINE_HELP "Set name for this line\n" "Human readable name\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_ATTR(cfg_e1line_name, cfg_e1_line_name_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "e1_line <0-255> name .LINE",</span><br><span style="color: hsl(120, 100%, 40%);">+ E1_LINE_HELP "Set name for this line\n" "Human readable name\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ CMD_ATTR_IMMEDIATE)</span><br><span> {</span><br><span> struct e1inp_line *line;</span><br><span> int e1_nr = atoi(argv[0]);</span><br><span>@@ -235,10 +245,10 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1_pcap, cfg_e1_pcap_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "pcap .FILE",</span><br><span style="color: hsl(0, 100%, 40%);">- "Setup a pcap recording of all E1 traffic\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "Filename to save the packets to\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_ATTR(cfg_e1_pcap, cfg_e1_pcap_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "pcap .FILE",</span><br><span style="color: hsl(120, 100%, 40%);">+ "Setup a pcap recording of all E1 traffic\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "Filename to save the packets to\n", CMD_ATTR_IMMEDIATE)</span><br><span> {</span><br><span> int fd;</span><br><span> </span><br><span>@@ -253,29 +263,31 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1_no_pcap, cfg_e1_no_pcap_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "no pcap",</span><br><span style="color: hsl(0, 100%, 40%);">- NO_STR "Disable pcap recording of all E1 traffic\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_ATTR(cfg_e1_no_pcap, cfg_e1_no_pcap_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "no pcap",</span><br><span style="color: hsl(120, 100%, 40%);">+ NO_STR "Disable pcap recording of all E1 traffic\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ CMD_ATTR_IMMEDIATE)</span><br><span> {</span><br><span> e1_set_pcap_fd(-1);</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_e1inp, cfg_e1inp_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "e1_input",</span><br><span style="color: hsl(0, 100%, 40%);">- "Configure E1/T1/J1 TDM input\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_ATTR(cfg_e1inp, cfg_e1inp_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "e1_input",</span><br><span style="color: hsl(120, 100%, 40%);">+ "Configure E1/T1/J1 TDM input\n", CMD_ATTR_IMMEDIATE)</span><br><span> {</span><br><span> vty->node = L_E1INP_NODE;</span><br><span> </span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(cfg_ipa_bind,</span><br><span style="color: hsl(0, 100%, 40%);">- cfg_ipa_bind_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- "ipa bind A.B.C.D",</span><br><span style="color: hsl(0, 100%, 40%);">- "ipa driver config\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "Set ipa local bind address\n"</span><br><span style="color: hsl(0, 100%, 40%);">- "Listen on this IP address (default 0.0.0.0)\n")</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_ipa_bind,</span><br><span style="color: hsl(120, 100%, 40%);">+ cfg_ipa_bind_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ X(OSMO_ABIS_LIB_ATTR_LINE_UPD),</span><br><span style="color: hsl(120, 100%, 40%);">+ "ipa bind A.B.C.D",</span><br><span style="color: hsl(120, 100%, 40%);">+ "ipa driver config\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "Set ipa local bind address\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ "Listen on this IP address (default 0.0.0.0)\n")</span><br><span> {</span><br><span> e1inp_ipa_set_bind_addr(argv[0]);</span><br><span> return CMD_SUCCESS;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-abis/+/20487">change 20487</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmo-abis/+/20487"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: libosmo-abis </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ie0182351bd8a10085563c403dfab04c4d1b4305c </div>
<div style="display:none"> Gerrit-Change-Number: 20487 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>