aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2014-07-22mgcp: Change API to remove memory management from the nameHolger Hans Peter Freyther8-20/+21
Jacob pointed out that "free_endp" refers to the memory of the endpoint being freed. What we want is actually a way to release an endpoint (and the resource it allocated) or in the case of the testcase/testapp initialize the data structure correctly. Introduce two names for that.
2014-07-22Merge commit 'zecke/fixes/mgcp-transcoding'Holger Hans Peter Freyther4-18/+168
Include the last bits of fixes for the transcoding code. These fixes and the appropriate mgcp config are known to work.
2014-07-22mgcp: Fix/test the case of a time jump and the resyncHolger Hans Peter Freyther2-0/+48
In case the sender didn't send a couple of frames we will have a time gap that is bigger than the accepted delta. Add a new testcase for this and update the next_time.
2014-07-22mgcp: Add a testcase for 160->80 ptime handlingHolger Hans Peter Freyther1-0/+19
2014-07-22mgcp: Initialise next_time in case the initial timestamp is not 0.Holger Hans Peter Freyther2-6/+10
2014-07-22mgcp: Document transcoding semantic and follow itHolger Hans Peter Freyther4-16/+95
Transcoding from GSM to PCMA can lead to the MGCP MGW sending two PCMA packages with the same sequence number and timestamp. Once with the encoded audio and once completely empty. This is because "state->dst_packet_duration" is 0 in most cases (unless a ptime is forced) and we attempt to encode audio even if there are not enough samples. The encode_audio return will return 0 in that case which is not trated as an error by the mgcp network code. Handle rc == 0 specially and document the semantic.
2014-07-22mgcp: Fix/test reading/writing the sequence numberHolger Hans Peter Freyther3-9/+61
The sequence number was read from the wrong place and then the wrong byte order conversion routine was used so we ended up wirting 0x00, 0x00 into the patched sequence number. Add a testcase for that.
2014-07-22mgcp: Patch and Count _after_ the transcodingHolger Hans Peter Freyther1-1/+1
When going from a ptime of 10 to 20 a lot of alignment errors are reported. In fact the alignment check should be done before and after the transcoding. As this is not possible right now only do it _after_ the patching.
2014-07-22mgcp: Add a comment about the return of the functionHolger Hans Peter Freyther1-0/+5
2014-07-22Merge branch 'zecke/fixes/mgcp-transociding-tests'Holger Hans Peter Freyther4-300/+333
Various clean-ups and extensions to the tests. Share one test set-up routine, capture more of the API inside the output files.
2014-07-22mgcp: Make the internal state of the transcoder accessibleHolger Hans Peter Freyther2-50/+54
For the unit tests we need to look at the internal state.
2014-07-22mgcp: Capture the return value of the of the transcode functionHolger Hans Peter Freyther2-192/+205
2014-07-22mgcp: Do not use errx as finding a test failure is too hardHolger Hans Peter Freyther1-6/+12
It took me a long time to figure out that errx just exits and the test output didn't indicate that the application was exited early. Use a printf and good old abort in case of a failure.
2014-07-22mgcp: Re-factor testcase to separate test and setupHolger Hans Peter Freyther1-54/+64
Separate the test from the code necessary for the setup. This is somehow inspired by the PhExample framework of Pharo.
2014-07-22mgcp: Warn when the buffer is being reset due a wrong seq numberHolger Hans Peter Freyther1-2/+5
When the sample buffer is being dropped write a warning so we can see how often this event occurs.
2014-07-22mgcp: Mention the packet duration in the error messageHolger Hans Peter Freyther1-2/+2
2014-07-22mgcp: Provide more information about configured endpointsHolger Hans Peter Freyther1-13/+26
2014-07-22mgcp: Fix memory leak in the transcoding codeHolger Hans Peter Freyther1-1/+1
The GSM handle was never released. This was found using valgrind and the leak check. ==14933== 752 bytes in 1 blocks are definitely lost in loss record 15 of 19 ==14933== at 0x4028B4C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==14933== by 0x4130201: gsm_create (in /usr/lib/i386-linux-gnu/libgsm.so.1.0.12) ==14933== by 0x80517AE: mgcp_transcoding_setup (mgcp_transcode.c:199) ==14933== by 0x8049691: given_configured_endpoint.isra.1 (mgcp_transcoding_test.c:198) ==14933== by 0x8049C11: test_transcode_result (mgcp_transcoding_test.c:328) ==14933== by 0x8049418: main (mgcp_transcoding_test.c:582)
2014-07-22trau_mux.c: Prevent out-of-bounds read in trau_decode_fr()Holger Hans Peter Freyther1-0/+3
Haralds patch in 9f109dfb9926558b6ea504dc3aee92cfd64413bd only fixed the trau_encode_fr part but the issue seems to exist in the decode function as well. Apply the same fix.
2014-07-19smpp: Fix small typo in the commentHolger Hans Peter Freyther1-1/+1
2014-07-17gbproxy: Fix the NAME in the start script...Holger Hans Peter Freyther1-1/+1
NAME is used by start-stop-daemon to stop the process.
2014-07-09bsc: Implement a way to relay a message to the remote MSCHolger Hans Peter Freyther1-0/+41
This is analogue to the notification that is relayed locally and now we have a way to relay a message back to the network.
2014-07-09osmux: Now that we have IPv4/port we might want to consider to expire handlesHolger Hans Peter Freyther1-0/+1
2014-07-09osmux: Mention where the data was coming fromHolger Hans Peter Freyther1-2/+4
2014-07-09osmux: Be accurate. The label has been already createdHolger Hans Peter Freyther1-1/+1
2014-07-08osmux: Make sure to always use the right dummy sending methodHolger Hans Peter Freyther1-6/+11
Make sure to re-use the right method for nat traversal. Found by Roch while looking at traces.
2014-07-08bsc: Use the word core network and not backbone.Holger Hans Peter Freyther1-2/+2
2014-07-08osmux: Remove extra newline from the osmux log messageHolger Hans Peter Freyther1-1/+1
<000b> osmux.c:177 Cannot find endpoint with cid=7 ! <000b> osmux.c:253 Cannot find an endpoint for circuit_id=7 The extra newline and '!' do not provide any extra value and make reading the output more difficult. Just remove it.
2014-07-07gprs/test: Increase stderr log levelJacob Erlbeck1-4/+20
Enable the generation of more log messages. Sponsored-by: On-Waves ehf
2014-07-07gbproxy_test: Provide enough disabled categories to please valgrindHolger Hans Peter Freyther1-1/+6
An empty log_info is not enough. We need to make sure that at least DLGLOBAL is present. Instead of doing that make sure that we have enough entries. ==26163== Conditional jump or move depends on uninitialised value(s) ==26163== at 0x403B289: osmo_vlogp (logging.c:290) ==26163== by 0x403B3DA: logp2 (logging.c:339) ==26163== by 0x804D027: gbprox_relay2bvci (gb_proxy.c:347) ==26163== by 0x804D3CF: gbprox_rx_sig_from_sgsn (gb_proxy.c:589) ==26163== by 0x804DBFC: gbprox_rcvmsg (gb_proxy.c:685) ==26163== by 0x4052CB0: gprs_ns_process_msg (gprs_ns.c:669) ==26163== by 0x4052F70: gprs_ns_rcvmsg (gprs_ns.c:1053) ==26163== by 0x804BB49: gprs_process_message (gbproxy_test.c:488) ==26163== by 0x804BC4C: send_ns_unitdata (gbproxy_test.c:210) ==26163== by 0x804BDE8: send_bssgp_reset_ack (gbproxy_test.c:243) ==26163== by 0x804B54F: main (gbproxy_test.c:863) ==26163==
2014-07-07mgcp: Ignore the transcoding testHolger Hans Peter Freyther1-0/+1
2014-07-07mgcp: Verify that the force-ptime is written back to the fileHolger Hans Peter Freyther3-1/+26
When the command was added it was not verified that. Add a very basic MGCP VTY test and test that the string appears in the config.
2014-07-07mgcp: Fix documentation issue in the force-ptime commandHolger Hans Peter Freyther1-1/+2
<command id='rtp force-ptime (10|20|40)'> <param name='10' doc='(null)' /> <param name='20' doc='(null)' /> <param name='40' doc='(null)' />
2014-07-07rtp: Share the rtp header between the proxy and the mgcp codeHolger Hans Peter Freyther4-59/+41
2014-07-07nat: Fix the documentation issue with the osmux commandHolger Hans Peter Freyther1-1/+1
Documentation error (missing docs): <command id='osmux (on|off)'> <param name='off' doc='(null)' />
2014-07-07gbproxy_test: Reset the gbproxy before we reset GPRS NSHolger Hans Peter Freyther1-3/+3
The peers are (talloc) children of the GPRS NS. This means the peers (and the rate counters) are currently being deleted twice. ==23446== Invalid write of size 4 ==23446== at 0x403C243: rate_ctr_group_alloc (linuxlist.h:66) ==23446== by 0x4050974: gprs_nsvc_create (gprs_ns.c:209) ==23446== by 0x405320D: gprs_ns_instantiate (gprs_ns.c:1330) ==23446== by 0x804ABEB: main (gbproxy_test.c:666) ==23446== Address 0x4300694 is 52 bytes inside a block of size 784 free'd ==23446== at 0x4029DA8: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==23446== by 0x4041B9D: _talloc_free (talloc.c:609) ==23446== by 0x4043292: talloc_free (talloc.c:578) ==23446== by 0x40532D3: gprs_ns_destroy (gprs_ns.c:1363) ==23446== by 0x804ABD7: main (gbproxy_test.c:660)
2014-07-07gprs_llc: Prevent llme_alloc/lle_init from reading invalid memoryDaniel Willmann1-1/+1
Make the llc_default_params structure from which data is initialized large enough. Otherwise address sanitizer complains with out-of-bounds reads. Only SAPIs 1, 2, 3, 5, 7, 8, 9, 11 are defined for GPRS but the struct gprs_llc_llme includes NUM_SAPIS lle's and they are populated from the llc_default_params structure.
2014-07-07libbsc, osmo-bsc{, _nat}: Prevent unaligned access when casting TLVP_VALDaniel Willmann3-7/+7
foo = *((uintXX_t *) TLVP_VAL(...) can lead to unaligned access. To prevent that use tlvp_valXX_unal() to get the values.
2014-07-07gbproxy_test: Simplify the test setup by sharing codeHolger Hans Peter Freyther1-30/+24
2014-07-07gprs/test: Add additional gbproxy testsJacob Erlbeck2-1/+460
This adds a test case with several messages to test BSSGP patching. New messages: - BSSGP/DTAP Attach Request - BSSGP/DTAP Attach Accept - BSSGP/DTAP Routing Area Update Request - BSSGP/DTAP Routing Area Update Accept - BSSGP/DTAP Activate PDP Context Request - BSSGP SUSPEND - BSSGP SUSPEND ACK Sponsored-by: On-Waves ehf
2014-07-07gprs/test: Add connect_sgsn() functionJacob Erlbeck1-10/+11
This function abstracts identical code sequences that are used at multiple places. Sponsored-by: On-Waves ehf
2014-07-07gprs/test: Remove verbose parameter of gbprox_dump_* functionsJacob Erlbeck3-36/+30
This parameter is not used (the methods are always called with an argument of 1 in the third position). Thus the parameter is removed completely. Sponsored-by: On-Waves ehf
2014-07-03db: Use ulonglong to access the database for sqlite3Holger Hans Peter Freyther1-14/+14
The type in the schema is integer but we need to use ulonglong to read it as otherwise the read will fail. DBI: -7: The requested variable type does not match what libdbi thinks it should be
2014-06-23trau_mux.c: Prevent out-of-bounds read in trau_encode_fr()Harald Welte1-0/+3
found by -fsanitize=address the last iteration of the loop, where i == 259 and o == 260. It is read out-of-bounds but the content is never used.
2014-06-18nitb: Only print channel activations once in show statisticsHolger Hans Peter Freyther1-3/+0
openbsc_vty_print_statistics will already print these counters for us. No need to print them again.
2014-06-16mgcp: Allow to batch more than four messagesHolger Hans Peter Freyther1-1/+1
2014-06-15gprs: Use area terms LAI/RAI as defined in GSM 03.03Jacob Erlbeck2-87/+87
Currently the terms 'Routing area code' (RAC) and 'Location area code' (LAC) are used in several places where 'Routing area identification' (RAI) or 'Location area identification' (LAI) are meant in fact. This patch replaces RAC/LAC by RAI/LAI and 'code' by 'identification' at these places. Note that RAI := MCC MNC LAC RAC, and LAI := MCC MNC LAC (see GSM 03.03, sections 4.1 and 4.2). Sponsored-by: On-Waves ehf
2014-06-15mgcp: Fix SDP formatting of fmtp_extra (Coverity)Jacob Erlbeck2-26/+1
Currently when ftmp_extra is set, a doubled a=rtpmap line is emitted instead of the fmtp_extra info. This patch fixes replaces the formerly copied and pasted but not modified snprintf parameters by the correct ones. Fixes: Coverity CID 1220873 Sponsored-by: On-Waves ehf
2014-06-15mgcp/test: Add test case using the fmtp_extra infoJacob Erlbeck2-0/+69
Add tests setting the fmtp_extra field to check the response generation. This triggers a bug found by Coverity. Addresses: Coverity CID 1220873 Sponsored-by: On-Waves ehf
2014-06-12proxy: Annotate the switch/case/fall throughHolger Hans Peter Freyther1-0/+1
Use the same comment as some lines earlier in that file. Fixes: Coverity CID 1040737