libosmocoding 1.10.0.27-aec32
Osmocom GSM/GPRS/EGPRS L1 channel coding library
Parity

GSM TS 05.03 parity. More...

Files

file  gsm0503_parity.h
 GSM TS 05.03 parity.
 
file  gsm0503_parity.c
 

Variables

const struct osmo_crc64gen_code gsm0503_fire_crc40
 GSM (SACCH) parity (FIRE code) More...
 
const struct osmo_crc16gen_code gsm0503_cs234_crc16
 GSM PDTCH CS-2, CS-3, CS-4 parity. More...
 
const struct osmo_crc8gen_code gsm0503_mcs_crc8_hdr
 EDGE MCS header parity. More...
 
const struct osmo_crc16gen_code gsm0503_mcs_crc12
 EDGE MCS data parity. More...
 
const struct osmo_crc8gen_code gsm0503_rach_crc6
 GSM RACH parity. More...
 
const struct osmo_crc16gen_code gsm0503_sch_crc10
 GSM SCH parity. More...
 
const struct osmo_crc8gen_code gsm0503_tch_fr_crc3
 GSM TCH FR/HR/EFR parity. More...
 
const struct osmo_crc8gen_code gsm0503_tch_efr_crc8
 GSM TCH EFR parity. More...
 
const struct osmo_crc8gen_code gsm0503_amr_crc6
 GSM AMR parity. More...
 
const struct osmo_crc16gen_code gsm0503_amr_crc14
 GSM AMR parity (SID_UPDATE) More...
 
const struct osmo_crc64gen_code gsm0503_fire_crc40
 GSM (SACCH) parity (FIRE code) More...
 
const struct osmo_crc16gen_code gsm0503_cs234_crc16
 GSM PDTCH CS-2, CS-3, CS-4 parity. More...
 
const struct osmo_crc8gen_code gsm0503_mcs_crc8_hdr
 EDGE MCS header parity. More...
 
const struct osmo_crc16gen_code gsm0503_mcs_crc12
 EDGE MCS data parity. More...
 
const struct osmo_crc8gen_code gsm0503_rach_crc6
 GSM RACH parity. More...
 
const struct osmo_crc16gen_code gsm0503_sch_crc10
 GSM SCH parity. More...
 
const struct osmo_crc8gen_code gsm0503_tch_fr_crc3
 GSM TCH FR/HR/EFR parity. More...
 
const struct osmo_crc8gen_code gsm0503_tch_efr_crc8
 GSM TCH EFR parity. More...
 
const struct osmo_crc8gen_code gsm0503_amr_crc6
 GSM AMR parity. More...
 
const struct osmo_crc16gen_code gsm0503_amr_crc14
 GSM AMR parity (SID_UPDATE) More...
 

Detailed Description

GSM TS 05.03 parity.

This module contains parity/crc code definitions for the various parity/crc schemes as defined in 3GPP TS 05.03 / 45.003

Variable Documentation

◆ gsm0503_amr_crc14 [1/2]

const struct osmo_crc16gen_code gsm0503_amr_crc14
extern

GSM AMR parity (SID_UPDATE)

g(x) = x^14 + x^13 + x^5 + x^3 + x^2 + 1

Referenced by gsm0503_tch_afs_decode_dtx(), and gsm0503_tch_ahs_decode_dtx().

◆ gsm0503_amr_crc14 [2/2]

const struct osmo_crc16gen_code gsm0503_amr_crc14
Initial value:
= {
.bits = 14,
.poly = 0x202d,
.init = 0x0000,
.remainder = 0x3fff,
}

GSM AMR parity (SID_UPDATE)

g(x) = x^14 + x^13 + x^5 + x^3 + x^2 + 1

Referenced by gsm0503_tch_afs_decode_dtx(), and gsm0503_tch_ahs_decode_dtx().

◆ gsm0503_amr_crc6 [1/2]

const struct osmo_crc8gen_code gsm0503_amr_crc6
extern

GSM AMR parity.

g(x) = x^6 + x^5 + x^3 + x^2 + x^1 + 1

Referenced by gsm0503_tch_afs_decode_dtx(), gsm0503_tch_afs_encode(), gsm0503_tch_ahs_decode_dtx(), and gsm0503_tch_ahs_encode().

◆ gsm0503_amr_crc6 [2/2]

const struct osmo_crc8gen_code gsm0503_amr_crc6
Initial value:
= {
.bits = 6,
.poly = 0x2f,
.init = 0x00,
.remainder = 0x3f,
}

GSM AMR parity.

g(x) = x^6 + x^5 + x^3 + x^2 + x^1 + 1

Referenced by gsm0503_tch_afs_decode_dtx(), gsm0503_tch_afs_encode(), gsm0503_tch_ahs_decode_dtx(), and gsm0503_tch_ahs_encode().

◆ gsm0503_cs234_crc16 [1/2]

const struct osmo_crc16gen_code gsm0503_cs234_crc16
extern

GSM PDTCH CS-2, CS-3, CS-4 parity.

g(x) = x^16 + x^12 + x^5 + 1

Referenced by gsm0503_pdtch_decode(), and gsm0503_pdtch_encode().

◆ gsm0503_cs234_crc16 [2/2]

const struct osmo_crc16gen_code gsm0503_cs234_crc16
Initial value:
= {
.bits = 16,
.poly = 0x1021,
.init = 0x0000,
.remainder = 0xffff,
}

GSM PDTCH CS-2, CS-3, CS-4 parity.

g(x) = x^16 + x^12 + x^5 + 1

Referenced by gsm0503_pdtch_decode(), and gsm0503_pdtch_encode().

