aboutsummaryrefslogtreecommitdiffstats
path: root/common/chapters/gb.adoc
blob: 6a6f65cdedf73bf8bfb97899fc3adcacc253bdd6 (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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
== 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>
----
The example above configures a libosmogb based application to listen for
incoming connections from PCUs on the specified address and port.

<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
----

.Example: Inspecting NS statistics
----
OsmoSGSN> show ns stats
Encapsulation NS-UDP-IP     Local IP: 10.9.1.198, UDP Port: 23000
Encapsulation NS-FR-GRE-IP  Local IP: 0.0.0.0
NSEI  101, NS-VC 101, Remote: BSS, ALIVE UNBLOCKED, UDP 10.9.1.119:23000
 NSVC Peer Statistics:
  Packets at NS Level  ( In):     1024 (2/s 123/m 911/h 0/d)
  Packets at NS Level  (Out):     1034 (0/s 151/m 894/h 0/d)
  Bytes at NS Level    ( In):   296638 (1066/s 22222/m 274244/h 0/d)
  Bytes at NS Level    (Out):   139788 (0/s 48225/m 91710/h 0/d)
  NS-VC Block count         :        0 (0/s 0/m 0/h 0/d)
  NS-VC gone dead count     :        0 (0/s 0/m 0/h 0/d)
  NS-VC replaced other count:        0 (0/s 0/m 0/h 0/d)
  NS-VC changed NSEI count  :        0 (0/s 0/m 0/h 0/d)
  NS-VCI was invalid count  :        0 (0/s 0/m 0/h 0/d)
  NSEI was invalid count    :        0 (0/s 0/m 0/h 0/d)
  ALIVE ACK missing count   :        0 (0/s 0/m 0/h 0/d)
  RESET ACK missing count   :        0 (0/s 0/m 0/h 0/d)
 NSVC Peer Statistics:
  ALIVE reponse time        :        0 ms
----

.Example: Inspecting BSSGP state
----
OsmoSGSN> show bssgp
NSEI   101, BVCI     2, RA-ID: 1-2-1-0, CID: 0, STATE: UNBLOCKED
NSEI   101, BVCI     0, RA-ID: 0-0-0-0, CID: 0, STATE: UNBLOCKED
----

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
----