From aabd18f4ce73df8be150e45bbcc17ffb612ecb0b Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 18 Oct 2018 00:55:03 +0200 Subject: add osmocon2018-lcls talk --- 2018/osmocon2018-lcls/lcls-announcement.png | Bin 0 -> 131455 bytes 2018/osmocon2018-lcls/lcls-conn_model_1.png | Bin 0 -> 121708 bytes 2018/osmocon2018-lcls/lcls-conn_model_2.png | Bin 0 -> 88010 bytes 2018/osmocon2018-lcls/lcls-overview.png | Bin 0 -> 122921 bytes 2018/osmocon2018-lcls/osmocon2018-lcls.adoc | 120 ++++++++++++++++++++++++++++ 5 files changed, 120 insertions(+) create mode 100644 2018/osmocon2018-lcls/lcls-announcement.png create mode 100644 2018/osmocon2018-lcls/lcls-conn_model_1.png create mode 100644 2018/osmocon2018-lcls/lcls-conn_model_2.png create mode 100644 2018/osmocon2018-lcls/lcls-overview.png create mode 100644 2018/osmocon2018-lcls/osmocon2018-lcls.adoc diff --git a/2018/osmocon2018-lcls/lcls-announcement.png b/2018/osmocon2018-lcls/lcls-announcement.png new file mode 100644 index 0000000..f28e534 Binary files /dev/null and b/2018/osmocon2018-lcls/lcls-announcement.png differ diff --git a/2018/osmocon2018-lcls/lcls-conn_model_1.png b/2018/osmocon2018-lcls/lcls-conn_model_1.png new file mode 100644 index 0000000..ee778d5 Binary files /dev/null and b/2018/osmocon2018-lcls/lcls-conn_model_1.png differ diff --git a/2018/osmocon2018-lcls/lcls-conn_model_2.png b/2018/osmocon2018-lcls/lcls-conn_model_2.png new file mode 100644 index 0000000..371d2c9 Binary files /dev/null and b/2018/osmocon2018-lcls/lcls-conn_model_2.png differ diff --git a/2018/osmocon2018-lcls/lcls-overview.png b/2018/osmocon2018-lcls/lcls-overview.png new file mode 100644 index 0000000..585ecbe Binary files /dev/null and b/2018/osmocon2018-lcls/lcls-overview.png differ diff --git a/2018/osmocon2018-lcls/osmocon2018-lcls.adoc b/2018/osmocon2018-lcls/osmocon2018-lcls.adoc new file mode 100644 index 0000000..1f3ee24 --- /dev/null +++ b/2018/osmocon2018-lcls/osmocon2018-lcls.adoc @@ -0,0 +1,120 @@ +3GPP LCLS (Local Call, Local Switch) +==================================== +:author: Harald Welte +:copyright: 2018 by Harald Welte (License: CC-BY-SA) +:backend: slidy +:max-width: 45em + +== Classic GSM User Plane + +* user plane joins signaling plane at all times +* voice circuit between two phones in same BTS +** goes from BTS to BSC (Abis) where a BSC-colocated TRAU is located +** goes from BSC to MSC (A, typiclaly G.711)) +** returns from MSC to same BSC +** returns from same BSC to same BTS +* this is of course far from optimal + +== Problems with classic approach + +* works great with low-latency, land-based/wired TDM network +* works not well with remote sites connected via satellite (VSAT) +** maritime sector +** rural BTSs in areas where no other back-haul is available +* various vendors have implemented proprietary solutions +** conveniently creating vendor lock-in + +== 3GPP LCLS to the rescue + +* official 3GPP standard appears to solve the problem in interoperable fashion +* underlying principle quite simple: +** each call gets a _Global Call Reference_ on A inerface +** this allows BSC to identify two legs of same call +** this enables BSC to locally switch the user plane between such calls + +image::lcls-overview.png[width=100%] + +== 3GPP LCLS problem domains + +* early media / alerting phase +* what about playback of voice announcements ("your prepaid account is low")? +* what about lawful interception? +* what about hand-over implications (intra-BSC, inter-BSC, inter-MSC, inter-RAT, ...)? + +== 3GPP LCLS early media + +image::lcls-conn_model_1.png[width=100%] + +== 3GPP LCLS early media + +image::lcls-conn_model_2.png[width=100%] + +== 3GPP LCLS tone / announcement + +image::lcls-announcement.png[width=100%] + +== 3GPP LCLS: Negotiation in CN + +* don't blindly activate LCLS, but _negotiate_ it +** all calls start non-locally switched +* LCLS negotiation on Nc interface (ISUP, BICC, SIP-I) between MSCs +* LCLS negotiation only succeeds if all CN (MSC) support it +** LCLS-Negotiation-Request IE +** LCLS-Negotiation-Response IE +** LCLS-Configuration-Preference IE + +== 3GPP LCLS Negotiation results + +* variety of different possible media configurations (examples) +** classic non-local (non-LCLS) +** connected both-way in BSS (basic LCLS) +** connected both way in BSS _and_ bi-casted UL to CN +** connected both way in BSS _and_ send access DL from CN +*** BSS may combine or replace local DL data with DL data from CN +** connected both way in BSS _and_ send access DL from CN, block local DL + +== 3GPP LCLS: Implications on A / BSSMAP + +* BSS is instructed about media configuration in BSSMAP +** during call establishment +*** BSSMAP ASSIGNMENT REQ with GCR + LCLS-Config IEs +*** BSSMAP ASSIGNMENT COMPLETE with LCLS-BSS-Status IE +** during handover +*** BSSMAP HANDOVER COMPLETE with LCLS-BSS-Status IE +** at any other time +*** BSSMAP LCLS-NOTIFICATION from BSS -> MSS +*** BSSMAP LCLS-CONNECT-CONTROL message MSS -> BSS + +== 3GPP LCLS: Osmocom Support + +. minimal sub-set without bi-casting +.. in OsmoBSC +... added BSSMAP LCLS IEs/Messages +... use MGCP to re-configure the CN-side RTP connection on OsmoMGW +... development was test-driven (TTCN-3 tests written first) +.. in OsmoMSC +... currently not implemented yet + +== 3GPP LCLS: Osmocom Restrictions + +. RTP audio looping is done in BSC-colocated MGW +.. saves RTP on A interface between BSC and MSC +.. doesn't save RTP round-trip on Abis between BTS and BSC +. In deployments with a centralized BSC, that's insufficient +.. you want true RTP loop-back betwen the BTSs involved in locally switched call +. implementation pending, should happen rather soon + + +== Further Reading + +* 3GPP TS 23.284 http://www.3gpp.org/DynaReport/23284.htm +* 3GPP WI 430001 (LCLS-CN) http://www.3gpp.org/DynaReport/WiCr--440021.htm +* 3GPP WI 440021 http://www.3gpp.org/DynaReport/WiCr--440021.htm +* http://osmocom.org/projects/cellular-infrastructure/wiki/Local_Call_Local_Switch +* Osmocom tickets +** http://osmocom.org/issues/1602 +** http://osmocom.org/issues/2487 + +== EOF + +End of File -- cgit v1.2.3