libosmocoding  1.8.0
Osmocom GSM/GPRS/EGPRS L1 channel coding library
gsm0503_amr_dtx.h File Reference
#include <stdint.h>
#include <osmocom/core/defs.h>
#include <osmocom/core/bits.h>

Go to the source code of this file.

Enumerations

enum  gsm0503_amr_dtx_frames {
  AMR_OTHER,
  AFS_SID_FIRST,
  AFS_SID_UPDATE,
  AFS_SID_UPDATE_CN,
  AFS_ONSET,
  AHS_SID_UPDATE,
  AHS_SID_UPDATE_CN,
  AHS_SID_FIRST_P1,
  AHS_SID_FIRST_P2,
  AHS_ONSET,
  AHS_SID_FIRST_INH,
  AHS_SID_UPDATE_INH
}
 

Functions

static const char * gsm0503_amr_dtx_frame_name (enum gsm0503_amr_dtx_frames frame)
 
enum gsm0503_amr_dtx_frames gsm0503_detect_afs_dtx_frame (int *n_errors, int *n_bits_total, const ubit_t *ubits) OSMO_DEPRECATED("Use gsm0503_detect_afs_dtx_frame2() instead")
 Detect FR AMR DTX frame in unmapped, deinterleaved frame bits. More...
 
enum gsm0503_amr_dtx_frames gsm0503_detect_ahs_dtx_frame (int *n_errors, int *n_bits_total, const ubit_t *ubits) OSMO_DEPRECATED("Use gsm0503_detect_ahs_dtx_frame2() instead")
 Detect HR AMR DTX frame in unmapped, deinterleaved frame bits. More...
 
enum gsm0503_amr_dtx_frames gsm0503_detect_afs_dtx_frame2 (int *n_errors, int *n_bits_total, int *mode_id, const sbit_t *sbits)
 Detect FR AMR DTX frame in unmapped, deinterleaved frame bits. More...
 
enum gsm0503_amr_dtx_frames gsm0503_detect_ahs_dtx_frame2 (int *n_errors, int *n_bits_total, int *mode_id, const sbit_t *sbits)
 Detect HR AMR DTX frame in unmapped, deinterleaved frame bits. More...
 

Variables

const struct value_string gsm0503_amr_dtx_frame_names []
 

Detailed Description

GSM TS 05.03 coding

