aboutsummaryrefslogtreecommitdiffstats
path: root/common/chapters/gb.adoc
blob: d01fa9b85463baadd12672755da95616b322d5b6 (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
== Gb interface using libosmogb

'libosmogb' is part of the libosmocore.git repository and implements the
Gb interface protocol stack consisting of the NS and BSSGP layers.  It
is used in a variety of Osmocom project, including OsmoSGSN,
OsmoGbProxy and OsmoPCU.

This section describes the configuration that libosmogb exposes via the
VTY.

=== Gb interface configuration

==== NS-over-UDP configuration

The GPRS-NS protocol can be encapsulated in UDP/IP.  This is the default
encapsulation for IP based GPRS systems.

.Example: GPRS NS-over-UDP configuration
----
OsmoSGSN(config-ns)# encapsulation udp local-ip 127.0.0.1 <1>
OsmoSGSN(config-ns)# encapsulation udp local-port 23000 <2>
----
<1> Set the local side IP address for NS-over-UDP
<2> Set the local side UDP port number for NS-over-UDP. 23000 is the default

==== NS-over-FR-GRE configuration

The GPRS-NS protocol can alternatively be encapsulated over Frame Relay
(FR).  Traditionally this is communicated over SDH/PDH media, which we
don't support.  However, we can encapsulate the FR in GRE, and then that
in IP.

The resulting NS-FR-GRE-IP stack can be converted by an off-the-shelf
router with FR and IP support.

.Example: GPRS NS-over-FR-GRE configuration
----
OsmoSGSN(config-ns)# encapsulation framerelay-gre enabled 1 <1>
OsmoSGSN(config-ns)# encapsulation framerelay-gre local-ip 127.0.0.1 <2>
----
<1> Enable FR-GRE encapsulation
<2> Set the local side IP address for NS-over-FR-GRE

==== NS Timer configuration

The NS protocol features a number of configurable timers.

.List of configurable NS timers
|===
|tns-block|(un)blocking timer timeout (secs)
|tns-block-retries|(un)blocking timer; number of retries
|tns-reset|reset timer timeout (secs)
|tns-reset-retries|reset timer; number of retries
|tns-test|test timer timeout (secs)
|tns-alive|alive timer timeout(secs)
|tns-alive-retries|alive timer; number of retries
|===

=== Examining Gb interface status

There are several commands that can help to inspect and analyze the
currently running system status with respect to the Gb interfaces.

.Example: Inspecting NS state
----
OsmoSGSN> show ns
Encapsulation NS-UDP-IP     Local IP: 127.0.0.1, UDP Port: 23000
Encapsulation NS-FR-GRE-IP  Local IP: 0.0.0.0
----
FIXME

FIXME: show ns stats

.Example: Inspecting BSSGP state
----
----
FIXME

FIXME: show nse

=== FIXME

==== Blocking / Unblocking / Resetting NS Virtual Connections

The user can manually perform operations on individual NSVCs:

* blocking a NSVC
* unblocking a NSVC
* resetting a NSVC

The VTY command used for this is the `nsvc (nsei|nsvci) <0-65535>
(block|unblock|reset)` command available from the ENABLE node.


=== Gb interface logging filters

There are some Gb-interface specific filters for the libosmocore
logging subsystem, which can help to reduce the logged output to
messages pertaining to a certain NS or BSSGP connection only.

.Example: enabling a log filter for a given NSEI
----
OsmoSGSN> logging filter nsvc nsei 23
----

.Example: enabling a log filter for a given NSVCI
----
OsmoSGSN> logging filter nsvc nsvci 23
----