Project

General

Profile

AoIP OsmoBSCNAT » History » Version 1

laforge, 11/22/2021 08:43 AM

1 1 laforge
h1. AoIP OsmoBSCNAT
2
3
h2. high-level principle
4
5
The high-level functional principle of bsc-nat is to be a proxy between many BSCs and a [pool of] MSC.
6
7
It serves the following high-level goals
8
* all real BSC should appear as one virtual BSC towards the MSC
9
* de-coupling of [non-routed, separate] IP address ranges on Abis/RAN and A/CN
10
** use osmo-mgw to achieve that for user plane
11
12
Most of mgw-nat acts as a proxy for connection-oriented SCCP, mapping tuples of
13
* BSC-side SCCP connection (BSC to bsc-nat)
14
* MSC-side SCCP connection (bsc-nat to MSC)
15
16
One such SCCP connection tuple exists for each concurrently active subscriber
17
18
h2. Detailed handling
19
20
h3. SS7/M3UA
21
22
* separate SCTP associations (M3UA AS/ASP) on RAN and CN side
23
* separate address range (one on RAN and one on CN) side
24
* as no routing is required or desired between both, best approach to use separate "ss7 instances"
25
26
h3. SCCP
27
28
* separate address range (one on RAN and one on CN) side
29
* probably best represented by two separate SCCP instances, one for either side
30
31
h4. MO SCCP connection establishment
32
33
* every SCCP CR (CONNECT.ind on the user sap) contains a user identity (IMSI, TMSI)
34
* based on that user identity, MSC pool member is selected, and data forwarded as CONNECT.req to the SCCP user SAP on the CN side.
35
* mgw-nat stores mapping  between connection_id on both sides, as well as reference to BSC / MSC (struct or just PC?)
36
* DATA.ind from RAN is passed to DATA.req on CN
37
* DATA.ind from CN is passed to DATA.req on RAN
38
39
h4. MT SCCP connection establishment
40
41
* this happens
42
** during hand-over when the MSC allocates resources on the target (new) BSS
43
*** detailed handling see BSSMAP HANDOVER REQ
44
** during LCS
45
*** detailed handling TBD
46
47
h4. SCCP connection release
48
49
* if RAN side releases SCCP, CN side must be released
50
* if CN side releases SCCP, RAN side must be released
51
* any MGCP connections/endpoints must be deleted
52
53
h3. Connectionless BSSMAP
54
55
h4. RESET
56
57
* separate RESET procedure to each BSC on RAN side
58
* separate RESET procedure to each MSC on CN side (in pooling there can be multiple)
59
* there's only one global RESET for each pair of nodes
60
* reset can be initiated by either of the two sides
61
* the RESET procedures towards the BSCs and the MSCs are completely independent
62
* until a given peer has gone through the RESET procedure, no other BSSMAP or DTAP can be sent
63
64
h4. PAGING (BSC<-MSC)
65
66
* forwarded to BSC[s] based on Cell Identifier List
67
* there can very well be multiple BSCs, so message might need to be multiplied
68
69
h3. Connection-Oriented BSSMAP
70
71
h4. ASSIGNMENT CMD (BSC<-MSC)
72
73
* contains MSC-side IP/port
74
* must trigger CRCX (and MDCX?) to MGW on wildcard EP; will allocate CN-side connection
75
* must trigger CRCX to MGW on same EP for RAN-side connection
76
* references to those endpoints stored in state of SCCP connection
77
* ASSIGNMENT CMD is patched before passing on to BSC, containing IP/Port of RAN-side RTP connection
78
79
h4. ASSIGNMENT COMPLETE (BSC->MSC)
80
81
* contains BSC-side IP/port
82
* must trigger MDCX to MGW on RAN-side connection, informing it of BSC IP/port
83
* ASSIGNEMNT COMPLETE is pached before passing to MSC, containing IP/PORT of CN-side RTP connection
84
85
h4. CLEAR CMD (BSC<-MSC)
86
87
* issue DLCX on both MGCP connections (if any)
88
89
h4. HANDOVER REQ (BSC<-MSC)
90
91
* contains AoIP transport layer address
92
* RTP/MGPC handling similar to ASSIGNMENT CMD
93
* routing to BSC identified by CellIdList
94
95
h4. HANDOVER REQ ACK (BSC->MSC)
96
97
* contains AoIP transport layer address
98
* RTP/MGCP handling similar to ASSIGNMENT COMPLETE
99
100
h4. INTERNAL HANDOVER REQUIRED (BSC->MSC)
101
102
* contains AoIP transport layer address
103
* TBD
104
105
h4. HANDOVER PERFORMED (BSC->MSC)
106
107
* contains possibly different speehc version / coec list
108
* must likely trigger related MDCX to MGW
109
* TBD
110
111
h4. HANDOVER PERFORMED (BSC->MSC)
112
113
* contains possibly different speehc version / coec list
114
* must likely trigger related MDCX to MGW
115
* TBD
116
117
h2. Further Study Required
118
119
h3.  LCLS implications
120
121
* ensure existing LCLS with BTS-local loop and BSC-local loop still works
122
* consider whether LCLS with bsc-nat loop is required (likely not)
123
124
h3. handover
125
126
* handover between BSCs behind the same bsc-nat
127
** is seen as "external" handover between BSCs on RAN side, but
128
** must be translated to be seen as "internal handover" by MSC on CN side
129
130
h3. MSC pooling
131
132
* BSCs would be set up without pooling (only one bsc-nat is seen as MSC)
133
* bsc-nat would then implement pooling towards pool of MSCs
134
* routing of most MO connection requests based on TMSI
135
* routing of IMSI connection requests based on round-robin
136
* reuse of BSC code may be possible here.
137
138
h3. LCS
139
140
We need to study how to handle location request in this context.
Add picture from clipboard (Maximum size: 48.8 MB)