gsm0503_xcch_deinterleave
void gsm0503_xcch_deinterleave(sbit_t *cB, const sbit_t *iB)
De-Interleave burst bits according to TS 05.03 4.1.4.
Definition: gsm0503_interleaving.c:82
tch_fr_disassemble
static void tch_fr_disassemble(ubit_t *b_bits, const uint8_t *tch_data, int net_order)
Definition: gsm0503_coding.c:1549
OSMO_BYTES_FOR_BITS
#define OSMO_BYTES_FOR_BITS(BITS)
gsm0503_mcs5_dl_hdr
const struct osmo_conv_code gsm0503_mcs5_dl_hdr
EGPRS_MCS8
@ EGPRS_MCS8
Definition: gsm0503_coding.h:28
gsm0503_mcs5_dl_burst_map
void gsm0503_mcs5_dl_burst_map(const ubit_t *di, ubit_t *eB, const ubit_t *hi, const ubit_t *up, int B)
Definition: gsm0503_mapping.c:96
egprs_type1_unmap
static int egprs_type1_unmap(const sbit_t *bursts, sbit_t *hc, sbit_t *c1, sbit_t *c2, int msc)
Definition: gsm0503_coding.c:720
egprs_type3_map
static int egprs_type3_map(ubit_t *bursts, const ubit_t *hc, const ubit_t *dc, int usf)
Definition: gsm0503_coding.c:1171
gsm0503_tch_hr_interleaving
const uint8_t gsm0503_tch_hr_interleaving[228][2]
Definition: gsm0503_tables.c:1694
gsm0503_puncture_mcs3_p1
const uint8_t gsm0503_puncture_mcs3_p1[948]
Definition: gsm0503_tables.c:287
EGPRS_HDR_TYPE1
EGPRS_HDR_TYPE1
gprs_rlc.h
gsm0503_detect_afs_dtx_frame2
enum gsm0503_amr_dtx_frames gsm0503_detect_afs_dtx_frame2(int *n_errors, int *n_bits_total, int *mode_id, const sbit_t *sbits)
Detect FR AMR DTX frame in unmapped, deinterleaved frame bits.
Definition: gsm0503_amr_dtx.c:282
detect_ahs_sid_first_inh
static bool detect_ahs_sid_first_inh(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:265
gsm0503_detect_afs_dtx_frame
enum gsm0503_amr_dtx_frames gsm0503_detect_afs_dtx_frame(int *n_errors, int *n_bits_total, const ubit_t *ubits)
Detect FR AMR DTX frame in unmapped, deinterleaved frame bits.
Definition: gsm0503_amr_dtx.c:303
GSM_FR_BYTES
#define GSM_FR_BYTES
gsm0503_mcs8_ul_deinterleave
void gsm0503_mcs8_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
De-Interleave MCS8 UL burst bits according to TS 05.03 5.1.12.2.4.
Definition: gsm0503_interleaving.c:512
gsm0503_mcs_code::hdr_len
uint8_t hdr_len
Length of header (bits)
Definition: gsm0503_coding.c:154
gsm0503_tch_ahs_6_7
const struct osmo_conv_code gsm0503_tch_ahs_6_7
gsm0503_tch_ahs_7_4
const struct osmo_conv_code gsm0503_tch_ahs_7_4
gsm0503_puncture_mcs1_p1
const uint8_t gsm0503_puncture_mcs1_p1[588]
Definition: gsm0503_tables.c:169
gsm0503_puncture_mcs5_p1
const uint8_t gsm0503_puncture_mcs5_p1[1404]
Definition: gsm0503_tables.c:578
tch_amr_unmerge
static void tch_amr_unmerge(ubit_t *d, ubit_t *p, const ubit_t *u, int len, int prot)
Definition: gsm0503_coding.c:1824
endian.h
tch_efr_reassemble
static void tch_efr_reassemble(uint8_t *tch_data, const ubit_t *b_bits)
Definition: gsm0503_coding.c:1598
gsm0503_mapping.h
gsm0503_sch_encode
int gsm0503_sch_encode(ubit_t *burst, const uint8_t *sb_info)
Encode the SCH according to TS 05.03.
Definition: gsm0503_coding.c:3257
gsm0503_puncture_mcs7_dl_hdr
const uint8_t gsm0503_puncture_mcs7_dl_hdr[135]
Definition: gsm0503_tables.c:818
id_marker_0
static const ubit_t id_marker_0[]
Definition: gsm0503_amr_dtx.c:41
gsm0503_mcs_crc8_hdr
const struct osmo_crc8gen_code gsm0503_mcs_crc8_hdr
EDGE MCS header parity.
Definition: gsm0503_parity.c:61
gsm620_voiced_bitorder
const uint16_t gsm620_voiced_bitorder[]
tch_efr_disassemble
static void tch_efr_disassemble(ubit_t *b_bits, const uint8_t *tch_data)
Definition: gsm0503_coding.c:1609
EGPRS_DATA_C2
#define EGPRS_DATA_C2
Definition: gsm0503_coding.c:129
tch_hr_b_to_d
static void tch_hr_b_to_d(ubit_t *d_bits, const ubit_t *b_bits)
Definition: gsm0503_coding.c:1704
AHS_SID_FIRST_INH
@ AHS_SID_FIRST_INH
Definition: gsm0503_amr_dtx.h:27
gsm0503_ahs_ic_sbit
const sbit_t gsm0503_ahs_ic_sbit[4][4]
Definition: gsm0503_tables.c:1687
EGPRS_DATA_U_MAX
#define EGPRS_DATA_U_MAX
Definition: gsm0503_coding.c:119
crcgen.h
gsm0503_interleaving.h
gsm0503_puncture_mcs7_ul_hdr
const uint8_t gsm0503_puncture_mcs7_ul_hdr[162]
Definition: gsm0503_tables.c:835
gsm0503_pdtch_edge_hl_hn_ubit
const ubit_t gsm0503_pdtch_edge_hl_hn_ubit[3][8]
Definition: gsm0503_tables.c:43
GSM0503_EGPRS_BURSTS_NBITS
#define GSM0503_EGPRS_BURSTS_NBITS
Definition: gsm0503_coding.h:17
osmo_conv_decode_ber
static int osmo_conv_decode_ber(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output, int *n_errors, int *n_bits_total)
Convolutional Decode + compute BER for non-punctured codes.
Definition: gsm0503_coding.c:576
gsm0503_tch_fr_crc3
const struct osmo_crc8gen_code gsm0503_tch_fr_crc3
GSM TCH FR/HR/EFR parity.
Definition: gsm0503_parity.c:104
len
static size_t len(const char *str)
gsm0503_puncture_mcs9_p3
const uint8_t gsm0503_puncture_mcs9_p3[1836]
Definition: gsm0503_tables.c:1458
gsm0503_mcs5_dl_interleave
void gsm0503_mcs5_dl_interleave(const ubit_t *hc, const ubit_t *dc, ubit_t *hi, ubit_t *di)
Interleave MCS5 DL burst bits according to TS 05.03 5.1.9.1.5.
Definition: gsm0503_interleaving.c:308
AHS_SID_UPDATE_INH
@ AHS_SID_UPDATE_INH
Definition: gsm0503_amr_dtx.h:28
osmo_crc64gen_code
gsm0503_pdtch_decode
int gsm0503_pdtch_decode(uint8_t *l2_data, const sbit_t *bursts, uint8_t *usf_p, int *n_errors, int *n_bits_total)
Decode GPRS PDTCH.
Definition: gsm0503_coding.c:1019
EGPRS_MCS4
@ EGPRS_MCS4
Definition: gsm0503_coding.h:24
OSMO_ASSERT
#define OSMO_ASSERT(exp)
egprs_cps::p
uint8_t p[2]
gsm0503_xcch_burst_map
void gsm0503_xcch_burst_map(const ubit_t *iB, ubit_t *eB, const ubit_t *hl, const ubit_t *hn)
Definition: gsm0503_mapping.c:49
gprs_rlc_dl_hdr_egprs::type2
struct gprs_rlc_dl_header_egprs_2 type2
Definition: gsm0503_coding.c:141
detect_afs_sid_first
static bool detect_afs_sid_first(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:169
egprs_cps::mcs
uint8_t mcs
tch_fr_unreorder
static void tch_fr_unreorder(ubit_t *d, ubit_t *p, const ubit_t *u)
Definition: gsm0503_coding.c:1745
gsm0503_tch_ahs_encode
int gsm0503_tch_ahs_encode(ubit_t *bursts, const uint8_t *tch_data, int len, int codec_mode_req, uint8_t *codec, int codecs, uint8_t ft, uint8_t cmr)
Perform channel encoding on a TCH/AHS channel according to TS 05.03.
Definition: gsm0503_coding.c:2927
gsm0503_rach
const struct osmo_conv_code gsm0503_rach
gsm0503_mcs1_ul_deinterleave
void gsm0503_mcs1_ul_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *iB)
Interleave MCS1 UL burst bits according to TS 05.03 5.1.5.2.4.
Definition: gsm0503_interleaving.c:190
gsm0503_coding.h
gsm0503_puncture_mcs2_p2
const uint8_t gsm0503_puncture_mcs2_p2[732]
Definition: gsm0503_tables.c:259
gsm0503_tch_fr_interleave
void gsm0503_tch_fr_interleave(const ubit_t *cB, ubit_t *iB)
GSM TCH FR/EFR/AFS Interleaving and burst mapping.
Definition: gsm0503_interleaving.c:642
utils.h
gsm0503_mcs7_dl_hdr
const struct osmo_conv_code gsm0503_mcs7_dl_hdr
gsm0503_xcch
const struct osmo_conv_code gsm0503_xcch
gsm0503_mcs_code::data_code_len
uint16_t data_code_len
length of data convolutional code
Definition: gsm0503_coding.c:168
gsm0503_mcs_code::data_punc
const uint8_t * data_punc[3]
data puncturing sequences
Definition: gsm0503_coding.c:174
gsm0503_rach_ext_decode
int gsm0503_rach_ext_decode(uint16_t *ra, const sbit_t *burst, uint8_t bsic) OSMO_DEPRECATED("Use gsm0503_rach_ext_decode_ber() instead")
Decode the Extended (11-bit) RACH according to 3GPP TS 45.003.
Definition: gsm0503_coding.c:3125
detect_afs_sid_update
static bool detect_afs_sid_update(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:175
gsm0503_puncture_mcs1_dl_hdr
const uint8_t gsm0503_puncture_mcs1_dl_hdr[108]
Definition: gsm0503_tables.c:149
gsm0503_mcs5_ul_burst_map
void gsm0503_mcs5_ul_burst_map(const ubit_t *di, ubit_t *eB, const ubit_t *hi, int B)
Definition: gsm0503_mapping.c:138
gsm0503_rach_ext_decode_ber
int gsm0503_rach_ext_decode_ber(uint16_t *ra, const sbit_t *burst, uint8_t bsic, int *n_errors, int *n_bits_total)
Decode the Extended (11-bit) RACH according to 3GPP TS 45.003.
Definition: gsm0503_coding.c:3159
gsm0503_rach_ext_encode
int gsm0503_rach_ext_encode(ubit_t *burst, uint16_t ra, uint8_t bsic, bool is_11bit)
Encode the Extended (11-bit) or regular (8-bit) RACH according to 3GPP TS 45.003.
Definition: gsm0503_coding.c:3206
gsm0503_mcs5_ul_deinterleave
void gsm0503_mcs5_ul_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *hi, const sbit_t *di)
De-Interleave MCS5 UL burst bits according to TS 05.03 5.1.9.2.4.
Definition: gsm0503_interleaving.c:281
EGPRS_DATA_C_MAX
#define EGPRS_DATA_C_MAX
Definition: gsm0503_coding.c:122
gsm0503_tch_afs_6_7
const struct osmo_conv_code gsm0503_tch_afs_6_7
gsm0503_mcs1_dl_deinterleave
void gsm0503_mcs1_dl_deinterleave(sbit_t *u, sbit_t *hc, sbit_t *dc, const sbit_t *iB)
De-Interleave MCS1 DL burst bits according to TS 05.03 5.1.5.1.5.
Definition: gsm0503_interleaving.c:112
AMR_OTHER
@ AMR_OTHER
Definition: gsm0503_amr_dtx.h:17
gsm0503_mcs1_ul_hdr
const struct osmo_conv_code gsm0503_mcs1_ul_hdr
gsm0503_mcs8_ul_interleave
void gsm0503_mcs8_ul_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
Interleave MCS8 UL burst bits according to TS 05.03 5.1.12.2.4.
Definition: gsm0503_interleaving.c:482
detect_ahs_sid_update
static bool detect_ahs_sid_update(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:205
egprs_cps
gsm0503_sch_crc10
const struct osmo_crc16gen_code gsm0503_sch_crc10
GSM SCH parity.
Definition: gsm0503_parity.c:93
egprs_parse_ul_cps
static int egprs_parse_ul_cps(struct egprs_cps *cps, union gprs_rlc_ul_hdr_egprs *hdr, int type)
Definition: gsm0503_coding.c:834
detect_afs_onset
static int detect_afs_onset(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:181
gsm0503_tch_hr_deinterleave
void gsm0503_tch_hr_deinterleave(sbit_t *cB, const sbit_t *iB)
GSM TCH HR/AHS De-Interleaving and burst mapping.
Definition: gsm0503_interleaving.c:656
detect_ahs_sid_first_p1
static bool detect_ahs_sid_first_p1(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:211
gsm0503_tch_afs_4_75
const struct osmo_conv_code gsm0503_tch_afs_4_75
gsm0503_puncture_mcs8_p2
const uint8_t gsm0503_puncture_mcs8_p2[1692]
Definition: gsm0503_tables.c:1148
EGPRS_MCS7
@ EGPRS_MCS7
Definition: gsm0503_coding.h:27
gsm0503_sch
const struct osmo_conv_code gsm0503_sch
gsm0503_detect_ahs_dtx_frame
enum gsm0503_amr_dtx_frames gsm0503_detect_ahs_dtx_frame(int *n_errors, int *n_bits_total, const ubit_t *ubits)
Detect HR AMR DTX frame in unmapped, deinterleaved frame bits.
Definition: gsm0503_amr_dtx.c:347
osmo_conv_encode
int osmo_conv_encode(const struct osmo_conv_code *code, const ubit_t *input, ubit_t *output)
gsm0503_mcs_code::data_len
uint16_t data_len
length of data (bits)
Definition: gsm0503_coding.c:166
gsm0503_puncture_mcs3_p3
const uint8_t gsm0503_puncture_mcs3_p3[948]
Definition: gsm0503_tables.c:399
gsm0503_amr_dtx.h
start
uint32_t start
detect_afs_id_marker
static bool detect_afs_id_marker(int *n_errors, int *n_bits_total, const sbit_t *sbits, uint8_t offset, uint8_t count, const ubit_t *id_marker, uint8_t id_marker_len)
Definition: gsm0503_amr_dtx.c:65
gprs_rlc_dl_hdr_egprs::type3
struct gprs_rlc_dl_header_egprs_3 type3
Definition: gsm0503_coding.c:142
gsm0503_mcs7_ul_burst_map
void gsm0503_mcs7_ul_burst_map(const ubit_t *di, ubit_t *eB, const ubit_t *hi, int B)
Definition: gsm0503_mapping.c:212
gsm0503_mcs5_usf_precode_table
const ubit_t gsm0503_mcs5_usf_precode_table[8][36]
Definition: gsm0503_tables.c:1738
gprs_rlc_ul_header_egprs_1
gsm0503_puncture_mcs4_p3
const uint8_t gsm0503_puncture_mcs4_p3[1116]
Definition: gsm0503_tables.c:537
codec.h
AFS_SID_FIRST
@ AFS_SID_FIRST
Definition: gsm0503_amr_dtx.h:18
gsm0503_puncture_mcs9_p1
const uint8_t gsm0503_puncture_mcs9_p1[1836]
Definition: gsm0503_tables.c:1248
gprs_rlc_ul_header_egprs_3
gsm0503_tch_afs_5_15
const struct osmo_conv_code gsm0503_tch_afs_5_15
GSM0503_GPRS_BURSTS_NBITS
#define GSM0503_GPRS_BURSTS_NBITS
Definition: gsm0503_coding.h:16
gsm0503_puncture_mcs5_p2
const uint8_t gsm0503_puncture_mcs5_p2[1404]
Definition: gsm0503_tables.c:633
gsm0503_interleave_mcs5
const uint16_t gsm0503_interleave_mcs5[1248]
Definition: gsm0503_tables.c:1563
EGPRS_HDR_UPP_MAX
#define EGPRS_HDR_UPP_MAX
Definition: gsm0503_coding.c:110
gsm0503_puncture_mcs3_p2
const uint8_t gsm0503_puncture_mcs3_p2[948]
Definition: gsm0503_tables.c:343
sbit_t
int8_t sbit_t
gsm0503_puncture_cs3
const uint8_t gsm0503_puncture_cs3[676]
Definition: gsm0503_tables.c:123
tch_efr_reorder
static void tch_efr_reorder(ubit_t *w, const ubit_t *s, const ubit_t *p)
Definition: gsm0503_coding.c:1783
_xcch_encode_cB
static int _xcch_encode_cB(ubit_t *cB, const uint8_t *l2_data)
convenience wrapper for encoding to coded bits
Definition: gsm0503_coding.c:613
gsm0503_tch_fr_deinterleave
void gsm0503_tch_fr_deinterleave(sbit_t *cB, const sbit_t *iB)
GSM TCH FR/EFR/AFS De-Interleaving and burst mapping.
Definition: gsm0503_interleaving.c:628
blk
#define blk(i)
gsm0503_puncture_mcs8_p3
const uint8_t gsm0503_puncture_mcs8_p3[1692]
Definition: gsm0503_tables.c:1198
gsm0503_tch_hr_decode
int gsm0503_tch_hr_decode(uint8_t *tch_data, const sbit_t *bursts, int odd, int *n_errors, int *n_bits_total)
Perform channel decoding of a HR(v1) channel according TS 05.03.
Definition: gsm0503_coding.c:1988
gsm0503_gsm_efr_protected_bits
const uint8_t gsm0503_gsm_efr_protected_bits[65]
Definition: gsm0503_tables.c:1655
gprs_rlc_dl_header_egprs_1
gsm0503_mcs5_dl_burst_unmap
void gsm0503_mcs5_dl_burst_unmap(sbit_t *di, const sbit_t *eB, sbit_t *hi, sbit_t *up, int B)
Definition: gsm0503_mapping.c:118
EGPRS_MCS2
@ EGPRS_MCS2
Definition: gsm0503_coding.h:22
EGPRS_HDR_C_MAX
#define EGPRS_HDR_C_MAX
Definition: gsm0503_coding.c:113
gsm0503_mcs_code::data_punc_len
uint16_t data_punc_len
length of data code puncturing sequence
Definition: gsm0503_coding.c:170
EGPRS_MCS6
@ EGPRS_MCS6
Definition: gsm0503_coding.h:26
egprs_decode_hdr
static int egprs_decode_hdr(union gprs_rlc_ul_hdr_egprs *hdr, const sbit_t *bursts, uint16_t nbits)
Definition: gsm0503_coding.c:798
gprs_rlc_dl_header_egprs_3
gsm0503_ahs_ic_ubit
const ubit_t gsm0503_ahs_ic_ubit[4][4]
Definition: gsm0503_tables.c:1680
gsm0503_mcs9
const struct osmo_conv_code gsm0503_mcs9
gsm0503_puncture_mcs6_p2
const uint8_t gsm0503_puncture_mcs6_p2[1836]
Definition: gsm0503_tables.c:753
egprs_encode_data
static int egprs_encode_data(ubit_t *c, const uint8_t *l2_data, int mcs, int p, int blk)
Definition: gsm0503_coding.c:1262
gsm0503_puncture_mcs6_p1
const uint8_t gsm0503_puncture_mcs6_p1[1836]
Definition: gsm0503_tables.c:688
osmo_crc8gen_code::bits
int bits
gprs_rlc_dl_hdr_egprs
union across the three different EGPRS Downlink header types
Definition: gsm0503_coding.c:139
AHS_SID_FIRST_P1
@ AHS_SID_FIRST_P1
Definition: gsm0503_amr_dtx.h:24
hdr
struct iuup_pdutype14_hdr hdr
gsm0503_tch_afs_12_2
const struct osmo_conv_code gsm0503_tch_afs_12_2
res
uint8_t res[16]
gsm0503_tch_hr
const struct osmo_conv_code gsm0503_tch_hr
gsm_04_08.h
gsm0503_sch_decode
int gsm0503_sch_decode(uint8_t *sb_info, const sbit_t *burst)
Decode the SCH according to TS 05.03.
Definition: gsm0503_coding.c:3237
gsm0503_usf2twelve_sbit
const sbit_t gsm0503_usf2twelve_sbit[8][12]
Definition: gsm0503_tables.c:90
gsm0503_mcs_code::usf_len
uint8_t usf_len
Length of Uplink Stealing Flag (USF) in bits.
Definition: gsm0503_coding.c:150
osmo_crc8gen_set_bits
void osmo_crc8gen_set_bits(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)
tch_efr_w_to_d
static void tch_efr_w_to_d(ubit_t *d_bits, const ubit_t *b_bits)
Definition: gsm0503_coding.c:1728
GSM_MACBLOCK_LEN
#define GSM_MACBLOCK_LEN
extract_afs_sid_update
static void extract_afs_sid_update(sbit_t *sid_update, const sbit_t *sbits)
Definition: gsm0503_coding.c:1651
gsm0503_tch_axs_sid_update
const struct osmo_conv_code gsm0503_tch_axs_sid_update
gsm0503_rach_crc6
const struct osmo_crc8gen_code gsm0503_rach_crc6
GSM RACH parity.
Definition: gsm0503_parity.c:82
tch_hr_reorder
static void tch_hr_reorder(ubit_t *u, const ubit_t *d, const ubit_t *p)
Definition: gsm0503_coding.c:1777
gsm0503_pdtch_encode
int gsm0503_pdtch_encode(ubit_t *bursts, const uint8_t *l2_data, uint8_t l2_len)
GPRS DL message encoding.
Definition: gsm0503_coding.c:1429
gsm0503_xcch_interleave
void gsm0503_xcch_interleave(const ubit_t *cB, ubit_t *iB)
Interleave burst bits according to TS 05.03 4.1.4.
Definition: gsm0503_interleaving.c:96
gsm0503_mcs_code
Structure describing a Modulation and Coding Scheme.
Definition: gsm0503_coding.c:146
gprs_rlc_ul_hdr_egprs::type3
struct gprs_rlc_ul_header_egprs_3 type3
Definition: gsm0503_coding.c:135
gsm0503_detect_ahs_dtx_frame2
enum gsm0503_amr_dtx_frames gsm0503_detect_ahs_dtx_frame2(int *n_errors, int *n_bits_total, int *mode_id, const sbit_t *sbits)
Detect HR AMR DTX frame in unmapped, deinterleaved frame bits.
Definition: gsm0503_amr_dtx.c:320
tch_amr_reassemble
static void tch_amr_reassemble(uint8_t *tch_data, const ubit_t *d_bits, int len)
Definition: gsm0503_coding.c:1618
AHS_SID_FIRST_P2
@ AHS_SID_FIRST_P2
Definition: gsm0503_amr_dtx.h:25
gsm0503_mcs1
const struct osmo_conv_code gsm0503_mcs1
detect_ahs_id_marker
static bool detect_ahs_id_marker(int *n_errors, int *n_bits_total, const sbit_t *sbits, const ubit_t *id_marker)
Definition: gsm0503_amr_dtx.c:97
egprs_type1_map
static int egprs_type1_map(ubit_t *bursts, const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, int usf, int mcs)
Definition: gsm0503_coding.c:1205
gsm0503.h
gsm0503_mcs7_ul_hdr
const struct osmo_conv_code gsm0503_mcs7_ul_hdr
gsm0503_mcs5_burst_swap
void gsm0503_mcs5_burst_swap(sbit_t *eB)
Definition: gsm0503_mapping.c:246
tch_efr_protected
static void tch_efr_protected(const ubit_t *s_bits, ubit_t *b_bits)
Definition: gsm0503_coding.c:1737
gsm0503_cs2_np
const struct osmo_conv_code gsm0503_cs2_np
tch_amr_merge
static void tch_amr_merge(ubit_t *u, const ubit_t *d, const ubit_t *p, int len, int prot)
Definition: gsm0503_coding.c:1817
gprs_rlc_dl_hdr_egprs::type1
struct gprs_rlc_dl_header_egprs_1 type1
Definition: gsm0503_coding.c:140
tch_fr_reassemble
static void tch_fr_reassemble(uint8_t *tch_data, const ubit_t *b_bits, int net_order)
assemble a FR codec frame in format as used inside RTP
Definition: gsm0503_coding.c:1517
gsm0503_amr_dtx_frames
gsm0503_amr_dtx_frames
Definition: gsm0503_amr_dtx.h:16
osmo_conv_decode_ber_punctured
static int osmo_conv_decode_ber_punctured(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output, int *n_errors, int *n_bits_total, const uint8_t *data_punc)
Convolutional Decode + compute BER for punctured codes.
Definition: gsm0503_coding.c:536
gsm0503_puncture_mcs4_p1
const uint8_t gsm0503_puncture_mcs4_p1[1116]
Definition: gsm0503_tables.c:455
gsm0503_tch_ahs_decode_inband
static uint8_t gsm0503_tch_ahs_decode_inband(const sbit_t *cB)
Definition: gsm0503_coding.c:2592
rach_apply_bsic
static void rach_apply_bsic(ubit_t *d, uint8_t bsic, uint8_t start)
Definition: gsm0503_coding.c:3090
gprs_rlc_ul_header_egprs_2
gsm0503_tch_fr_encode
int gsm0503_tch_fr_encode(ubit_t *bursts, const uint8_t *tch_data, int len, int net_order)
Perform channel encoding on a TCH/FS channel according to TS 05.03.
Definition: gsm0503_coding.c:1923
gsm0503_tch_fr
const struct osmo_conv_code gsm0503_tch_fr
_xcch_decode_cB
static int _xcch_decode_cB(uint8_t *l2_data, const sbit_t *cB, int *n_errors, int *n_bits_total)
convenience wrapper for decoding coded bits
Definition: gsm0503_coding.c:590
osmo_crc16gen_code::bits
int bits
gsm0503_tch_afs_7_4
const struct osmo_conv_code gsm0503_tch_afs_7_4
gsm0503_mcs7_dl_interleave
void gsm0503_mcs7_dl_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
Interleave MCS7 DL burst bits according to TS 05.03 5.1.11.1.5.
Definition: gsm0503_interleaving.c:358
gsm0503_mcs_code::data_conv
const struct osmo_conv_code * data_conv
data convolutional code
Definition: gsm0503_coding.c:172
gsm0503_amr_crc6
const struct osmo_crc8gen_code gsm0503_amr_crc6
GSM AMR parity.
Definition: gsm0503_parity.c:126
gsm0503_tch_efr_crc8
const struct osmo_crc8gen_code gsm0503_tch_efr_crc8
GSM TCH EFR parity.
Definition: gsm0503_parity.c:115
pbit_t
uint8_t pbit_t
gprs_rlc_dl_header_egprs_2
h
struct gad_raw_head h
S2U
#define S2U(b)
Definition: gsm0503_amr_dtx.c:35
gsm_04_60.h
AHS_ONSET
@ AHS_ONSET
Definition: gsm0503_amr_dtx.h:26
gsm0503_pdtch_egprs_decode
int gsm0503_pdtch_egprs_decode(uint8_t *l2_data, const sbit_t *bursts, uint16_t nbits, uint8_t *usf_p, int *n_errors, int *n_bits_total)
Decode EGPRS UL message.
Definition: gsm0503_coding.c:930
gsm0503_mcs_dl_codes
const struct gsm0503_mcs_code gsm0503_mcs_dl_codes[EGPRS_NUM_MCS]
Definition: gsm0503_coding.c:351
gprs_rlc_ul_hdr_egprs::type2
struct gprs_rlc_ul_header_egprs_2 type2
Definition: gsm0503_coding.c:134
gsm0503_tch_ahs_5_15
const struct osmo_conv_code gsm0503_tch_ahs_5_15
gsm0503_afs_ic_ubit
const ubit_t gsm0503_afs_ic_ubit[4][8]
Definition: gsm0503_tables.c:1666
egprs_type2_map
static int egprs_type2_map(ubit_t *bursts, const ubit_t *hc, const ubit_t *dc, int usf)
Definition: gsm0503_coding.c:1187
osmo_crc8gen_check_bits
int osmo_crc8gen_check_bits(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)
gsm0503_mcs4
const struct osmo_conv_code gsm0503_mcs4
c
struct abis_rsl_common_hdr c
id_marker_1
static const ubit_t id_marker_1[]
Definition: gsm0503_amr_dtx.c:38
osmo_conv_decode
int osmo_conv_decode(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)
l
int gsm48_generate_mid_from_tmsi *(uint8_t *buf, uint32_t tmsi) OSMO_DEPRECATED_OUTSIDE("Instead u l))
gsm0503_tch_ahs_decode_dtx
int gsm0503_tch_ahs_decode_dtx(uint8_t *tch_data, const sbit_t *bursts, int odd, int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft, uint8_t *cmr, int *n_errors, int *n_bits_total, uint8_t *dtx)
Perform channel decoding of a TCH/AFS channel according TS 05.03.
Definition: gsm0503_coding.c:2649
gsm0503_puncture_mcs2_p1
const uint8_t gsm0503_puncture_mcs2_p1[732]
Definition: gsm0503_tables.c:231
gsm0503_xcch_decode
int gsm0503_xcch_decode(uint8_t *l2_data, const sbit_t *bursts, int *n_errors, int *n_bits_total)
Decoding of xCCH data from bursts to L2 frame.
Definition: gsm0503_coding.c:636
gsm0503_puncture_mcs1_p2
const uint8_t gsm0503_puncture_mcs1_p2[588]
Definition: gsm0503_tables.c:200
tch_efr_unreorder
static void tch_efr_unreorder(ubit_t *s, ubit_t *p, const ubit_t *w)
Definition: gsm0503_coding.c:1797
gsm0503_cs3_np
const struct osmo_conv_code gsm0503_cs3_np
egprs_get_cps
int egprs_get_cps(struct egprs_cps *cps, uint8_t type, uint8_t bits)
EGPRS_MCS9
@ EGPRS_MCS9
Definition: gsm0503_coding.h:29
tch_hr_d_to_b
static void tch_hr_d_to_b(ubit_t *b_bits, const ubit_t *d_bits)
Definition: gsm0503_coding.c:1688
gsm0503_pdtch_egprs_encode
int gsm0503_pdtch_egprs_encode(ubit_t *bursts, const uint8_t *l2_data, uint8_t l2_len)
EGPRS DL message encoding.
Definition: gsm0503_coding.c:1334
gsm0503_mcs5_ul_burst_unmap
void gsm0503_mcs5_ul_burst_unmap(sbit_t *di, const sbit_t *eB, sbit_t *hi, int B)
Definition: gsm0503_mapping.c:155
gsm0503_rach_ext
const struct osmo_conv_code gsm0503_rach_ext
gsm0503_tch_burst_unmap
void gsm0503_tch_burst_unmap(sbit_t *iB, const sbit_t *eB, sbit_t *h, int odd)
Definition: gsm0503_mapping.c:61
gsm0503_tch_burst_map
void gsm0503_tch_burst_map(const ubit_t *iB, ubit_t *eB, const ubit_t *h, int odd)
Definition: gsm0503_mapping.c:81
gsm0503_mcs1_ul_interleave
void gsm0503_mcs1_ul_interleave(const ubit_t *hc, const ubit_t *dc, ubit_t *iB)
Interleave MCS1 DL burst bits according to TS 05.03 5.1.5.2.4.
Definition: gsm0503_interleaving.c:224
gsm0503_usf2twelve_ubit
const ubit_t gsm0503_usf2twelve_ubit[8][12]
Definition: gsm0503_tables.c:79
gsm0503_mcs7
const struct osmo_conv_code gsm0503_mcs7
gsm0503_mcs1_dl_hdr
const struct osmo_conv_code gsm0503_mcs1_dl_hdr
gsm0503_mcs7_ul_deinterleave
void gsm0503_mcs7_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
De-Interleave MCS7 UL burst bits according to TS 05.03 5.1.11.2.4.
Definition: gsm0503_interleaving.c:449
tch_amr_sid_update_append
static void tch_amr_sid_update_append(ubit_t *sid_update, uint8_t sti, uint8_t mi)
Definition: gsm0503_coding.c:1638
gsm0503_rach_decode_ber
int gsm0503_rach_decode_ber(uint8_t *ra, const sbit_t *burst, uint8_t bsic, int *n_errors, int *n_bits_total)
Decode the (8-bit) RACH according to TS 05.03.
Definition: gsm0503_coding.c:3177
gsm0503_puncture_mcs9_p2
const uint8_t gsm0503_puncture_mcs9_p2[1836]
Definition: gsm0503_tables.c:1353
osmo_crc64gen_code::bits
int bits
gsm0503_tch_afs_7_95
const struct osmo_conv_code gsm0503_tch_afs_7_95
gsm0503_tch_afs_decode_dtx
int gsm0503_tch_afs_decode_dtx(uint8_t *tch_data, const sbit_t *bursts, int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft, uint8_t *cmr, int *n_errors, int *n_bits_total, uint8_t *dtx)
Perform channel decoding of a TCH/AFS channel according TS 05.03.
Definition: gsm0503_coding.c:2174
gsm610_bitorder
const uint16_t gsm610_bitorder[]
gsm0503_puncture_mcs8_p1
const uint8_t gsm0503_puncture_mcs8_p1[1692]
Definition: gsm0503_tables.c:1098
gsm0503_mcs_crc12
const struct osmo_crc16gen_code gsm0503_mcs_crc12
EDGE MCS data parity.
Definition: gsm0503_parity.c:71
AHS_SID_UPDATE
@ AHS_SID_UPDATE
Definition: gsm0503_amr_dtx.h:22
gsm0503_mcs_code::hdr_punc
const uint8_t * hdr_punc
header puncturing sequence
Definition: gsm0503_coding.c:162
gsm0503_afs_ic_sbit
const sbit_t gsm0503_afs_ic_sbit[4][8]
Definition: gsm0503_tables.c:1673
AHS_SID_UPDATE_CN
@ AHS_SID_UPDATE_CN
Definition: gsm0503_amr_dtx.h:23
value_string
tch_fr_reorder
static void tch_fr_reorder(ubit_t *u, const ubit_t *d, const ubit_t *p)
Definition: gsm0503_coding.c:1758
gsm0503_tch_afs_5_9
const struct osmo_conv_code gsm0503_tch_afs_5_9
EGPRS_MCS1
@ EGPRS_MCS1
Definition: gsm0503_coding.h:21
egprs_type2_unmap
static int egprs_type2_unmap(const sbit_t *bursts, sbit_t *hc, sbit_t *dc)
Definition: gsm0503_coding.c:697
gsm0503_tables.h
gsm0503_mcs_code::hdr_conv
const struct osmo_conv_code * hdr_conv
header convolutional code
Definition: gsm0503_coding.c:160
codec_mode_4_sid
static const ubit_t codec_mode_4_sid[]
Definition: gsm0503_amr_dtx.c:47
EGPRS_DATA_C1
#define EGPRS_DATA_C1
Definition: gsm0503_coding.c:128
EGPRS_HDR_TYPE2
EGPRS_HDR_TYPE2
gsm0503_amr_dtx_frame_names
const struct value_string gsm0503_amr_dtx_frame_names[]
Definition: gsm0503_amr_dtx.c:49
tch_hr_unreorder
static void tch_hr_unreorder(ubit_t *d, ubit_t *p, const ubit_t *u)
Definition: gsm0503_coding.c:1771
tch_fr_b_to_d
static void tch_fr_b_to_d(ubit_t *d_bits, const ubit_t *b_bits)
Definition: gsm0503_coding.c:1679
detect_interleaved_ahs_id_marker
static bool detect_interleaved_ahs_id_marker(int *n_errors, int *n_bits_total, const sbit_t *sbits, uint8_t offset, uint8_t n_bits, const ubit_t *id_marker, uint8_t id_marker_len)
Definition: gsm0503_amr_dtx.c:131
gsm0503_gsm_fr_map
const uint8_t gsm0503_gsm_fr_map[76]
Definition: gsm0503_tables.c:1646
gsm0503_fire_crc40
const struct osmo_crc64gen_code gsm0503_fire_crc40
GSM (SACCH) parity (FIRE code)
Definition: gsm0503_parity.c:40
egprs_decode_data
static int egprs_decode_data(uint8_t *l2_data, const sbit_t *c, int mcs, int p, int blk, int *n_errors, int *n_bits_total)
Definition: gsm0503_coding.c:864
gsm0503_puncture_mcs4_p2
const uint8_t gsm0503_puncture_mcs4_p2[1116]
Definition: gsm0503_tables.c:496
egprs_parse_dl_cps
static int egprs_parse_dl_cps(struct egprs_cps *cps, const union gprs_rlc_dl_hdr_egprs *hdr, int type)
Definition: gsm0503_coding.c:1307
gsm0503_mcs3
const struct osmo_conv_code gsm0503_mcs3
ubit_t
uint8_t ubit_t
gsm0503_mcs7_ul_interleave
void gsm0503_mcs7_ul_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
Interleave MCS7 UL burst bits according to TS 05.03 5.1.11.2.4.
Definition: gsm0503_interleaving.c:420
type
enum osmo_sub_auth_type type
gsm0503_tch_ahs_5_9
const struct osmo_conv_code gsm0503_tch_ahs_5_9
ARRAY_SIZE
#define ARRAY_SIZE(x)
tch_efr_d_to_w
static void tch_efr_d_to_w(ubit_t *b_bits, const ubit_t *d_bits)
Definition: gsm0503_coding.c:1719
EGPRS_MCS5
@ EGPRS_MCS5
Definition: gsm0503_coding.h:25
gsm0503_xcch_encode
int gsm0503_xcch_encode(ubit_t *bursts, const uint8_t *l2_data)
Encoding of xCCH data from L2 frame to bursts.
Definition: gsm0503_coding.c:655
detect_ahs_sid_first_p2
static int detect_ahs_sid_first_p2(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:217
gsm0503_puncture_mcs7_p1
const uint8_t gsm0503_puncture_mcs7_p1[1404]
Definition: gsm0503_tables.c:855
osmo_crc16gen_code
tch_hr_disassemble
static void tch_hr_disassemble(ubit_t *b_bits, const uint8_t *tch_data)
Definition: gsm0503_coding.c:1589
gsm0503_tch_afs_decode
int gsm0503_tch_afs_decode(uint8_t *tch_data, const sbit_t *bursts, int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft, uint8_t *cmr, int *n_errors, int *n_bits_total)
Perform channel decoding of a TCH/AFS channel according TS 05.03.
Definition: gsm0503_coding.c:2151
AFS_ONSET
@ AFS_ONSET
Definition: gsm0503_amr_dtx.h:21
gsm0503_cs234_crc16
const struct osmo_crc16gen_code gsm0503_cs234_crc16
GSM PDTCH CS-2, CS-3, CS-4 parity.
Definition: gsm0503_parity.c:51
egprs_type3_unmap
static int egprs_type3_unmap(const sbit_t *bursts, sbit_t *hc, sbit_t *dc)
Definition: gsm0503_coding.c:678
gsm0503_mcs_code::hdr_code_len
uint8_t hdr_code_len
Length of header convolutional code.
Definition: gsm0503_coding.c:156
gsm0503_pdtch_hl_hn_ubit
const ubit_t gsm0503_pdtch_hl_hn_ubit[4][8]
Definition: gsm0503_tables.c:36
gsm0503_mcs8
const struct osmo_conv_code gsm0503_mcs8
gsm0503_mcs6
const struct osmo_conv_code gsm0503_mcs6
gsm0503_mcs8_dl_deinterleave
void gsm0503_mcs8_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
De-Interleave MCS8 DL burst bits according to TS 05.03 5.1.12.1.5.
Definition: gsm0503_interleaving.c:574
tch_hr_reassemble
static void tch_hr_reassemble(uint8_t *tch_data, const ubit_t *b_bits)
Definition: gsm0503_coding.c:1578
gsm0503_mcs8_dl_interleave
void gsm0503_mcs8_dl_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
Interleave MCS8 DL burst bits according to TS 05.03 5.1.12.1.5.
Definition: gsm0503_interleaving.c:545
gsm0503_pdtch_edge_hl_hn_sbit
const sbit_t gsm0503_pdtch_edge_hl_hn_sbit[3][8]
Definition: gsm0503_tables.c:56
gsm0503_mcs7_dl_burst_unmap
void gsm0503_mcs7_dl_burst_unmap(sbit_t *di, const sbit_t *eB, sbit_t *hi, sbit_t *up, int B)
Definition: gsm0503_mapping.c:192
osmo_ubit2sbit
void osmo_ubit2sbit(sbit_t *out, const ubit_t *in, unsigned int num_bits)
gsm660_bitorder
const uint16_t gsm660_bitorder[]
codec_mode_2_sid
static const ubit_t codec_mode_2_sid[]
Definition: gsm0503_amr_dtx.c:45
gsm0503_mcs5
const struct osmo_conv_code gsm0503_mcs5
gsm0503_mcs7_ul_burst_unmap
void gsm0503_mcs7_ul_burst_unmap(sbit_t *di, const sbit_t *eB, sbit_t *hi, int B)
Definition: gsm0503_mapping.c:230
tch_fr_d_to_b
static void tch_fr_d_to_b(ubit_t *b_bits, const ubit_t *d_bits)
Definition: gsm0503_coding.c:1670
gsm620_unvoiced_bitorder
const uint16_t gsm620_unvoiced_bitorder[]
mi
uint8_t mi[0]
gsm0503_pdtch_hl_hn_sbit
const sbit_t gsm0503_pdtch_hl_hn_sbit[4][8]
Definition: gsm0503_tables.c:49
gsm0503_mcs1_dl_interleave
void gsm0503_mcs1_dl_interleave(const ubit_t *up, const ubit_t *hc, const ubit_t *dc, ubit_t *iB)
Interleave MCS1 DL burst bits according to TS 05.03 5.1.5.1.5.
Definition: gsm0503_interleaving.c:153
gsm0503_tch_afs_10_2
const struct osmo_conv_code gsm0503_tch_afs_10_2
_egprs_decode_hdr
static int _egprs_decode_hdr(const sbit_t *hc, int mcs, union gprs_rlc_ul_hdr_egprs *hdr)
Definition: gsm0503_coding.c:750
gsm0503_tch_afs_decode_inband
static uint8_t gsm0503_tch_afs_decode_inband(const sbit_t *cB)
Definition: gsm0503_coding.c:2119
rach_decode_ber
static int16_t rach_decode_ber(const sbit_t *burst, uint8_t bsic, bool is_11bit, int *n_errors, int *n_bits_total)
Definition: gsm0503_coding.c:3099
EGPRS_HDR_TYPE3
EGPRS_HDR_TYPE3
gsm0503_mcs7_dl_burst_map
void gsm0503_mcs7_dl_burst_map(const ubit_t *di, ubit_t *eB, const ubit_t *hi, const ubit_t *up, int B)
Definition: gsm0503_mapping.c:170
gsm0503_parity.h
gsm0503_rach_decode
int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic) OSMO_DEPRECATED("Use gsm0503_rach_decode_ber() instead")
Decode the (8-bit) RACH according to TS 05.03.
Definition: gsm0503_coding.c:3142
k
uint8_t k[OSMO_A5_MAX_KEY_LEN_BYTES]
EGPRS_MCS0
@ EGPRS_MCS0
Definition: gsm0503_coding.h:20
gsm0503_tch_afs_encode
int gsm0503_tch_afs_encode(ubit_t *bursts, const uint8_t *tch_data, int len, int codec_mode_req, uint8_t *codec, int codecs, uint8_t ft, uint8_t cmr)
Perform channel encoding on a TCH/AFS channel according to TS 05.03.
Definition: gsm0503_coding.c:2431
gsm0503_puncture_mcs7_p2
const uint8_t gsm0503_puncture_mcs7_p2[1404]
Definition: gsm0503_tables.c:936
AFS_SID_UPDATE_CN
@ AFS_SID_UPDATE_CN
Definition: gsm0503_amr_dtx.h:20
osmo_pbit2ubit_ext
int osmo_pbit2ubit_ext(ubit_t *out, unsigned int out_ofs, const pbit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)
egprs_encode_hdr
static int egprs_encode_hdr(ubit_t *hc, const uint8_t *l2_data, int mcs)
Definition: gsm0503_coding.c:1228
bits.h
gsm0503_puncture_mcs7_p3
const uint8_t gsm0503_puncture_mcs7_p3[1404]
Definition: gsm0503_tables.c:1017
EGPRS_HDR_HC_MAX
#define EGPRS_HDR_HC_MAX
Definition: gsm0503_coding.c:116
gsm0503_puncture_cs2
const uint8_t gsm0503_puncture_cs2[588]
Definition: gsm0503_tables.c:101
gsm0503_rach_encode
int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic) OSMO_DEPRECATED("Use gsm0503_rach_ext_encode() instead")
Encode the (8-bit) RACH according to TS 05.03.
Definition: gsm0503_coding.c:3195
osmo_ubit2pbit_ext
int osmo_ubit2pbit_ext(pbit_t *out, unsigned int out_ofs, const ubit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)
osmo_crc64gen_set_bits
void osmo_crc64gen_set_bits(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)
gsm0503_tch_hr_interleave
void gsm0503_tch_hr_interleave(const ubit_t *cB, ubit_t *iB)
GSM TCH HR/AHS Interleaving and burst mapping.
Definition: gsm0503_interleaving.c:670
detect_ahs_onset
static int detect_ahs_onset(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:241
gsm0503_tch_ahs_7_95
const struct osmo_conv_code gsm0503_tch_ahs_7_95
GSM_EFR_BYTES
#define GSM_EFR_BYTES
osmo_crc16gen_set_bits
void osmo_crc16gen_set_bits(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)
gsm0503_mcs5_ul_interleave
void gsm0503_mcs5_ul_interleave(const ubit_t *hc, const ubit_t *dc, ubit_t *hi, ubit_t *di)
Interleave MCS5 UL burst bits according to TS 05.03 5.1.9.2.4.
Definition: gsm0503_interleaving.c:259
gprs_rlc_ul_hdr_egprs
union across the three different EGPRS Uplink header types
Definition: gsm0503_coding.c:132
EGPRS_DATA_DC_MAX
#define EGPRS_DATA_DC_MAX
Definition: gsm0503_coding.c:125
gsm0503_mcs7_dl_deinterleave
void gsm0503_mcs7_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
De-Interleave MCS7 DL burst bits according to TS 05.03 5.1.11.1.5.
Definition: gsm0503_interleaving.c:387
gsm0503_tch_ahs_4_75
const struct osmo_conv_code gsm0503_tch_ahs_4_75
gsm0503_puncture_mcs1_ul_hdr
const uint8_t gsm0503_puncture_mcs1_ul_hdr[117]
Definition: gsm0503_tables.c:156
gsm0503_mcs_ul_codes
const struct gsm0503_mcs_code gsm0503_mcs_ul_codes[EGPRS_NUM_MCS]
Definition: gsm0503_coding.c:180
gsm0503_usf2six
const ubit_t gsm0503_usf2six[8][6]
Definition: gsm0503_tables.c:65
EGPRS_MCS3
@ EGPRS_MCS3
Definition: gsm0503_coding.h:23
gsm0503_amr_crc14
const struct osmo_crc16gen_code gsm0503_amr_crc14
GSM AMR parity (SID_UPDATE)
Definition: gsm0503_parity.c:137
gsm0503_mcs_code::hdr_punc_len
uint8_t hdr_punc_len
Length of header code puncturing sequence.
Definition: gsm0503_coding.c:158
osmo_crc64gen_check_bits
int osmo_crc64gen_check_bits(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)
gsm0503_tch_fr_decode
int gsm0503_tch_fr_decode(uint8_t *tch_data, const sbit_t *bursts, int net_order, int efr, int *n_errors, int *n_bits_total)
Perform channel decoding of a FR/EFR channel according TS 05.03.
Definition: gsm0503_coding.c:1839
gsm0503_mcs5_ul_hdr
const struct osmo_conv_code gsm0503_mcs5_ul_hdr
gsm0503_tch_ahs_decode
int gsm0503_tch_ahs_decode(uint8_t *tch_data, const sbit_t *bursts, int odd, int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft, uint8_t *cmr, int *n_errors, int *n_bits_total)
Perform channel decoding of a TCH/AFS channel according TS 05.03.
Definition: gsm0503_coding.c:2625
osmo_conv_code
codec_mode_3_sid
static const ubit_t codec_mode_3_sid[]
Definition: gsm0503_amr_dtx.c:46
gprs_rlc_ul_hdr_egprs::type1
struct gprs_rlc_ul_header_egprs_1 type1
Definition: gsm0503_coding.c:133
AFS_SID_UPDATE
@ AFS_SID_UPDATE
Definition: gsm0503_amr_dtx.h:19
gsm0503_mcs2
const struct osmo_conv_code gsm0503_mcs2
gsm0503_mcs_code::mcs
uint8_t mcs
Modulation and Coding Scheme (MSC) number.
Definition: gsm0503_coding.c:148
ENOTSUP
#define ENOTSUP
gsm0503_xcch_burst_unmap
void gsm0503_xcch_burst_unmap(sbit_t *iB, const sbit_t *eB, sbit_t *hl, sbit_t *hn)
Definition: gsm0503_mapping.c:36
tch_amr_disassemble
static void tch_amr_disassemble(ubit_t *d_bits, const uint8_t *tch_data, int len)
Definition: gsm0503_coding.c:1628
gsm0503_mcs5_dl_deinterleave
void gsm0503_mcs5_dl_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *hi, const sbit_t *di)
De-Interleave MCS5 UL burst bits according to TS 05.03 5.1.9.1.5.
Definition: gsm0503_interleaving.c:330
codec_mode_1_sid
static const ubit_t codec_mode_1_sid[]
Definition: gsm0503_amr_dtx.c:44
osmo_crc16gen_check_bits
int osmo_crc16gen_check_bits(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)
gsm0503_tch_hr_encode
int gsm0503_tch_hr_encode(ubit_t *bursts, const uint8_t *tch_data, int len)
Perform channel encoding on a TCH/HS channel according to TS 05.03.
Definition: gsm0503_coding.c:2063
EGPRS_NUM_MCS
@ EGPRS_NUM_MCS
Definition: gsm0503_coding.h:30
detect_ahs_sid_update_inh
static bool detect_ahs_sid_update_inh(int *n_errors, int *n_bits_total, const sbit_t *sbits)
Definition: gsm0503_amr_dtx.c:271
u
union osmo_sub_auth_data::@107 u
conv.h
osmo_crc8gen_code