blob: 549763a351fbd596147a1a5c338749e949545f45 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
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 Plans
. Plan: support minimal sub-set without bi-casting
.. in OsmoBSC
... requires us to add BSSMAP LCLS IEs/Messages
... will use MGCP to re-configure the CN-side RTP connection on OsmoMGW
... development will be test-driven (develop TTCN-3 tests first)
.. in OsmoMSC (only among RANs connected to single MSC)
... requires us to permit/enable LCLS on AoIP
== 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
|