aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/trau/trau_sync.h1
-rw-r--r--src/trau/trau_sync.c9
2 files changed, 9 insertions, 1 deletions
diff --git a/include/osmocom/trau/trau_sync.h b/include/osmocom/trau/trau_sync.h
index 46595be..bd99586 100644
--- a/include/osmocom/trau/trau_sync.h
+++ b/include/osmocom/trau/trau_sync.h
@@ -17,3 +17,4 @@ osmo_trau_sync_alloc(void *ctx, const char *name, frame_out_cb_t frame_out_cb,
enum osmo_tray_sync_pat_id pat_id, void *user_data);
void osmo_trau_sync_rx_ubits(struct osmo_fsm_inst *fi, const ubit_t *bits, size_t n_bits);
+void osmo_trau_sync_set_pat(struct osmo_fsm_inst *fi, enum osmo_tray_sync_pat_id pat_id);
diff --git a/src/trau/trau_sync.c b/src/trau/trau_sync.c
index 730cf0c..89c5558 100644
--- a/src/trau/trau_sync.c
+++ b/src/trau/trau_sync.c
@@ -499,7 +499,6 @@ osmo_trau_sync_alloc(void *ctx, const char *name, frame_out_cb_t frame_out_cb,
tss->out_cb = frame_out_cb;
tss->user_data = user_data;
- /* FIXME: this must be configurable */
tss->pattern = &sync_patterns[pat_id];
/* An unusued E1 timeslot normally would send an idle signal that
@@ -511,6 +510,14 @@ osmo_trau_sync_alloc(void *ctx, const char *name, frame_out_cb_t frame_out_cb,
return fi;
}
+void osmo_trau_sync_set_pat(struct osmo_fsm_inst *fi, enum osmo_tray_sync_pat_id pat_id)
+{
+ struct trau_rx_sync_state *tss = fi->priv;
+
+ tss->pattern = &sync_patterns[pat_id];
+ osmo_fsm_inst_state_chg(fi, FRAME_ALIGNMENT_LOST, 0, 0);
+}
+
void osmo_trau_sync_rx_ubits(struct osmo_fsm_inst *fi, const ubit_t *bits, size_t n_bits)
{
struct ubit_buf ubb;