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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms)<br><br>Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d<br>Closes: SYS#5210<br>---<br>M gbproxy/GBProxy_Tests.ttcn<br>M library/Osmocom_Gb_Types.ttcn<br>2 files changed, 134 insertions(+), 0 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 5e81c13..655e396 100644</span><br><span>--- a/gbproxy/GBProxy_Tests.ttcn</span><br><span>+++ b/gbproxy/GBProxy_Tests.ttcn</span><br><span>@@ -2393,6 +2393,37 @@</span><br><span>  f_cleanup();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/***********************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+ * FLOW-CONTROL-MS procedure</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%);">+private function f_TC_fc_ms(charstring id) runs on BSSGP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+       var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        var template (value) PDU_BSSGP fc_tx := ts_BVC_FC_MS(g_pars.tlli, 100, 200, '12'O);</span><br><span style="color: hsl(120, 100%, 40%);">+   /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */</span><br><span style="color: hsl(120, 100%, 40%);">+        var template (present) PDU_BSSGP fc_rx := tr_BVC_FC_MS(g_pars.tlli, 100, 200, '12'O);</span><br><span style="color: hsl(120, 100%, 40%);">+ var template (value) PDU_BSSGP ack_tx := ts_BVC_FC_MS_ACK(g_pars.tlli, '12'O);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      f_pcu2sgsn(fc_tx, fc_rx, use_sig := false);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_sgsn2pcu(ack_tx, ack_tx, use_sig := false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+/* Send a FLOW-CONTROL-MS from BSS side and expect it to show up on SGSN (PTP BVC) */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_fc_ms() runs on test_CT</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   var BSSGP_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+   f_init();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   vc_conn := f_start_handler(refers(f_TC_fc_ms), testcasename(), g_pcu, g_sgsn, 21);</span><br><span style="color: hsl(120, 100%, 40%);">+    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   f_cleanup();</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> control {</span><br><span>         execute( TC_BVC_bringup() );</span><br><span>@@ -2456,6 +2487,7 @@</span><br><span> </span><br><span>     execute( TC_flush_ll() );</span><br><span>    execute( TC_fc_bvc() );</span><br><span style="color: hsl(120, 100%, 40%);">+       execute( TC_fc_ms() );</span><br><span> }</span><br><span> </span><br><span> </span><br><span>diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn</span><br><span>index ba05f7d..c532772 100644</span><br><span>--- a/library/Osmocom_Gb_Types.ttcn</span><br><span>+++ b/library/Osmocom_Gb_Types.ttcn</span><br><span>@@ -1262,6 +1262,108 @@</span><br><span>               }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) PDU_BSSGP ts_BVC_FC_MS(GprsTlli tlli, uint16_t bmax, uint16_t bucket_leak_rate,</span><br><span style="color: hsl(120, 100%, 40%);">+                                              OCT1 tag) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                pDU_BSSGP_FLOW_CONTROL_MS := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        bssgpPduType := '28'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        tLLI := ts_BSSGP_TLLI(tlli),</span><br><span style="color: hsl(120, 100%, 40%);">+                  tag := {</span><br><span style="color: hsl(120, 100%, 40%);">+                              iEI := '1E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 1</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            unstructured_Value := tag</span><br><span style="color: hsl(120, 100%, 40%);">+                     },</span><br><span style="color: hsl(120, 100%, 40%);">+                    mS_Bucket_Size := {</span><br><span style="color: hsl(120, 100%, 40%);">+                           iEI := '12'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 2</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            bmax := f_oct_or_wc(bmax, 2)</span><br><span style="color: hsl(120, 100%, 40%);">+                  },</span><br><span style="color: hsl(120, 100%, 40%);">+                    bucket_Leak_Rate := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         iEI := '03'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 2</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            r_Value := f_oct_or_wc(bucket_leak_rate, 2)</span><br><span style="color: hsl(120, 100%, 40%);">+                   },</span><br><span style="color: hsl(120, 100%, 40%);">+                    bucket_Full_Ratio := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                    flow_Control_Granularity := omit</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%);">+     template (present) PDU_BSSGP tr_BVC_FC_MS(template (present) GprsTlli tlli := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                template (present) uint16_t bmax := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                template (present) uint16_t bucket_leak_rate := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            template (present) OCT1 tag := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+              pDU_BSSGP_FLOW_CONTROL_MS := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        bssgpPduType := '28'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        tLLI := ts_BSSGP_TLLI(tlli),</span><br><span style="color: hsl(120, 100%, 40%);">+                  tag := {</span><br><span style="color: hsl(120, 100%, 40%);">+                              iEI := '1E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 1</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            unstructured_Value := tag</span><br><span style="color: hsl(120, 100%, 40%);">+                     },</span><br><span style="color: hsl(120, 100%, 40%);">+                    mS_Bucket_Size := {</span><br><span style="color: hsl(120, 100%, 40%);">+                           iEI := '12'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 2</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            bmax := f_oct_or_wc(bmax, 2)</span><br><span style="color: hsl(120, 100%, 40%);">+                  },</span><br><span style="color: hsl(120, 100%, 40%);">+                    bucket_Leak_Rate := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         iEI := '03'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 2</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            r_Value := f_oct_or_wc(bucket_leak_rate, 2)</span><br><span style="color: hsl(120, 100%, 40%);">+                   },</span><br><span style="color: hsl(120, 100%, 40%);">+                    bucket_Full_Ratio := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                       flow_Control_Granularity := *</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%);">+   template (value) PDU_BSSGP ts_BVC_FC_MS_ACK(template (value) GprsTlli tlli,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               template (value) OCT1 tag) := {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         pDU_BSSGP_FLOW_CONTROL_MS_ACK := {</span><br><span style="color: hsl(120, 100%, 40%);">+                    bssgpPduType := '29'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        tLLI := ts_BSSGP_TLLI(tlli),</span><br><span style="color: hsl(120, 100%, 40%);">+                  tag := {</span><br><span style="color: hsl(120, 100%, 40%);">+                              iEI := '1E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 1</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            unstructured_Value := tag</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%);">+     template (present) PDU_BSSGP tr_BVC_FC_MS_ACK(template (present) GprsTlli tlli,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     template (present) OCT1 tag := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                pDU_BSSGP_FLOW_CONTROL_MS_ACK := {</span><br><span style="color: hsl(120, 100%, 40%);">+                    bssgpPduType := '29'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        tLLI := tr_BSSGP_TLLI(tlli),</span><br><span style="color: hsl(120, 100%, 40%);">+                  tag := {</span><br><span style="color: hsl(120, 100%, 40%);">+                              iEI := '1E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                  length1 := 1</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            unstructured_Value := tag</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>  template PDU_BSSGP ts_BSSGP_STATUS(template BssgpBvci bvci, template BssgpCause cause,</span><br><span>                                          PDU_BSSGP pdu) := {</span><br><span>               pDU_BSSGP_STATUS := {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635">change 21635</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/+/21635"/><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: Ie087ee8e8adfb963d21f35c60628214d4297250d </div>
<div style="display:none"> Gerrit-Change-Number: 21635 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </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: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>