aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-12-06 16:59:10 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-12-19 10:12:28 +0100
commitd074f8f3964e3d98081736a42ab2c839987e0159 (patch)
tree0afe3de08ce44ac7504771667166c45d954be895 /openbsc/include/openbsc
parentb6f95161935969c270ef42f1c31e6957df5afe31 (diff)
Add EFR support to TRAU muxer + test case
Decoding and encoding of FR and EFR TRAU frames are put into seperate functions. CRC check is done to detect bad EFR TRAU frames. The test case includes FR and EFR transcoding. EFR support was tested with Nokia InSite BTS and Siemens BS11.
Diffstat (limited to 'openbsc/include/openbsc')
-rw-r--r--openbsc/include/openbsc/mncc.h1
-rw-r--r--openbsc/include/openbsc/trau_mux.h10
2 files changed, 11 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/mncc.h b/openbsc/include/openbsc/mncc.h
index 4a99bb11b..ffc247b7c 100644
--- a/openbsc/include/openbsc/mncc.h
+++ b/openbsc/include/openbsc/mncc.h
@@ -95,6 +95,7 @@ struct gsm_call {
#define GSM_TCHF_FRAME 0x0300
#define GSM_TCHF_FRAME_EFR 0x0301
+#define GSM_TCHF_BAD_FRAME 0x03ff
#define MNCC_SOCKET_HELLO 0x0400
diff --git a/openbsc/include/openbsc/trau_mux.h b/openbsc/include/openbsc/trau_mux.h
index 2c01b06db..3de50f772 100644
--- a/openbsc/include/openbsc/trau_mux.h
+++ b/openbsc/include/openbsc/trau_mux.h
@@ -53,3 +53,13 @@ int trau_send_frame(struct gsm_lchan *lchan, struct gsm_data_frame *frame);
/* callback invoked if we receive TRAU frames */
int subch_cb(struct subch_demux *dmx, int ch, uint8_t *data, int len, void *_priv);
+
+/* TRAU frame transcoding */
+struct msgb *trau_decode_fr(uint32_t callref,
+ const struct decoded_trau_frame *tf);
+struct msgb *trau_decode_efr(uint32_t callref,
+ const struct decoded_trau_frame *tf);
+void trau_encode_fr(struct decoded_trau_frame *tf,
+ const unsigned char *data);
+void trau_encode_efr(struct decoded_trau_frame *tf,
+ const unsigned char *data);