Commit Graph

1770 Commits

Author SHA1 Message Date
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
Harald Welte a977b3d1ee gbproxy: add VTY node 2010-05-04 07:20:42 +02:00
Harald Welte 7b8255c52d gb_proxy: listen on UDP port 23000, use AF_INET 2010-05-04 07:20:42 +02:00
Harald Welte 9f75c35eb3 GPRS: Introduce a GPRS Gb Proxy
The ida of the Gb proxy is to aggregate Gb links with a number of BSS
and then present all the BSSGP-VC's together inside one NS-VC to the
actual SGSN.

The code is not yet expected to be complete.
2010-05-04 07:20:42 +02:00
Harald Welte 44f1c27460 gprs: remove msgb->nsvc pointer and replace it with NSEI and BVCI
According to TS 08.16, the BSSGP layer needs to specify NSEI and BVCI when
executing the NS UNITDATA REQUEST primitive of the underlying NS layer.

Rather than passing around a pointer to the 'struct gprs_nsvc', we now
have NSEI and BVCI as members of 'struct obsc_msgb_cb' and set them
when BSSGP hands a message down to NS.

NS then does a lookup of the 'gprs_nsvc' based on the NSEI parameter.
2010-05-04 07:20:42 +02:00
Harald Welte 06aa111fda gprs: Use new msgb->cb[] for storing a pointer to the NS-VC through which it was received 2010-05-04 07:20:42 +02:00
Harald Welte b7bd65ea01 signal.h: Don't include gsm_subscriber but rather declare it 2010-05-04 07:20:42 +02:00
Harald Welte cb99163249 GPRS: Modularize the NS implementation
* move UDP listener code for NSIP from input/ipaccess.c and into gprs_ns.c
* add PDU type, IE and CAUSE values for later IP based 3GPP TS 48.016
* support multiple NS-VCs and their lookup based on NSVC and sockaddr_in
* maintain the remote_state (blocked/alive) for each NSVC
* introduce the concept of GPRS_NS instances, move all global vars to instance
* remove hardcoded calls to gprs_bssgp_rcvmsg() and replace it by callback

WARNING: This is not finished code.  While it will compile, it will not work
yet, as BSSGP needs to be converted to properly indicate the NSVC to which it
needs to send data.
2010-05-04 07:20:42 +02:00
Harald Welte 943c5bc595 gprs: Update gprs-sgsn branch to use new msgb->cb layout
The explicit 'tlli, gmmh' members of struct msgb are gone from
current libosmocore and have been replaced by the more generic
'control buffer' mechanism.
2010-05-04 07:20:41 +02:00
Harald Welte 2977d67d48 GPRS: add DGPRS to new debug api 2010-05-04 07:20:41 +02:00
Harald Welte 5434d7ec8d GPRS: remove hard-coded IP address for NSIP responses from SGSN->BTS 2010-05-04 07:20:41 +02:00
Harald Welte ab88a62f66 some more GPRS related comments 2010-05-04 07:20:41 +02:00
Harald Welte 9b455bf801 Create new 'gprs-sgsn' branch on top of 'gprs-conf'
This branch contains the partial SGSN/GGSN implementation that
was originally developed as part of the gprs branch.
2010-05-04 07:20:41 +02:00
Harald Welte 3c69a4cdbe make gsm48_msgb_alloc() a static inline function
This resolves some dependency problems (i.e. osmo_sgsn not needing
to link gsm_04_08_utils.o which has RSL dependencies)
2010-05-04 07:17:32 +02:00
Harald Welte bde050e8f8 multi-trx config: Don't configure CCCH on 2nd TRX ;) 2010-05-04 07:15:01 +02:00
Harald Welte 539d8343e3 Merge commit '35a939463eee58492c88cbe7531288237cdcf454' 2010-05-01 14:27:23 +02:00
Harald Welte 72267f01fd move gsm48_construct_ra() to libosmocore 2010-05-01 14:27:12 +02:00
Harald Welte 35a939463e Import gsm48_construct_ra() from openbsc 2010-05-01 14:25:22 +02:00
Harald Welte 0b484a4fb1 Makefile cleanup
move vty_interface_cmds.c and telnet_interface.c into libvty
rather than explicitly linking the C files for every program
2010-05-01 14:02:25 +02:00
Harald Welte 9624364b4e 'struct gprs_ra_id' is now defined in libosmocore 2010-05-01 14:01:23 +02:00
Harald Welte d66c2bef54 Merge commit 'debf95507461965aa82be2fa2bf34119343cfb0e' 2010-05-01 12:07:56 +02:00
Harald Welte f32cc4bee5 VTY: ensure all cmd_elements are declared 'static'
While doing 'nm' on a VTY-using object file I noticed that all
cmd_elements are global symbols, which is not good.

Unfortuantely there are some vty-internal cmd_elements that need
to span across object files, so I had to introduce gDEFUN()
and gALIAS().  The old macros now all declare static structures.
2010-05-01 12:07:41 +02:00
Harald Welte debf955074 gsm48.h: Prevent accidental re-inclusion of same header file 2010-05-01 12:06:48 +02:00
Harald Welte a1c4f765ec import gsm48_parse_ra() and gprs_tlli_type() from openbsc 2010-05-01 12:00:21 +02:00
Holger Hans Peter Freyther 5ba4dc171b Add missing file. 2010-05-01 15:14:05 +08:00
Harald Welte 0809d79ef8 define 'struct openbsc_msgb_cb' and accessor macro OBSC_MSGB_CB() 2010-04-30 14:36:25 +02:00
Harald Welte e562502e8d Merge commit '074c9f904cb5e4f6ab014d76e4abc079c16fc5d7' 2010-04-30 14:29:56 +02:00
Harald Welte 074c9f904c msgb: introduce msgb->cb (the control buffer) 2010-04-30 14:29:11 +02:00
Harald Welte e9dd9b0475 gsm_04_11.c: Use msgb->l4h instead of sms->smsh, as the latter is gone 2010-04-30 14:27:05 +02:00
Harald Welte bb77c9d6cc msgb: remove smsh, llch, tlli and gmmh
This is a lot of GSM/GPRS specific stuff in struct msgb which we want
to avoid.  The 'control buffer' will replace them.
2010-04-30 14:26:12 +02:00
Harald Welte 3120ac3f78 remove the unneeded bts_link pointer from msgb 2010-04-30 14:19:48 +02:00
Harald Welte 52e8da6ea1 remove any reference to 'struct gsm_bts_link' 2010-04-30 14:04:01 +02:00