Roadmap
OsmoGSMTester - 3G support
open3GPP LCLS
open- Table of contents
- Local Call Local Switch
Local Call Local Switch¶
In the classic 3GPP architecture, all calls go from BTS to BSC to MSC, only then to go back all the same way in case the second call leg is also in the same cell. Particularly in case of statellite or other expensive/slow back-haul this is far from ideal.
Using LCLS, a BSC can know which of the two call legs belong to one call, and can then directly bridge the RTP/media locally.
Affected messages¶
BSSMAP ASSIGNMENT REQUEST¶
This message may contain the following, LCLS related IEs:- Global Call Reference
- LCLS Configuration
- LCLS Connection Status Control
- LCLS Correlation Not Needed
Using those LCLS related IEs, the MSC can grant the BSS to elect to use LCLS for this call [leg].
BSSMAP ASSIGNMENT COMPLETE¶
- LCLS BSS Status
Using this, the BSC can inform the MSC on whether or not LCLS was enabled.
BSSMAP HANDOVER REQUEST¶
- Global Call Reference
- LCLS Configuration
- LCLS Connection Status Control
Request from MSC to target BSC. The MSC specifies which kind of LCLS (if any) is permitted and/or requested.
BSSMAP HANDOVER REQUEST ACK¶
- LCLS BSS Status
Acknowledgement from target BSC to MSC in response to a BSSMAP HANDOVER REQUEST
.
The LCLS BSS Status contains the [possibly modified] LCLS status for the call.
BSSMAP HANDOVER COMPLETE¶
- LCLS BSS Status
Informs the MSC that the MS has successfully accessed the target cell. The LCLS BSS Status contains the [possibly modified] LCLS status for the call.
BSSMAP HANDOVER PERFORMED¶
- LCLS BSS Status
unilateral notification from BSC to MSC about an internal (intra-BSC) hand-over having been performed. The LCLS BSS Status contains the [possibly modified] LCLS status for the call.
BSSMAP INTERNAL HANDOVER CMD¶
- LCLS Connection Status Control
This is sent in AoIP from MSC to BSC in response to am earlier BSMAP INTERNAL HANDOVER REQUIRED
. We don't implement this in OsmoBSC.
BSSMAP LCLS CONNECT CONTROL¶
- LCLS Configuration
- LCLS Connection Status Control
Sent by MSC to BSC in order to change the configuration/permission of LCLS during an ongoing call.
BSSMAP LCLS CONNET CONTROL ACK¶
- LCLS BSS Status
Sent by BSC to MSC in response to a BSSMAP LCLS CONNECT CONTROL
, indicating the [possibly updated] LCLS status.
BSSMAP LCLS NOTIFICATION¶
- LCLS BSS Status
- LCLS Break Request
This message is sent from the BSC to the MSC to inform it about some changes in the LCLS status. This could e.g. be the case after a BSS-internal hand-over where the new BTS/channel doesn't support LCLS.
Implementation Ideas¶
Information storage¶
Eachbsc_subscr_conn
should contain
- uint8_t lcls_config (4 bit field + presence 1/0)
- uint8_t lcls_csc (4 bit field + presence 1/0)
- uint8_t gcr15
- uint8_t gcr_len;
Every time we receive LCLS CFG or CSC, we have to update this state in the bsc_subscr_conn
and (as needed) change the user plane switching via MGCP
check_and_enable_lcls()¶
- does own CFG + CSC permit LCLS?
- do we have another call with same Global Call ID?
- does other leg CFG + CSC permit LCLS?
- activate LCLS, update state variables
- send NOTIFY for other leg to MSC
MGW bits¶
LCLS_CFG_both_way¶
the easiest option: connect own MGCP EP to other MGCP EP- requires MGCP MDCX on our side + other side
LCLS_CFG_both_way_and_bicast_UL¶
LCLS_CFG_both_way_and_send_DL¶
LCLS_CFG_both_way_and_send_DL_block_local_DL¶
- connect other MGCP EP to local MGCP EP (using MDCX)
- switch other MGCP EP into recvonly mode, discarding whatever it sends
- TBD
LCLS_CFG_both_way_and_bicast_UL_send_DL¶
- TBD
LCLS_CFG_both_way_and_bicast_UL_send_DL_block_local_DL¶
- TBD
Spec references¶
- http://www.3gpp.org/DynaReport/23284.htm
- http://www.3gpp.org/DynaReport/WiCr--440021.htm
- http://www.3gpp.org/DynaReport/WiCr--430001.htm
Other references¶
- OsmoDevCon 2018 video: https://media.ccc.de/v/DVE7UU
- OsmoDevCon 2018 slides: https://pretalx.sysmocom.de/media/osmodevcon2018-lcls.pdf
OsmoGSMTester - 4G support
openOpenBSC - A-over-IP interface as per 3GPP
lockedAoverIP¶
While osmo-bsc already supports A-over-IP as per IPA/SCCPlite stacking for many years, more recently 3GPP has specified an official A-over-IP interface.
Relevant specifications¶
- 43.903: A over IP Study http://www.3gpp.org/DynaReport/43903.htm
- TS 48.006 Section 6a, use of M3UA
- TS 48.008 Detailed extensions of Messages + IES for AoIP
- TS 26.103 Section 5 contains RTP speech codec list
- TS 48.103 User Plane Transport over RTP
- TS 26.102 is referred by 48.103 for the payload format
OpenBSC - Asynchronous HLR+AUC for CS
openEvent Operation
openOpenBSC - NITB Split
openOSMUX Generalization
openOsmoTRX - Osmo-ify OsmoTRX
openVirtual GSM Load Testing
openVirtual GSM Load Testing¶
This is about development of Load Testing Setup to demonstrate OsmoBSC functionality and performance at >= 200 TRX, >= 100 BTS and thousands of MS.
- Development of primitive-based asynchronous interface to OsmocomBB âmobileâ program, together with script language (e.g. LUA) bindings for cellselection, location update, SMS and voice calls.
- Development of voice frame support to OsmocomBB virt_phy, OsmocomBB mobile and osmo-bts-virtual to simulate voice/user plane in addition to control/signaling plane.
- Development of software to manage (configure, start, monitor, stop) thousands of OsmocomBB mobile instances as well as hundreds of osmo-bts-virtual instances
- Creation + Documentation of corresponding test suite for automatic execution of load testing