fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32986 )
Change subject: gsm: fix convolutional code definition for TCH/F4.8 ......................................................................
gsm: fix convolutional code definition for TCH/F4.8
The block length for TCH/F4.8 is off by 4 bits. Value 152 matches with what TS 45.003 section 3.4.3 defines, but for some reason the encoder generates more bits (468) than it must (456). This results in buffer overruns when encoding TCH/F4.8.
All block length values in conv_codes_gsm.py are 4 bits less than the respective values in TS 45.003. I have no idea why...
Change-Id: Id86d1aa0fd6791a8be431b5547bb723c74c35757 Related: OS#1572 --- M tests/conv/conv_gsm0503_test.ok M utils/conv_codes_gsm.py 2 files changed, 21 insertions(+), 3 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved
diff --git a/tests/conv/conv_gsm0503_test.ok b/tests/conv/conv_gsm0503_test.ok index bfefcd0..6fd3793 100644 --- a/tests/conv/conv_gsm0503_test.ok +++ b/tests/conv/conv_gsm0503_test.ok @@ -15,8 +15,8 @@ [..] Encoding / Decoding cycle : OK
[+] Testing: gsm0503_tch_f48 -[.] Input length : ret = 152 exp = 152 -> OK -[.] Output length : ret = 468 exp = 468 -> OK +[.] Input length : ret = 148 exp = 148 -> OK +[.] Output length : ret = 456 exp = 456 -> OK [.] Random vector checks: [..] Encoding / Decoding cycle : OK [..] Encoding / Decoding cycle : OK diff --git a/utils/conv_codes_gsm.py b/utils/conv_codes_gsm.py index a6e471e..721e546 100644 --- a/utils/conv_codes_gsm.py +++ b/utils/conv_codes_gsm.py @@ -68,7 +68,7 @@
# TCH/F4.8 definition ConvolutionalCode( - 152, + 148, [ (G1, 1), (G2, 1),