Hi Sylvain and Harald!

I am contact you again (sorry for so many mails), because Sylvain
is a copyright holder of the 'libosmocore/utils/conv_gen.py', and
Harald listed in the output of 'git blame' for almost every line.

There is a mismatch between the CS2 & CS3 convolutional code
definitions in 'osmo-bts/src/osmo-bts-trx/gsm0503_conv.c' and
'libosmocore/utils/conv_gen.py'. In second source there is no
puncture for both definitions:

const struct osmo_conv_code gsm0503_conv_cs2 = {
    .N = 2,
    .K = 5,
    .len = 290,
    .next_output = conv_xcch_next_output,
    .next_state  = conv_xcch_next_state,
};


const struct osmo_conv_code gsm0503_conv_cs3 = {
    .N = 2,
    .K = 5,
    .len = 334,
    .next_output = conv_xcch_next_output,
    .next_state  = conv_xcch_next_state,
};

But in first source there is. And I am not sure, which
definition is correct. I paid my attention here, because
I just integrated some tests from 'osmo-bts/tests/bursts'
to libosmocoding. PDCH test fails until there is puncture
in both definitions. When I removed punctures from definitions,
test passed.

So, my question is do we need punctures for both CS2 & CS3?


With best regards,
Vadim Yanitskiy.

2016-09-06 10:46 GMT+07:00 Sylvain Munaut <246tnt@gmail.com>:
Hi,

> With regards to convolutional coding, the main difference between GPRS
> and EGPRS will be the use of tail-biting recursive codes.
>
> Max, can the utility generate recursive state tables?

Yes

Cheers,

   Sylvain