dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/30747 )
Change subject: trau_sync: add Ericsson RBS GPRS TRAU synchronization pattern (64kbps) ......................................................................
trau_sync: add Ericsson RBS GPRS TRAU synchronization pattern (64kbps)
For GPRS TRAU frames (Ericsson calls them GSL frames), ericsson introduces a propritary synchronization pattern. There are different patterns used for synchronization, data frames with coding schemes CS1-4 and MCS1-8 share a slightly different pattern than the one that is used for synchronization but the intersection between both patterns still provides reliable synchronization. There is also a third pattern for MCS9 that is not included in this patch.
Change-Id: I9d62089db557d37c924cc42fc8e3b608000ef4be Related: OS#5198 --- M include/osmocom/trau/trau_sync.h M src/trau/trau_sync.c 2 files changed, 49 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/47/30747/1
diff --git a/include/osmocom/trau/trau_sync.h b/include/osmocom/trau/trau_sync.h index a912db6..512b749 100644 --- a/include/osmocom/trau/trau_sync.h +++ b/include/osmocom/trau/trau_sync.h @@ -13,6 +13,7 @@ OSMO_TRAU_SYNCP_8_AMR_7K4, OSMO_TRAU_SYNCP_V110, OSMO_TRAU_SYNCP_16_ER_CCU, + OSMO_TRAU_SYNCP_64_ER_CCU, };
typedef void (*frame_out_cb_t)(void *user_data, const ubit_t *bits, unsigned int num_bits); diff --git a/src/trau/trau_sync.c b/src/trau/trau_sync.c index 83c7903..4835f85 100644 --- a/src/trau/trau_sync.c +++ b/src/trau/trau_sync.c @@ -176,6 +176,54 @@ }, .byte_len = 40, }, + [OSMO_TRAU_SYNCP_64_ER_CCU] = { + .name = "Ericsson CCU 64 kbps", + .byte_pattern = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + .byte_mask = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + .byte_len = 160, + }, };
static void expand_sync_pattern(struct sync_pattern *pat)