diff options
-rw-r--r-- | include/osmocom/trau/trau_sync.h | 1 | ||||
-rw-r--r-- | src/trau/trau_sync.c | 9 |
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; |