fixeria has uploaded this change for review. ( 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(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/86/32986/1
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),