aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs
AgeCommit message (Collapse)AuthorFilesLines
2011-10-16GRPS LLC: Fix TLLI change: Use caller-supplied old_tlli!laforge/santosHarald Welte1-1/+1
2011-10-16gprs: Also check tlli_new in sgsn_mm_ctx_by_tlliJonathan Santos1-2/+3
2011-10-16gprs: Reset LLC state when Timer 3350 expiresJonathan Santos2-0/+25
This works around a problem that occurs if a mobile loses packet data connectivity, e.g. moves out of coverage or switches over to a circuit-switched call, while a data transfer is occurring. The mobile would reset its LLC state, causing it to be unsynchronized with the SGSN. Therefore the SGSN would drop incoming frames until the sequence numbers matched. This workaround resets the LLC state in the SGSN if T3350 expires, indicating that Routing Area Updating Request, Attach Request, or P-TMSI Realloc Command has failed.
2011-10-16gprs: Suspend user data transmission during Routing Area UpdatingJonathan Santos2-0/+22
TS 24.008 version 9.5.0 Release 9 sec 4.7.5: In A/Gb mode, user data transmission in the MS shall be suspended during the routing area updating procedure, except if the routing area updating procedure is triggered by a PS handover procedure as described in 3GPP TS 43.129 [113]; user data reception shall be possible. User data transmission in the network may be suspended during the routing area updating procedure.
2011-10-16gprs: Set GMM state to GMM_REGISTERED_NORMAL after ATTACH_COMPLETE receivedJonathan Santos1-3/+1
The SGSN was updating the GMM state when sending the ATTACH_ACCEPT, when it should enter that state after the ATTACH_COMPLETE is received.
2011-10-16gprs: Delete GMM and PDP contexts if ATTACH_REQUEST received from ↵Jonathan Santos2-8/+35
already-attached MS TS 24.008 version 9.5.0 Release 9 sec 4.7.3.1.6: If an ATTACH REQUEST message is received in state GMM-REGISTERED the network may initiate the GMM common procedures; if it turned out that the ATTACH REQUEST message was send by an MS that has already been attached, the GMM context, PDP contexts and MBMS contexts, if any, are deleted and the new ATTACH REQUEST is progressed.
2011-10-16gprs: Fix bug where SGSN was sending all LLC UI frames with N(U)=0Jonathan Santos1-1/+1
Convert foreign TLLIs to local TLLIs for storage in LLME context.
2011-10-16GPRS: Allow MS Network Capability of up to 32 bytesHarald Welte1-1/+1
TS 23.060 version 9.7.0 Release 9 section 6.14.2 states: To allow for the addition of future features, the SGSN shall store the UE Network Capability and the MS Network Capability even if either or both is larger than specified in TS 24.008 [13]/TS 24.301 [102], up to a maximum size of 32 octets for each IE. Thanks to Jonathan Santos <jrsantos@jonathanrsantos.com> for spotting this.
2011-10-16GPRS: Support MS Radio Access Capability up to 255 bytesHarald Welte1-2/+0
TS 23.060 version 9.7.0 Release 9 section 6.14.1.1 states: To allow for the addition of future radio technologies, frequency bands, and other enhancements, the SGSN shall store the MS radio access capability even if it is larger than specified in TS 24.008 [13], up to a maximum size of 255 octets. Thanks to Jonathan Santos <jrsantos@jonathanrsantos.com> for spotting this.
2011-10-16GPRS GMM: When we receive a RA UPD REQ, we are NORMAL even after SUSPENDHarald Welte1-0/+3
There is no explicit BSSGP RESUME in case the MS sends a RA UPD REQ after being in SUSPEND previously.
2011-10-16GPRS LLC: fix compiler warningHarald Welte1-1/+1
2011-10-16GPRS GMM: Send LLGMM-RESET.req when talking to unknown MSHarald Welte1-0/+5
In case a MS (of which we have no MM context) sends us anything but a GMM ATTACH REQUEST, we need to send it a LLC XID RESET (by means of issuing LLGMM-RESET.req). Otherwise the phone will expect us to send a specific unacknowledged sequence number that we don't know. Thanks to Holger for pointing this bug out to me. It seems to commonly occur when a MS is doing network re-selection and (erroneously) sends a RA UPD REQ instead of an ATTACH REQ. The RA UPD REJ that we sent was never seen by the GMM entity in the MS, as the LLC entity discarded it due to sequence number mis-match.
2011-10-16LLC: Add minimal LLGMM-RESET.req implementationHarald Welte1-11/+67
Using LLGMM-RESET.req, the GMM can request the LLC of the MS to reset all its parameters, particularly the sequence numbers. We don't yet do XID RESET retransmissions, and we don't yet generate a LLGMM-RESET.conf primitive back to GMM.
2011-10-16misc: Linking fixes for Ubuntu 11.10 CompilerHolger Hans Peter Freyther1-3/+5
Ubuntu 11.10 has changed some linker/compiler flags. Some fixes for this can be seen here[1]. In general the to be linked libs need to be moved into the LDADD section of parameters. This is with the old BFD linker (not gold). This is likely to end in some ping-pong with other versions of the linker. [1] https://bugs.launchpad.net/ubuntu/+source/nis/+bug/771034 Errors: /usr/bin/ld.bfd.real: bsc_hack.o: undefined reference to symbol 'osmo_init_ignore_signals' /usr/bin/ld.bfd.real: note: 'osmo_init_ignore_signals' is defined in DSO /home/ich/install/openbsc/lib/libosmocore.so so try adding it to the linker command line /home/ich/install/openbsc/lib/libosmocore.so: could not read symbols: Invalid operation ... ../../src/libbsc/libbsc.a(rest_octets.o):/home/ich/source/gsm/openbsc/openbsc/src/libbsc/rest_octets.c:381: more undefined references to `bitvec_set_bit' follow ../../src/libbsc/libbsc.a(rest_octets.o): In function `rest_octets_si13': /home/ich/source/gsm/openbsc/openbsc/src/libbsc/rest_octets.c:382: undefined reference to `bitvec_set_uint' /home/ich/source/gsm/openbsc/openbsc/src/libbsc/rest_octets.c:383: undefined reference to `bitvec_set_uint' /home/ich/source/gsm/openbsc/openbsc/src/libbsc/rest_octets.c:385: undefined reference to `bitvec_set_bit' /home/ich/source/gsm/openbsc/openbsc/src/libbsc/rest_octets.c:402: undefined reference to `bitvec_set_bit' /home/ich/source/gsm/openbsc/openbsc/src/libbsc/rest_octets.c:403: undefined reference to `bitvec_set_uint'
2011-10-14gprs: Fix various compiler warningsHolger Hans Peter Freyther1-2/+2
2011-10-14gprs: Fix compiler warnings in the codeHolger Hans Peter Freyther2-2/+4
2011-10-14gprs_gmm: Fix various compiler warningsHolger Hans Peter Freyther1-4/+7
gprs_gmm.c:240:2: warning: passing argument 4 of ‘gprs_llc_tx_ui’ discards qualifiers from pointer target type ../../include/openbsc/gprs_llc.h:151:5: note: expected ‘void *’ but argument is of type ‘const struct sgsn_mm_ctx *’ gprs_gmm.c:349:11: warning: unused variable ‘ptsig’ gprs_gmm.c:601:5: warning: too many arguments for format gprs_gmm.c:987:25: warning: initialization discards qualifiers from pointer target type gprs_gmm.c:1010:6: warning: ‘rc’ may be used uninitialized in this function
2011-08-19src: port openBSC over libosmo-abis0.9.15Pablo Neira Ayuso2-2/+2
This is a big patch that ports openBSC over libosmo-abis. Sorry, the changes that are included here are all dependent of libosmo-abis, splitting them into smaller pieces would leave the repository in some intermediate state, which is not desired. The main changes are: - The directory libabis/ has been removed as it now lives in libosmo-abis. - new configuration file format for nanoBTS and HSL femto, we need to define the virtual e1_line and attach it to the OML link. - all the existing BTS drivers (nanoBTS, hsl femto, Nokia site, BS11 and rbs2000) now use the new libosmo-abis framework. - use r232 input driver available in libosmo-abis for bs11_config. - use ipa_msg_recv instead of old ipaccess_read_msg function. - delete definition of gsm_e1_subslot and input_signal_data. These structures now lives in libosmo-abis. Most of this patch are deletions of libabis/ which has been moved to libosmo-abis. This patch also modifies openBSC to use all the new definitions available in libosmocore and libosmo-abis. In order to do that, we have replaced the following: - DINP, DMI, DMIB and DMUX by their respective DL* correspondences. - SS_GLOBAL by SS_L_GLOBAL - SS_INPUT by SS_L_INPUT - S_GLOBAL_SHUTDOWN by S_L_GLOBAL_SHUTDOWN - SS_INPUT by SS_L_INPUT - S_INP_* by S_L_INP_* sub-signals - E1INP_NODE by L_E1INP_NODE vty node This patch has been tested with: - one nanoBTS - the HSL femto with the examples available under libosmo-abis - BS11 with both dahdi and misdn drivers.
2011-08-05GPRS: Fix the parsing/interpretation of the PDP CTX status IEHarald Welte1-8/+16
The byte ordering is a bit odd: The least significant byte is ahead of the most significant byte, different from everything else in GSM that seems to be big-endian. Thanks to Seungju Kim <admin@manateeshome.com> for repoerting the bug.
2011-07-27LLC: Fix format stringDieter Spaar1-1/+1
2011-07-27GPRS: Fix buffer overflow in case of very long MS RA CAP IEHarald Welte1-3/+9
The MS Radio Access Capability IE can be _very_ long in some recent high-end mobile phones, way beyond the old 14-byte limit. We increase our array to 52 bytes, and make sure not to overflow that buffer.
2011-07-18misc: Remove the osmocom/core/process.h includeHolger Hans Peter Freyther1-1/+0
The osmo_daemonize moved from process.h to application.h (that is already included), remove the process.h include.
2011-07-16sgsn_libgtp: remove bogus unreached second return statementHarald Welte1-2/+0
found by Smatch
2011-07-16sgsn_main: add comment about exit statement never reachedHarald Welte1-0/+1
2011-07-16gprs_gmm: ctx cannot be null, so remove checkHarald Welte1-1/+1
Detected by Smatch: /home/laforge/projects/git/openbsc/openbsc/src/gprs/gprs_gmm.c +757 gsm48_rx_gmm_att_req(133) warn: variable dereferenced before check 'ctx'
2011-05-12misc: Use the osmo_init code for signals and loggingHolger Hans Peter Freyther2-20/+14
Use the libosmocore code to ignore certain signals by default (e.g. SIGHUP, SIGPIPE) and use the new code to create a default stderr logging target and initialize it properly.
2011-05-07src: use namespace prefix osmo_* for misc utilsPablo Neira Ayuso1-1/+1
Summary of changes: s/bcd2char/osmo_bcd2char/g s/char2bcd/osmo_char2bcd/g s/hexparse/osmo_hexparse/g s/hexdump/osmo_hexdump/g s/hexdump_nospc/osmo_hexdump_nospc/g s/ubit_dump/osmo_ubit_dump/g s/static_assert/osmo_static_assert/g
2011-05-06src: use namespace prefix osmo_signal*Pablo Neira Ayuso2-3/+3
Summary of changes: s/signal_cbfn/osmo_signal_cbfn/g s/register_signal_handler/osmo_signal_register_handler/g s/unregister_signal_handler/osmo_signal_unregister_handler/g s/dispatch_signal/osmo_signal_dispatch/g
2011-05-06src: use namespace prefix osmo_fd* and osmo_select*Pablo Neira Ayuso3-6/+6
Summary of changes: s/struct bsc_fd/struct osmo_fd/g s/bsc_register_fd/osmo_fd_register/g s/bsc_unregister_fd/osmo_fd_unregister/g s/bsc_select_main/osmo_select_main/g
2011-05-06src: use namespace prefix osmo_timer* for timer functionsPablo Neira Ayuso3-11/+11
Summary of changes: s/struct timer_list/struct osmo_timer_list/g s/bsc_add_timer/osmo_timer_add/g s/bsc_schedule_timer/osmo_timer_schedule/g s/bsc_del_timer/osmo_timer_del/g s/bsc_timer_pending/osmo_timer_pending/g s/bsc_nearest_timer/osmo_timers_nearest/g s/bsc_prepare_timers/osmo_timers_prepare/g s/bsc_update_timers/osmo_timers_update/g s/bsc_timer_check/osmo_timers_check/g
2011-04-18misc: Remove sys/types.h includes from the filesHolger Hans Peter Freyther7-7/+0
These are not needed any more. We used them for u_int types but we now use uint which comes from stdint.h
2011-04-18misc: Move from u_int to uint types of stdint.hHolger Hans Peter Freyther3-4/+4
This was done with sed on the files.
2011-03-28src: include new file osmocom/vty/misc.h for vty_out_rate_ctr_group()Pablo Neira Ayuso1-0/+1
This uses the new include file for vty_out_rate_ctr_group() which available in libosmocore.
2011-03-23Fix build of bsc-nat and GPRS code after include path changeHarald Welte4-5/+5
The last patch changed the osmocore include paths, this fixes some build problems caused by it
2011-03-23src: use new library libosmogsm and new path to headers in libosmocorePablo Neira Ayuso13-48/+48
libosmogsm is a new library that is distributed in the libosmocore. Now, openbsc depends on it. This patch gets openbsc with this change. This patch also rewrites all include path to the new osmocom/[gsm|core] Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-03-23src: fix use of logging_vty_add_cmds() without log_info parameterPablo Neira Ayuso2-2/+4
This patch fixes: CC gb_proxy_main.o gb_proxy_main.c: In function ‘main’: gb_proxy_main.c:224: warning: implicit declaration of function ‘logging_vty_add_cmds’ And a similar problem in osmo-bsc_nat. This was introduced in by myself in patch: "bsc: change bsc_vty_init to take logging categories as parameter" Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-03-04prefix sub-directories containing libraries with 'lib'Harald Welte1-2/+5
... and make sure tests work again after restructuring
2011-03-03Move 'Gb' protocol stack into its own src/gb subdirectoryHarald Welte7-3025/+4
2011-03-03re-structure the OpenBSC directory layoutHarald Welte1-6/+4
The new structure divides the code into a number of libraries for the BSC core functionality, MSC core functionality, Abis transport, TRAU and other bits. This doesn't introduce any functional code change but simply moves around files and alters Makefile.am accordingly. Next step would be to disentangle a lot of the inter-library dependencies and make the individual bits of code more independent.
2011-02-24Use shorter vty_app_info->name for all appsHarald Welte2-2/+2
... as this is now used as SYSLOG ident
2011-02-19Install programs into $(prefix)/bin, not /sbinHarald Welte1-2/+2
At least in many configurations, there is no need to run any of our programs as root. Thus, we shouldn't install them in sbin.
2011-02-18LOGGING: make sure to make the 'logging filter' compatible with vty log cfgHarald Welte2-12/+10
Recent libosmocore introdues a way how log targets can be configured from the VTY. This commit makes the 'log filter (imsi|nsvc|bvc)' compatible with it.
2011-02-06[gb_proxy] vty: display the BVC BLOCKED status in 'show gbproxy'Harald Welte1-4/+6
2011-02-06[gb_proxy] make sure bssgp cell id is copied correctlyHarald Welte1-1/+3
When we copy a msgb, we need to make sure the msgb_cb->bssgp_cell_id pointer points to data in the new message, not in the old message. Thanks to Dieter Spaar for spotting this.
2011-02-06[gb proxy] treat BVCI=1 consistently like signallingHarald Welte1-2/+2
1 is reserved for point-to-multipoint data, i.e. not a point-to-point BVCI.
2011-02-06[gb_proxy] Convert a NS-BLOCK from BSS into BVC-RESET to SGSNHarald Welte1-12/+31
As we only have one NS-VC between gb_proxy and SGSN, we cannot forward a NS-BLOCK from the BSS to the SGSN, as it would affect all other BSS's, too. Thus, we check if we have an unblocked PTP-BVC in the NSVC to the BSS, and then issue a BVC-BLOCK towards the SGSN. This should prevent any further PDU's from the SGSN to be sent to this BSS.
2011-02-06[gb_proxy] Track the state of blocked/unblocked BVC in the proxyHarald Welte1-13/+59
This allows us to reject any additional messages sent by the SGSN after the BVC was blocked (+ acknowledged to be blocked)
2011-01-14update gitignoreHarald Welte1-0/+2
2011-01-01[SGSN] Fix processing of RA Update Request regarding TLLIHarald Welte2-1/+27
In case we get a RA UPD REQ on a new cell (both served by the same SGSN), the LLC stack should not allocate a ne LLE/LLME, as the latter would reset the V(u)sent / V(u)recv to zero and make the MS discard our responses. Instead, whenever the LLC stack sees a foreign TLLI, it should always convert it to the local TLLI before doing any lookup for a LLE/LLME.
2011-01-01License change: We are now AGPLv3+ instead of GPLv2+Harald Welte19-116/+97
The reason for this is quite simple: We want to make sure anyone running a customized version of OpenBSC to operate a network will have to release all custom modifiations to the source code.