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