aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-02-18 03:34:55 +0000
committerHarald Welte <laforge@gnumonks.org>2009-02-18 03:34:55 +0000
commit41e166884e897fd578ea995d9558ef9198e27fa9 (patch)
tree4e1acc42f2a45a8033ffdf728a214bd7c4b48a87
parentda78376396386dd370d05ce41c32bf38f1f7d311 (diff)
if TRAU frame decoding doesn't work, we don't need to even try to re-encode and just send an idle frame instead
-rw-r--r--src/trau_mux.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/trau_mux.c b/src/trau_mux.c
index 753d01f95..3823c11b6 100644
--- a/src/trau_mux.c
+++ b/src/trau_mux.c
@@ -29,6 +29,7 @@
#include <openbsc/trau_mux.h>
#include <openbsc/subchan_demux.h>
#include <openbsc/e1_input.h>
+#include <openbsc/debug.h>
struct map_entry {
struct llist_head list;
@@ -90,6 +91,7 @@ int trau_mux_input(struct gsm_e1_subslot *src_e1_ss,
u_int8_t trau_bits_out[TRAU_FRAME_BITS];
struct gsm_e1_subslot *dst_e1_ss = lookup_trau_mux_map(src_e1_ss);
struct subch_mux *mx;
+ int rc;
if (!dst_e1_ss)
return -EINVAL;
@@ -99,7 +101,10 @@ int trau_mux_input(struct gsm_e1_subslot *src_e1_ss,
return -EINVAL;
/* decode TRAU, change it to downlink, re-encode */
- decode_trau_frame(&tf, trau_bits);
+ rc = decode_trau_frame(&tf, trau_bits);
+ if (rc)
+ return rc;
+
trau_frame_up2down(&tf);
encode_trau_frame(trau_bits_out, &tf);