aboutsummaryrefslogtreecommitdiffstats
path: root/tests/gb
AgeCommit message (Collapse)AuthorFilesLines
2014-10-09gprs-ns/test: Add test_sgsn_reset_invalid_stateJacob Erlbeck2-0/+163
This tests the behaviour for a certain combination of messages and packet losses that can put the NS-VC object into an undefined state. In that state, the peer's ALIVE messages are properly answered, but the local test procedure has stopped, incoming unitdata PDUs are answered by STATUS(NS-VC blocked) and the unblocking procedure is not initiated. Ticket: OW#1312 Sponsored-by: On-Waves ehf
2014-10-09gprs-ns/test: Add expire_nsvc_timerJacob Erlbeck1-0/+15
This function forces the expiration of the timer within struct gprs_nsvc. It is meant to be used for controlled (and faster) timer expiration in unit tests. The timer_mode of the expired timer is returned (or -1 if the timer wasn't active). Sponsored-by: On-Waves ehf
2014-10-09gprs-ns/test: Save the last PDU type sentJacob Erlbeck1-0/+4
This records the PDU type of the last message sent to the remote peer in the global variable sent_pdu_type, which can then be used in assertions. Note that sent_pdu_type will remain unchanged if no message has been sent via sendto. Sponsored-by: On-Waves ehf
2014-10-09gprs-ns/test: Use gprs_nsvc_reset instead of gprs_ns_tx_resetJacob Erlbeck2-22/+13
Currently gprs_ns_tx_reset is used to let the NS stack generate NS_RESET message. This is not adjusting the nsvc state properly. This patch uses gprs_nsvc_reset instead which starts the full reset procedure. Sponsored-by: On-Waves ehf
2013-10-30gprs: Ignore NS RESET_ACK and ALIVE_ACK without RESETJacob Erlbeck1-6/+0
Currently those messages are answered by a NS_STATUS message when received on an uninitialised (no NS_RESET hat been seen yet) NS_VC which violates GPP TS 08.16 7.3.1 and 7.4.1. This patch adds checks to gprs_ns_vc_create() and eventually returns before the error NS_STATUS message is generated. Sponsored-by: On-Waves ehf
2013-10-30grps: Add test for NS messages that shall be ignoredJacob Erlbeck2-0/+55
Several messages shall not be answered when a RESET hasn't been received on a NS-VC: - NS_RESET_ACK (see 3GPP TS 08.16, 7.3.1) - NS_ALIVE_ACK (see 3GPP TS 08.16, 7.4.1) - NS_STATUS (see 3GPP TS 08.16, 7.5.1) Sponsored-by: On-Waves ehf
2013-10-24gb: Create new NSVC object instead of patching the NSVCIJacob Erlbeck2-12/+28
When a RESET is received on the same link with a different NSVCI from a BSS on a dynamically created NS connection do not patch the nsvc object but create a new one instead. Thus the NSVCI is never modified at a nsvc object after the NS-VC has been established. Sponsored-by: On-Waves ehf
2013-10-24gb: Fix RESET handling with changing NSEIJacob Erlbeck1-22/+27
This modifies the NS stack's behavior to accept RESET and RESET_ACK NSEI changes for NS-VC dynamically created by RESET messages from BSSes. This feature is not used for NS-VC configured via VTY or NS-VC to a SGSN. Sponsored-by: On-Waves ehf
2013-10-24gb: Fix NS RESET/RESET_ACK abnormal casesJacob Erlbeck2-101/+74
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
2013-10-24gb: Add test cases for NS RESET proceduresJacob Erlbeck2-0/+703
Add a test handling proper and mismatching RESETs. The latter may occur, when ports change within a NS-VC without the SGSN getting notice. This tests for the behavior of the NS protocol stack for RESET and RESET_ACK messages which changing/invalid NSEI and NSVCI like it is being described in 3GPP TS 08.16, 7.3.1. Sponsored-by: On-Waves ehf
2013-10-24gb: Fix gprs_nsvc_delete() to free ctr groupJacob Erlbeck2-0/+127
This fixes a SEGV error that happens the next time the statistics are updated. Addresses: Program terminated with signal 11, Segmentation fault. #0 0xb7711fa5 in rate_ctr_group_intv (grp=<optimized out>) at rate_ctr.c:107 107 for (i = 0; i < grp->desc->num_ctr; i++) { #0 0xb7711fa5 in rate_ctr_group_intv (grp=<optimized out>) at rate_ctr.c:107 #1 rate_ctr_timer_cb (data=0x0) at rate_ctr.c:129 #2 0xb770ec59 in osmo_timers_update () at timer.c:243 #3 0xb770ef7a in osmo_select_main (polling=0) at select.c:133 #4 0x08049987 in main (argc=3, argv=0xbfba8084) at gb_proxy_main.c:306 Sponsored-by: On-Waves ehf
2013-10-17gb: Fix gprs_active_nsvc_by_nsei()Jacob Erlbeck1-10/+10
The state matching condition is inverted. This is corrected by this fix. Sponsored-by: On-Waves ehf
2013-10-17gb: Test sending messages to the SGSNJacob Erlbeck2-53/+418
This adds tests for the gprs_ns_sendmsg() function. For this it merges back functions from the gbproxy test. Sponsored-by: On-Waves ehf
2013-10-15gb: Fix gprs_ns_rx_reset to not create NS-VC duplicatesJacob Erlbeck2-3/+35
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
2013-10-15gb: Add functions to access the LL part of the NS-VC objectsJacob Erlbeck1-5/+5
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
2013-10-11tests/gb: Show invoked signals in test outputJacob Erlbeck2-1/+53
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
2013-10-08gb: Use the NS-VCI to find an existing NS-VCJacob Erlbeck1-3/+4
Currently when a NS-RESET is recevied over a link that has not yet been associated with a NS-VC, the NSEI is used to find an existing NS-VC. If one is found, the reset procedure is initiated. This behaviour is not conformant with 3GPP TS 08.16 (see chapter 4.2.3) which allows to use several NS-VC between two endpoints in parallel. The patch changes the implementation to use the NSVCI instead of the NSEI to search for an existing NS-VC object. Ticket: OW#874 Sponsored-by: On-Waves ehf
2013-10-08gb: Fix NS-RESET response message orderJacob Erlbeck1-18/+18
According to 3GPP TS 08.16, 7.3 "Reset procedure" the entity receiving a NS-RESET PDU responds with a NS-RESET-ACK and 'then' starts the test procedure which essentially means, that a NS-ALIVE gets sent and a timer is started. Currently the NS-ALIVE is sent before the NS-RESET-ACK. This patch fixes the implementation by reversing the order in which these messages are sent. Sponsored-by: On-Waves ehf
2013-10-08tests/gb: Add test for GPRS NS protocolJacob Erlbeck2-0/+371
This tests the connection establishment by directly calling gprs_ns_rcvmsg() and printing the resulting messages and the NS-VC list.
2013-09-16bssgp: Address various compiler warnings in the bssgp codeHolger Hans Peter Freyther1-0/+3
gb/bssgp_fc_test.c: In function ‘fc_out_cb’: gb/bssgp_fc_test.c:46:1: warning: no return statement in function returning non-void [-Wreturn-type] gb/bssgp_fc_test.c: In function ‘fc_in’: gb/bssgp_fc_test.c:56:1: warning: no return statement in function returning non-void [-Wreturn-type] gb/bssgp_fc_test.c: In function ‘test_fc’: gb/bssgp_fc_test.c:79:3: warning: implicit declaration of function ‘usleep’ [-Wimplicit-function-declaration]
2012-09-11tests: Make the gb test work with srcdir != builddirHolger Hans Peter Freyther2-51/+53
* Disable color and printing the filename of the stderr log target, update the results * Add the .ok, .err and .sh files to the extra_dist * Execute the shell script from the source directory
2012-09-07BSSGP: make bvc_ctx->fc a dynamic talloc allocationHarald Welte1-50/+50
this ensures that we can talloc the flow-control queue entries as siblings off the bvc_ctx.
2012-09-07GPRS BSSGP test: integrate into autotestHarald Welte3-0/+216
we use a smalle shell script to iterate over multiple tests
2012-09-07BSSGP flow-control: Add unit test for algorithm testsHarald Welte1-0/+167