Harald Welte
a7a3194da8
[gprs] BSSGP: cosmetic cleanup
2010-05-11 10:12:44 +02:00
Harald Welte
0a4050c63b
[gprs] gb_proxy: Send proper BSSGP STATUS msg in error case
...
In order to reuse the existing bssgp_tx_* functions without pulling
in the dependencies of gprs_bssgp.c, we have to move those functions
to gprs_bssgp_util.c
Furthermore, we can remove gbprox_nsi and replace it with bssgp_nsi,
and we can do proper processing of BVC-RESET messages coming from
the SGSN on the signalling BVC. In that case we need to send RESET
messages to all the BSS.
2010-05-11 10:03:34 +02:00
Harald Welte
c1c1dd260a
[gprs] gb_proxy: Forward NS-RESET/NS-BLOCK/NS-UNBLOCK from SGSN to BTSs
2010-05-11 06:34:24 +02:00
Harald Welte
99e3248192
[gprs] NS: Add signals in the event of BLOCK/UNBLOCK/RESET
...
The signals will be sent upon reception of NS-BLOCK/UNBLOCK/RESET PDUs
We also export functions to generate/send BLOCK/UNBLOCK and RESET.
2010-05-11 06:33:17 +02:00
Harald Welte
6b72cdf854
[gprs] Add new 'NS' and 'BSSGP' logging categories
2010-05-11 05:54:22 +02:00
Harald Welte
85801d0294
[gprs] gb_proxy: More VTY 'show' information
...
The 'show gbproxy' now actually shows information about the Gb proxy
BTS peers, whereas 'show ns' shows information about existing NS links.
2010-05-11 05:49:43 +02:00
Harald Welte
1c0de6802c
Merge commit '95df5c0179f6b24d31c6720a43434755ed58aa22'
2010-05-04 11:36:33 +02:00
Holger Hans Peter Freyther
c6ec0406c8
misc: Use $(top_srcdir) for source, $(top_builddir) for libs
...
We should not use ../ for adding sources or libraries as the
user might have a srcdir != builddir setup.
2010-05-04 14:36:07 +08:00
Harald Welte
5d6e378c35
update README with URL of the homepage
2010-05-04 08:10:18 +02:00
Harald Welte
c9a341b248
move ipaccess tools into their own subdirectory
...
They will now be built fully inside src/ipaccess, using their
own Makefile.am
2010-05-04 07:47:54 +02:00
Harald Welte
e236596bf4
[gprs] Move all GPRS related code to src/gprs subdirectory
2010-05-04 07:41:59 +02:00
Harald Welte
ce662943f3
[gprs] Add GPRS header files to noinst_HEADERS
2010-05-04 07:41:13 +02:00
Harald Welte
1c77c6e4c2
[gprs] gb_proxy: Fix message looping bug
...
We don't want to loop back the BSS messages to the BSS itself.
2010-05-04 07:20:45 +02:00
Harald Welte
24b31313e8
[gprs] NS: If we are the BSS side, UNBLOCK the connection after it is ALIVE
...
After RESET / RESET-ACK and ALIVE / ALIVE-ACK, the connection needs to
be unblocked from the BSS side to the SGSN.
2010-05-04 07:20:45 +02:00
Harald Welte
90de93e122
[gprs] NS: Start ALIVE Procedure after receiving RESET_ACK
2010-05-04 07:20:45 +02:00
Harald Welte
199d9df0bb
[gprs] NS: improved timer handling for RESET
2010-05-04 07:20:45 +02:00
Harald Welte
05b320a4e3
[gprs] NS: replace nsvc->timer_is_tns_alive with nsvc->timer_mode
...
This will allow to use the timer in more than 2 modes
2010-05-04 07:20:45 +02:00
Harald Welte
96f71f28eb
[gprs] gb_proxy: fix NSEI value printed in some debug statements
2010-05-04 07:20:45 +02:00
Harald Welte
44c4830d5b
[gprs] gb_proxy: locally acknowledge BVC RESET for BVCI=0
...
If a BSS resets BVCI=0, we don't want to reset the SGSN, as BVCI=0
is shared signalling between all BSS.
2010-05-04 07:20:45 +02:00
Harald Welte
69619e3970
[gprs] gb_proxy: Strip NS header before relaying message
...
We don't want two NS headers, do we?
2010-05-04 07:20:44 +02:00
Harald Welte
672f5c4dfd
[gprs] gb_proxy: Fix proxying of BSS messages to SGSN
...
We don't keep a superfluous gbprox_peer for the SGSN anymore.
2010-05-04 07:20:44 +02:00
Harald Welte
239cf056f0
[gprs] Unify log messages of the NS protocol implementation
2010-05-04 07:20:44 +02:00
Harald Welte
ca3620a707
[gprs] gb_proxy: use new msgb_bssgph() and msgb_bssgp_len() macros
...
The proxy code still operated on msg->l3h, which is no longer the
BSSGP header now.
2010-05-04 07:20:44 +02:00
Harald Welte
5658a1a766
[gprs] LLC: Echo back the XID parameters that the MS requested
...
In order to finish PDP context activation and start the transfer
of SNDCP N-PDUs, we simply confirm to the MS whatever XID parameters
it requests. This of course has to be implemented with a proper
XID handshake at some other point.
2010-05-04 07:20:44 +02:00
Harald Welte
10997d0b9b
[gprs] LLC: API to send XID responses to XID commands
2010-05-04 07:20:44 +02:00
Harald Welte
86fda90d03
[gprs] Include a valid QoS attribute in ACT PDP CTX ACCEPT
...
At least a Motorola ROKR E6 now accepts the PDP context activation
and proceeds to XID on LL3.
2010-05-04 07:20:44 +02:00
Harald Welte
421cba4b08
[gprs] SGSN SM: Provide IPv4 PDP address in PDP CTX ACT ACCEPT
...
The message looks now fine (from wireshark point of view). However,
we cannot simply echo back the QoS parameters, as the meaning in
uplink and downlink connection is not the same.
2010-05-04 07:20:44 +02:00
Harald Welte
ba850c529e
[gprs] cosmetic updates in header file
2010-05-04 07:20:44 +02:00
Harald Welte
ba02110918
[gprs] use old (uplink) message when parsing the routeing area
2010-05-04 07:20:44 +02:00
Harald Welte
721961cf50
[gprs] correctly calculate the length of the BSSGP PDUs
2010-05-04 07:20:44 +02:00
Harald Welte
d6c7416c32
[gprs] correctly set the NS instance that BSSGP should use
2010-05-04 07:20:44 +02:00
Harald Welte
0c3eae0011
[gprs] GMM: print more details about PDP context activation request
2010-05-04 07:20:44 +02:00
Harald Welte
d60570991f
[gprs] header file ordering (cosmetic)
2010-05-04 07:20:43 +02:00
Harald Welte
9f1f3ad7bb
[gprs] GMM: update MM context RA ID / TLLI when appropriate
2010-05-04 07:20:43 +02:00
Harald Welte
11d7c105f8
[gprs] pass BSSGP UL-UNITDATA Cell ID up into GMM layer
...
BSSGP stores a pointer to the Cell Identifier IE in msgb->cb, which
is later used by the GMM layer to identify the cell that has sent a
given message.
This now also means that the gsm_04_08_gprs.c code is free of any
legacy references to msg->trx or struct gsm_bts.
2010-05-04 07:20:43 +02:00
Harald Welte
eaa614cb9e
[gprs] Use stdint.h types (uintXX_t instead of u_intXX_t)
...
libosmocore already uses them, it's time (at least for new code)
in openbsc to do the same.
2010-05-04 07:20:43 +02:00
Harald Welte
e6afd60779
[gprs] SGSN: Expect all Identifiers to be stored at highest level
...
We now expect the highest level (actual SGSN GMM code) to know
all identifiers for every element in the protocol stack, i.e.
TLLI, SAPI, BVCI and NSEI. The layer-inetrnal state is looked
up based on those identifiers.
The reason for this is to ensure only the highest level state
needs to be persistent, while everything else can be regenerated
dynamically (e.g. in a SGSN restart)
2010-05-04 07:20:43 +02:00
Harald Welte
fd3fa1d4e0
[gprs] Ensure msgb->l3h points to Layer3 (04.08)
...
In the old code
l3h = BSSGP, l4h = LLC, cb[gmmh] = 04.08
Now, this has been changed to
cb[bssgph] = BSSGP, cb[llch] = LLC, l3h = 04.08
This way, GSM general 04.08 and GPRS 04.08 code can expect a
GSM 04.08 header at msgb->l3h
2010-05-04 07:20:43 +02:00
Harald Welte
345223ee9e
[gprs] convert ns_cause_str to value_string
2010-05-04 07:20:43 +02:00
Harald Welte
dbab1c79e7
[gprs] BSSGP: convert cause strings to value_string
2010-05-04 07:20:43 +02:00
Harald Welte
a26655426d
[gprs] LLC: Introduce the allocation and lookup of LLC Entities (LLE)
2010-05-04 07:20:43 +02:00
Harald Welte
6557cd0517
[gprs] introduce BSSGP concept of BTS contextx
...
A BTS context represents the mapping betewen (RA-ID, Cell-ID) and
(BVCI, NSEI) as well as the per-BVC local state.
2010-05-04 07:20:43 +02:00
Harald Welte
288be16587
[gprs] Build the SGSN stand-alone and not as part of bsc_hack
...
Instead of continuing to add more and more functionality to the
bsc_hack binary, we should have the new SGSN code run as a separate
executable.
After this commit we now build a 'osmo_sgsn' executable, using its
own osmo_sgsn.cfg config file.
However, the SGSN is not yet functional, mainly due to the fact that
the BSSGP and GMM code are written with the assumption that there
is a msgb->trx->bts and the according 'sturct gsm_bts' data model
around - which clearly is no longer the case outside of bsc_hack.
2010-05-04 07:20:43 +02:00
Harald Welte
a67cbd6f06
[gpprs] Add VTY node for SGSN
2010-05-04 07:20:43 +02:00
Harald Welte
f533e13c14
[gprs] add some Iu specific SGSN MM state fields
2010-05-04 07:20:42 +02:00
Harald Welte
169a00403f
[gprs] Makefile reorganization
...
We don't need to explicitly link telnet_interface.c and vty_interface_cmds.c
as they're now part of libvty.a
2010-05-04 07:20:42 +02:00
Harald Welte
70f38d2a3b
[gprs] gb_proxy: Actually create our gbprox_peers
...
also extend the logging verbosity and fix some compiler warnings
2010-05-04 07:20:42 +02:00
Harald Welte
79fc392751
move gsm48_parse_ra() and gprs_tlli_type() to libosmocore
2010-05-04 07:20:42 +02:00
Harald Welte
b77c697c0b
[gprs] fully integrate VTY configuration into Gb proxy
...
The Gb-proxy is now fully configured by config file / VTY
2010-05-04 07:20:42 +02:00
Harald Welte
799e0c92c6
gb_proxy: Add initial VTY configuration code
2010-05-04 07:20:42 +02:00