<p>daniel <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21167">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  daniel: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Set configuration in a more dynamic way<br><br>Let's generalize the data types a bit, and move the gb (bssgp) config<br>into a module parameter.  That parameter then is used for both the PCUs<br>as well as (concatenated) for the SGSN side.<br><br>This allows the configuration file to have more control over the number<br>of BVC within each NSE.<br><br>Change-Id: I43a3a8e133cf0f0e377b64d1b385e88285246957<br>---<br>M gbproxy/GBProxy_Tests.ttcn<br>1 file changed, 90 insertions(+), 110 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn</span><br><span>index 8de16d2..f18216e 100644</span><br><span>--- a/gbproxy/GBProxy_Tests.ttcn</span><br><span>+++ b/gbproxy/GBProxy_Tests.ttcn</span><br><span>@@ -37,9 +37,12 @@</span><br><span> </span><br><span> import from GSM_RR_Types all;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* mcc_mnc is 24.008 10.5.5.15 encoded. 262 42 */</span><br><span style="color: hsl(120, 100%, 40%);">+const BcdMccMnc c_mcc_mnc := '262F42'H;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> modulepar {</span><br><span>     /* IP/port on which we run our internal GSUP/HLR emulation */</span><br><span style="color: hsl(0, 100%, 40%);">-   NSConfigurations_SGSN mp_nsconfig_sgsn := {</span><br><span style="color: hsl(120, 100%, 40%);">+   NSConfigurations mp_nsconfig_sgsn := {</span><br><span>               {</span><br><span>                    nsei := 101,</span><br><span>                         role_sgsn := true,</span><br><span>@@ -60,7 +63,7 @@</span><br><span>                       }</span><br><span>            }</span><br><span>    };</span><br><span style="color: hsl(0, 100%, 40%);">-      NSConfigurations_PCU mp_nsconfig_pcu := {</span><br><span style="color: hsl(120, 100%, 40%);">+     NSConfigurations mp_nsconfig_pcu := {</span><br><span>                {</span><br><span>                    nsei := 96,</span><br><span>                  role_sgsn := false,</span><br><span>@@ -119,6 +122,69 @@</span><br><span>                   }</span><br><span>            }</span><br><span>    };</span><br><span style="color: hsl(120, 100%, 40%);">+    BssgpConfigs mp_gbconfigs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                {</span><br><span style="color: hsl(120, 100%, 40%);">+                     nsei := 96,</span><br><span style="color: hsl(120, 100%, 40%);">+                   sgsn_role := false,</span><br><span style="color: hsl(120, 100%, 40%);">+                   bvc := {</span><br><span style="color: hsl(120, 100%, 40%);">+                              {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     bvci := 196,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  cell_id := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          ra_id := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    lai := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                              mcc_mnc := c_mcc_mnc,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         lac := 13135</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  },</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    rac := 0</span><br><span style="color: hsl(120, 100%, 40%);">+                                              },</span><br><span style="color: hsl(120, 100%, 40%);">+                                            cell_id := 20960</span><br><span style="color: hsl(120, 100%, 40%);">+                                      },</span><br><span style="color: hsl(120, 100%, 40%);">+                                    depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</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 style="color: hsl(120, 100%, 40%);">+                  nsei := 97,</span><br><span style="color: hsl(120, 100%, 40%);">+                   sgsn_role := false,</span><br><span style="color: hsl(120, 100%, 40%);">+                   bvc := {</span><br><span style="color: hsl(120, 100%, 40%);">+                              {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     bvci := 210,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  cell_id := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          ra_id := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    lai := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                              mcc_mnc := c_mcc_mnc,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         lac := 13200</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  },</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    rac := 0</span><br><span style="color: hsl(120, 100%, 40%);">+                                              },</span><br><span style="color: hsl(120, 100%, 40%);">+                                            cell_id := 20961</span><br><span style="color: hsl(120, 100%, 40%);">+                                      },</span><br><span style="color: hsl(120, 100%, 40%);">+                                    depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</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 style="color: hsl(120, 100%, 40%);">+                  nsei := 98,</span><br><span style="color: hsl(120, 100%, 40%);">+                   sgsn_role := false,</span><br><span style="color: hsl(120, 100%, 40%);">+                   bvc := {</span><br><span style="color: hsl(120, 100%, 40%);">+                              {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     bvci := 220,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  cell_id := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          ra_id := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    lai := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                              mcc_mnc := c_mcc_mnc,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         lac := 13300</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  },</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    rac := 0</span><br><span style="color: hsl(120, 100%, 40%);">+                                              },</span><br><span style="color: hsl(120, 100%, 40%);">+                                            cell_id := 20962</span><br><span style="color: hsl(120, 100%, 40%);">+                                      },</span><br><span style="color: hsl(120, 100%, 40%);">+                                    depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</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 style="color: hsl(120, 100%, 40%);">+     }</span><br><span> };</span><br><span> </span><br><span> const integer NUM_BVC_PER_NSE := 3;</span><br><span>@@ -130,17 +196,16 @@</span><br><span> };</span><br><span> </span><br><span> const integer NUM_PCU := 3;</span><br><span style="color: hsl(0, 100%, 40%);">-type record length(NUM_PCU) of GbInstance GbInstances_PCU;</span><br><span style="color: hsl(0, 100%, 40%);">-type record length(NUM_PCU) of NSConfiguration NSConfigurations_PCU;</span><br><span style="color: hsl(0, 100%, 40%);">-type record length(NUM_PCU) of BssgpCellId BssgpCellIds;</span><br><span style="color: hsl(120, 100%, 40%);">+type record of GbInstance GbInstances;</span><br><span style="color: hsl(120, 100%, 40%);">+type record of BssgpConfig BssgpConfigs;</span><br><span style="color: hsl(120, 100%, 40%);">+type record of NSConfiguration NSConfigurations;</span><br><span style="color: hsl(120, 100%, 40%);">+type record of BssgpCellId BssgpCellIds;</span><br><span> </span><br><span> const integer NUM_SGSN := 1;</span><br><span style="color: hsl(0, 100%, 40%);">-type record length(NUM_SGSN) of GbInstance GbInstances_SGSN;</span><br><span style="color: hsl(0, 100%, 40%);">-type record length(NUM_SGSN) of NSConfiguration NSConfigurations_SGSN;</span><br><span> </span><br><span> type component test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-   var GbInstances_PCU g_pcu;</span><br><span style="color: hsl(0, 100%, 40%);">-      var GbInstances_SGSN g_sgsn;</span><br><span style="color: hsl(120, 100%, 40%);">+  var GbInstances g_pcu;</span><br><span style="color: hsl(120, 100%, 40%);">+        var GbInstances g_sgsn;</span><br><span> </span><br><span>  port BSSGP_CT_PROC_PT PROC;</span><br><span> </span><br><span>@@ -243,118 +308,33 @@</span><br><span>     f_vty_transceive(GBPVTY, "enable");</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* mcc_mnc is 24.008 10.5.5.15 encoded. 262 42 */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_init(BcdMccMnc mcc_mnc := '262F42'H) runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_init() runs on test_CT {</span><br><span>        var integer i;</span><br><span> </span><br><span>   if (g_initialized == true) {</span><br><span>                 return;</span><br><span>      }</span><br><span>    g_initialized := true;</span><br><span style="color: hsl(0, 100%, 40%);">-  g_pcu[0].cfg := {</span><br><span style="color: hsl(0, 100%, 40%);">-               nsei := 96,</span><br><span style="color: hsl(0, 100%, 40%);">-             sgsn_role := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             bvc := { {</span><br><span style="color: hsl(0, 100%, 40%);">-                      bvci := 196,</span><br><span style="color: hsl(0, 100%, 40%);">-                    cell_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                            ra_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                      lai := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                mcc_mnc := mcc_mnc, lac := 13135},</span><br><span style="color: hsl(0, 100%, 40%);">-                                              rac := 0</span><br><span style="color: hsl(0, 100%, 40%);">-                                        },</span><br><span style="color: hsl(0, 100%, 40%);">-                              cell_id := 20960</span><br><span style="color: hsl(0, 100%, 40%);">-                        },</span><br><span style="color: hsl(0, 100%, 40%);">-                      depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(0, 100%, 40%);">-                      create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</span><br><span style="color: hsl(0, 100%, 40%);">-              } }</span><br><span style="color: hsl(0, 100%, 40%);">-     };</span><br><span style="color: hsl(0, 100%, 40%);">-      g_pcu[1].cfg := {</span><br><span style="color: hsl(0, 100%, 40%);">-               nsei := 97,</span><br><span style="color: hsl(0, 100%, 40%);">-             sgsn_role := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             bvc := { {</span><br><span style="color: hsl(0, 100%, 40%);">-                      bvci := 210,</span><br><span style="color: hsl(0, 100%, 40%);">-                    cell_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                            ra_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                      lai := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                mcc_mnc := mcc_mnc, lac := 13200},</span><br><span style="color: hsl(0, 100%, 40%);">-                                              rac := 0</span><br><span style="color: hsl(0, 100%, 40%);">-                                        },</span><br><span style="color: hsl(0, 100%, 40%);">-                              cell_id := 20961</span><br><span style="color: hsl(0, 100%, 40%);">-                        },</span><br><span style="color: hsl(0, 100%, 40%);">-                      depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(0, 100%, 40%);">-                      create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</span><br><span style="color: hsl(0, 100%, 40%);">-              } }</span><br><span style="color: hsl(0, 100%, 40%);">-     };</span><br><span style="color: hsl(0, 100%, 40%);">-      g_pcu[2].cfg := {</span><br><span style="color: hsl(0, 100%, 40%);">-               nsei := 98,</span><br><span style="color: hsl(0, 100%, 40%);">-             sgsn_role := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             bvc := { {</span><br><span style="color: hsl(0, 100%, 40%);">-                      bvci := 220,</span><br><span style="color: hsl(0, 100%, 40%);">-                    cell_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                            ra_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                      lai := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                mcc_mnc := mcc_mnc, lac := 13300},</span><br><span style="color: hsl(0, 100%, 40%);">-                                              rac := 0</span><br><span style="color: hsl(0, 100%, 40%);">-                                        },</span><br><span style="color: hsl(0, 100%, 40%);">-                              cell_id := 20962</span><br><span style="color: hsl(0, 100%, 40%);">-                        },</span><br><span style="color: hsl(0, 100%, 40%);">-                      depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(0, 100%, 40%);">-                      create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</span><br><span style="color: hsl(0, 100%, 40%);">-              } }</span><br><span style="color: hsl(0, 100%, 40%);">-     };</span><br><span> </span><br><span>       g_sgsn[0].cfg := {</span><br><span style="color: hsl(0, 100%, 40%);">-              nsei := 101,</span><br><span style="color: hsl(120, 100%, 40%);">+          nsei := mp_nsconfig_sgsn[0].nsei,</span><br><span>            sgsn_role := true,</span><br><span style="color: hsl(0, 100%, 40%);">-              bvc := {</span><br><span style="color: hsl(0, 100%, 40%);">-                        {</span><br><span style="color: hsl(0, 100%, 40%);">-                               bvci := 196,</span><br><span style="color: hsl(0, 100%, 40%);">-                            cell_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                    ra_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                              lai := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                        mcc_mnc := mcc_mnc, lac := 13135},</span><br><span style="color: hsl(0, 100%, 40%);">-                                                      rac := 0</span><br><span style="color: hsl(0, 100%, 40%);">-                                                },</span><br><span style="color: hsl(0, 100%, 40%);">-                                      cell_id := 20960</span><br><span style="color: hsl(0, 100%, 40%);">-                                },</span><br><span style="color: hsl(0, 100%, 40%);">-                              depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(0, 100%, 40%);">-                              create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</span><br><span style="color: hsl(0, 100%, 40%);">-                      },</span><br><span style="color: hsl(0, 100%, 40%);">-                      {</span><br><span style="color: hsl(0, 100%, 40%);">-                               bvci := 210,</span><br><span style="color: hsl(0, 100%, 40%);">-                            cell_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                    ra_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                              lai := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                        mcc_mnc := mcc_mnc, lac := 13200},</span><br><span style="color: hsl(0, 100%, 40%);">-                                                      rac := 0</span><br><span style="color: hsl(0, 100%, 40%);">-                                                },</span><br><span style="color: hsl(0, 100%, 40%);">-                                      cell_id := 20961</span><br><span style="color: hsl(0, 100%, 40%);">-                                },</span><br><span style="color: hsl(0, 100%, 40%);">-                              depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(0, 100%, 40%);">-                              create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</span><br><span style="color: hsl(0, 100%, 40%);">-                      },</span><br><span style="color: hsl(0, 100%, 40%);">-                      {</span><br><span style="color: hsl(0, 100%, 40%);">-                               bvci := 220,</span><br><span style="color: hsl(0, 100%, 40%);">-                            cell_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                    ra_id := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                              lai := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                        mcc_mnc := mcc_mnc, lac := 13300},</span><br><span style="color: hsl(0, 100%, 40%);">-                                                      rac := 0</span><br><span style="color: hsl(0, 100%, 40%);">-                                                },</span><br><span style="color: hsl(0, 100%, 40%);">-                                      cell_id := 20962</span><br><span style="color: hsl(0, 100%, 40%);">-                                },</span><br><span style="color: hsl(0, 100%, 40%);">-                              depth := BSSGP_DECODE_DEPTH_BSSGP,</span><br><span style="color: hsl(0, 100%, 40%);">-                              create_cb := refers(BSSGP_Emulation.DefaultCreateCallback)</span><br><span style="color: hsl(0, 100%, 40%);">-                      }</span><br><span style="color: hsl(0, 100%, 40%);">-               }</span><br><span style="color: hsl(0, 100%, 40%);">-       };</span><br><span style="color: hsl(120, 100%, 40%);">+            bvc := { }</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+     for (i := 0; i < lengthof(mp_gbconfigs); i := i+1) {</span><br><span style="color: hsl(120, 100%, 40%);">+               g_pcu[i].cfg := mp_gbconfigs[i];</span><br><span style="color: hsl(120, 100%, 40%);">+              /* concatenate all the PCU-side BVCs for the SGSN side */</span><br><span style="color: hsl(120, 100%, 40%);">+             g_sgsn[0].cfg.bvc := g_sgsn[0].cfg.bvc & mp_gbconfigs[i].bvc;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span>        f_init_vty();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_init_gb_sgsn(g_sgsn[0], "GbProxy_Test-SGSN0", 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) {</span><br><span style="color: hsl(120, 100%, 40%);">+           f_init_gb_sgsn(g_sgsn[0], "GbProxy_Test-SGSN" & int2str(i), 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span>    f_sleep(4.0);</span><br><span style="color: hsl(0, 100%, 40%);">-   f_init_gb_pcu(g_pcu[0], "GbProxy_Test-PCU0", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-      f_init_gb_pcu(g_pcu[1], "GbProxy_Test-PCU1", 1);</span><br><span style="color: hsl(0, 100%, 40%);">-      f_init_gb_pcu(g_pcu[2], "GbProxy_Test-PCU2", 2);</span><br><span style="color: hsl(120, 100%, 40%);">+    for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) {</span><br><span style="color: hsl(120, 100%, 40%);">+            f_init_gb_pcu(g_pcu[i], "GbProxy_Test-PCU" & int2str(i), i);</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span> }</span><br><span> </span><br><span> function f_cleanup() runs on test_CT {</span><br><span>@@ -364,7 +344,7 @@</span><br><span> type function void_fn(charstring id) runs on BSSGP_ConnHdlr;</span><br><span> </span><br><span> /* helper function to create, connect and start a BSSGP_ConnHdlr component */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_start_handler(void_fn fn, charstring id, GbInstances_PCU pcu, GbInstances_SGSN sgsn, integer imsi_suffix,</span><br><span style="color: hsl(120, 100%, 40%);">+function f_start_handler(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, integer imsi_suffix,</span><br><span>                      float t_guard := 30.0)</span><br><span> runs on test_CT return BSSGP_ConnHdlr {</span><br><span>   var BSSGP_ConnHdlr vc_conn;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21167">change 21167</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-ttcn3-hacks/+/21167"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I43a3a8e133cf0f0e377b64d1b385e88285246957 </div>
<div style="display:none"> Gerrit-Change-Number: 21167 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>