<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">WIP: NACC<br><br>Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26<br>---<br>M pcu/PCU_Tests.ttcn<br>M pcu/gen_links.sh<br>M pcu/osmo-pcu.cfg<br>M pcu/regen_makefile.sh<br>4 files changed, 188 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/22387/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn</span><br><span>index 13b33b2..469c581 100644</span><br><span>--- a/pcu/PCU_Tests.ttcn</span><br><span>+++ b/pcu/PCU_Tests.ttcn</span><br><span>@@ -56,6 +56,10 @@</span><br><span> import from StatsD_CodecPort_CtrlFunct all;</span><br><span> import from StatsD_Checker all;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+import from IPA_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_CTRL_Adapter all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_CTRL_Functions all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> modulepar {</span><br><span>         charstring mp_pcu_sock_path := PCU_SOCK_DEFAULT;</span><br><span> </span><br><span>@@ -63,6 +67,9 @@</span><br><span> </span><br><span>         charstring mp_pcu_statsd_ip := "127.0.0.1";</span><br><span>        integer mp_pcu_statsd_port := 8125;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ charstring mp_ctrl_neigh_ip := "127.0.0.1";</span><br><span style="color: hsl(120, 100%, 40%);">+ integer mp_ctrl_neigh_port := 4248;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -111,7 +118,7 @@</span><br><span>       uint8_t high</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT, StatsD_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT, StatsD_ConnHdlr, CTRL_Adapter_CT {</span><br><span>       /* PCU interface abstraction component */</span><br><span>    var RAW_PCUIF_CT vc_PCUIF;</span><br><span> </span><br><span>@@ -3566,6 +3573,179 @@</span><br><span>     f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Handle groups of PKT NEIGHBOUR CELL DATA packets */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_handle_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAW_PCU_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    var RlcmacDlBlock dl_block;</span><br><span style="color: hsl(120, 100%, 40%);">+   var uint32_t sched_fn;</span><br><span style="color: hsl(120, 100%, 40%);">+        var integer i := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   var uint5_t exp_container_idx := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   var integer si_offset := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   var integer len;</span><br><span style="color: hsl(120, 100%, 40%);">+      var octetstring exp_si_chunk;</span><br><span style="color: hsl(120, 100%, 40%);">+ var GlobalTfi gtfi := { is_dl_tfi := false, tfi := ms.ul_tbf.tfi };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ while (true) {</span><br><span style="color: hsl(120, 100%, 40%);">+                f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span style="color: hsl(120, 100%, 40%);">+             if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    break;</span><br><span style="color: hsl(120, 100%, 40%);">+                }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (i > 50) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      setverdict(fail, "Rx unexpected DL block: ", dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+                     f_shutdown(__BFILE__, __LINE__);</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%);">+             i := i + 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%);">+   while (true) {</span><br><span style="color: hsl(120, 100%, 40%);">+                var template RlcmacDlCtrlMsg exp_msg; exp_msg :=</span><br><span style="color: hsl(120, 100%, 40%);">+                              tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(gtfi, exp_container_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               /* Make sure last Dl block is a Pkt Neighbour Cell Data */</span><br><span style="color: hsl(120, 100%, 40%);">+            if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, exp_msg))) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     setverdict(fail, "Rx unexpected DL block: ", dl_block, " vs exp ", tr_RLCMAC_DL_CTRL(?, exp_msg));</span><br><span style="color: hsl(120, 100%, 40%);">+                        f_shutdown(__BFILE__, __LINE__);</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%);">+             var PacketNeighbourCellData neigh_data := dl_block.ctrl.payload.u.neighbour_cell_data;</span><br><span style="color: hsl(120, 100%, 40%);">+                var PacketNeighbourCellDataContainer cont := neigh_data.container_list[0];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          if (cont.cd_length == 31) { /* continues on next message */</span><br><span style="color: hsl(120, 100%, 40%);">+                   len := lengthof(cont.container_data);</span><br><span style="color: hsl(120, 100%, 40%);">+                 exp_si_chunk := substr(exp_si, si_offset, len);</span><br><span style="color: hsl(120, 100%, 40%);">+                       if (cont.container_data != exp_si_chunk) {</span><br><span style="color: hsl(120, 100%, 40%);">+                            setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ",</span><br><span style="color: hsl(120, 100%, 40%);">+                                       cont.container_data, " vs exp ", exp_si_chunk);</span><br><span style="color: hsl(120, 100%, 40%);">+                          f_shutdown(__BFILE__, __LINE__);</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%);">+                     si_offset := si_offset + len;</span><br><span style="color: hsl(120, 100%, 40%);">+         } else if (cont.cd_length == 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     /* we are done */</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (si_offset != lengthof(exp_si)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                          setverdict(fail, "Rx unexpectd SI length ", si_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         " vs exp ", lengthof(exp_si));</span><br><span style="color: hsl(120, 100%, 40%);">+                           f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+                      }</span><br><span style="color: hsl(120, 100%, 40%);">+                     break;</span><br><span style="color: hsl(120, 100%, 40%);">+                } else { /* data length, last message */</span><br><span style="color: hsl(120, 100%, 40%);">+                      len := cont.cd_length;</span><br><span style="color: hsl(120, 100%, 40%);">+                        exp_si_chunk := substr(exp_si, si_offset, len);</span><br><span style="color: hsl(120, 100%, 40%);">+                       if (cont.container_data != exp_si_chunk) {</span><br><span style="color: hsl(120, 100%, 40%);">+                            setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ",</span><br><span style="color: hsl(120, 100%, 40%);">+                                       cont.container_data, " vs exp ", exp_si_chunk);</span><br><span style="color: hsl(120, 100%, 40%);">+                          f_shutdown(__BFILE__, __LINE__);</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%);">+                     si_offset := si_offset + len;</span><br><span style="color: hsl(120, 100%, 40%);">+                 /* we are done */</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (si_offset != lengthof(exp_si)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                          setverdict(fail, "Rx unexpectd SI length ", si_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         " vs exp ", lengthof(exp_si));</span><br><span style="color: hsl(120, 100%, 40%);">+                           f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+                      }</span><br><span style="color: hsl(120, 100%, 40%);">+                     break;</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%);">+           exp_container_idx := exp_container_idx + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+           f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span style="color: hsl(120, 100%, 40%);">+     }</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Verify PCU handles Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8). */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_nacc() runs on RAW_PCU_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      var RlcmacDlBlock dl_block;</span><br><span style="color: hsl(120, 100%, 40%);">+   var EgprsChCodingCommand last_ch_coding;</span><br><span style="color: hsl(120, 100%, 40%);">+      var PollFnCtx pollctx;</span><br><span style="color: hsl(120, 100%, 40%);">+        var uint32_t sched_fn;</span><br><span style="color: hsl(120, 100%, 40%);">+        var GprsMS ms;</span><br><span style="color: hsl(120, 100%, 40%);">+        var template (value) RlcmacUlCtrlMsg cell_chf_notif;</span><br><span style="color: hsl(120, 100%, 40%);">+  var MultislotCap_GPRS mscap_gprs := {</span><br><span style="color: hsl(120, 100%, 40%);">+         gprsmultislotclass := '00011'B,</span><br><span style="color: hsl(120, 100%, 40%);">+               gprsextendeddynalloccap := '0'B</span><br><span style="color: hsl(120, 100%, 40%);">+       };</span><br><span style="color: hsl(120, 100%, 40%);">+    var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) };</span><br><span style="color: hsl(120, 100%, 40%);">+     var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default);</span><br><span style="color: hsl(120, 100%, 40%);">+        var GsmArfcn req_arfcn := 862;</span><br><span style="color: hsl(120, 100%, 40%);">+        var uint6_t req_bsic := 43;</span><br><span style="color: hsl(120, 100%, 40%);">+   var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('262F42'H, /* TODO: encode from info_ind */</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   info_ind.lac),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         info_ind.rac),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 info_ind.cell_id));</span><br><span style="color: hsl(120, 100%, 40%);">+     var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */</span><br><span style="color: hsl(120, 100%, 40%);">+                                                               423),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                          2),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    5));</span><br><span style="color: hsl(120, 100%, 40%);">+    var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src);</span><br><span style="color: hsl(120, 100%, 40%);">+  var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst);</span><br><span style="color: hsl(120, 100%, 40%);">+  var octetstring si1 := '198fb100000000000000000000000000007900002b'O;</span><br><span style="color: hsl(120, 100%, 40%);">+ var octetstring si3 := '1b753000f110236ec9033c2747407900003c0b2b2b'O;</span><br><span style="color: hsl(120, 100%, 40%);">+ var octetstring si13 := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O;</span><br><span style="color: hsl(120, 100%, 40%);">+        var octetstring si := si1 & si3 & si13;</span><br><span style="color: hsl(120, 100%, 40%);">+       var template RAN_Information_RIM_Container res_cont;</span><br><span style="color: hsl(120, 100%, 40%);">+  res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 ts_RIM_Sequence_Number(2),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 ts_RIM_Protocol_Version_Number(1),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(dst, false, 3, si)),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                omit);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Initialize osmo-bsc emulation neighbor resolution CTRL port */</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Initialize NS/BSSGP side */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init_bssgp();</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Initialize GPRS MS side */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_gprs_ms();</span><br><span style="color: hsl(120, 100%, 40%);">+     ms := g_ms[0]; /* We only use first MS in this test */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Initialize the PCU interface abstraction */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init_raw(testcasename(), info_ind);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Establish BSSGP connection to the PCU */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_bssgp_establish();</span><br><span style="color: hsl(120, 100%, 40%);">+  f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Send PACKET RESOURCE REQUEST */</span><br><span style="color: hsl(120, 100%, 40%);">+    pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap));</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Start NACC from MS side */</span><br><span style="color: hsl(120, 100%, 40%);">+ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* osmo-pcu should now ask for resolution: */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ipa_ctrl_wait_link_up();</span><br><span style="color: hsl(120, 100%, 40%);">+    var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." &</span><br><span style="color: hsl(120, 100%, 40%);">+                                 int2str(info_ind.lac) & "." &</span><br><span style="color: hsl(120, 100%, 40%);">+                               int2str(info_ind.cell_id) & "." &</span><br><span style="color: hsl(120, 100%, 40%);">+                                   int2str(req_arfcn) & "." &</span><br><span style="color: hsl(120, 100%, 40%);">+                                  int2str(req_bsic);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* RIM procedure: */</span><br><span style="color: hsl(120, 100%, 40%);">+  RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         tr_RAN_Information_Request_RIM_Container));</span><br><span style="color: hsl(120, 100%, 40%);">+        RIM.send(ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr),</span><br><span style="color: hsl(120, 100%, 40%);">+                                              ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 res_cont));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Announce SI back to MS, continue NACC procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_handle_pkt_neighbor_cell_data(ms, si);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */</span><br><span style="color: hsl(120, 100%, 40%);">+     f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span style="color: hsl(120, 100%, 40%);">+     if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) {</span><br><span style="color: hsl(120, 100%, 40%);">+               setverdict(fail, "Rx unexpected DL block: ", dl_block);</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%);">+   f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> control {</span><br><span>    execute( TC_pcuif_suspend() );</span><br><span>       execute( TC_pcuif_suspend_active_tbf() );</span><br><span>@@ -3639,6 +3819,7 @@</span><br><span>    execute( TC_multiplex_dl_gprs_egprs() );</span><br><span> </span><br><span>         execute( TC_pcuif_info_ind_subsequent() );</span><br><span style="color: hsl(120, 100%, 40%);">+    execute( TC_nacc() );</span><br><span> }</span><br><span> </span><br><span> }</span><br><span>diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh</span><br><span>index 2e581d9..98a9ff3 100755</span><br><span>--- a/pcu/gen_links.sh</span><br><span>+++ b/pcu/gen_links.sh</span><br><span>@@ -55,6 +55,9 @@</span><br><span> FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn "</span><br><span> FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn "</span><br><span> FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp "</span><br><span style="color: hsl(120, 100%, 40%);">+# IPA_Emulation + dependencies</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn "</span><br><span> gen_links $DIR $FILES</span><br><span> </span><br><span> ignore_pp_results</span><br><span>diff --git a/pcu/osmo-pcu.cfg b/pcu/osmo-pcu.cfg</span><br><span>index 12dc577..892dd79 100644</span><br><span>--- a/pcu/osmo-pcu.cfg</span><br><span>+++ b/pcu/osmo-pcu.cfg</span><br><span>@@ -30,3 +30,4 @@</span><br><span>  alpha 0</span><br><span>  gamma 0</span><br><span>  pcu-socket /tmp/pcu_bts</span><br><span style="color: hsl(120, 100%, 40%);">+ neighbor resolution 127.0.0.1</span><br><span>diff --git a/pcu/regen_makefile.sh b/pcu/regen_makefile.sh</span><br><span>index ca51452..8bb0598 100755</span><br><span>--- a/pcu/regen_makefile.sh</span><br><span>+++ b/pcu/regen_makefile.sh</span><br><span>@@ -1,7 +1,7 @@</span><br><span> #!/bin/sh</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc"</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-export CPPFLAGS_TTCN3="-DBSSGP_EM_L3"</span><br><span style="color: hsl(120, 100%, 40%);">+export CPPFLAGS_TTCN3="-DIPA_EMULATION_CTRL -DBSSGP_EM_L3"</span><br><span> </span><br><span> ../regen-makefile.sh PCU_Tests.ttcn $FILES</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387">change 22387</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/+/22387"/><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: I951db4af731e5a7c207f0f407dd78d166e2d3d26 </div>
<div style="display:none"> Gerrit-Change-Number: 22387 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>