summaryrefslogtreecommitdiffstats
path: root/include/osmocom/gprs
Commit message (Collapse)AuthorAgeFilesLines
* include: Switch to #pragma once patternSylvain Munaut2014-06-167-26/+7
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gb: Fix NS RESET/RESET_ACK abnormal casesJacob Erlbeck2013-10-241-0/+5
| | | | | | | | | | | | | | | | This changes the implementations for the reception of RESET and RESET_ACK to be compatible with 3GPP TS 08.16, 7.3.1: - Just send a RESET_ACK with correct values back to the SGSN when a RESET with an invalid NSVCI or NSEI has been received. - Check RESET_ACK for matching NSEI and NSVCI. - Ignore unexpected RESET_ACKs. In addition, use RESET_ACK from a BSS to update the BSS source address based on the NSVCI to be tolerant with changing UDP source addresses/ports. Sponsored-by: On-Waves ehf
* gb: Fix gprs_ns_rx_reset to not create NS-VC duplicatesJacob Erlbeck2013-10-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Under special circumstances (see below) receiving a NS-RESET leads to duplicated NS-VC entries. This happens when the source port of a NS-VC changes to a new one that has already been used by another NS-VC. This patch changes gprs_ns_rx_reset() to check for this case and to use the existing NS-VC object. The NS-VC object that was associated with the source address before is detached from this source but kept in the NS-VC list so that it can be reattached when a correspondent NS-RESET is received later on. Meanwhile it will have a cleared link layer address which will not match a real link info. A new counter NS_CTR_REPLACED is incremented each time when the NS-VC object is replacing another one. A new signal S_NS_REPLACED is added which gets dispatched in this case, too. Another new counter NS_CTR_NSEI_CHG is incremented each time when the NSEI of a NS-VC object (with fixed NSVCI) changes. Ticket: OW#874 Sponsored-by: On-Waves ehf
* gb: Add functions to access the LL part of the NS-VC objectsJacob Erlbeck2013-10-151-1/+7
| | | | | | | | Adds the functions gprs_ns_ll_copy() and gprs_ns_ll_clear(). Renames gprs_ns_format_peer() to gprs_ns_ll_str(). All of these functions uniformly access the link layer part within the NS-VC objects. Sponsored-by: On-Waves ehf
* tests/gb: Show invoked signals in test outputJacob Erlbeck2013-10-111-0/+3
| | | | | | | Register an osmo signal handler to print a short notice about every SS_L_NS signal that is generated while processing the tests. Sponsored-by: On-Waves ehf
* gb: Separate nsvc creation from NS message processingJacob Erlbeck2013-10-081-0/+9
| | | | | | | | | | | | This patch refactors gprs_ns_rcvmsg() by moving the parts relevant to the NS messages into the new functions gprs_ns_vc_create() (nsvc object creation) and gprs_ns_process_msg() (main NS automaton). These do not contain code that directly depends on the link layer (they call other functions that still do). This reduces the gprs_ns_rcvmsg() function to calling these two functions and optionally setting up the link layer specific fields of the nsvc. Sponsored-by: On-Waves ehf
* msgb: Add may_alias attribute to struct libgb_msgb_cbJacob Erlbeck2013-10-081-1/+1
| | | | | | | | | | This explicitely allows aliasing of this struct to avoid the warning shown below. Note, that this warning isn't show when '-fno-strict-aliasing' is used. Addresses: gb/gprs_ns_test.c:85:54: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
* libosmogb: Add function to close NS instance without destroying itHolger Hans Peter Freyther2013-07-061-1/+4
|
* gprs_ns: Allow to set the DSCP for the UDP socket.Holger Hans Peter Freyther2013-03-251-0/+1
| | | | Allow to tag the NS service with a custom DSCP.
* Fix: Correcting bssgp_tx_fc_bvc, bssgp_tx_fc_ms, bssgp_tx_ul_udAndreas Eversberg2012-09-301-2/+2
|
* Gb: Add functions for sending flow control messages from BSS sideHarald Welte2012-09-101-0/+8
|
* Gb: Add header file for BSS-side BSSGP functionsHarald Welte2012-09-101-0/+67
| | | | .. not sure how we could have missed that so far.
* BSSGP: make bvc_ctx->fc a dynamic talloc allocationHarald Welte2012-09-071-1/+1
| | | | | this ensures that we can talloc the flow-control queue entries as siblings off the bvc_ctx.
* BSSGP flow-control: various fixesHarald Welte2012-09-071-5/+13
| | | | | | | * add more comments on units of struct members * make sure to parsre FC-BVC message correctly * add error message in case user passes PDU larger than bucket size * add new function to initialize flow control struct
* libosmogb: Port BSSGP flow control from openbsc/laforge/bssgp_fc branchHarald Welte2012-09-071-0/+37
| | | | | | | | This code is supposed to implement the BSSGP flow control algorithm, both for the per-BSS and for the per-MS flow control. The code currently has no test cases, they will come in a separate commit.
* gb: Make suspend_ref a plain uint8_t instead of a uint8_t*Holger Hans Peter Freyther2012-08-031-1/+1
| | | | | | The OpenSUSE build is not happy about the uint8_t to uint8_t* assignment. As the suspend_ref is a mandatory field we can make it a plain uint8_t. Increase the LIBVERSION as the ABI has changed.
* build: simplify headers management and remove recursionDiego Elio Pettenò2012-06-302-8/+0
| | | | | | | | | | | | There is no real reason to keep the include directory a multi-level recursion, so instead declare everything within include (so that we can use proper nobase_ declarations) and be it. Please note that since we removed the sub-Makefile.am, ./configure will not create the directory structure for us on out-of-tree builds, so we have to make sure the directory we're generating to exists first. Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
* libosmogb: move files to proper location and fix buildHarald Welte2012-06-178-0/+635