<p>neels <strong>uploaded patch set #3</strong> to this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15938">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">msc: overhaul voice call testing<br><br>* Semantic:<br><br>We don't really know which side the MSC first creates a CRCX for. Instead of<br>assuming that the RAN side is always CRCX'd first, simply handle a "first" and<br>a "second" CRCX, not making any assumptions which is for which side.<br>Notably, there still are quite a few places assuming which CRCX corresponds to<br>the RAN/CN side, but the changes are sufficient to still pass the tests when<br>osmo-msc swaps the CRCX order; sometimes for slightly obscure reasons, for<br>example because it doesn't matter that the wrong port number is returned during<br>a subsequent MDCX... Cleaning up the rest is still todo for later.<br><br>Remove code dup from call establishing code, particularly for MGCP.<br><br>Use f_mo_call_establish() and f_mt_call() where ever possible, to make all of<br>the call establishing tests handle upcoming changes in osmo-msc's order of<br>messages, without re-implementing the changes for each test individually.<br><br>The X-Osmux parameter was so far expected to appear in the first CRCX received,<br>assuming that this first CRCX is for the RAN.  Instead, detect whether X-Osmux<br>is contained in a CRCX, and reply with an Osmux CID if so, regardless of it<br>being the first or second CRCX.  Count the number of X-Osmux parameters<br>received in CRCX messages, and compare after call setup to verify X-Osmux<br>presence.<br><br>Since f_mo_call_establish() can't handle RANAP assignment, a few Iu tests that<br>worked with the older code dup will break by this patch. This is fixed by a<br>subsequent patch, see I0ead36333ab665147b8d222070ea5cf8afc555ec.<br><br>* Details, per patch chunk:<br><br>Change ts_BSSMAP_IE_AoIP_TLA4 to a non-value template, so that we can use a<br>wildcard for the assigned port number from MGCP (depending on RAN or CN CRCX<br>first, the RAN port number can be one or the other).<br><br>In CallParameters, move MGCP handling instructions into a separate record<br>"CrcxResponse", and have two of them for handling the first and the second<br>CRCX, replacing mgw_rtp_{ip,port}_{bss,mss} and mgcp_connection_id_{bss,mss}.<br><br>In CallParameters, add some flags for early-exiting call establishment with a<br>particular desired behavior, for specialized tests.<br><br>In CallParameters, use common default values and don't repeat them in each and<br>every call establishing test.<br><br>Set cpars.mo_call := {true,false} implicitly when f_{mo,mt}_call_establish()<br>are invoked.<br><br>Remove CRCX comments implying RAN or CN side, instead just talk of the "first"<br>and the "second" CRCX.<br><br>Implement one common f_handle_crcx() function, which is used by<br>f_mo_call_establish(), f_mt_call_complete(), as_optional_mgcp_crcx(), and<br>implicitly uses the first/second CRCX handling.<br><br>For Assigment, use a wildcard RTP port so that we don't have to assume which<br>CRCX was for the RAN side.<br><br>In f_mo_call_establish(), insert special case conditions to make it enact<br>errors at specific times, for individual tests. That saves re-implementing the<br>entire call establishment (code dup).<br><br>For error cases, add expectation of a CC Release message in the call<br>establishment. This should not apply for normal successful operation, but<br>because interleave does not support conditionals, add flags<br>got_mncc_setup_compl_ind and got_cc_connect to break the interleave when<br>establishing is complete, so that the CC Release is skipped.<br>A CC Release always breaks the interleave, at whatever time it arrives.<br><br>Tests adopting f_{mo,mt}_call instead of code dup:<br>  f_tc_mo_setup_and_nothing()<br>  f_tc_mo_crcx_ran_timeout()<br>  f_tc_mo_crcx_ran_reject()<br>  f_tc_mo_release_timeout()<br>  f_tc_mo_cc_bssmap_clear()<br><br>Change-Id: I8b82476f55a98f7a94d5c4f1cd80eac427b2d20f<br>---<br>M library/BSSMAP_Templates.ttcn<br>M msc/BSC_ConnectionHandler.ttcn<br>M msc/MSC_Tests.ttcn<br>3 files changed, 292 insertions(+), 335 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/38/15938/3</pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15938">change 15938</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/+/15938"/><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: I8b82476f55a98f7a94d5c4f1cd80eac427b2d20f </div>
<div style="display:none"> Gerrit-Change-Number: 15938 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newpatchset </div>