osmo-gmr 0.2.104-2b98
Osmocom GMR-1

Files

file  facch3.h
 Osmocom GMR-1 FACCH3 channel coding header.
 
file  facch3.c
 Osmocom GMR-1 FACCH3 channel coding implementation.
 

Functions

void gmr1_facch3_encode (ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_s, const ubit_t *ciph)
 Stateless GMR-1 FACCH3 channel coder. More...
 
int gmr1_facch3_decode (uint8_t *l2, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv)
 Stateless GMR-1 FACCH3 channel decoder. More...
 

Detailed Description

Function Documentation

◆ gmr1_facch3_decode()

int gmr1_facch3_decode ( uint8_t *  l2,
ubit_t *  bits_s,
const sbit_t *  bits_e,
const ubit_t *  ciph,
int *  conv_rv 
)

Stateless GMR-1 FACCH3 channel decoder.

Parameters
[out]l2L2 packet data
[out]bits_s4*8 status bits de-multiplexed
[in]bits_e4*104 encoded bits of 4 bursts
[in]ciph4*96 bits of cipher stream (can be NULL)
[out]conv_rvReturn of the convolutional decode (can be NULL)
Returns
0 if CRC check pass, any other value for fail.

L2 data is 10 byte long. bits_s is 32 bits, 8 bits for each of the 4 burts, organized as 4 s_n followed by 4 s_p, as shown in section 7.3.2.2. bits_e is a 424 soft bits array unmapped from 4 bursts. ciph is the A5 cipher stream to use, 96 bits for each of the 4 burts.

References gmr1_deinterleave_intra(), and gmr1_scramble_sbit().

◆ gmr1_facch3_encode()

void gmr1_facch3_encode ( ubit_t *  bits_e,
const uint8_t *  l2,
const ubit_t *  bits_s,
const ubit_t *  ciph 
)

Stateless GMR-1 FACCH3 channel coder.

Parameters
[out]bits_e4*104 encoded bits of 4 bursts
[in]l2L2 packet data
[in]bits_s4*8 status bits to be multiplexed
[in]ciph4*96 bits of cipher stream (can be NULL)

L2 data is 10 byte long. bits_s is 32 bits, 8 bits for each of the 4 burts, organized as 4 s_n followed by 4 s_p, as shown in section 7.3.2.2. bits_e is a 432 hard bit array to be mapped on 4 bursts. ciph is the A5 cipher stream to use, 96 bits for each of the 4 burts.

References gmr1_crc16.