GNU Radio's GSM Package
gsm0503.h
Go to the documentation of this file.
1 
2 /*
3  * Copyright (C) 2011-2016 Sylvain Munaut <tnt@246tNt.com>
4  * Copyright (C) 2016 sysmocom s.f.m.c. GmbH
5  *
6  * All Rights Reserved
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  */
22 
23 #pragma once
24 
25 #include <stdint.h>
26 #include <osmocom/core/conv.h>
27 
28 /*! structure describing xCCH convolutional code:.
29  * 228 bits blocks, rate 1/2, k = 5
30  * G0 = 1 + D3 + D4
31  * G1 = 1 + D + D3 + D4
32  */
33 extern const struct osmo_conv_code gsm0503_xcch;
34 
35 /*! structure describing RACH convolutional code.
36  */
37 extern const struct osmo_conv_code gsm0503_rach;
38 
39 /*! structure describing Extended RACH (11 bit) convolutional code.
40  */
41 //extern const struct osmo_conv_code gsm0503_rach_ext;
42 
43 /*! structure describing SCH convolutional code.
44  */
45 extern const struct osmo_conv_code gsm0503_sch;
46 
47 /*! structure describing CS2 convolutional code:.
48  * G0 = 1 + D3 + D4
49  * G1 = 1 + D + D3 + D4
50  */
51 extern const struct osmo_conv_code gsm0503_cs2;
52 
53 /*! structure describing CS3 convolutional code:.
54  * G0 = 1 + D3 + D4
55  * G1 = 1 + D + D3 + D4
56  */
57 extern const struct osmo_conv_code gsm0503_cs3;
58 
59 /*! structure describing CS2 convolutional code (non-punctured):.
60  * G0 = 1 + D3 + D4
61  * G1 = 1 + D + D3 + D4
62  */
63 //extern const struct osmo_conv_code gsm0503_cs2_np;
64 
65 /*! structure describing CS3 convolutional code (non-punctured):.
66  * G0 = 1 + D3 + D4
67  * G1 = 1 + D + D3 + D4
68  */
69 //extern const struct osmo_conv_code gsm0503_cs3_np;
70 
71 /*! structure describing TCH/AFS 12.2 kbits convolutional code:.
72  * 250 bits block, rate 1/2, punctured
73  * G0/G0 = 1
74  * G1/G0 = 1 + D + D3 + D4 / 1 + D3 + D4
75  */
76 extern const struct osmo_conv_code gsm0503_tch_afs_12_2;
77 
78 /*! structure describing TCH/AFS 10.2 kbits convolutional code:.
79  * G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4
80  * G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4
81  * G3/G3 = 1
82  */
83 extern const struct osmo_conv_code gsm0503_tch_afs_10_2;
84 
85 /*! structure describing TCH/AFS 7.95 kbits convolutional code:.
86  * G4/G4 = 1
87  * G5/G4 = 1 + D + D4 + D6 / 1 + D2 + D3 + D5 + D6
88  * G6/G4 = 1 + D + D2 + D3 + D4 + D6 / 1 + D2 + D3 + D5 + D6
89  */
90 extern const struct osmo_conv_code gsm0503_tch_afs_7_95;
91 
92 /*! structure describing TCH/AFS 7.4 kbits convolutional code:.
93  * G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4
94  * G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4
95  * G3/G3 = 1
96  */
97 extern const struct osmo_conv_code gsm0503_tch_afs_7_4;
98 
99 /*! structure describing TCH/AFS 6.7 kbits convolutional code:.
100  * G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4
101  * G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4
102  * G3/G3 = 1
103  * G3/G3 = 1
104  */
105 extern const struct osmo_conv_code gsm0503_tch_afs_6_7;
106 
107 /*! structure describing TCH/AFS 5.9 kbits convolutional code:.
108  * 124 bits
109  * G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6
110  * G5/G6 = 1 + D + D4 + D6 / 1 + D + D2 + D3 + D4 + D6
111  * G6/G6 = 1
112  * G6/G6 = 1
113  */
114 extern const struct osmo_conv_code gsm0503_tch_afs_5_9;
115 
116 /*! structure describing TCH/AFS 5.15 kbits convolutional code:.
117  * G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4
118  * G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4
119  * G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4
120  * G3/G3 = 1
121  * G3/G3 = 1
122  */
123 extern const struct osmo_conv_code gsm0503_tch_afs_5_15;
124 
125 /*! structure describing TCH/AFS 4.75 kbits convolutional code:.
126  * G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6
127  * G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6
128  * G5/G6 = 1 + D + D4 + D6 / 1 + D + D2 + D3 + D4 + D6
129  * G6/G6 = 1
130  * G6/G6 = 1
131  */
132 extern const struct osmo_conv_code gsm0503_tch_afs_4_75;
133 
134 /*! structure describing TCH/F convolutional code.
135  */
136 extern const struct osmo_conv_code gsm0503_tch_fr;
137 
138 /*! structure describing TCH/H convolutional code.
139  */
140 extern const struct osmo_conv_code gsm0503_tch_hr;
141 
142 /*! structure describing TCH/AHS 7.95 kbits convolutional code.
143  */
144 extern const struct osmo_conv_code gsm0503_tch_ahs_7_95;
145 
146 /*! structure describing TCH/AHS 7.4 kbits convolutional code.
147  */
148 extern const struct osmo_conv_code gsm0503_tch_ahs_7_4;
149 
150 /*! structure describing TCH/AHS 6.7 kbits convolutional code.
151  */
152 extern const struct osmo_conv_code gsm0503_tch_ahs_6_7;
153 
154 /*! structure describing TCH/AHS 5.9 kbits convolutional code.
155  */
156 extern const struct osmo_conv_code gsm0503_tch_ahs_5_9;
157 
158 /*! structure describing TCH/AHS 5.15 kbits convolutional code.
159  */
160 extern const struct osmo_conv_code gsm0503_tch_ahs_5_15;
161 
162 /*! structure describing TCH/AHS 4.75 kbits convolutional code.
163  */
164 extern const struct osmo_conv_code gsm0503_tch_ahs_4_75;
165 
166 /*! structure describing EDGE MCS-1 DL header convolutional code:.
167  * 42 bits blocks, rate 1/3, k = 7
168  * G4 = 1 + D2 + D3 + D5 + D6
169  * G7 = 1 + D + D2 + D3 + D6
170  * G5 = 1 + D + D4 + D6
171  */
172 extern const struct osmo_conv_code gsm0503_mcs1_dl_hdr;
173 
174 /*! structure describing EDGE MCS-1 UL header convolutional code:.
175  * 45 bits blocks, rate 1/3, k = 7
176  * G4 = 1 + D2 + D3 + D5 + D6
177  * G7 = 1 + D + D2 + D3 + D6
178  * G5 = 1 + D + D4 + D6
179  */
180 extern const struct osmo_conv_code gsm0503_mcs1_ul_hdr;
181 
182 /*! structure describing EDGE MCS-1 data convolutional code:.
183  * 196 bits blocks, rate 1/3, k = 7
184  * G4 = 1 + D2 + D3 + D5 + D6
185  * G7 = 1 + D + D2 + D3 + D6
186  * G5 = 1 + D + D4 + D6
187  */
188 extern const struct osmo_conv_code gsm0503_mcs1;
189 
190 /*! structure describing EDGE MCS-2 data convolutional code:.
191  * 244 bits blocks, rate 1/3, k = 7
192  * G4 = 1 + D2 + D3 + D5 + D6
193  * G7 = 1 + D + D2 + D3 + D6
194  * G5 = 1 + D + D4 + D6
195  */
196 extern const struct osmo_conv_code gsm0503_mcs2;
197 
198 /*! structure describing EDGE MCS-3 data convolutional code:.
199  * 316 bits blocks, rate 1/3, k = 7
200  * G4 = 1 + D2 + D3 + D5 + D6
201  * G7 = 1 + D + D2 + D3 + D6
202  * G5 = 1 + D + D4 + D6
203  */
204 extern const struct osmo_conv_code gsm0503_mcs3;
205 
206 /*! structure describing EDGE MCS-4 data convolutional code:.
207  * 372 bits blocks, rate 1/3, k = 7
208  * G4 = 1 + D2 + D3 + D5 + D6
209  * G7 = 1 + D + D2 + D3 + D6
210  * G5 = 1 + D + D4 + D6
211  */
212 extern const struct osmo_conv_code gsm0503_mcs4;
213 
214 /*! structure describing EDGE MCS-5 DL header convolutional code:.
215  * 39 bits blocks, rate 1/3, k = 7
216  * G4 = 1 + D2 + D3 + D5 + D6
217  * G7 = 1 + D + D2 + D3 + D6
218  * G5 = 1 + D + D4 + D6
219  */
220 extern const struct osmo_conv_code gsm0503_mcs5_dl_hdr;
221 
222 /*! structure describing EDGE MCS-5 UL header convolutional code:.
223  * 51 bits blocks, rate 1/3, k = 7
224  * G4 = 1 + D2 + D3 + D5 + D6
225  * G7 = 1 + D + D2 + D3 + D6
226  * G5 = 1 + D + D4 + D6
227  */
228 extern const struct osmo_conv_code gsm0503_mcs5_ul_hdr;
229 
230 /*! structure describing EDGE MCS-5 data convolutional code:.
231  * 468 bits blocks, rate 1/3, k = 7
232  * G4 = 1 + D2 + D3 + D5 + D6
233  * G7 = 1 + D + D2 + D3 + D6
234  * G5 = 1 + D + D4 + D6
235  */
236 extern const struct osmo_conv_code gsm0503_mcs5;
237 
238 /*! structure describing EDGE MCS-6 data convolutional code:.
239  * 612 bits blocks, rate 1/3, k = 7
240  * G4 = 1 + D2 + D3 + D5 + D6
241  * G7 = 1 + D + D2 + D3 + D6
242  * G5 = 1 + D + D4 + D6
243  */
244 extern const struct osmo_conv_code gsm0503_mcs6;
245 
246 /*! structure describing EDGE MCS-7 DL header convolutional code:.
247  * 51 bits blocks, rate 1/3, k = 7
248  * G4 = 1 + D2 + D3 + D5 + D6
249  * G7 = 1 + D + D2 + D3 + D6
250  * G5 = 1 + D + D4 + D6
251  */
252 extern const struct osmo_conv_code gsm0503_mcs7_dl_hdr;
253 
254 /*! structure describing EDGE MCS-7 UL header convolutional code:.
255  * 60 bits blocks, rate 1/3, k = 7
256  * G4 = 1 + D2 + D3 + D5 + D6
257  * G7 = 1 + D + D2 + D3 + D6
258  * G5 = 1 + D + D4 + D6
259  */
260 extern const struct osmo_conv_code gsm0503_mcs7_ul_hdr;
261 
262 /*! structure describing EDGE MCS-7 data convolutional code:.
263  * 468 bits blocks, rate 1/3, k = 7
264  * G4 = 1 + D2 + D3 + D5 + D6
265  * G7 = 1 + D + D2 + D3 + D6
266  * G5 = 1 + D + D4 + D6
267  */
268 extern const struct osmo_conv_code gsm0503_mcs7;
269 
270 /*! structure describing EDGE MCS-8 data convolutional code:.
271  * 564 bits blocks, rate 1/3, k = 7
272  * G4 = 1 + D2 + D3 + D5 + D6
273  * G7 = 1 + D + D2 + D3 + D6
274  * G5 = 1 + D + D4 + D6
275  */
276 extern const struct osmo_conv_code gsm0503_mcs8;
277 
278 /*! structure describing EDGE MCS-9 data convolutional code:.
279  * 612 bits blocks, rate 1/3, k = 7
280  * G4 = 1 + D2 + D3 + D5 + D6
281  * G7 = 1 + D + D2 + D3 + D6
282  * G5 = 1 + D + D4 + D6
283  */
284 extern const struct osmo_conv_code gsm0503_mcs9;
285 
gsm0503_mcs5_dl_hdr
const struct osmo_conv_code gsm0503_mcs5_dl_hdr
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
conv.h
gsm0503_rach
const struct osmo_conv_code gsm0503_rach
gsm0503_mcs7_dl_hdr
const struct osmo_conv_code gsm0503_mcs7_dl_hdr
gsm0503_xcch
const struct osmo_conv_code gsm0503_xcch
gsm0503_tch_afs_6_7
const struct osmo_conv_code gsm0503_tch_afs_6_7
gsm0503_mcs1_ul_hdr
const struct osmo_conv_code gsm0503_mcs1_ul_hdr
gsm0503_tch_afs_4_75
const struct osmo_conv_code gsm0503_tch_afs_4_75
gsm0503_sch
const struct osmo_conv_code gsm0503_sch
gsm0503_tch_afs_5_15
const struct osmo_conv_code gsm0503_tch_afs_5_15
gsm0503_mcs9
const struct osmo_conv_code gsm0503_mcs9
gsm0503_tch_afs_12_2
const struct osmo_conv_code gsm0503_tch_afs_12_2
gsm0503_tch_hr
const struct osmo_conv_code gsm0503_tch_hr
gsm0503_cs2
const struct osmo_conv_code gsm0503_cs2
gsm0503_mcs1
const struct osmo_conv_code gsm0503_mcs1
gsm0503_mcs7_ul_hdr
const struct osmo_conv_code gsm0503_mcs7_ul_hdr
gsm0503_tch_fr
const struct osmo_conv_code gsm0503_tch_fr
gsm0503_tch_afs_7_4
const struct osmo_conv_code gsm0503_tch_afs_7_4
gsm0503_tch_ahs_5_15
const struct osmo_conv_code gsm0503_tch_ahs_5_15
gsm0503_mcs4
const struct osmo_conv_code gsm0503_mcs4
gsm0503_mcs7
const struct osmo_conv_code gsm0503_mcs7
gsm0503_mcs1_dl_hdr
const struct osmo_conv_code gsm0503_mcs1_dl_hdr
gsm0503_tch_afs_7_95
const struct osmo_conv_code gsm0503_tch_afs_7_95
gsm0503_tch_afs_5_9
const struct osmo_conv_code gsm0503_tch_afs_5_9
gsm0503_mcs3
const struct osmo_conv_code gsm0503_mcs3
gsm0503_tch_ahs_5_9
const struct osmo_conv_code gsm0503_tch_ahs_5_9
gsm0503_mcs8
const struct osmo_conv_code gsm0503_mcs8
gsm0503_mcs6
const struct osmo_conv_code gsm0503_mcs6
gsm0503_mcs5
const struct osmo_conv_code gsm0503_mcs5
gsm0503_tch_afs_10_2
const struct osmo_conv_code gsm0503_tch_afs_10_2
gsm0503_cs3
const struct osmo_conv_code gsm0503_cs3
gsm0503_tch_ahs_7_95
const struct osmo_conv_code gsm0503_tch_ahs_7_95
gsm0503_tch_ahs_4_75
const struct osmo_conv_code gsm0503_tch_ahs_4_75
gsm0503_mcs5_ul_hdr
const struct osmo_conv_code gsm0503_mcs5_ul_hdr
osmo_conv_code
Definition: conv.h:52
gsm0503_mcs2
const struct osmo_conv_code gsm0503_mcs2