Hi,
I fail to see what's wrong according to you:
""" static int is_dcs_net(const struct gsm_bts *bts) { if (bts->band == GSM_BAND_850) return 0; if (bts->band == GSM_BAND_1900) return 0; return 1; } """
""" osmo_gsm48_rest_octets_si1_encode(si1->rest_octets, NULL, is_dcs_net(bts)); """
""" int osmo_gsm48_rest_octets_si1_encode(uint8_t *data, uint8_t *nch_pos, int is1800_net) { ... if (is1800_net) bitvec_set_bit(&bv, L); else bitvec_set_bit(&bv, H); } """
Do you mind explaining the case in which we end up encoding a wrong value?
Also probably better use redmine to fill a bug report if you think there may be one.
Regards, Pau