<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>