blob: 580afae61672a0fe8f63e3e59d2e52cbb70adc8a [file] [log] [blame]
Harald Weltea5ad7a42019-03-21 22:52:44 +01001[[chapter_overview]]
2== Overview
3
4=== About OsmoGbPROXY
5
6OsmoGbPROXY is the Osmocom proxy for the 3GPP Gb interface. The Gb
7interface is defined by 3GPP as the protocol between the BSS and the
8SGSN inside the 2G/2.5G/2.75G packet switched network domain.
9
10As Osmocom implements a BTS-colocated PCU, there are potentially many
11Gb interface connections between all those many PCUs in the network
12and the SGSN. This can be cumbersome to configure/maintain at the
13SGSN sine.
14
15OsmoGbPROXY aggregates many PCU-facing Gb connections into one Gb
16connection to the SGSN. This is achieved by
17
18* maintaining sepaate NS-VCs on the PCU side and on the SGSN side
19* more or less transparently routing BSSGP peer-to-peer Virtual Circuits
20 (BVCs) through the proxy
21* having some special handling for the signaling BVC (BVCI=0) which is
22 shared among all the PCUs connected to the proxy
23
24=== Data Model
25
26==== gbproxy_config
27
28This contains the parsed configuration of the OsmoGbPROXY.
29
30==== gproxy_peer
31
32A "peer" is any remote NS-entity that the proxy interacts with. A peer
33includes information about:
34
35* the [unique] NSEI of the peer
36* the [unique] BVCI of the peer
37* the Routeing Area (RA) of the peer
38
39==== gbproxy_tlli_state
40
41One of the (unique) TLLI of any of the subscribers/UEs attached to any of
42the BTSs/PCUs served by the proxy.
43
44==== gbproxy_link_info
45
46One of the [unique] subscribers/connections that are served through this
47proxy. The information includes
48
49* the TLLI on BSS side
50* the TLLI on SGSN side (may be different due to P-TMSI rewriting)
51* the NSEI of the SGSN for this link
52* a timestamp when we last conversed with this subscriber
53* state related to IMSI acquisition
54** a temporary queue of stored messages (until IMSI acquisition succeeds)
55** N(U) rewriting state (inserting IDENTTIY REQ changes LLC sequence numbers)
56
57==== gbproxy_match
58
59A single matching rule against which IMSIs are matched. The matching rule
60is expressed as regular expression. There can be one such matching rule for
61each
62
63* routing between two different SGSNs, see below
64* patching of messages (e.g. APN, PLMN)
65
66
67=== Advanced Features
68
69==== PLMN patching
70
71This feature permits to modify the PLMN inside any BSSGP messages
72containing the Routing Area ID (RAID).
73
74The configured core-mcc and core-mnc will be used towards the SGSN,
75irrespective of which MCC/MNC the PCU is using/reporting on Gb.
76
77==== APN patching
78
79This will transparently re-write the APN name inside SM ACTIVATE PDP
80REQUEST messages on the way from the MS to the SGSN. The patching is
81performed based on matching on the IMSI of the subscriber.
82
83The configured core-apn will be used towards the SGSN, irrespective
84of which APN the MS is requesting in its Layer3 signaling.
85
86APN patching can only be performed if no GPRS encryption is enabled in
87the network!
88
89APN patching is useful in case a valid APN cannot reliably be
90provisioned via other means, such as via the SIM Card, OTA-DM or via
91CAMEL rewriting in the SGSN.
92
93==== P-TMSI patching
94
95This feature transparently rewrite the P-TMSI between MS and SGSN. This
96is required when using the Secondary SGSN support, as both SGSNs could
97allocate overlapping TMSIs and we must make sure they're unique across
98both SGSNs.
99
100P-TMSI patching is required by (and hence automatically enablede if
101secondary SGSN support is enabled.
102
103P-TMSI patching can only be performed if no GPRS encryption is enabled in
104the network!
105
106==== IMSI Acquisition
107
108This is a special feature where the proxy will by itself inject GMM IDENTITY
109REQUEST messages for the IMSI into the downlink BSSGP traffic in order
110to establish the IMSI of subscribers for which it is not otherwise known
111
112IMSI acquisition is automatically enabled if secondary SGSN support is
113enabled.
114
115==== Secondary SGSN Support
116
117This allows the proxy to connect not only to one SGSN, but to two
118different SGSNs. IMSI matching rules are applied to determine which of
119the SGSNs is to be used for traffic of this subscriber.
120
121One possible use case of this feature is to have a "local break-out" for
122subscribers who are native to this network (and hence save
123latencies/overhead of back-hauling all related traffic via the
124SGSN+GGSN) while at the same time maintaining the classic behavior for
125inbound roaming subscribers, where the roaming agreements mandate that
126data traffic is brought back to the GGSN in the HPLMN via the SGSN of
127the VPLMN.