◆ gsm0503_fire_crc40 [1/2]

const struct osmo_crc64gen_code gsm0503_fire_crc40
extern

GSM (SACCH) parity (FIRE code)

g(x) = (x^23 + 1)(x^17 + x^3 + 1) = x^40 + x^26 + x^23 + x^17 + x^3 + a1

Referenced by _xcch_decode_cB(), _xcch_encode_cB(), gsm0503_pdtch_decode(), and gsm0503_pdtch_encode().

◆ gsm0503_fire_crc40 [2/2]

const struct osmo_crc64gen_code gsm0503_fire_crc40
Initial value:
= {
.bits = 40,
.poly = 0x0004820009ULL,
.init = 0x0000000000ULL,
.remainder = 0xffffffffffULL,
}

GSM (SACCH) parity (FIRE code)

g(x) = (x^23 + 1)(x^17 + x^3 + 1) = x^40 + x^26 + x^23 + x^17 + x^3 + a1

Referenced by _xcch_decode_cB(), _xcch_encode_cB(), gsm0503_pdtch_decode(), and gsm0503_pdtch_encode().

◆ gsm0503_mcs_crc12 [1/2]

const struct osmo_crc16gen_code gsm0503_mcs_crc12
extern

EDGE MCS data parity.

Referenced by egprs_decode_data(), and egprs_encode_data().

◆ gsm0503_mcs_crc12 [2/2]

const struct osmo_crc16gen_code gsm0503_mcs_crc12
Initial value:
= {
.bits = 12,
.poly = 0x0d31,
.init = 0x0000,
.remainder = 0x0fff,
}

EDGE MCS data parity.

Referenced by egprs_decode_data(), and egprs_encode_data().

◆ gsm0503_mcs_crc8_hdr [1/2]

const struct osmo_crc8gen_code gsm0503_mcs_crc8_hdr
extern

EDGE MCS header parity.

Referenced by _egprs_decode_hdr(), and egprs_encode_hdr().

◆ gsm0503_mcs_crc8_hdr [2/2]

const struct osmo_crc8gen_code gsm0503_mcs_crc8_hdr
Initial value:
= {
.bits = 8,
.poly = 0x49,
.init = 0x00,
.remainder = 0xff,
}

EDGE MCS header parity.

Referenced by _egprs_decode_hdr(), and egprs_encode_hdr().

◆ gsm0503_rach_crc6 [1/2]

const struct osmo_crc8gen_code gsm0503_rach_crc6
extern

GSM RACH parity.

g(x) = x^6 + x^5 + x^3 + x^2 + x^1 + 1

Referenced by gsm0503_rach_ext_encode(), and rach_decode_ber().

◆ gsm0503_rach_crc6 [2/2]

const struct osmo_crc8gen_code gsm0503_rach_crc6
Initial value:
= {
.bits = 6,
.poly = 0x2f,
.init = 0x00,
.remainder = 0x3f,
}

GSM RACH parity.

g(x) = x^6 + x^5 + x^3 + x^2 + x^1 + 1

Referenced by gsm0503_rach_ext_encode(), and rach_decode_ber().

◆ gsm0503_sch_crc10 [1/2]

const struct osmo_crc16gen_code gsm0503_sch_crc10
extern

GSM SCH parity.

g(x) = x^10 + x^8 + x^6 + x^5 + x^4 + x^2 + 1

Referenced by gsm0503_sch_decode(), and gsm0503_sch_encode().

◆ gsm0503_sch_crc10 [2/2]

const struct osmo_crc16gen_code gsm0503_sch_crc10
Initial value:
= {
.bits = 10,
.poly = 0x175,
.init = 0x000,
.remainder = 0x3ff,
}

GSM SCH parity.

g(x) = x^10 + x^8 + x^6 + x^5 + x^4 + x^2 + 1

Referenced by gsm0503_sch_decode(), and gsm0503_sch_encode().

◆ gsm0503_tch_efr_crc8 [1/2]

const struct osmo_crc8gen_code gsm0503_tch_efr_crc8
extern

GSM TCH EFR parity.

g(x) = x^8 + x^4 + x^3 + x^2 + 1

Referenced by gsm0503_tch_fr_decode(), and gsm0503_tch_fr_encode().

◆ gsm0503_tch_efr_crc8 [2/2]

const struct osmo_crc8gen_code gsm0503_tch_efr_crc8
Initial value:
= {
.bits = 8,
.poly = 0x1d,
.init = 0x00,
.remainder = 0x00,
}

GSM TCH EFR parity.

g(x) = x^8 + x^4 + x^3 + x^2 + 1

Referenced by gsm0503_tch_fr_decode(), and gsm0503_tch_fr_encode().

◆ gsm0503_tch_fr_crc3 [1/2]

const struct osmo_crc8gen_code gsm0503_tch_fr_crc3
extern

GSM TCH FR/HR/EFR parity.

g(x) = x^3 + x + 1

Referenced by gsm0503_tch_fr_decode(), gsm0503_tch_fr_encode(), gsm0503_tch_hr_decode2(), and gsm0503_tch_hr_encode().

◆ gsm0503_tch_fr_crc3 [2/2]

const struct osmo_crc8gen_code gsm0503_tch_fr_crc3
Initial value:
= {
.bits = 3,
.poly = 0x3,
.init = 0x0,
.remainder = 0x7,
}

GSM TCH FR/HR/EFR parity.

g(x) = x^3 + x + 1

Referenced by gsm0503_tch_fr_decode(), gsm0503_tch_fr_encode(), gsm0503_tch_hr_decode2(), and gsm0503_tch_hr_encode().