osmo-gmr: RACH channel coding

osmo-gmr 0.2.104-2b98 Osmocom GMR-1

Files | Functions
RACH channel coding
GMR-1 Layer 1 library » Channel coder / decoders

## Files
file | rach.h
| Osmocom GMR-1 RACH channel coding header.
file | rach.c
| Osmocom GMR-1 RACH channel coding implementation.

## Functions
void | gmr1_rach_encode (ubit_t *bits_e, const uint8_t *rach, uint8_t sb_mask)
| Stateless GMR-1 RACH channel coder. More...
int | gmr1_rach_decode (uint8_t *rach, const sbit_t *bits_e, uint8_t sb_mask, int *conv_rv, int *crc_rv)
| Stateless GMR-1 RACH channel decoder. More...

## Detailed Description

## Function Documentation

## ◆ gmr1_rach_decode()

int gmr1_rach_decode | ( | uint8_t * | rach,
|  | const sbit_t * | bits_e,
|  | uint8_t | sb_mask,
|  | int * | conv_rv,
|  | int * | crc_rv
| ) |  |

Stateless GMR-1 RACH channel decoder.

Parameters

  [out] | rach | RACH packet data (2 class-1 bytes, 16 class-2 bytes)
  [in] | bits_e | Data bits of a burst
  [in] | sb_mask | RACH SB Mask value (see GMR-1 04.008)
  [out] | conv_rv | Return of the convolutional decode (can be NULL)
  [out] | crc_rv | Return array of the 2 CRC checks (can be NULL)

Returns
  0 if all CRC check pass, any other value for fail.

RACH data is 18 bytes long (2 class-1, 16 class-2), and bits_e is a 494 soft bits array unmapped from a RACH burst.

References gmr1_deinterleave_intra(), gmr1_scramble_sbit(), and osmo_conv_decode().

## ◆ gmr1_rach_encode()

void gmr1_rach_encode | ( | ubit_t * | bits_e,
|  | const uint8_t * | rach,
|  | uint8_t | sb_mask
| ) |  |

Stateless GMR-1 RACH channel coder.

Parameters

  [out] | bits_e | Data bits of a burst
  [in] | rach | RACH packet data (2 class-1 bytes, 16 class-2 bytes)
  [in] | sb_mask | RACH SB Mask value (see GMR-1 04.008)

RACH data is 18 bytes long (2 class-1, 16 class-2), and bits_e is a 494 hard bits array to be mapped on a RACH burst.

References gmr1_crc12, gmr1_crc8, osmo_conv_encode(), osmo_crc16gen_set_bits(), osmo_crc8gen_set_bits(), and osmo_pbit2ubit_ext().