Project

General

Profile

Actions

Feature #1602

closed

BSC side of LCLS (local call local switching) as per the 3GPP specs

Added by laforge about 8 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Start date:
02/23/2016
Due date:
% Done:

100%

Spec Reference:
Tags:

Description

Some deployments use OsmoBSC with its support to connect to multiple MSCs simultaneously in order to have local call switching.

Let's study the 3GPP LCLS feature and see how that can help us in that regard, maybe it has a better/cleaner/more standard way to do it?


Checklist

  • LCLS implementation in OsmoBSC
  • test suite to test LCLS in OsmoBSC
  • jenkins / CI integration of test suite
  • wireshark support
  • prevent LCLS enabling on calls of different codecs
  • add vty/config command to enable/disable LCLS on per-MSC basis
  • logging of related BSSMAP messages, not just FSM auto-logging

Related issues

Related to OsmoMSC - Feature #2487: MSC side of LCLS (local call local switching) as per the 3GPP specsStalledkeith09/03/2017

Actions
Related to OsmoBSC - Feature #3586: support LCLS for inter-BSC handoverNewneels09/24/2018

Actions
Related to OsmoBSC - Feature #3659: handover during LCLS directly between BTSsStalleddexter10/17/2018

Actions
Actions #1

Updated by laforge over 7 years ago

  • Assignee set to wirelesss
  • Priority changed from Low to Normal

please review the specs (or other information you can find online) regarding LCLS and try to summarize how it works in a small set of slides you can show to the team.

Actions #2

Updated by wirelesss about 7 years ago

  • Status changed from New to In Progress

I have started to read and collect information about local call local switching.

Actions #3

Updated by laforge about 7 years ago

  • Status changed from In Progress to New
  • Assignee changed from wirelesss to laforge
Actions #4

Updated by laforge over 6 years ago

  • Project changed from OsmoNITB to OsmoBSC
  • Assignee deleted (laforge)
Actions #5

Updated by laforge over 6 years ago

  • Related to Feature #2487: MSC side of LCLS (local call local switching) as per the 3GPP specs added
Actions #6

Updated by laforge over 6 years ago

  • Subject changed from Investigate LCLS (local call local switching) as per the 3GPP specs to BSC side of LCLS (local call local switching) as per the 3GPP specs
Actions #7

Updated by laforge over 6 years ago

  • Checklist item LCLS implementation in OsmoBSC added
  • Checklist item test suite to test LCLS in OsmoBSC added
  • Checklist item jenkins / CI integration of test suite added
Actions #8

Updated by laforge over 6 years ago

  • Target version set to 3GPP LCLS
Actions #9

Updated by laforge about 6 years ago

  • Priority changed from Normal to High
Actions #10

Updated by laforge about 6 years ago

  • Assignee set to neels
Actions #11

Updated by laforge almost 6 years ago

  • Tags set to LCLS
Actions #12

Updated by laforge almost 6 years ago

  • Status changed from New to In Progress
  • Assignee changed from neels to laforge
  • % Done changed from 0 to 20
I've been making some headway on this in the laforge/lcls branches:

both need quite some more work, but I think I've figured out the state machine with all of its transitions by now.

Actions #13

Updated by laforge almost 6 years ago

I've made significant progress on the testing side, although I hit a Titan compiler bug (see https://www.eclipse.org/forums/index.php/t/1093530/) as well as some shortcomings in our *_Emulation components, see https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9403/

Actions #14

Updated by laforge almost 6 years ago

  • Checklist item wireshark support added
  • % Done changed from 20 to 30

during the first tests, it became apparent that wireshark wasn't able to decode LCLS specific PDUs. I've created a patch and submitted it at https://code.wireshark.org/review/#/c/27941/

Actions #15

Updated by laforge almost 6 years ago

  • Checklist item prevent LCLS enabling on calls of different codecs added
  • % Done changed from 30 to 70

the tests for LCLS related signaling are rather complete now, and they all pass with my latest version of the OsmoBSC LCLS FSM.

The only missing bit now is to actually implement the body of the functions that enable/disable the local switching of the voice, i.e. that issue the MGCP commands.

Thinking about it:

  • enable LCLS for a given call
    • Issue MGCP MDCX on MSC-side connection on MGCP endpoint of call A to point to IP/Port of call B
    • Issue MGCP MDCX on MSC-side connection on MGCP endpoint of call B to point to IP/Port of call A
  • disable LCLS for a given call
    • Issue MGCP MDCX on MSC-side connection on MGCP endpoint of call A to point back to MSC/MGW
    • Issue MGCP MDCX on MSC-side connection on MGCP endpoint of call B to point back to MSC/MGW

So we have to cache the ip/port information of the MGW/MSC during ongoing local switching, as we don't receive that information [again] once we switch back.

Known limitation: Until the MGW can perform transcoding, calls with mis-matching codecs will break. We should add some provision into OsmoBSC that would prevent activating LCLS on two calls of different codecs until the MGW can transcode.

