summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-10-18 00:55:03 +0200
committerHarald Welte <laforge@gnumonks.org>2018-10-18 00:55:03 +0200
commitaabd18f4ce73df8be150e45bbcc17ffb612ecb0b (patch)
tree9db920fefcc8482e1e24912f12b2641e09c6005d
parent87dac5161d9c698bc808d788cee9eb41900c6fe4 (diff)
add osmocon2018-lcls talk
-rw-r--r--2018/osmocon2018-lcls/lcls-announcement.pngbin0 -> 131455 bytes
-rw-r--r--2018/osmocon2018-lcls/lcls-conn_model_1.pngbin0 -> 121708 bytes
-rw-r--r--2018/osmocon2018-lcls/lcls-conn_model_2.pngbin0 -> 88010 bytes
-rw-r--r--2018/osmocon2018-lcls/lcls-overview.pngbin0 -> 122921 bytes
-rw-r--r--2018/osmocon2018-lcls/osmocon2018-lcls.adoc120
5 files changed, 120 insertions, 0 deletions
diff --git a/2018/osmocon2018-lcls/lcls-announcement.png b/2018/osmocon2018-lcls/lcls-announcement.png
new file mode 100644
index 0000000..f28e534
--- /dev/null
+++ b/2018/osmocon2018-lcls/lcls-announcement.png
Binary files 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
--- /dev/null
+++ b/2018/osmocon2018-lcls/lcls-conn_model_1.png
Binary files 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
--- /dev/null
+++ b/2018/osmocon2018-lcls/lcls-conn_model_2.png
Binary files differ
diff --git a/2018/osmocon2018-lcls/lcls-overview.png b/2018/osmocon2018-lcls/lcls-overview.png
new file mode 100644
index 0000000..585ecbe
--- /dev/null
+++ b/2018/osmocon2018-lcls/lcls-overview.png
Binary files 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 <laforge@gnumonks.org>
+: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
personal git repositories of Harald Welte. Your mileage may vary