<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11687">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Neels Hofmeyr: Looks good to me, approved
Jenkins Builder: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ipaccess-config: Introduce -q quiet param<br><br>This way only formated output is pinted to stdout when using -G and can<br>be used by other tools (osmo-gsm-tester) to get a json dictionary with interesting<br>information.<br><br>Related: OS#3624<br>Change-Id: I257bfc8d82b49a3641be6b6777e472ecf561a21e<br>---<br>M src/ipaccess/ipaccess-config.c<br>1 file changed, 43 insertions(+), 20 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/ipaccess/ipaccess-config.c b/src/ipaccess/ipaccess-config.c</span><br><span>index dcaa756..7c81c5a 100644</span><br><span>--- a/src/ipaccess/ipaccess-config.c</span><br><span>+++ b/src/ipaccess/ipaccess-config.c</span><br><span>@@ -73,6 +73,7 @@</span><br><span> static char *firmware_analysis = NULL;</span><br><span> static int found_trx = 0;</span><br><span> static int loop_tests = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+static bool quiet = false;</span><br><span> </span><br><span> static void *tall_ctx_config = NULL;</span><br><span> static struct abis_nm_sw_desc *sw_load1 = NULL;</span><br><span>@@ -312,11 +313,13 @@</span><br><span> ipacc_data = signal_data;</span><br><span> return ipacc_msg_ack(ipacc_data->msg_type, ipacc_data->trx);</span><br><span> case S_NM_IPACC_RESTART_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">- printf("The BTS has acked the restart. Exiting.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("The BTS has acked the restart. Exiting.\n");</span><br><span> exit(0);</span><br><span> break;</span><br><span> case S_NM_IPACC_RESTART_NACK:</span><br><span style="color: hsl(0, 100%, 40%);">- printf("The BTS has nacked the restart. Exiting.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("The BTS has nacked the restart. Exiting.\n");</span><br><span> exit(0);</span><br><span> break;</span><br><span> case S_NM_STATECHG_OPER:</span><br><span>@@ -353,7 +356,8 @@</span><br><span> </span><br><span> switch (event) {</span><br><span> case NM_MT_LOAD_INIT_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">- fprintf(stdout, "Software Load Initiate ACK\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stdout, "Software Load Initiate ACK\n");</span><br><span> break;</span><br><span> case NM_MT_LOAD_INIT_NACK:</span><br><span> fprintf(stderr, "ERROR: Software Load Initiate NACK\n");</span><br><span>@@ -379,7 +383,9 @@</span><br><span> msg->l2h[0] = NM_ATT_IPACC_CUR_SW_CFG;</span><br><span> msg->l2h[1] = msgb_l3len(msg) >> 8;</span><br><span> msg->l2h[2] = msgb_l3len(msg) & 0xff;</span><br><span style="color: hsl(0, 100%, 40%);">- printf("Foo l2h: %p l3h: %p... length l2: %u l3: %u\n", msg->l2h, msg->l3h, msgb_l2len(msg), msgb_l3len(msg));</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Foo l2h: %p l3h: %p... length l2: %u l3: %u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ msg->l2h, msg->l3h, msgb_l2len(msg), msgb_l3len(msg));</span><br><span> abis_nm_ipaccess_set_nvattr(trx, msg->l2h, msgb_l2len(msg));</span><br><span> msgb_free(msg);</span><br><span> break;</span><br><span>@@ -395,7 +401,7 @@</span><br><span> break;</span><br><span> case NM_MT_LOAD_SEG_ACK:</span><br><span> percent = abis_nm_software_load_status(trx->bts);</span><br><span style="color: hsl(0, 100%, 40%);">- if (percent > percent_old)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet && percent > percent_old)</span><br><span> printf("Software Download Progress: %d%%\n", percent);</span><br><span> percent_old = percent;</span><br><span> break;</span><br><span>@@ -528,7 +534,8 @@</span><br><span> int need_to_set_attr = 0;</span><br><span> int len;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("OML link established using TRX %d\n", trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("OML link established using TRX %d\n", trx->nr);</span><br><span> </span><br><span> if (get_attr) {</span><br><span> msgb_put_u8(nmsg_get, NM_ATT_IPACC_PRIM_OML_CFG);</span><br><span>@@ -538,7 +545,8 @@</span><br><span> len = strlen(unit_id);</span><br><span> if (len > nmsg_set->data_len-10)</span><br><span> goto out_err;</span><br><span style="color: hsl(0, 100%, 40%);">- printf("setting Unit ID to '%s'\n", unit_id);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("setting Unit ID to '%s'\n", unit_id);</span><br><span> nv_put_unit_id(nmsg_set, unit_id);</span><br><span> need_to_set_attr = 1;</span><br><span> }</span><br><span>@@ -551,13 +559,15 @@</span><br><span> goto out_err;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("setting primary OML link IP to '%s'\n", inet_ntoa(ia));</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("setting primary OML link IP to '%s'\n", inet_ntoa(ia));</span><br><span> nv_put_prim_oml(nmsg_set, ntohl(ia.s_addr), 0);</span><br><span> need_to_set_attr = 1;</span><br><span> }</span><br><span> if (nv_mask) {</span><br><span style="color: hsl(0, 100%, 40%);">- printf("setting NV Flags/Mask to 0x%04x/0x%04x\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nv_flags, nv_mask);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("setting NV Flags/Mask to 0x%04x/0x%04x\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ nv_flags, nv_mask);</span><br><span> nv_put_flags(nmsg_set, nv_flags, nv_mask);</span><br><span> need_to_set_attr = 1;</span><br><span> }</span><br><span>@@ -576,7 +586,8 @@</span><br><span> goto out_err;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("setting static IP Address/Mask\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("setting static IP Address/Mask\n");</span><br><span> nv_put_ip_if_cfg(nmsg_set, ntohl(ia_addr.s_addr), ntohl(ia_mask.s_addr));</span><br><span> need_to_set_attr = 1;</span><br><span> }</span><br><span>@@ -589,7 +600,8 @@</span><br><span> goto out_err;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("setting static IP Gateway\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("setting static IP Gateway\n");</span><br><span> /* we only set the default gateway with zero addr/mask */</span><br><span> nv_put_gw_cfg(nmsg_set, 0, 0, ntohl(ia_gw.s_addr));</span><br><span> need_to_set_attr = 1;</span><br><span>@@ -607,7 +619,8 @@</span><br><span> }</span><br><span> </span><br><span> if (restart && !prim_oml_ip && !software) {</span><br><span style="color: hsl(0, 100%, 40%);">- printf("restarting BTS\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("restarting BTS\n");</span><br><span> abis_nm_ipaccess_restart(trx);</span><br><span> }</span><br><span> </span><br><span>@@ -636,7 +649,8 @@</span><br><span> phys_conf_min, sizeof(phys_conf_min));</span><br><span> else if (software) {</span><br><span> int rc;</span><br><span style="color: hsl(0, 100%, 40%);">- printf("Attempting software upload with '%s'\n", software);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Attempting software upload with '%s'\n", software);</span><br><span> rc = abis_nm_software_load(trx->bts, trx->nr, software, 19, 0, swload_cbfn, trx);</span><br><span> if (rc < 0) {</span><br><span> fprintf(stderr, "Failed to start software load\n");</span><br><span>@@ -769,7 +783,8 @@</span><br><span> entry = talloc_zero(tall_firm_ctx, struct llist_head);</span><br><span> INIT_LLIST_HEAD(entry);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("Opening possible firmware '%s'\n", filename);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Opening possible firmware '%s'\n", filename);</span><br><span> fd = open(filename, O_RDONLY);</span><br><span> if (fd < 0) {</span><br><span> perror("nada");</span><br><span>@@ -893,6 +908,7 @@</span><br><span> printf(" -f --firmware FIRMWARE\tProvide firmware information\n");</span><br><span> printf(" -w --write-firmware\t\tThis will dump the firmware parts to the filesystem. Use with -f.\n");</span><br><span> printf(" -p --loop\t\t\tLoop the tests executed with the --listen command.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ printf(" -q --quiet\t\t\tAvoid printing unformatted logging to stdout, useful with -G.\n");</span><br><span> }</span><br><span> </span><br><span> static void print_value_string(const struct value_string *val, int size)</span><br><span>@@ -945,9 +961,6 @@</span><br><span> osmo_init_logging2(tall_ctx_config, &log_info);</span><br><span> bts_model_nanobts_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("ipaccess-config (C) 2009-2010 by Harald Welte and others\n");</span><br><span style="color: hsl(0, 100%, 40%);">- printf("This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> while (1) {</span><br><span> int c;</span><br><span> unsigned long ul;</span><br><span>@@ -972,10 +985,11 @@</span><br><span> { "write-firmware", 0, 0, 'w' },</span><br><span> { "disable-color", 0, 0, 'c'},</span><br><span> { "loop", 0, 0, 'p' },</span><br><span style="color: hsl(120, 100%, 40%);">+ { "quiet", 0, 0, 'q' },</span><br><span> { 0, 0, 0, 0 },</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- c = getopt_long(argc, argv, "Gu:o:i:g:rn:S:U:l:L:hs:d:f:wcpH", long_options,</span><br><span style="color: hsl(120, 100%, 40%);">+ c = getopt_long(argc, argv, "Gu:o:i:g:rn:S:U:l:L:hs:d:f:wcpqH", long_options,</span><br><span> &option_index);</span><br><span> </span><br><span> if (c == -1)</span><br><span>@@ -1057,6 +1071,9 @@</span><br><span> case 'p':</span><br><span> loop_tests = 1;</span><br><span> break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'q':</span><br><span style="color: hsl(120, 100%, 40%);">+ quiet = true;</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span> case 'h':</span><br><span> print_usage();</span><br><span> print_help();</span><br><span>@@ -1067,6 +1084,11 @@</span><br><span> }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet) {</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("ipaccess-config (C) 2009-2010 by Harald Welte and others\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY\n\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> if (firmware_analysis) {</span><br><span> analyze_firmware(firmware_analysis);</span><br><span> if (argc == optind) /* Nothing more to do, exit successfully */</span><br><span>@@ -1097,7 +1119,8 @@</span><br><span> </span><br><span> ipac_nwl_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("Trying to connect to ip.access BTS %s...\n", bts_ip);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Trying to connect to ip.access BTS %s...\n", bts_ip);</span><br><span> </span><br><span> memset(&sin, 0, sizeof(sin));</span><br><span> sin.sin_family = AF_INET;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11687">change 11687</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/11687"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I257bfc8d82b49a3641be6b6777e472ecf561a21e </div>
<div style="display:none"> Gerrit-Change-Number: 11687 </div>
<div style="display:none"> Gerrit-PatchSet: 9 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>