libosmocoding  0.9.6.270-38c0
Osmocom GSM/GPRS/EGPRS L1 channel coding library
 All Data Structures Files Functions Variables Modules Pages
gsm0503_coding.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdint.h>
4 #include <osmocom/core/bits.h>
5 
14 #define GSM0503_GPRS_BURSTS_NBITS (116 * 4)
15 #define GSM0503_EGPRS_BURSTS_NBITS (348 * 4)
16 #define NUM_BYTES(N) ((N + 8 - 1) / 8)
17 
18 enum gsm0503_egprs_mcs {
19  EGPRS_MCS0,
20  EGPRS_MCS1,
21  EGPRS_MCS2,
22  EGPRS_MCS3,
23  EGPRS_MCS4,
24  EGPRS_MCS5,
25  EGPRS_MCS6,
26  EGPRS_MCS7,
27  EGPRS_MCS8,
28  EGPRS_MCS9,
29  EGPRS_NUM_MCS,
30 };
31 
32 int gsm0503_xcch_encode(ubit_t *bursts, const uint8_t *l2_data);
33 int gsm0503_xcch_decode(uint8_t *l2_data, const sbit_t *bursts,
34  int *n_errors, int *n_bits_total);
35 
36 int gsm0503_pdtch_encode(ubit_t *bursts, const uint8_t *l2_data, uint8_t l2_len);
37 int gsm0503_pdtch_decode(uint8_t *l2_data, const sbit_t *bursts, uint8_t *usf_p,
38  int *n_errors, int *n_bits_total);
39 
40 int gsm0503_pdtch_egprs_encode(ubit_t *bursts, const uint8_t *l2_data,
41  uint8_t l2_len);
42 int gsm0503_pdtch_egprs_decode(uint8_t *l2_data, const sbit_t *bursts,
43  uint16_t nbits, uint8_t *usf_p, int *n_errors, int *n_bits_total);
44 
45 int gsm0503_tch_fr_encode(ubit_t *bursts, const uint8_t *tch_data, int len,
46  int net_order);
47 int gsm0503_tch_fr_decode(uint8_t *tch_data, const sbit_t *bursts, int net_order,
48  int efr, int *n_errors, int *n_bits_total);
49 
50 int gsm0503_tch_hr_encode(ubit_t *bursts, const uint8_t *tch_data, int len);
51 int gsm0503_tch_hr_decode(uint8_t *tch_data, const sbit_t *bursts, int odd,
52  int *n_errors, int *n_bits_total);
53 
54 int gsm0503_tch_afs_encode(ubit_t *bursts, const uint8_t *tch_data, int len,
55  int codec_mode_req, uint8_t *codec, int codecs, uint8_t ft,
56  uint8_t cmr);
57 int gsm0503_tch_afs_decode(uint8_t *tch_data, const sbit_t *bursts,
58  int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft,
59  uint8_t *cmr, int *n_errors, int *n_bits_total);
60 
61 int gsm0503_tch_ahs_encode(ubit_t *bursts, const uint8_t *tch_data, int len,
62  int codec_mode_req, uint8_t *codec, int codecs, uint8_t ft, uint8_t cmr);
63 int gsm0503_tch_ahs_decode(uint8_t *tch_data, const sbit_t *bursts, int odd,
64  int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft,
65  uint8_t *cmr, int *n_errors, int *n_bits_total);
66 
67 int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic);
68 int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic);
69 
70 int gsm0503_sch_encode(ubit_t *burst, const uint8_t *sb_info);
71 int gsm0503_sch_decode(uint8_t *sb_info, const sbit_t *burst);
72 
int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic)
Decode the (8-bit) RACH according to TS 05.03.
Definition: gsm0503_coding.c:2842
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:1932
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:1867
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:2073
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:2663
int gsm0503_pdtch_encode(ubit_t *bursts, const uint8_t *l2_data, uint8_t l2_len)
GPRS DL message encoding.
Definition: gsm0503_coding.c:1406
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:996
int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic)
Encode the (8-bit) RACH according to TS 05.03.
Definition: gsm0503_coding.c:2865
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:919
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:2450
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:2278
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:1311
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:1783
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:2007
int gsm0503_sch_encode(ubit_t *burst, const uint8_t *sb_info)
Encode the SCH according to TS 05.03.
Definition: gsm0503_coding.c:2908
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:626
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:645
int gsm0503_sch_decode(uint8_t *sb_info, const sbit_t *burst)
Decode the SCH according to TS 05.03.
Definition: gsm0503_coding.c:2888