Bug #2544

IPA/SCCPlite not fully supported from new osmo-bsc.git

Added by laforge 7 months ago. Updated 3 days ago.

A interface
Target version:
Start date:
Due date:
% Done:


Spec Reference:


During the migration from openbsc.git to osmo-bsc.git we introduced libosmo-sigtran as the A interface transport and have validated both M3UA and SUA. Hoewer, the partial implementation of IPA/SCCPlite has never been completed and/or tested.

We should re-introduce this capability in order to deprecate osmo-bsc-sccplite which is built in the old openbsc.git repository.

ipa.diff Magnifier - osmo-bsc patch to switch from M3UA To IPA (584 Bytes) laforge, 04/17/2018 07:50 PM


#1 Updated by laforge 6 months ago

  • Assignee set to laforge

#2 Updated by laforge 6 months ago

  • Priority changed from Normal to Low

#3 Updated by laforge 4 months ago

  • Category set to A interface

#4 Updated by laforge 13 days ago

  • Priority changed from Low to High

I've been brainstorming a bit and have come up with the following ideas on how to do this:

SCCPlite in osmo-bsc

Compared to the existing 3GPP AoIP code, we need to do (only!):

  • skip all AoIP transport address bits,
    • instead determine MGCP endpoint from ASSIGNMENT CMD CIC
  • skip the MSC-side MGCP connection (+fsm)
  • keep the BTS-side MGCP connection to the MGW
  • have MSC talk directly to bsc MGW using MGCP

MGCP inside IPA in osmo-bsc

The bsc-nat may send MGCP inside the same IPA connection as used for SCCPlite (for NAT traversal):

  • IPA-to-UDP proxy for OSMO_EXT_MTCP sub-stream (inside libosmo-sigtran ipa.c)
    • extract MGCP command from IPA MGCP sub-stream and re-inject via local UDP socket (emulating call-agent)
    • received data on local UDP socket is passed into IPA MGCP sub-stream
  • need to use different IP address for call agent than the BSC-internal one dealing with the BTS-side MGCP connection!

CTRL commands via IPA in osmo-bsc

the msc/bsc_nat may send CTRL commands inside the same IPA connection that also passes SCCPlite (for NAT traversal)

  • IPA-to-IPA proxy for OSMO_EXT_CTRL sub-stream (inside libosmo-siggtran ipa.c)
    • extract OSMO_EXT_CTRL from SCCPlite link, put into another IPA link (CTRL to bsc or other local process)
    • take OSMO_EXT_CTRL from other local IPA link and put into SCCPlite link
    • could alternatively dispatch internally using ctrl_cmd_handle() or the like

TTCN-3 tests for SCCPlite

  • MGCP CRCX+MDCX for CN side connection
  • MGCP via UDP and IPA

This should all exist to some extent in the bsc_nat testsuite

#5 Updated by laforge 3 days ago

  • File ipa.diffMagnifier added
  • Status changed from New to Stalled
  • % Done changed from 0 to 10

Using 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.

#6 Updated by laforge 3 days ago

the following tests start to fail with the above-mentioned hack to switch from M3UA to IPA:

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

the reasons have not yet been analyzed. The assignment related failures were expected, but many others don't have an obvious explanation yet.

Also available in: Atom PDF