There will also be LCLS implications at the time we do inter-BSC hand-over. This will have to be looked into once inter-BSC HO is merged.

Actions #16

Updated by laforge almost 6 years ago

laforge wrote:

during the first tests, it became apparent that wireshark wasn't able to decode LCLS specific PDUs. I've created a patch and submitted it at https://code.wireshark.org/review/#/c/27941/

wireshark patch is already accepted / merged to master.

Actions #17

Updated by laforge almost 6 years ago

  • Checklist item add vty/config command to enable/disable LCLS on per-MSC basis added
  • Checklist item logging of related BSSMAP messages, not just FSM auto-logging added
Actions #18

Updated by laforge almost 6 years ago

  • % Done changed from 70 to 90

https://gerrit.osmocom.org/#/c/osmo-bsc/+/9416 has been updated. It now actually performs local switching via MGCP MDCX re-configuration of OsmoMGW.

The test suite in https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9412 has equally been extended to verify the actual MGCP user plane switching functionality.

Actions #19

Updated by laforge almost 6 years ago

  • Checklist item LCLS implementation in OsmoBSC set to Done
  • Checklist item test suite to test LCLS in OsmoBSC set to Done
  • Checklist item logging of related BSSMAP messages, not just FSM auto-logging set to Done
Actions #20

Updated by laforge almost 6 years ago

  • Checklist item add vty/config command to enable/disable LCLS on per-MSC basis set to Done

bsc code + testsuite has been merged to respective master branch, and VTY config option to enable/disalbe LCLS has been added. Working on CI execution of tests now.

Actions #21

Updated by laforge almost 6 years ago

  • Checklist item jenkins / CI integration of test suite set to Done
Actions #22

Updated by laforge over 5 years ago

  • Assignee changed from laforge to dexter

the only remaining bit is to ensure LCLS is not enabled on calls that have different codecs on both legs (at least until we have working transcoding in osmo-mgw).

As I'm leaving on holidays soon, it would be good if dexter could take care of this last missing bit, including related TTCN3 tests

Actions #23

Updated by dexter over 5 years ago

I have now added a check that tests the two call legs for different codec/rate. If codec/rate is different, then LCLS will be avoided. However, I am a bit unsure about the status codes here. At the moment the status code I see is LCLS_STS_not_yet_ls. I am not sure if this is right, but it must be the same as with the other conditions in lcls_enable_possible()

See also:
https://gerrit.osmocom.org/#/c/osmo-bsc/+/9940 lcls: do not LCLS call legs with different codecs
https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/9941 BSC_Tests_LCLS: try call legs with different codec/rate

Actions #24

Updated by dexter over 5 years ago

  • Checklist item prevent LCLS enabling on calls of different codecs set to Done
Actions #25

Updated by dexter over 5 years ago

  • % Done changed from 90 to 100
Actions #26

Updated by laforge over 5 years ago

  • Status changed from In Progress to Resolved

if it's at 100%, it can be resolved.

Actions #27

Updated by dexter over 5 years ago

  • % Done changed from 100 to 90

Its not fully done yet. There is one patch that is still in review: https://gerrit.osmocom.org/#/c/osmo-bsc/+/9940/

Actions #28

Updated by dexter over 5 years ago

  • % Done changed from 90 to 100

The patch is through. I think we are now done here.

Actions #29

Updated by dexter over 5 years ago

  • Status changed from Resolved to In Progress
  • % Done changed from 100 to 90

The TTCN3 test (TC_lcls_gcr_bway_codec_mismatch) that tests this still does not pass, we need to check why.

Actions #30

Updated by dexter over 5 years ago

The reason why TC_lcls_gcr_bway_codec_mismatch does not pass anymore is because there were API changes and LCLSs was using abandoned struct members. This is now fixed.

See also: https://gerrit.osmocom.org/#/c/osmo-bsc/+/10905

Actions #31

Updated by dexter over 5 years ago

The patch is through, but on jenkins one can see that now the following LCLS related tests are failing:

TC_lcls_connect_break
TC_lcls_connect_clear
TC_lcls_gcr_bway_connect
TC_lcls_gcr_bway_connect_hr

This might be unrelated to this issue, but we certainly must check this. It is also very suspicious that just when TC_lcls_gcr_bway_codec_mismatch stops failing the others start to fail.

Actions #32

Updated by neels over 5 years ago

  • Related to Feature #3586: support LCLS for inter-BSC handover added
Actions #33

Updated by laforge over 5 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

I'll close this issue as LCLS support is implemented. That fact that either our test suite or the implementation still has a bug doesn't change that fact.

Actions #34

Updated by dexter over 5 years ago

Yes, lets close it. The TTCN3 tests also pass fine now.

Actions #35

Updated by msuraev over 5 years ago

  • Related to Feature #3659: handover during LCLS directly between BTSs added
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)