1. 02 Mar, 2017 1 commit
  2. 24 Jan, 2017 1 commit
  3. 12 Jan, 2017 1 commit
    • Minh-Quang Nguyen's avatar
      DTX AMR HR: fix inhibition · 70ab9d7e
      Minh-Quang Nguyen authored
      * Unlike in AMR FR, in AMR HR incoming ONSET have to be treated
        differently depending on whether we've recently sent SID UPDATE or
        EMPTY frame. Split ST_SID_U FSM state into 2 states to accommodate for
        that and make sure that additional states specific to AMR HR are not
        used for AMR FR.
      * Avoid sending E_VOICE and E_SID_U in corresponding states
        as those do not initiate FSM state transitions anyway. This decrease
        extra load from FSM signalling which otherwise would be triggered on
        per-frame basis.
      * Introduce separate signal for SID First P1 -> P2 transition to avoid
        confusion with E_COMPL and E_SID_U initiated transitions from P1
      * Don't init DTX FSM for SDCCH channels.
      Change-Id: I229ba39a38a223fada4881fc9aca35d3639371f8
      Related: OS#1801
  4. 22 Dec, 2016 1 commit
  5. 08 Dec, 2016 1 commit
    • Max's avatar
      DTX: add explicit check if DTX enabled · 55a7b074
      Max authored
      Check explicitly if DTX is enabled for AMR before checking if SID frame
      repetition is optional.
      Change-Id: I660688d56505798cade1495c30338fd6806a3259
      Related: OS#1801
  6. 01 Dec, 2016 1 commit
    • Max's avatar
      DTX DL AMR: rewrite FSM recursion · aabeb2ea
      Max authored
      Add explicit state for recursion (sending the different payload data in
      response to the RTS request for same FN) and corresponding
      transition. Remove ST_FACCH_V as with new explicit recursion handling it
      becomes unreacheable. This makes it easier to maintain
      preemption (interruption of current procedure due to FACCH or
      Inhibition). This also reduces the number of possible transitions out of
      each state thus reducing graph's cyclomatic complexity.
      Change-Id: If39b68083d23a4a35f468a5d75f54eb733ebfd14
  7. 08 Nov, 2016 2 commits
    • Max's avatar
      DTX: wrap FSM signal dispatching · 5ee3dba3
      Max authored
      Make wrapper function which checks that DTX is enabled for lchan before
      dispatching any events.
      Change-Id: Id8b519c4af6d505ec9a4b9aadd5107bf7af53d66
    • Max's avatar
      DTX DL: tighten check for enabled operation · 9f936344
      Max authored
      Introduce dtx_dl_amr_enabled() function which checks that DTX is enabled
      and FSM is allocated and use it for all corresponding checks.
      Change-Id: Ifa68b641265ed14f242765c85e40da2d1021a541
  8. 03 Nov, 2016 1 commit
    • Max's avatar
      DTX fix ONSET handling · acfccb3f
      Max authored
      * re-introduce ST_ONSET_F to guard from repetitive ONSET messages in case
        multiple FACCH occur duriing DTX silence period.
      * produce ONSET event after both SID FIRST and UPDATE in case of AMR FR.
      * always dispatch E_SID_F (SID FIRST) signal if in talkspurt.
      * allow E_SID_* right after ONSET (zero-length talkspurt).
      * add missing E_ONSET signal description.
      * fix FSM transitions for AMR HR *Inhibited and First P*.
      * fix incorrect return from l1if_tch_encode() in ONSET FACCH with
        incoming SID UPDATE
      Change-Id: I0e9033c5f169da46aed9a0d1295faff489778dcf
      Related: OS#1801
  9. 28 Oct, 2016 1 commit
    • Max's avatar
      DTX DL: split ONSET state handling · bce25a60
      Max authored
      Handle ONSET cause by Voice and FACCH separately. In case of Voice we
      have RTP payload which we have to cache and send later on in next
      response to L1 RTS. FACCH have higher priority so it preempts both voice
      and silence alike - hence we can send ONSET immediately but still have
      to track previous state in order to get back to it gracefully.
      This affects lc15 and sysmo hw as there's no FSM-based DTX
      implementation for other models yet.
      Note: this requires patch for OpenBSC which adds FACCH buffer to tch.dtx
      Change-Id: Idba14dcd0cb12cd7aee86391fcc152c49fcd7052
      Related: OS#1802
  10. 24 Oct, 2016 2 commits
    • Max's avatar
      Fix DTX DL AMR SIDscheduling logic · ced9a5d0
      Max authored
      Previously SID UPDATE was sometimes scheduled incorrectly. Fix this by:
      * avoid rounding error when computing scheduling time difference from FN
      * properly saving and updating cached SID type and FN
      Change-Id: I7acffae4792e7bddc2ae19a2f04ee921dc194c36
      Related: OS#1801
    • Max's avatar
      DTX HR - fix array size calculation · 5a4f4d12
      Max authored
      Use ARRAY_SIZE macro for each pointer separately.
      Fix suggested by Neels Hofmeyr <nhofmeyr@sysmocom.de>.
      Change-Id: I68ec1be33fb743977121d654187d85d6b8451e2b
      Fixes: Coverity CID 150132
  11. 17 Oct, 2016 1 commit
    • Max's avatar
      DTX AMR - fix buffer length check · b0c1d215
      Max authored
      Consider AMR-specific prefix in computing max length to avoid triggering
      coverity check.
      Change-Id: I2fbc468caedf08f26893457db7c7fbacef5b860c
      Fixes: Coverity CID 150133
  12. 13 Oct, 2016 2 commits
    • Max's avatar
      DTX: fix array size calculation · b058778d
      Max authored
      Compute array size in-place and pass it to function.
      Change-Id: I4cd480ceb20efc69df1b00e3c7359fcbd14c19cd
      Fixes: coverity CID 1357844.
    • Max's avatar
      DTX DL: use FSM for AMR · babd0566
      Max authored
      Use dedicated FSM to handle all DTX DL related events:
      - add explicit checks if DTX DL is enabled (fixes regression for non-DTX
      setup introduced in 654175f3)
      - fix handling of AMR CMI for SPEECH frames
      - add FSM for DTX DL
      - sync with corresponding changes in OpenBSC's
      - handle FACCH-related DTX ONSET events
      This affects both lc15 and sysmobts and requires corresponding change in
      OpenBSC (Change-Id: Idac8609faf9b5ced818fde899ccfc6ed0c42e8fd).
      Change-Id: I74a0b42cb34d525b8a70d264135e82994ca70d31
  13. 30 Sep, 2016 3 commits
    • Max's avatar
      DTX: move ONSET detection into separate function · 067ef3f1
      Max authored
      Move code from tch.c (lc15, sysmo) into generic function which:
      - check if talkspurt is happening
      - cache SID if necessary or invalidate cache
      - fill in CMR & CMI prefix
      This also fixes the problem when SID FIRST was cached without sending
      just like SID UPDATE instead of being sent right away.
      Change-Id: I6c7016a54749abadeef4fd4f5b6f750b256fb916
    • Max's avatar
      DTX: further AMR SID cache fixes (lc15, sysmo) · 9959f45d
      Max authored
      * consolidate AMR CMR and CMI handling in common/amr.c
      * use it in save_last_sid()
      * remove dead code
      * properly compute RTP payload length for AMR
      * use save_last_sid() for FR & HR as well
      * invalidate cached SID if SPEECH frame is received
      Fixes: OS #1800, #1801
      Change-Id: I5a1c1ad0b0a295a50e67775a4db85f1d331755ed
    • Max's avatar
      DTX: move scheduling check inside repeat_last_sid · 7dffd553
      Max authored
      Note: this also require changes to properly link against libosmocodec -
      see 2bb65be159dfdabf664fec569b343320301701b0 in libosmocore.
      Change-Id: I96594cf3aa1013d505bd20069d5bf261d9a2aefb
  14. 23 Sep, 2016 1 commit
    • Max's avatar
      DTX: fix SID repeat scheduling · 527dd402
      Max authored
      Previously SID retransmission was scheduled incorrectly based on GSM
      frames instead of voice frames. Fix this by using GSM Fn only as elapsed
      time estimation:
      * move saved SID retransmission into generic function from lc15 and sysmo
      specific code
      * split retransmission time check into separate generic function
      * compute estimation for elapsed time since last retransmission using
        GSM Fn
      Change-Id: Ib054b458a7345d9ba40dba53754ca59ab099c8e8
      Fixes: OS#1799
  15. 25 Jul, 2016 1 commit
  16. 05 Jul, 2016 1 commit
  17. 23 Jun, 2016 1 commit
    • Max's avatar
      DTXu: move copy-pasted code to common part · c03d3ae7
      Max authored
      Abstract code for checking/setting lchan's UL SID flag and RTP Marker
      into generic function and use it for LC15 and sysmoBTS.
      Change-Id: Ica5392e92bab29164711163e7b01adb174272883
      Related: OS#1750
  18. 18 Jun, 2016 1 commit
  19. 04 Jan, 2016 1 commit
  20. 09 Jan, 2015 1 commit
  21. 18 Aug, 2014 1 commit
  22. 31 Jul, 2014 1 commit