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