GAPK I/O is currently generating too many UL voice frames, causing
Tx queue overflow in the L1 PHY. Change the logic to make DL voice
frames drive the Uplink processing chain, like we do for CSD.
Change-Id: I3a7fa223cb592acd5b850819e0682c9c8f81e9d1
Now that we support data (CSD) calls in addition to voice calls,
we can no longer initialize the TRAFFIC.{ind,req} routing mode
in gsm48_rr_init(). We need to apply the appropriate TCH routing
mode *during call establishment* based on its type and the
configured I/O handler type.
After this patch, one can have the following configuration:
tch-voice
io-handler l1phy
tch-data
io-handler unix-sock
io-tch-format ti
so that the io-handler setting for voice would not affect data calls.
Before this patch, the L1 PHY (specifically, Calypso firmware) would
not route TRAFFIC.{ind,req} during data calls at all.
Thanks to this patch, it's also no longer required to restart the
mobile application after changing voice or data I/O handler.
Change-Id: Iab68cb47c28380a9c1efc149c6196ea54f75fdb8
Related: OS#4396
During a Mobile Originating voice call, we would normally start
receiving traffic indications with ringback tone (or even some
melody) before the call gets CONNECTed. So in order for the user
to be able to hear that, we need to init the voice call handler
earlier (on receipt of CC ALERTING message).
We should not be transmitting voice/data frames before the call
gets CONNECTed, so add 'rx_only' flag to the TCH state. In
tch_send_msg() drop msgb if this flag is set.
Rx only mode makes no sense for data calls, so in tch_recv_cb() we
discard received DL frames and thus do not trigger sending UL frames.
Change-Id: Idd32c823639cc1f9999d77fcefe7e260e31a85ec
Related: OS#4396
In tx_pdtch_fn(), delay sending DATA.cnf until bid=3. Otherwise we
send it too early (at bid=0) and trick the upper layers (RLC/MAC)
to believe that the whole block (all bursts) has been transmitted.
Change-Id: If32fafeef0ea347ed3800e6b67349bf12e66047f
The current timeout is too low, taking into account that SM PDP
Activation timeout is already 30. When SM fails, it will retry sending
PDP Context Activation Req. Hence, give it enough time to at least retry
once, plus some extra buffer time (eg to go through GMM attach once).
Change-Id: I34f9b0a5ad5767155dc3e4c0ac1c4bf1521be596
* assert() the given TDMA Tn before accessing gprs->pdch[]
* do not check TDMA Fn, as there can be no RTS.ind for PTCCH/U
** unlike PTCCH/D, we send Access Bursts on PTCCH/U
Change-Id: Ie74d1c4123715d61875c4c956eb4a1ce97ed5f24
It's unlikely to happen as long as all TCH_DATA_IOF_* variants are
handled in the switch statements, but still gcc does complain.
Change-Id: I0a81d5c4f11feb7cf73771c23848dee9ce6ec620
We already have VTY commands to configure data call parameters at
run-time, but so far there was no way to save and restore them.
This commit adds the respective commands to TCH_DATA_NODE.
Change-Id: I4453f2e7e048b3f3ebb1727f6d26f018c792c92d
Related: OS#4396
Currently we unconditionally expect the rate adaption (octet 5) in
the Bearer Capability IE to be GSM48_BCAP_RA_V110_X30. This is
correct for UDI (GSM48_BCAP_ITCAP_UNR_DIG_INF), but not for 3.1 kHz
audio (GSM48_BCAP_ITCAP_3k1_AUDIO) and fax (GSM48_BCAP_ITCAP_FAX_G3)
calls. For the later two it should be GSM48_BCAP_RA_NONE.
Change-Id: I70d36b3540ed2469068e050809a17ed07b434ad7
Related: OS#4396
So far we supported the Texas Instruments format (TCH_DATA_IOF_TI),
which is used by Calypso based phones (e.g. Motorola C1xx), but not
the format that trxcon speaks/understands (TCH_DATA_IOF_OSMO).
Change-Id: Ib17e800e91ad536db53aa55661076089f0ce34b0
Related: OS#4396
We cannot initiate V.34 data calls because gsm48_encode_bearer_cap()
does not support octet 6d. This variant should not be selectable.
Change-Id: Ibafb9a693654672fb9a6abf665c500a27c87bf22
Related: OS#4396, OS#6344
This is basically a back-port of the fix that was merged to
libosmocore.git back in 2013. Our ancient copy of libosmocore,
which is used for building the firmware, predates this commit.
Ideally, we should rip off this ancient copy and build the firmware
against recent master (see OS#2378). But for now, let's just fix
our local copy. Otherwise TCH/[FH]2.4 support is broken.
Change-Id: I99f528f3e1cd4c04ebb9d8becf1572688dd531ae
Related: libosmocore.git 31e844bfe2
Related: OS#4396
We will need to know the current Bearer Capability of a CC
transaction in the upcoming patches adding CSD support.
Change-Id: Ifc3ecf832a552c65444f49711ac836b6cd984715
Related: OS#4396
This allows driving logic in other modules based on transaction
related events, such as allocation, deallocation, or a state change.
These new signals will be used in the upcoming CSD implementation.
Change-Id: Idae5da24cb517878a26cc14b2ba6976e60f0b31b
Related: OS#4396
Fix a regression: check if Location Area Information IE fits.
Change-Id: I51e2ae1be1c51a6359f8b0faad56f654251f1413
Fixes: bb0ac02e "mobile: always check return value of tlv_parse()"
Fixes: CID#341618
A similar check was recently added to gsm48_cc_data_ind().
Change-Id: Ibc5153df41e2c6365a3c65b1906d440a1074514b
Related: 273d412a "mobile: gsm48_cc_data_ind(): check if struct gsm48_hdr fits"
The L1 PHY may emit empty TRAFFIC.ind in case of decoding errors.
Abort execution of pq_audio_sink early, otherwise we hit an assert.
Change-Id: Ice11b72ddfd51fbfb17a4c609c664b86a8f69591
This patch fixes [currently missing] Jenkins build verification.
Currently it's just skipping the firmware due to errors:
make -C target/firmware CROSS_COMPILE=arm-none-eabi-
make[1]: Entering directory '/build/src/target/firmware'
/usr/bin/env: 'python': No such file or directory
/usr/bin/env: 'python': No such file or directory
/usr/bin/env: 'python': No such file or directory
/usr/bin/env: 'python': No such file or directory
/usr/bin/env: 'python': No such file or directory
/usr/bin/env: 'python': No such file or directory
...
Change-Id: Ibfcc17ca2736da82d60db3b0e350b74e788031b0