The fill-up logic in iofd_txqueue_dequeue() was incorrectly decrementing next->io_len twice: once when removing a buffer that didn't fit, and again when assigning to msg_iovlen. This may cause next->io_len to reach 0 and trigger an assert at osmo_io.c:274:
Assert failed next->io_len > 0
Add separate osmo_io_backpressure_test to verify queue management under network backpressure conditions. Use separate .ok files for poll vs io_uring backends since they produce different I/O patterns. This unit test reproduces the assert when the fix is not applied.
Change-Id: Ia96e25d11d8d683fa9dd0c56bdac257992edd782 Fixes: 3c2a02db4 ("osmo-io: Put together message buffers when dequeued from tx queue") Related: OS#6997
gsm0808: fix wrong codec defaults for OFR_AMR_WB 3GPP TS 48.008 chapter 3.2.2.103 states that the configuration bits of OFR_AMR_WB are coded as follows: "S0, S2, S4 indicates the supported Codec Configurations. S1, S3, S5, S6, S7 are reserved and coded with zeroes." The current default setting of 0x3F violates this requirement. Lets set the "forbidden" settings zu zero and keep only the allowed ones. Change-Id: I4a481def59e9c98cfdcafc2b80c0ac7df0c14130
gsm0808: add function to convert amr gsm0408 setings to gsm0808 Add a function to convert struct gsm48_multi_rate_conf, which holds the codec settings for AMR, to S0-S15 bit representation as defined in 3GPP TS 48.008 3.2.2.49 Change-Id: I4e656731b16621736c7a2f4e64d9ce63b1064e98 Related: OS#3548