Add functions for extended RACH coding

Add support for extended RACH (11 bit) according 3GPP TS 45.003 ยง5.3.2:

* convolutional code with puncturing
* encoding/decoding routines
* corresponding tests

Change-Id: I85a34a82d5cd39a594ee89d91a2338226066ab5d
Related: OS#1548
diff --git a/include/osmocom/coding/gsm0503_coding.h b/include/osmocom/coding/gsm0503_coding.h
index a2d4115..86610ba 100644
--- a/include/osmocom/coding/gsm0503_coding.h
+++ b/include/osmocom/coding/gsm0503_coding.h
@@ -5,6 +5,8 @@
 #pragma once
 
 #include <stdint.h>
+
+#include <osmocom/core/defs.h>
 #include <osmocom/core/bits.h>
 
 /*! \addtogroup coding
@@ -63,8 +65,11 @@
 	int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft,
 	uint8_t *cmr, int *n_errors, int *n_bits_total);
 
-int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic);
+int gsm0503_rach_ext_encode(ubit_t *burst, uint16_t ra, uint8_t bsic, bool is_11bit);
+int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic) OSMO_DEPRECATED("Use gsm0503_rach_ext_encode() instead");
+
 int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic);
+int gsm0503_rach_ext_decode(uint16_t *ra, const sbit_t *burst, uint8_t bsic);
 
 int gsm0503_sch_encode(ubit_t *burst, const uint8_t *sb_info);
 int gsm0503_sch_decode(uint8_t *sb_info, const sbit_t *burst);