https://projects.osmocom.org/https://projects.osmocom.org/favicon.ico?16647414092017-10-29T18:34:42ZOpen Source Mobile CommunicationsOsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=59722017-10-29T18:34:42Zlaforge
<ul><li><strong>Assignee</strong> set to <i>laforge</i></li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=59732017-10-29T18:34:51Zlaforge
<ul><li><strong>Priority</strong> changed from <i>Normal</i> to <i>Low</i></li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=67192017-12-10T20:32:13Zlaforge
<ul><li><strong>Category</strong> set to <i>A interface</i></li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=87292018-04-08T00:19:55Zlaforge
<ul><li><strong>Priority</strong> changed from <i>Low</i> to <i>High</i></li></ul><p>I've been brainstorming a bit and have come up with the following ideas on how to do this:</p>
<a name="SCCPlite-in-osmo-bsc"></a>
<h2 >SCCPlite in osmo-bsc<a href="#SCCPlite-in-osmo-bsc" class="wiki-anchor">¶</a></h2>
<p>Compared to the existing 3GPP AoIP code, we need to do (only!):</p>
<ul>
<li>skip all AoIP transport address bits,
<ul>
<li>instead determine MGCP endpoint from ASSIGNMENT CMD CIC</li>
</ul>
</li>
<li>skip the MSC-side MGCP connection (+fsm)</li>
<li>keep the BTS-side MGCP connection to the MGW</li>
<li>have MSC talk directly to bsc MGW using MGCP</li>
</ul>
<a name="MGCP-inside-IPA-in-osmo-bsc"></a>
<h2 >MGCP inside IPA in osmo-bsc<a href="#MGCP-inside-IPA-in-osmo-bsc" class="wiki-anchor">¶</a></h2>
<p>The bsc-nat may send MGCP inside the same IPA connection as used for SCCPlite (for NAT traversal):</p>
<ul>
<li>IPA-to-UDP proxy for OSMO_EXT_MTCP sub-stream (inside libosmo-sigtran ipa.c)
<ul>
<li>extract MGCP command from IPA MGCP sub-stream and re-inject via local UDP socket (emulating call-agent)</li>
<li>received data on local UDP socket is passed into IPA MGCP sub-stream</li>
</ul>
</li>
<li>need to use different IP address for call agent than the BSC-internal one dealing with the BTS-side MGCP connection!</li>
</ul>
<a name="CTRL-commands-via-IPA-in-osmo-bsc"></a>
<h2 >CTRL commands via IPA in osmo-bsc<a href="#CTRL-commands-via-IPA-in-osmo-bsc" class="wiki-anchor">¶</a></h2>
<p>the msc/bsc_nat may send CTRL commands inside the same IPA connection that also passes SCCPlite (for NAT traversal)</p>
<ul>
<li>IPA-to-IPA proxy for OSMO_EXT_CTRL sub-stream (inside libosmo-siggtran ipa.c)
<ul>
<li>extract OSMO_EXT_CTRL from SCCPlite link, put into another IPA link (CTRL to bsc or other local process)</li>
<li>take OSMO_EXT_CTRL from other local IPA link and put into SCCPlite link</li>
<li>could alternatively dispatch internally using ctrl_cmd_handle() or the like</li>
</ul></li>
</ul>
<a name="TTCN-3-tests-for-SCCPlite"></a>
<h2 >TTCN-3 tests for SCCPlite<a href="#TTCN-3-tests-for-SCCPlite" class="wiki-anchor">¶</a></h2>
<ul>
<li>ASSIGNMENT with CIC</li>
<li>MGCP CRCX+MDCX for CN side connection</li>
<li>MGCP via UDP and IPA</li>
</ul>
<p>This should all exist to some extent in the bsc_nat testsuite</p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=89332018-04-17T19:51:14Zlaforge
<ul><li><strong>File</strong> <a href="/attachments/3069">ipa.diff</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/3069/ipa.diff">ipa.diff</a> added</li><li><strong>Status</strong> changed from <i>New</i> to <i>Stalled</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>10</i></li></ul><p>Using <a class="external" href="https://gerrit.osmocom.org/7860">https://gerrit.osmocom.org/7860</a> and a very trivial patch to osmo-bsc, I can make at least parts of the existing BSC_Tests.ttcn run against osmo-bsc over IPA/SCCPlite on TCP port 5000.</p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=89382018-04-17T20:20:11Zlaforge
<ul></ul><p>the following tests start to fail with the above-mentioned hack to switch from M3UA to IPA:<br /><pre>
pass->FAIL BSC_Tests.TC_ctrl
pass->FAIL BSC_Tests.TC_chan_rel_rll_rel_ind
pass->FAIL BSC_Tests.TC_chan_rel_conn_fail
pass->FAIL BSC_Tests.TC_chan_rel_hard_clear
pass->FAIL BSC_Tests.TC_chan_rel_a_reset
pass->FAIL BSC_Tests.TC_assignment_cic_only
pass->FAIL BSC_Tests.TC_assignment_csd
pass->FAIL BSC_Tests.TC_assignment_ctm
pass->FAIL BSC_Tests.TC_assignment_fr_a5_0
pass->FAIL BSC_Tests.TC_assignment_fr_a5_1
pass->FAIL BSC_Tests.TC_assignment_fr_a5_1_codec_missing
pass->FAIL BSC_Tests.TC_assignment_fr_a5_3
pass->FAIL BSC_Tests.TC_assignment_fr_a5_4
pass->FAIL BSC_Tests.TC_assignment_codec_fr
pass->FAIL BSC_Tests.TC_assignment_codec_hr
pass->FAIL BSC_Tests.TC_assignment_codec_efr
pass->FAIL BSC_Tests.TC_assignment_codec_amr_f
pass->FAIL BSC_Tests.TC_assignment_codec_amr_h
pass->FAIL BSC_Tests.TC_classmark
pass->FAIL BSC_Tests.TC_unsol_ass_fail
pass->FAIL BSC_Tests.TC_unsol_ass_compl
pass->FAIL BSC_Tests.TC_unsol_ho_fail
pass->FAIL BSC_Tests.TC_err_82_short_msg
pass->FAIL BSC_Tests.TC_err_84_unknown_msg
pass->FAIL BSC_Tests.TC_ho_int
</pre></p>
<p>the reasons have not yet been analyzed. The assignment related failures were expected, but many others don't have an obvious explanation yet.</p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=94792018-05-24T18:15:50Zlaforge
<ul><li><strong>File</strong> <a href="/attachments/3154">osmo-bsc.cfg.ipa</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/3154/osmo-bsc.cfg.ipa">osmo-bsc.cfg.ipa</a> added</li><li><strong>File</strong> <a href="/attachments/3155">BSC_Tests.cfg</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/3155/BSC_Tests.cfg">BSC_Tests.cfg</a> added</li><li><strong>Status</strong> changed from <i>Stalled</i> to <i>In Progress</i></li><li><strong>% Done</strong> changed from <i>10</i> to <i>20</i></li></ul>Good news: With the following two modifications, I was able to get most of the BSC_Tests case tests to pass over IPA/SCCPlite:
<ul>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9293/">https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9293/</a></li>
<li>use the "point-code override dpc 0.23.1" in the osmo-bsc.cfg (see full example attached)</li>
</ul>
<pre>
Comparing expected results ./expected-results.xml against results in junit-xml-471.log
--------------------
pass BSC_Tests.TC_ctrl_msc_connection_status
pass BSC_Tests.TC_ctrl_msc0_connection_status
pass BSC_Tests.TC_ctrl
pass BSC_Tests.TC_chan_act_noreply
pass BSC_Tests.TC_chan_act_counter
pass BSC_Tests.TC_chan_act_ack_noest
pass BSC_Tests.TC_chan_act_ack_est_ind_noreply
pass BSC_Tests.TC_chan_act_ack_est_ind_refused
pass BSC_Tests.TC_chan_act_nack
pass BSC_Tests.TC_chan_exhaustion
pass BSC_Tests.TC_chan_rel_rll_rel_ind
pass BSC_Tests.TC_chan_rel_conn_fail
pass BSC_Tests.TC_chan_rel_hard_clear
pass BSC_Tests.TC_chan_rel_hard_rlsd
pass BSC_Tests.TC_chan_rel_a_reset
pass BSC_Tests.TC_outbound_connect
pass BSC_Tests.TC_assignment_cic_only
pass BSC_Tests.TC_assignment_csd
pass BSC_Tests.TC_assignment_ctm
xfail BSC_Tests.TC_assignment_sign
pass BSC_Tests.TC_assignment_fr_a5_0
pass BSC_Tests.TC_assignment_fr_a5_1
pass BSC_Tests.TC_assignment_fr_a5_1_codec_missing
pass BSC_Tests.TC_assignment_fr_a5_3
pass BSC_Tests.TC_assignment_fr_a5_4
pass BSC_Tests.TC_ciph_mode_a5_0
pass BSC_Tests.TC_ciph_mode_a5_1
pass BSC_Tests.TC_ciph_mode_a5_3
pass BSC_Tests.TC_assignment_codec_fr
pass BSC_Tests.TC_assignment_codec_hr
pass BSC_Tests.TC_assignment_codec_efr
pass BSC_Tests.TC_assignment_codec_amr_f
pass BSC_Tests.TC_assignment_codec_amr_h
pass BSC_Tests.TC_rll_est_ind_inact_lchan
pass BSC_Tests.TC_rll_est_ind_inval_sapi1
pass BSC_Tests.TC_rll_est_ind_inval_sapi3
pass BSC_Tests.TC_rll_est_ind_inval_sacch
pass BSC_Tests.TC_paging_imsi_nochan
pass BSC_Tests.TC_paging_tmsi_nochan
pass BSC_Tests.TC_paging_tmsi_any
pass BSC_Tests.TC_paging_tmsi_sdcch
pass BSC_Tests.TC_paging_tmsi_tch_f
pass BSC_Tests.TC_paging_tmsi_tch_hf
pass BSC_Tests.TC_paging_imsi_nochan_cgi
pass BSC_Tests.TC_paging_imsi_nochan_lac_ci
pass BSC_Tests.TC_paging_imsi_nochan_ci
xfail BSC_Tests.TC_paging_imsi_nochan_lai
xfail BSC_Tests.TC_paging_imsi_nochan_lac
pass BSC_Tests.TC_paging_imsi_nochan_all
pass BSC_Tests.TC_paging_imsi_nochan_plmn_lac_rnc
pass BSC_Tests.TC_paging_imsi_nochan_rnc
pass BSC_Tests.TC_paging_imsi_nochan_lac_rnc
pass BSC_Tests.TC_paging_imsi_nochan_lacs
pass BSC_Tests.TC_paging_imsi_nochan_lacs_empty
pass BSC_Tests.TC_paging_imsi_nochan_cgi_unknown_cid
pass BSC_Tests.TC_paging_imsi_a_reset
pass BSC_Tests.TC_paging_imsi_load
pass BSC_Tests.TC_paging_counter
pass BSC_Tests.TC_rsl_drop_counter
pass BSC_Tests.TC_rsl_unknown_unit_id
pass BSC_Tests.TC_oml_unknown_unit_id
pass BSC_Tests.TC_classmark
pass BSC_Tests.TC_unsol_ass_fail
pass BSC_Tests.TC_unsol_ass_compl
pass BSC_Tests.TC_unsol_ho_fail
pass BSC_Tests.TC_err_82_short_msg
pass BSC_Tests.TC_err_84_unknown_msg
pass BSC_Tests.TC_ho_int
pass BSC_Tests.TC_bssap_rlsd_does_not_cause_bssmap_reset
xfail BSC_Tests.TC_bssmap_clear_does_not_cause_bssmap_reset
xfail BSC_Tests.TC_ms_rel_ind_does_not_cause_bssmap_reset
pass->FAIL BSC_Tests.TC_dyn_pdch_ipa_act_deact
pass->FAIL BSC_Tests.TC_dyn_pdch_ipa_act_nack
pass->FAIL BSC_Tests.TC_dyn_pdch_osmo_act_deact
pass->FAIL BSC_Tests.TC_dyn_pdch_osmo_act_nack
</pre>
<p>So this menas we're down to the following four cases that render different results whether used via M3UA or IPA:<br /><pre>
pass->FAIL BSC_Tests.TC_dyn_pdch_ipa_act_deact
pass->FAIL BSC_Tests.TC_dyn_pdch_ipa_act_nack
pass->FAIL BSC_Tests.TC_dyn_pdch_osmo_act_deact
pass->FAIL BSC_Tests.TC_dyn_pdch_osmo_act_nack
</pre></p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=95042018-05-25T17:27:55Zlaforge
<ul><li><strong>% Done</strong> changed from <i>20</i> to <i>50</i></li></ul>See
<ul>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-bsc/+/9316">https://gerrit.osmocom.org/#/c/osmo-bsc/+/9316</a></li>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-bsc/+/9317">https://gerrit.osmocom.org/#/c/osmo-bsc/+/9317</a></li>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-bsc/+/9318">https://gerrit.osmocom.org/#/c/osmo-bsc/+/9318</a></li>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-bsc/+/9319">https://gerrit.osmocom.org/#/c/osmo-bsc/+/9319</a></li>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-bsc/+/9320">https://gerrit.osmocom.org/#/c/osmo-bsc/+/9320</a></li>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-bsc/+/9321">https://gerrit.osmocom.org/#/c/osmo-bsc/+/9321</a></li>
<li><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-bsc/+/9322">https://gerrit.osmocom.org/#/c/osmo-bsc/+/9322</a></li>
</ul>
With those above patches I get
<ul>
<li>IPA/SCCPlite established to BSC_Tests.ttcn (in IPA mode)</li>
<li>OsmoBSC uses "1@mgw" for the MGCP endpoint name, derived from CIC in BSSMAP ASSIGNMENT REQ</li>
<li>OsmoBSC skips creating/modifying the MSC-side MGCP connection while still doing IPA CRCX/MDCX and the BTS-side connection</li>
</ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=95052018-05-25T18:14:18Zlaforge
<ul><li><strong>% Done</strong> changed from <i>50</i> to <i>60</i></li></ul><p><a class="external" href="https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9323">https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9323</a> and <a class="external" href="https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9324">https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9324</a> should bring BSC_Tests.ttcn to fully pass both on AoIP and on SCCPlite (tests still running)</p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=95072018-05-25T19:10:15Zlaforge
<ul><li><strong>Related to</strong> <i><a class="issue tracker-1 status-3 priority-2 priority-default closed" href="/issues/2536">Bug #2536</a>: MGCP tunneling missing from IPA support in libosmo-sigtran</i> added</li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=95092018-05-25T19:11:49Zlaforge
<ul><li><strong>Related to</strong> <i><a class="issue tracker-1 status-3 priority-3 priority-high3 closed" href="/issues/2012">Bug #2012</a>: CTRL interface encapsulation over IPA link is missing when using libosmo-sigtran</i> added</li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=95112018-05-25T19:12:23Zlaforge
<ul></ul><p>all patches mentioned before have been merged (both to OsmoBSC and BSC_Tests.ttcn). I guess we're pretty much at a point where it would be worth testing it against a 3rd party MSC.</p>
<p>Please note only direct connections between the MSC and the OsmoBSC will work, not via bsc-nat, as the latter expects MGCP (<a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Bug: MGCP tunneling missing from IPA support in libosmo-sigtran (Resolved)" href="https://projects.osmocom.org/issues/2536">#2536</a>) and possibly CTRL (<a class="issue tracker-1 status-3 priority-3 priority-high3 closed" title="Bug: CTRL interface encapsulation over IPA link is missing when using libosmo-sigtran (Resolved)" href="https://projects.osmocom.org/issues/2012">#2012</a>) tunneling via the IPA multiplex, and also might want to use osmux.</p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=96172018-05-30T14:14:29Zlaforge
<ul><li><strong>Tags</strong> set to <i>SCCPlite</i></li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=97382018-06-03T21:15:47Zlaforge
<ul></ul><p>the BSC_Tests.ttcn testsuite using a SCCPlite configuration for both test + OsmoBSC is now executed at <a class="external" href="https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test-sccplite/">https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test-sccplite/</a> with results published at <a class="external" href="https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test-sccplite/test_results_analyzer/">https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test-sccplite/test_results_analyzer/</a></p>
<p>results re looking very good, actually slightly better than AoIP (probably some regression in the tests that I introduced in <code>TC_assignment_cic_only</code>).</p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=102192018-07-04T12:46:35Zlaforge
<ul><li><strong>Assignee</strong> changed from <i>laforge</i> to <i>neels</i></li><li><strong>% Done</strong> changed from <i>60</i> to <i>90</i></li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=103142018-07-16T14:12:26Zneelsnhofmeyr@sysmocom.de
<ul></ul><p>During testing against an actual SCCPlite MSC, I identified various problems still. Linking to issues...</p> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=103152018-07-16T14:12:44Zneelsnhofmeyr@sysmocom.de
<ul><li><strong>Related to</strong> <i><a class="issue tracker-1 status-3 priority-2 priority-default closed" href="/issues/3391">Bug #3391</a>: SCCPlite SIGTRAN fails to acknowledge an IPA Identity ACK when the connection is established, expects Identity GET instead</i> added</li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=103172018-07-16T14:12:52Zneelsnhofmeyr@sysmocom.de
<ul><li><strong>Related to</strong> <i><a class="issue tracker-1 status-6 priority-2 priority-default closed" href="/issues/3392">Bug #3392</a>: SCCPlite: xua_asp_fsm.c hardcodes a routing key</i> added</li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=103192018-07-16T14:12:58Zneelsnhofmeyr@sysmocom.de
<ul><li><strong>Related to</strong> <i><a class="issue tracker-1 status-3 priority-2 priority-default closed" href="/issues/3393">Bug #3393</a>: SCCPlite: memory leak upon receiving xua_msg</i> added</li></ul> OsmoBSC - Bug #2544: IPA/SCCPlite not fully supported from new osmo-bsc.githttps://projects.osmocom.org/issues/2544?journal_id=112962018-09-12T13:38:45Zneelsnhofmeyr@sysmocom.de
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Resolved</i></li><li><strong>% Done</strong> changed from <i>90</i> to <i>100</i></li></ul><p>All patches to get osmo-bsc working against an SCCPlite MSC have been merged to master.<br />Everything from USSD through voice calls works.</p>
<p>As always, there may be remaining issues with corner cases or other MSC vendors, but let's close this initial issue.</p>