<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/23589">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">omldummy: add cmdline arg --features<br><br>The current usage is to make osmo-bts-omldummy indicate BTS_FEAT_VAMOS<br>on OML, so that we can test osmo-bsc's behavior when VAMOS is enabled.<br><br>Related: SYS#4895<br>Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae<br>---<br>M src/osmo-bts-omldummy/main.c<br>1 file changed, 37 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/89/23589/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c</span><br><span>index fe28b05..fdb6f8e 100644</span><br><span>--- a/src/osmo-bts-omldummy/main.c</span><br><span>+++ b/src/osmo-bts-omldummy/main.c</span><br><span>@@ -14,19 +14,24 @@</span><br><span> </span><br><span> static void print_usage(const char *prog_name)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- printf("Usage: %s [-h] dst_host site_id [trx_num]\n", prog_name);</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Usage: %s [-h] [--features FOO,BAR,BAZ] dst_host site_id [trx_num]\n", prog_name);</span><br><span> }</span><br><span> </span><br><span> static void print_help(const char *prog_name)</span><br><span> {</span><br><span> print_usage(prog_name);</span><br><span> printf(" -h --help This text.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ printf(" -f --features FOO,BAR,BAZ BTS features to issue on OML startup.\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ " The names correspond to BTS_FEAT_* constants\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ " as defined in osmocom/gsm/bts_features.h,\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ " e.g. '-f VAMOS'\n");</span><br><span> }</span><br><span> </span><br><span> struct {</span><br><span> char *dst_host;</span><br><span> int site_id;</span><br><span> int trx_num;</span><br><span style="color: hsl(120, 100%, 40%);">+ char *features;</span><br><span> } cmdline = {</span><br><span> .trx_num = 8,</span><br><span> };</span><br><span>@@ -37,10 +42,11 @@</span><br><span> int option_index = 0, c;</span><br><span> static struct option long_options[] = {</span><br><span> {"help", 0, 0, 'h'},</span><br><span style="color: hsl(120, 100%, 40%);">+ {"features", 1, 0, 'f'},</span><br><span> {0}</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- c = getopt_long(argc, argv, "hd", long_options, &option_index);</span><br><span style="color: hsl(120, 100%, 40%);">+ c = getopt_long(argc, argv, "hdf:", long_options, &option_index);</span><br><span> if (c == -1)</span><br><span> break;</span><br><span> </span><br><span>@@ -48,6 +54,9 @@</span><br><span> case 'h':</span><br><span> print_help(argv[0]);</span><br><span> exit(0);</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'f':</span><br><span style="color: hsl(120, 100%, 40%);">+ cmdline.features = optarg;</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span> default:</span><br><span> /* catch unknown options *as well as* missing arguments. */</span><br><span> fprintf(stderr, "Error in command line options. Exiting.\n");</span><br><span>@@ -71,6 +80,29 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void set_bts_features(struct bitvec *features, char *features_str)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ char *saveptr = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+ char *token;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!features_str)</span><br><span style="color: hsl(120, 100%, 40%);">+ return;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ while ((token = strtok_r(features_str, ",", &saveptr))) {</span><br><span style="color: hsl(120, 100%, 40%);">+ enum osmo_bts_features feat;</span><br><span style="color: hsl(120, 100%, 40%);">+ features_str = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ feat = get_string_value(osmo_bts_features_names, token);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if ((int)feat < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "Unknown BTS feature: '%s'\n", token);</span><br><span style="color: hsl(120, 100%, 40%);">+ exit(-1);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_set_feature(features, feat);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> int main(int argc, char **argv)</span><br><span> {</span><br><span> struct gsm_bts *bts;</span><br><span>@@ -100,6 +132,9 @@</span><br><span> </span><br><span> if (bts_init(bts) < 0)</span><br><span> exit(1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ set_bts_features(bts->features, cmdline.features);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> //btsb = bts_role_bts(bts);</span><br><span> abis_init(bts);</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/23589">change 23589</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/osmo-bts/+/23589"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae </div>
<div style="display:none"> Gerrit-Change-Number: 23589 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>