diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-02-18 03:34:55 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-02-18 03:34:55 +0000 |
commit | 41e166884e897fd578ea995d9558ef9198e27fa9 (patch) | |
tree | 4e1acc42f2a45a8033ffdf728a214bd7c4b48a87 | |
parent | da78376396386dd370d05ce41c32bf38f1f7d311 (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.c | 7 |
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); |