Commit Graph

1815 Commits

Author SHA1 Message Date
Harald Welte
e69b2814e2 [gprs] use TCP port 4246 for the gb_proxy vty telnet 2010-05-11 18:32:37 +02:00
Harald Welte
e5117da715 [gprs] gb-proxy: We might receive a NS-RESET for a NS-VC that we already know
In this case, don't blindly allocate a new NS-VC but rather use the NSEI
to lookup the 'struct gprs_nsvc' for it.
2010-05-11 18:30:37 +02:00
Harald Welte
f69c059a0e [gprs] gb_proxy: Fix detecting the SGSN-facing ns-vc by its NSEI
make sure we mark the NS connection as 'SGSN-facing' if the NSEI matches
2010-05-11 18:29:44 +02:00
Harald Welte
d7c02ad9df [gprs] NS: Make sure we include "Rx" in the log statement for NS RESET 2010-05-11 18:18:31 +02:00
Harald Welte
e9359db580 Merge commit '7638af95fd08213aef4adb3c6399975fe3621855' 2010-05-11 16:41:55 +02:00
Harald Welte
7638af95fd logging: add log_vty_{level,category}_string() 2010-05-11 16:39:22 +02:00
Harald Welte
6f65696459 logging: Add 'show logging vty' command to display current log config
As the logging config is getting more and more complex, it is good
if it can be displayed interactively.

WARNING: This needs libosmocore 0.1.6 or later!
2010-05-11 11:24:27 +02:00
Harald Welte
9ac2225ff4 logging: introuduce log_level_str() to obtain the name of a log level 2010-05-11 11:19:40 +02:00
Harald Welte
f171a6e4fc debug/logging: more verbose descriptions 2010-05-11 10:51:30 +02:00
Harald Welte
cd7c1beb6b logging: Add interactive help
If you press ? on the vty, you now get some more explanation about
the logging categories and their meaning.
2010-05-11 10:41:34 +02:00
Harald Welte
6fab236cbb logging: use 'logging level all' instead of 'logging set log level'
'logging level' can already parse a human-readable level such as
'debug' or 'notice'.  By setting the global mask within the same
command we can also parse it there.
2010-05-11 10:23:45 +02:00
Harald Welte
7fc9822a74 [gprs] Gb proxy: cosmetic cleanup 2010-05-11 10:15:42 +02:00
Harald Welte
1389ac7d2a [gprs] NS: cleanup / fix compiler warnings 2010-05-11 10:15:26 +02:00
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