FreeCalypso > hg > fc-magnetite
diff src/aci2/alr/alr_test/alr_constraints.cpp @ 3:93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 26 Sep 2016 00:29:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/aci2/alr/alr_test/alr_constraints.cpp Mon Sep 26 00:29:36 2016 +0000 @@ -0,0 +1,6120 @@ +/* + +------------------------------------------------------------------------------ + | File: alr_constraints.cpp + +------------------------------------------------------------------------------ + | Copyright 2003 Texas Instruments + | All rights reserved. + | + | This file is confidential and a trade secret of Texas Instruments. + | The receipt of or possession of this file does not convey + | any rights to reproduce or disclose its contents or to + | manufacture, use, or sell anything it may describe, in + | whole, or in part, without the specific written consent of + | Texas Instruments. + +------------------------------------------------------------------------------ + | Purpose: Contains test constraints for alr + | + +------------------------------------------------------------------------------ +*/ +#include "alr_constraints.h" + + +/*------------------------------------------------------------------------------- + * + * ARRAYS + * + *-------------------------------------------------------------------------------*/ +const U8 L2_PAG_2_T1_A_ARRAY[23] = { + 0x1D, + 0x06, + 0x22, + 0x00, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B +}; + +T_raw cell_chan_desc_1() { + T_raw bitbuf; + bitbuf->l_buf = 128; + bitbuf->o_buf = 0; + const U8 CELL_CHAN_DESC_1[] = { + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + bitbuf->buf = CELL_CHAN_DESC_1; + return bitbuf; +} + +T_raw cell_chan_desc_1_new() { + T_raw bitbuf; + bitbuf->l_buf = 128; + bitbuf->o_buf = 0; + const U8 CELL_CHAN_DESC_1_NEW[] = { + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x18, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + bitbuf->buf = CELL_CHAN_DESC_1_NEW; + return bitbuf; +} + +T_raw neigh_cell_desc_1() { + T_raw bitbuf; + bitbuf->l_buf = 128; + bitbuf->o_buf = 0; + const U8 NEIGH_CELL_DESC_1[] = { + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04 + }; + bitbuf->buf = NEIGH_CELL_DESC_1; + return bitbuf; +} + +T_raw neigh_cell_desc_2() { + T_raw bitbuf; + bitbuf->l_buf = 128; + bitbuf->o_buf = 0; + const U8 NEIGH_CELL_DESC_2[] = { + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + bitbuf->buf = NEIGH_CELL_DESC_2; + return bitbuf; +} + +const U16 A_ARFCN_EMO_000[4] = { + 1,46,47,124 +}; + +const U8 LIST_no_carriers[LIST_MAX_SIZE] = { + 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 +}; + +const U8 LIST_1_14_euro [LIST_MAX_SIZE] = { + 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, 0x20, 0x01 + }; + +const U8 LIST_140_150_amr [LIST_MAX_SIZE] = { + 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, 0x20, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + +const U8 LIST_155_amr [LIST_MAX_SIZE] = { + 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, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + +const U8 LIST_975_euro[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 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 +}; + +const U8 LIST_130_amr [LIST_MAX_SIZE] = { + 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, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + /* Constant for Whitelist with more than 35 carriers */ + +const U8 LIST_garbage_euro[LIST_MAX_SIZE] = { + 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, 0xFF, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF +}; + +const U8 LIST_130_140_150_250_155_amr [LIST_MAX_SIZE] = { + 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, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x08, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +const U8 LIST_1_14_23_124_euro [LIST_MAX_SIZE] = { + 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, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x01 +}; + +const U8 LIST_131_143_152_251_156_amr [LIST_MAX_SIZE] = { + 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, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x40, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +const U8 LIST_1024_1023_10_20_amr [LIST_MAX_SIZE] = { + 0xC0, 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, 0x08, 0x02, 0x00 +}; + +const U8 LIST_1_euro [LIST_MAX_SIZE] = { + 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, 0x01 + }; + +const U8 LIST_130_250_155_amr [LIST_MAX_SIZE] = { + 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, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +const U8 L_RXT5_30_25_20_20_20 [MAX_NUM_BANDS] = { + 0x1E, 0x19, 0x14, 0x14, 0x14 +}; + + +const U8 L_RXT5_20 [MAX_NUM_BANDS] = { + 0x14, 0x14, 0x14, 0x14, 0x14 +}; + +/*------------------------------------------------------------------------------- + * + * PSTRUCTS + * + *-------------------------------------------------------------------------------*/ +T_loc_area_ident loc_area_ident_2() +{ + const U8 MCC_2[3] = { + 0, 0, 0 + }; + const U8 MNC_2[3] = { + 0, 0, 0 + }; + T_loc_area_ident mstruct; + mstruct->mcc = MCC_2; + mstruct->mnc = MNC_2; + mstruct->lac = 0x0200; + return mstruct; +} +T_l2_frame l2_sys_info_1() +{ + const U8 L2_SYS_INFO_1_ARRAY[23] = { + 0x59, + 0x06, + 0x19, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, + 0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_SYS_INFO_1_ARRAY; + return pstruct; +} +T_l2_frame l2_sys_info_2() +{ + const U8 L2_SYS_INFO_2_ARRAY[23] = { + 0x59, + 0x06, + 0x1A, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, + 0x01, + 0x00, 0x00, 0x40 + }; + + T_l2_frame pstruct; + pstruct->content = L2_SYS_INFO_2_ARRAY; + return pstruct; +} + +T_l2_frame l2_sys_info_3() +{ + const U8 L2_SYS_INFO_3_ARRAY[23] = { + 0x59, + 0x06, + 0x1B, + 0x37, 0x48, + 0x21, 0xF3, 0x33, 0x21, 0x47, + 0x28, 0x02, 0x06, + 0x5F, + 0x42, 0x56, + 0x00, 0x00, 0x40, + 0x2B, 0x2B, 0x2B, 0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_SYS_INFO_3_ARRAY; + return pstruct; +} +T_l2_frame l2_sys_info_3_new() +{ + const U8 L2_SYS_INFO_3_ARRAY[23] = { + 0x59, + 0x06, + 0x1B, + 0x00, 0x04, + 0x21, 0xF3, 0x33, 0x21, 0x47, + 0x28, 0x02, 0x06, + 0x5F, + 0x42, 0x56, + 0x00, 0x00, 0x40, + 0x2B, 0x2B, 0x2B, 0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_SYS_INFO_3_ARRAY; + return pstruct; +} + +T_l2_frame l2_sys_info_4() +{ + const U8 L2_SYS_INFO_4_ARRAY[23] = { + 0x59, + 0x06, + 0x1C, + 0x21, 0xF3, 0x33, 0x21, 0x47, + 0x42, 0x56, + 0x00, 0x00, 0x40, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_SYS_INFO_4_ARRAY; + return pstruct; +} +T_l2_frame l2_sys_info_4_acs() +{ + const U8 L2_SYS_INFO_4_ACS_ARRAY[23] = { + 0x59, + 0x06, + 0x1C, + 0x21, 0xF3, 0x33, 0x21, 0x47, + 0x42, 0xD6, + 0x00, 0x00, 0x40, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_SYS_INFO_4_ACS_ARRAY; + return pstruct; +} + +T_l2_frame l2_sys_info_2q() +{ + const U8 L2_SYS_INFO_2Q_ARRAY[23] = { + 0x59, + 0x06, + 0x07, /*Msg type*/ + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, + 0x01, + 0x00, 0x00, 0x40 + }; + + T_l2_frame pstruct; + pstruct->content = L2_SYS_INFO_2Q_ARRAY; + return pstruct; +} + + +T_cell_opt_sacch cell_opt_sacch_1() +{ + + T_cell_opt_sacch mstruct; + mstruct->dtx2_s = 0; + mstruct->pow_ctrl = POW_CTRL_NO; + mstruct->dtx_s = S_DTX_F_MAYUSE_H_DONTUSE; + mstruct->rlt = 1; + return mstruct; +} +T_rach_ctrl rach_ctrl_1() +{ + T_rach_ctrl mstruct; + mstruct->max_retrans = MAX_RETRANS_1; + mstruct->tx_integer = SPREAD_TRANS_3; + mstruct->cell_bar_access = BARRED_NO; + mstruct->re = REESTAB_YES; + mstruct->ac = ACC_0005; + return mstruct; +} +T_loc_area_ident loc_area_ident_1() +{ + const U8 MCC_1[3] = { + 1,2,3 + }; + const U8 MNC_1[2] = { + 3,3 + }; + T_loc_area_ident mstruct; + mstruct->mcc = MCC_1; + mstruct->mnc = MNC_1; + mstruct->lac = 0x2147; + return mstruct; +} +T_ctrl_chan_desc ctrl_chan_desc_1() +{ + T_ctrl_chan_desc mstruct; + mstruct->att = CCD_ATT_NO; + mstruct->bs_ag_blks_res = 5; + mstruct->ccch_conf = CCD_CCCH_1_NOT_COMB; + mstruct->bs_pa_mfrms = 2; + mstruct->t3212 = 6; + return mstruct; +} +T_cell_opt_bcch cell_opt_bcch_1() +{ + T_cell_opt_bcch mstruct; + mstruct->pow_ctrl = POW_CTRL_YES; + mstruct->dtx_b = B_DTX_SHALL_USE; + mstruct->rlt = 15; + return mstruct; +} +T_cell_select cell_select_1() +{ + T_cell_select mstruct; + mstruct->cell_resel_hyst = CELL_HYST_4_DB; + mstruct->ms_txpwr_max_cch = 2; + mstruct->acs = ACS_USE_SI4 ; + mstruct->neci = NECI_YES; + mstruct->rxlev_access_min = 22; + return mstruct; +} +T_cell_select cell_select_2() +{ + T_cell_select mstruct; + mstruct->cell_resel_hyst = CELL_HYST_4_DB; + mstruct->ms_txpwr_max_cch = 2; + mstruct->acs = ACS_USE_SI7 ; + mstruct->neci = NECI_YES; + mstruct->rxlev_access_min = 22; + return mstruct; +} +T_si7_rest_oct si7_rest_oct_1() +{ + T_si7_rest_oct mstruct; + mstruct->opt_sel_par._skip; + mstruct->pow_offs._skip; + mstruct->gprs_indic._skip; + mstruct->si4_rest_octets_s._skip; + return mstruct; +} +T_si8_rest_oct si8_rest_oct_1() +{ + T_si8_rest_oct mstruct; + mstruct->opt_sel_par._skip; + mstruct->pow_offs._skip; + mstruct->gprs_indic._skip; + mstruct->si4_rest_octets_s._skip; + return mstruct; +} +T_l2_frame l2_paging_req_1() +{ + const U8 L2_PAGING_REQ_1_ARRAY[23] = { + 0x11, + 0x06, + 0x21, + PAGING_NORM, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + T_l2_frame pstruct; + pstruct->content = L2_PAGING_REQ_1_ARRAY; + return pstruct; +} +T_l2_frame l2_paging_req_1_sab() +{ + const U8 L2_PAGING_REQ_1_SAB_ARRAY[23] = { + 0x11, + 0x06, + 0x21, + PAGING_SAME, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_PAGING_REQ_1_SAB_ARRAY; + return pstruct; +} +T_l2_frame l2_paging_req_1_ext() +{ + const U8 L2_PAGING_REQ_1_EXT_ARRAY[23] = { + 0x11, + 0x06, + 0x21, + PAGING_EXT, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_PAGING_REQ_1_EXT_ARRAY; + return pstruct; +} +T_l2_frame l2_paging_req_1_reo() +{ + const U8 L2_PAGING_REQ_1_REO_ARRAY[23] = { + 0x11, + 0x06, + 0x21, + PAGING_REORG, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + T_l2_frame pstruct; + pstruct->content = L2_PAGING_REQ_1_REO_ARRAY; + return pstruct; +} + +T_l2_frame l2_imm_ass_hop() +{ + const U8 L2_IMM_ASS_HOP_ARRAY[23] = { + 0x31, + 0x06, + 0x3F, + 0x00, + 0x40, 0x10, 0x40, + 0xFB, 0x21, 0x06, + 0x1E, + 0x01, 0x16, + 0x2B,0x2B,0x2B,0x2B,0x2B, + 0x2B,0x2B,0x2B,0x2B,0x2B + }; + + T_l2_frame pstruct; + pstruct->content = L2_IMM_ASS_HOP_ARRAY; + return pstruct; +} +T_page_mode page_mode_1() +{ + T_page_mode mstruct; + mstruct->pm = PAGING_NORM; + return mstruct; +} +T_chan_desc chan_desc_1() +{ + T_chan_desc mstruct; + mstruct->chan_type = SDCCH_8_S0; + mstruct->tn = 0; + mstruct->tsc = 0; + mstruct->hop = HOP_YES; + mstruct->arfcn._skip; + mstruct->maio = 1; + mstruct->hsn = 0; + return mstruct; +} +T_req_ref req_ref_1() +{ + T_req_ref mstruct; + mstruct->ra = 0xFB; + mstruct->t1 = 4; + mstruct->t3 = 8; + mstruct->t2 = 6; + return mstruct; +} +T_time_advance time_advance_1() +{ + T_time_advance mstruct; + mstruct->ta = 0x1E; + return mstruct; +} +T_mob_alloc mob_alloc_1() +{ + const U8 MAC_1_elements[1] = { + 0x16 + }; + T_ARRAY<U8> MAC_1(MAC_1_elements, SKIP_TO_END); + + T_mob_alloc mstruct; + mstruct->mac = MAC_1; + return mstruct; +} +T_l2_frame l2_no_content() +{ + const U8 EMPTY_FRAME_elements[1] = { + 0 + }; + T_ARRAY<U8> EMPTY_FRAME(EMPTY_FRAME_elements, SKIP_TO_END); + + T_l2_frame pstruct; + pstruct->content = EMPTY_FRAME; + return pstruct; +} + +T_tb_meas_result tb_meas_result_1(U16 acc_lev,U8 acc_nbr) +{ + T_tb_meas_result pstruct; + pstruct->arfcn = ARFCN_23; + pstruct->rxlev = acc_lev; + pstruct->num_meas = acc_nbr; + return pstruct; +} + +T_tb_meas_result tb_meas_result_2(U16 acc_lev,U8 acc_nbr) +{ + T_tb_meas_result pstruct; + pstruct->arfcn = ARFCN_512; + pstruct->rxlev = acc_lev; + pstruct->num_meas = acc_nbr; + return pstruct; +} +T_tb_meas_result tb_meas_empty() +{ + T_tb_meas_result pstruct; + pstruct->arfcn = TB_INVALID_ARFCN; + pstruct->rxlev = acc_level_0; + pstruct->num_meas = acc_nbr_0; + return pstruct; +} + +T_ARRAY<T_tb_meas_result> tb_list_1() +{ + T_tb_meas_result array[TB_BA_LIST_SIZE] = { + tb_meas_result_1(acc_level_4,acc_nbr_4), tb_meas_result_2(acc_level_5,acc_nbr_5), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty() + }; + return array; +} +T_ARRAY<T_tb_meas_result> tb_list_2() +{ + T_tb_meas_result array[TB_BA_LIST_SIZE] = { + tb_meas_result_1(acc_level_3,acc_nbr_3), tb_meas_result_2(acc_level_6,acc_nbr_6), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty() + }; + return array; +} +T_ARRAY<T_tb_meas_result> tb_list_3() +{ + T_tb_meas_result array[TB_BA_LIST_SIZE] = { + tb_meas_result_1(acc_level_2,acc_nbr_2), tb_meas_result_2(acc_level_7,acc_nbr_7), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), tb_meas_empty(), + tb_meas_empty(), tb_meas_empty() + }; + return array; +} + + +T_ARRAY<T_meas_results> s_emo_meas_res_000() +{ + T_meas_results array[5]; + array[0]->arfcn = CONST_1; + array[0]->rx_lev = CONST_30; + array[1]->arfcn = CONST_46; + array[1]->rx_lev = CONST_6; + array[2]->arfcn = CONST_47; + array[2]->rx_lev = CONST_53; + array[3]->arfcn = CONST_124; + array[3]->rx_lev = CONST_13; + array[4]->arfcn = CONST_23; + array[4]->rx_lev = CONST_1; + return array; +} +T_frequency_list freq_list() +{ + const U16 CHLIST_14_23_69_115_elements[4] = { + ARFCN_14, + ARFCN_23, + ARFCN_69, + ARFCN_115 + }; + T_ARRAY<U16> CHLIST_14_23_69_115(CHLIST_14_23_69_115_elements, SKIP_TO_END); + + T_frequency_list pstruct; + pstruct->rf_chan_cnt = 4; + pstruct->rf_chan_no.radio_freq = CHLIST_14_23_69_115; + return pstruct; +} + +/*------------------------------------------------------------------------------- + * + * PRIMITIVES + * + *-------------------------------------------------------------------------------*/ + +T_PRIMITIVE_UNION mph_power_req_1() +{ + T_MPH_POWER_REQ prim; + prim->pch_interrupt = PCH_INTERRUPT; + prim->freq_bands = BAND_GSM_900; + // New Element added in Cell Selection Improvement + prim->search_mode = FULL_SEARCH_MODE; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_no_carriers; + prim->black_list.list[AMERICAN_REGION].channels = LIST_no_carriers; + prim->white_list.white_list_valid = TRUE; + prim->white_list.region = EUROPEAN_REGION; + prim->white_list.list.channels = LIST_no_carriers; + // New Element added in Cell Selection Improvement ends here + return prim; +} + + +T_PRIMITIVE_UNION mph_power_req_variant(U8 search_mode, CHAR variant) +{ + T_MPH_POWER_REQ prim; + prim->pch_interrupt = PCH_INTERRUPT; + prim->freq_bands = 0x1F; + prim->search_mode = search_mode; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_no_carriers; + prim->black_list.list[AMERICAN_REGION].channels = LIST_no_carriers; + prim->white_list.white_list_valid = TRUE; + prim->white_list.region = EUROPEAN_REGION; + prim->white_list.list.channels = LIST_no_carriers; + prim->lower_rxlevel_threshold = L_RXT5_20; + switch(variant) + { // Variant X will be used to execute the default case + case 'A' : + prim->pch_interrupt = NO_PCH_INTERRUPT; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_1_14_euro; + prim->white_list.list.channels = LIST_1_14_euro; + break; + case 'B' : + prim->white_list.list.channels = LIST_1_14_euro; + break; + case 'C' : + prim->white_list.list.channels = LIST_garbage_euro; + break; + case 'D' : + prim->black_list.list[EUROPEAN_REGION].channels = LIST_1024_1023_10_20_amr; + break; + case 'F' : + prim->black_list.list[EUROPEAN_REGION].channels = LIST_1_14_euro; + prim->white_list.list.channels = LIST_1_14_euro; + break; + case 'G' : + prim->freq_bands = BAND_GSM_850; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_1_14_euro; + prim->white_list.list.channels = LIST_130_amr; + break; + case 'H' : + prim->freq_bands = BAND_GSM_850; + prim->black_list.list[AMERICAN_REGION].channels = LIST_140_150_amr; + prim->white_list.region = AMERICAN_REGION; + prim->white_list.list.channels = LIST_130_amr; + break; + case 'I' : + prim->freq_bands = BAND_DUAL_US; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_1_14_euro; + prim->white_list.list.channels = LIST_1_14_euro; + break; + case 'J' : + prim->white_list.white_list_valid = FALSE; + break; + case 'K': + prim->white_list.region = AMERICAN_REGION; + prim->white_list.list.channels = LIST_130_amr; + break; + case 'L': + prim->white_list.region = AMERICAN_REGION; + prim->white_list.list.channels = LIST_131_143_152_251_156_amr; + break; + case 'M': + prim->black_list.list[EUROPEAN_REGION].channels = LIST_140_150_amr; + prim->white_list.list.channels = LIST_1_14_euro; + break; + case 'N': + prim->black_list.list[EUROPEAN_REGION].channels = LIST_975_euro; + prim->white_list.list.channels = LIST_1_14_euro; + break; + case 'O': + prim->lower_rxlevel_threshold = L_RXT5_30_25_20_20_20; + default : + break; + } + return prim; +} + + +T_PRIMITIVE_UNION mph_power_req_2() +{ + T_MPH_POWER_REQ prim; + prim->pch_interrupt = NO_PCH_INTERRUPT; + prim->freq_bands = BAND_GSM_900; + prim->search_mode = FULL_SEARCH_MODE; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_no_carriers; + prim->black_list.list[AMERICAN_REGION].channels = LIST_no_carriers; + prim->white_list.white_list_valid = TRUE; + prim->white_list.region = EUROPEAN_REGION; + prim->white_list.list.channels = LIST_no_carriers; + return prim; +} + +T_PRIMITIVE_UNION mph_power_req_3() +{ + T_MPH_POWER_REQ prim; + prim->pch_interrupt = PCH_INTERRUPT; + prim->freq_bands = BAND_DCS_1800; + prim->search_mode = FULL_SEARCH_MODE; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_no_carriers; + prim->black_list.list[AMERICAN_REGION].channels = LIST_no_carriers; + prim->white_list.white_list_valid = TRUE; + prim->white_list.region = EUROPEAN_REGION; + prim->white_list.list.channels = LIST_no_carriers; + return prim; +} + +T_PRIMITIVE_UNION mph_power_req_4() +{ + T_MPH_POWER_REQ prim; + prim->pch_interrupt = PCH_INTERRUPT; + prim->freq_bands = BAND_DUAL; + prim->search_mode = FULL_SEARCH_MODE; + prim->black_list.list[EUROPEAN_REGION].channels = LIST_no_carriers; + prim->black_list.list[AMERICAN_REGION].channels = LIST_no_carriers; + prim->white_list.white_list_valid = TRUE; + prim->white_list.region = EUROPEAN_REGION; + prim->white_list.list.channels = LIST_no_carriers; + return prim; +} + +T_PRIMITIVE_UNION mphc_init_l1_req_1() +{ + T_MPHC_INIT_L1_REQ prim; + prim->radio_band_config = STD_900; + return prim; +} +T_PRIMITIVE_UNION mphc_init_l1_req_2() +{ + T_MPHC_INIT_L1_REQ prim; + prim->radio_band_config = STD_EGSM; + return prim; +} +T_PRIMITIVE_UNION mphc_init_l1_req_3() +{ + T_MPHC_INIT_L1_REQ prim; + prim->radio_band_config = STD_1800; + return prim; +} +T_PRIMITIVE_UNION mphc_init_l1_req_4() +{ + T_MPHC_INIT_L1_REQ prim; + prim->radio_band_config = STD_DUAL; + return prim; +} + +T_PRIMITIVE_UNION mphc_init_l1_req(CHAR band) +{ + T_MPHC_INIT_L1_REQ prim; + prim->radio_band_config = band; + return prim; +} + +T_PRIMITIVE_UNION mphc_init_l1_con_1() +{ + T_MPHC_INIT_L1_CON prim; + prim->param._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_rxlev_req() +{ + T_MPHC_RXLEV_REQ prim; + prim->shared_ptr._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_rxlev_ind(U8 idx) +{ + T_MPHC_RXLEV_IND prim; + prim->shared_ptr = idx; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_1() +{ + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_4; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn._skip; + prim->rx_lev._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_one_ncell() +{ + const U16 ARFCN_32_elements[] = { ARFCN_32_STD_900 }; + T_ARRAY<U16> ARFCN_32a(ARFCN_32_elements, SKIP_TO_END); + const U16 RXLEV_20_elements[] = { 20 }; + T_ARRAY<U16> RXLEV_20(RXLEV_20_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = 1; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_32a; + prim->rx_lev = RXLEV_20; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_2() +{ + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_0; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn._skip; + prim->rx_lev._skip; + prim->inactive_carrier_list.list[0].channels = LIST_no_carriers; + prim->inactive_carrier_list.list[1].channels = LIST_no_carriers; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_american() +{ + const U16 ARFCN_23_14_124_1_WITH_STD_elements[] = { + ARFCN_150_STD_850, ARFCN_140_STD_850, ARFCN_250_STD_850, ARFCN_130_STD_850 + }; + T_ARRAY<U16> ARFCN_23_14_124_1_WITH_STD(ARFCN_23_14_124_1_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_23_14_124_1_elements[] = { + 250, 220, 125, 105 + }; + T_ARRAY<U8> RXLEV_23_14_124_1(RXLEV_23_14_124_1_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_4; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_23_14_124_1_WITH_STD; + prim->rx_lev = RXLEV_23_14_124_1; + prim->inactive_carrier_list.list[0].channels = LIST_no_carriers; + prim->inactive_carrier_list.list[1].channels = LIST_155_amr; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_american1() +{ + const U16 ARFCN_23_14_124_1_WITH_STD_elements[] = { + ARFCN_130_STD_850, ARFCN_250_STD_850 + }; + T_ARRAY<U16> ARFCN_23_14_124_1_WITH_STD(ARFCN_23_14_124_1_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_23_14_124_1_elements[] = { + 105, 125 + }; + T_ARRAY<U8> RXLEV_23_14_124_1(RXLEV_23_14_124_1_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_2; + prim->num_of_white_list_chan = CHANNELS_1; + prim->arfcn = ARFCN_23_14_124_1_WITH_STD; + prim->rx_lev = RXLEV_23_14_124_1; + prim->inactive_carrier_list.list[0].channels = LIST_no_carriers; + prim->inactive_carrier_list.list[1].channels = LIST_155_amr; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_3() +{ + const U16 ARFCN_23_14_124_1_WITH_STD_elements[] = { + ARFCN_23_STD_900, ARFCN_14_STD_900, ARFCN_124_STD_900, ARFCN_1_STD_900 + }; + T_ARRAY<U16> ARFCN_23_14_124_1_WITH_STD(ARFCN_23_14_124_1_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_23_14_124_1_elements[] = { + 56, 44, 25, 21 + }; + T_ARRAY<U8> RXLEV_23_14_124_1(RXLEV_23_14_124_1_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_4; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_23_14_124_1_WITH_STD; + prim->rx_lev = RXLEV_23_14_124_1; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_32_whitelist() +{ + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_43; + prim->num_of_white_list_chan = CHANNELS_32; + prim->arfcn._show; + prim->rx_lev._show; + prim->inactive_carrier_list.list[0].channels._show; + prim->inactive_carrier_list.list[1].channels._show; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_3_new() +{ + const U16 ARFCN_23_14_124_1_WITH_STD_elements[] = { + ARFCN_14_STD_EGSM, ARFCN_1_STD_EGSM, ARFCN_23_STD_EGSM, ARFCN_150_STD_DUAL_US, + ARFCN_140_STD_DUAL_US,ARFCN_124_STD_EGSM, ARFCN_250_STD_DUAL_US, ARFCN_130_STD_DUAL_US + }; + T_ARRAY<U16> ARFCN_23_14_124_1_WITH_STD(ARFCN_23_14_124_1_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_23_14_124_1_elements[] = { + 44, 21, 56, 50, 44, 25, 25, 21 + }; + T_ARRAY<U8> RXLEV_23_14_124_1(RXLEV_23_14_124_1_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_8; + prim->num_of_white_list_chan = CHANNELS_2; + prim->arfcn = ARFCN_23_14_124_1_WITH_STD; + prim->rx_lev = RXLEV_23_14_124_1; + prim->inactive_carrier_list.list[0].channels = LIST_no_carriers; + prim->inactive_carrier_list.list[1].channels = LIST_155_amr; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_same_white_black() +{ + const U16 ARFCN_23_124_WITH_STD_elements[] = { + ARFCN_23_STD_EGSM, ARFCN_150_STD_DUAL_US, ARFCN_140_STD_DUAL_US, + ARFCN_124_STD_EGSM, ARFCN_250_STD_DUAL_US, ARFCN_130_STD_DUAL_US + }; + T_ARRAY<U16> ARFCN_23_124_WITH_STD(ARFCN_23_124_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_23_124_elements[] = { + 24, 50, 44, 25, 25, 21 + }; + T_ARRAY<U8> RXLEV_23_124(RXLEV_23_124_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_6; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_23_124_WITH_STD; + prim->rx_lev._skip; + prim->inactive_carrier_list.list[0].channels = LIST_no_carriers; + prim->inactive_carrier_list.list[1].channels = LIST_155_amr; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_rxlevel(CHAR variant) +{ + U8 no_of_channels; + const U16 ARFCN_23_124_WITH_STD_elements[] = { + ARFCN_23_STD_EGSM, ARFCN_150_STD_DUAL_US, ARFCN_140_STD_DUAL_US, + ARFCN_124_STD_EGSM, ARFCN_250_STD_DUAL_US, ARFCN_130_STD_DUAL_US + }; + + T_ARRAY<U16> ARFCN_23_124_WITH_STD(ARFCN_23_124_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_23_124_elements[] = { + 24, 250, 220, 125, 125, 105 + }; + + const U8 FIVE_RXLEV_23_124_elements[] = { + 56, 50, 44, 25, 25, 21 + }; + + T_ARRAY<U8> RXLEV_23_124(RXLEV_23_124_elements, SKIP_TO_END); + + T_ARRAY<U8> FIVE_RXLEV_23_124(FIVE_RXLEV_23_124_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + + no_of_channels = CHANNELS_6; + switch(variant) + { + case 'A' : + prim->rx_lev = FIVE_RXLEV_23_124; + break; + case 'C' : + prim->num_of_chan = CHANNELS_0; + case 'B' : + prim->rx_lev = RXLEV_23_124; + break; + } + prim->num_of_chan = no_of_channels; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_23_124_WITH_STD; + prim->inactive_carrier_list.list[0].channels._skip; + prim->inactive_carrier_list.list[1].channels._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_lrxt() +{ + const U16 ARFCN_23_124_WITH_STD_elements[] = { + ARFCN_23_STD_EGSM, ARFCN_150_STD_DUAL_US, ARFCN_14_STD_EGSM, + ARFCN_140_STD_DUAL_US, ARFCN_124_STD_EGSM + }; + + T_ARRAY<U16> ARFCN_23_124_WITH_STD(ARFCN_23_124_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_23_124_elements[] = { + 56, 50, 44, 44, 25 + }; + + T_ARRAY<U8> RXLEV_23_124(RXLEV_23_124_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + + prim->num_of_chan = CHANNELS_5; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_23_124_WITH_STD; + prim->rx_lev = RXLEV_23_124; + prim->inactive_carrier_list.list[0].channels = LIST_1_euro; + prim->inactive_carrier_list.list[1].channels = LIST_130_250_155_amr; + return prim; +} + + +T_PRIMITIVE_UNION mph_power_cnf_black() +{ + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_6; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn._show; + prim->rx_lev._show; + prim->inactive_carrier_list.list[0].channels._show; + prim->inactive_carrier_list.list[1].channels._show; + return prim; +} + + +T_PRIMITIVE_UNION mph_power_cnf_4() +{ + const U16 ARFCN_637_580_885_512_WITH_STD_elements[CHANNELS_4] = { + ARFCN_637_STD_1800, + ARFCN_580_STD_1800, + ARFCN_885_STD_1800, + ARFCN_512_STD_1800 + }; + T_ARRAY<U16> ARFCN_637_580_885_512_WITH_STD(ARFCN_637_580_885_512_WITH_STD_elements, SKIP_TO_END); + const U8 RXLEV_637_580_885_512_elements[CHANNELS_4] = { + 56, 44, 25, 21 + }; + T_ARRAY<U8> RXLEV_637_580_885_512(RXLEV_637_580_885_512_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_4; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_637_580_885_512_WITH_STD; + prim->rx_lev = RXLEV_637_580_885_512; + return prim; +} +T_PRIMITIVE_UNION mph_power_cnf_5() +{ + const U16 ARFCN_DUAL_WITH_STD_elements[CHANNELS_8] = { + ARFCN_23_STD_DUAL, + ARFCN_637_STD_DUAL, + ARFCN_14_STD_DUAL, + ARFCN_580_STD_DUAL, + ARFCN_124_STD_DUAL, + ARFCN_885_STD_DUAL, + ARFCN_1_STD_DUAL, + ARFCN_512_STD_DUAL + }; + T_ARRAY<U16> ARFCN_DUAL_WITH_STD(ARFCN_DUAL_WITH_STD_elements, SKIP_TO_END); + + const U8 RXLEV_DUAL_elements[CHANNELS_8] = { + 56, 55, 44, 43, 25, 23, 21, 11 + }; + T_ARRAY<U8> RXLEV_DUAL(RXLEV_DUAL_elements, SKIP_TO_END); + + T_MPH_POWER_CNF prim; + prim->num_of_chan = CHANNELS_8; + prim->num_of_white_list_chan = CHANNELS_0; + prim->arfcn = ARFCN_DUAL_WITH_STD; + prim->rx_lev = RXLEV_DUAL; + return prim; +} + +T_PRIMITIVE_UNION mph_bsic_req(U16 arfcn) +{ + T_MPH_BSIC_REQ prim; + prim->arfcn = arfcn; + return prim; +} + +T_PRIMITIVE_UNION mphc_network_sync_req(U16 arfcn, U8 mode) +{ + T_MPHC_NETWORK_SYNC_REQ prim; + prim->radio_freq = arfcn; + prim->timing_validity = TV_INVALID_TIMING_INFO; + prim->fn_offset ._skip; + prim->time_alignment ._skip; + prim->search_mode = mode; + return prim; +} + +T_PRIMITIVE_UNION mphc_network_sync_ind_1() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_23; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_1; + return prim; +} + +T_PRIMITIVE_UNION mphc_network_sync_ind_32() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_32; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_32; + prim->time_alignment = TIME_ALIGNMT_32; + prim->bsic = BSIC_3; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_failed(U16 arfcn) +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = arfcn; + prim->sb_flag = NO_SB_FOUND; + prim->fn_offset = INVALID_PATTERN; + prim->time_alignment = INVALID_PATTERN; + prim->bsic = INVALID_PATTERN; + return prim; +} + +T_PRIMITIVE_UNION mphc_network_sync_ind_6() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_14; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_7() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_124; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_8() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_1; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_9() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_637; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_1; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_14() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_580; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_15() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_885; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_16() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_512; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_network_sync_ind_17() +{ + T_MPHC_NETWORK_SYNC_IND prim; + prim->radio_freq = ARFCN_637; + prim->sb_flag = SB_FOUND; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->bsic = BSIC_0; + return prim; +} + + +T_PRIMITIVE_UNION mph_bsic_cnf_failed(U16 arfcn) +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = arfcn; //ARFCN_23_STD_900; + prim->bsic ._show; // the value is not defined, but it should not be INVALID_PATTERN + // but i don't know how to test this. + prim->cs = CS_NO_BCCH_AVAIL; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_cell32() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_32; + prim->cs = CS_NO_ERROR; + prim->bsic = BSIC_3; + return prim; +} + +T_PRIMITIVE_UNION mph_bsic_cnf_1() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_23_STD_900; + prim->bsic = BSIC_1; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_6() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_14_STD_900; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_7() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_124_STD_900; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_8() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_1_STD_900; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_9() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn._skip; + prim->bsic._skip; + prim->cs = CS_NO_BCCH_AVAIL; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_10() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = CONST_1023; + prim->bsic = CONST_12; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_14() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_14; + prim->bsic = BSIC_1; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_15() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_124; + prim->bsic = BSIC_1; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_16() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_1; + prim->bsic = BSIC_1; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_17() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_637_STD_1800; + prim->bsic = BSIC_1; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_22() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_580_STD_1800; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_23() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_885_STD_1800; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_24() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_512_STD_1800; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_25() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_23_STD_DUAL; + prim->bsic = BSIC_1; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_33() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_637_STD_DUAL; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_34() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_14_STD_DUAL; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} +T_PRIMITIVE_UNION mph_bsic_cnf_35() +{ + T_MPH_BSIC_CNF prim; + prim->arfcn = ARFCN_580_STD_DUAL; + prim->bsic = BSIC_0; + prim->cs = CS_NO_ERROR; + return prim; +} + +T_PRIMITIVE_UNION mphc_new_scell_req_1() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_23; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_1; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_2() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_14; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_3() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_124; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_4() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_1; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_5() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_637; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_1; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_6() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_580; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_7() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_885; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_8() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_512; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_9() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_637; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_0; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_10() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_14; + prim->fn_offset = FN_OFF_ARFCN_14; + prim->time_alignment = TIME_ALIGNMT_14; + prim->tsc = BSIC_1; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_12() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_1; + prim->fn_offset = FN_OFFSET_224; + prim->time_alignment = TIME_ALIGNMT_14; + prim->tsc = BSIC_2; + return prim; +} +T_PRIMITIVE_UNION mphc_new_scell_req_13() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_14; + prim->fn_offset = FN_OFFSET_224; + prim->time_alignment = TIME_ALIGNMT_14; + prim->tsc = BSIC_1; + return prim; +} + +T_PRIMITIVE_UNION mphc_new_scell_req_cell32() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_32; + prim->fn_offset = FN_OFFSET_32; + prim->time_alignment = TIME_ALIGNMT_32; + prim->tsc = BSIC_3; + return prim; +} + + +T_PRIMITIVE_UNION mphc_new_scell_con_1() +{ + T_MPHC_NEW_SCELL_CON prim; + prim->param._skip; + return prim; +} + +/* BCCH */ + +T_PRIMITIVE_UNION mphc_data_ind_1() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_2() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_2(); + prim->tc = TC_1; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_3() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_3(); + prim->tc = TC_2; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_4() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_4(); + prim->tc = TC_3; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_5() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame = l2_no_content(); + prim->tc = TC_3; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_6() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_124; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_7() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_1; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_14() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame = l2_no_content(); + prim->tc = TC_2; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_15() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_3(); + prim->tc = TC_4; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_16() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame = l2_no_content(); + prim->tc = TC_5; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_17() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame = l2_no_content(); + prim->tc = TC_6; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_18() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame = l2_no_content(); + prim->tc = TC_7; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_35() +{ + const U8 L2_SYS_INFO_1_NEW_ARRAY[23] = { + 0x59, + 0x06, + 0x19, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x18, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, + 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_SYS_INFO_1_NEW_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_42() +{ +T_MPHC_DATA_IND prim; +prim->radio_freq = ARFCN_637; +prim->l2_channel = L2_CHANNEL_NBCCH; +prim->error_flag = VALID_BLOCK; +prim->l2_frame = l2_sys_info_1(); +prim->tc = TC_0; +prim->ccch_lev._skip; +prim->fn = FN_OFFSET_0; +return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_43() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_637; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_2(); + prim->tc = TC_1; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_44() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_637; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_3(); + prim->tc = TC_2; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_45() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_637; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_4(); + prim->tc = TC_3; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_46() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_637; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame = l2_no_content(); + prim->tc = TC_3; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_47() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_885; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_48() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_512; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_49() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_50() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_580; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_63() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_3(); + prim->tc = TC_1; + prim->ccch_lev._skip; + prim->fn = FN_OFF_ARFCN_14; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_64() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_1(); + prim->tc = TC_1; + prim->ccch_lev._skip; + prim->fn = FN_OFF_ARFCN_14; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_65() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_NBCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_2(); + prim->tc = TC_1; + prim->ccch_lev._skip; + prim->fn = FN_OFF_ARFCN_14; + return prim; +} + +/* PCH, CCCH */ + + +T_PRIMITIVE_UNION mphc_data_ind_8(CHAR variant) +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame = l2_paging_req_1_ext(); + if (variant == 'B') prim->l2_frame = l2_paging_req_1_reo(); + if (variant == 'C') prim->l2_frame = l2_paging_req_1_sab(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_9() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_paging_req_1_ext(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_10() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_paging_req_1_reo(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_11() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_paging_req_1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_12(CHAR variant) +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame = l2_paging_req_1(); + if (variant == 'B') prim->l2_frame = l2_paging_req_1_sab(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_13(CHAR variant) +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame = l2_paging_req_1_ext(); + if (variant == 'B') prim->l2_frame = l2_paging_req_1_sab(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_19() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame = l2_no_content(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_20() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_CCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_imm_ass_hop(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_21() +{ + const U8 L2_IMM_ASS_REJ_ARRAY[13] = { + 0x31, + 0x06, + 0x3F, + 0x00, + 0x2B, 0x54, 0x94, + 0xFB, 0x21, 0x06, + 0x1B, + 0x01, 0x16 + }; + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_CCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_IMM_ASS_REJ_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_22() +{ + const U8 L2_IMM_ASS_ARRAY[13] = { + 0x31, + 0x06, + 0x3F, + 0x00, + 0x2B, 0x54, 0x94, + 0xFB, 0x21, 0x06, + 0x1B, + 0x01, 0x16 + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_CCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_IMM_ASS_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_23() +{ + const U8 L2_PAG_1_EMPTY_ARRAY[23] = { + 0x11, + 0x06, + 0x21, + 0x00, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_PAG_1_EMPTY_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_24(CHAR variant) +{ + const U8 L2_PAG_1_I1_A_ARRAY[23] = { + 0x31, + 0x06, + 0x21, + 0x00, + 0x08, + 0x09, 0x10, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54, 0x17, 0x08, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_I2_A_ARRAY[23] = { + 0x59, + 0x06, + 0x21, + 0x00, + 0x08, + 0x09, 0x10, 0x10, 0x83, 0x23, + 0x03, 0x95, 0x54, 0x17, 0x08, + 0x09, 0x10, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54 + }; + const U8 L2_PAG_1_I3_A_ARRAY[23] = { + 0x31, + 0x06, + 0x21, + 0x00, + 0x08, + 0x09, 0x10, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54, 0x17, 0x07, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x08 + }; + const U8 L2_PAG_1_T1_T_ARRAY[23] = { + 0x1D, + 0x06, + 0x21, + 0x20, + 0x05, + 0xF4, 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_T2_T_ARRAY[23] = { + 0x41, + 0x06, + 0x21, + 0x80, + 0x05, + 0xF4, 0x06, 0x22, 0x33, 0x66, + 0x17, 0x05, 0xF4, 0x05, 0x22, + 0x33, 0x66, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_TX_T_ARRAY[23] = { + 0x1D, + 0x06, + 0x21, + 0x20, + 0x05, + 0xF4, 0xFF, 0xEE, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_I1_S_ARRAY[23] = { + 0x31, + 0x06, + 0x21, + 0x10, + 0x08, + 0x09, 0x10, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_I2_S_ARRAY[23] = { + 0x59, + 0x06, + 0x21, + 0x40, + 0x08, + 0x09, 0x10, 0x10, 0x83, 0x23, + 0x03, 0x95, 0x54, 0x17, 0x08, + 0x09, 0x10, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54 + }; + const U8 L2_PAG_1_T1_D_ARRAY[23] = { + 0x1D, + 0x06, + 0x21, + 0x30, + 0x05, + 0xF4, 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_T2_D_ARRAY[23] = { + 0x41, + 0x06, + 0x21, + 0xC0, + 0x05, + 0xF4, 0x06, 0x22, 0x33, 0x66, + 0x17, 0x05, 0xF4, 0x05, 0x22, + 0x33, 0x66, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame.content = L2_PAG_1_I1_A_ARRAY; + if (variant == 'B') prim->l2_frame.content = L2_PAG_1_I2_A_ARRAY; + if (variant == 'C') prim->l2_frame.content = L2_PAG_1_T1_T_ARRAY; + if (variant == 'D') prim->l2_frame.content = L2_PAG_1_T2_T_ARRAY; + if (variant == 'E') prim->l2_frame.content = L2_PAG_1_I1_S_ARRAY; + if (variant == 'F') prim->l2_frame.content = L2_PAG_1_I2_S_ARRAY; + if (variant == 'G') prim->l2_frame.content = L2_PAG_1_T1_D_ARRAY; + if (variant == 'H') prim->l2_frame.content = L2_PAG_1_T2_D_ARRAY; + if (variant == 'I') prim->l2_frame.content = L2_PAG_1_I3_A_ARRAY; + if (variant == 'J') prim->l2_frame.content = L2_PAG_1_TX_T_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_25(CHAR variant) +{ + const U8 L2_PAG_1_WI1_ARRAY[23] = { + 0x31, + 0x06, + 0x21, + 0x10, + 0x08, + 0x09, 0x12, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_WI2_ARRAY[23] = { + 0x59, + 0x06, + 0x21, + 0x40, + 0x08, + 0x09, 0x10, 0x10, 0x83, 0x23, + 0x03, 0x95, 0x54, 0x17, 0x08, + 0x09, 0x12, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54 + }; + const U8 L2_PAG_1_WT1_ARRAY[23] = { + 0x1D, + 0x06, + 0x21, + 0x30, + 0x05, + 0xF4, 0x06, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_WT2_ARRAY[23] = { + 0x41, + 0x06, + 0x21, + 0xC0, + 0x05, + 0xF4, 0x06, 0x22, 0x33, 0x66, + 0x17, 0x05, 0xF4, 0x05, 0x23, + 0x33, 0x66, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_WTYPE_ARRAY[23] = { + 0x31, + 0x06, + 0x21, + 0x10, + 0x08, + 0x0B, 0x12, 0x10, 0x83, 0x32, + 0x03, 0x95, 0x54, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame.content = L2_PAG_1_WI1_ARRAY; + if (variant == 'B') prim->l2_frame.content = L2_PAG_1_WT1_ARRAY; + if (variant == 'C') prim->l2_frame.content = L2_PAG_1_WI1_ARRAY; + if (variant == 'D') prim->l2_frame.content = L2_PAG_1_WT2_ARRAY; + if (variant == 'E') prim->l2_frame.content = L2_PAG_1_WTYPE_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_26(CHAR variant) +{ + const U8 L2_PAG_1_ST1_A1_ARRAY[23] = { + 0x19, + 0x06, + 0x21, + 0x00, + 0x02, + 0xF4, 142, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_ST2_T3_ARRAY[23] = { + 0x2D, + 0x06, + 0x21, + 0x80, + 0x02, + 0xF4, 143, 0x17, 0x03, 0xF4, + 0x00, 142, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_SI1_S_ARRAY[23] = { + 0x29, + 0x06, + 0x21, + 0x10, + 0x06, + 0x01, 0x10, 0x10, 0x83, 0x32, + 0xF3, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_SI2_D_ARRAY[23] = { + 0x39, + 0x06, + 0x21, + 0xC0, + 0x02, + 0xF4, 143, 0x17, 0x06, 0x01, + 0x10, 0x10, 0x83, 0x32, 0xF3, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_1_ST1_A2_ARRAY[23] = { + 0x1D, + 0x06, + 0x21, + 0x00, + 0x03, + 0xF4, 0, 142, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B + }; + const U8 L2_PAG_1_ST2_T4_ARRAY[23] = { + 0x35, + 0x06, + 0x21, + 0x80, + 0x02, + 0xF4, 143, 0x17, 0x05, 0xF4, + 0x00, 0x00, 0x00, 142, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame.content = L2_PAG_1_ST1_A1_ARRAY; + if (variant == 'B') prim->l2_frame.content = L2_PAG_1_ST2_T3_ARRAY; + if (variant == 'C') prim->l2_frame.content = L2_PAG_1_SI1_S_ARRAY; + if (variant == 'D') prim->l2_frame.content = L2_PAG_1_SI2_D_ARRAY; + if (variant == 'E') prim->l2_frame.content = L2_PAG_1_ST1_A2_ARRAY; + if (variant == 'F') prim->l2_frame.content = L2_PAG_1_ST2_T4_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_27() +{ + const U8 L2_PAG_2_EMPTY_ARRAY[23] = { + 0x11, + 0x06, + 0x22, + 0x00, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_PAG_2_EMPTY_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_28(CHAR variant) +{ + const U8 L2_PAG_2_T1_S_ARRAY[23] = { + 0x1D, + 0x06, + 0x22, + 0x10, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_2_T1_T_ARRAY[23] = { + 0x1D, + 0x06, + 0x22, + 0x20, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_2_T1_D_ARRAY[23] = { + 0x1D, + 0x06, + 0x22, + 0x30, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_2_T2_A_ARRAY[23] = { + 0x2D, + 0x06, + 0x22, + 0x00, + 0x06, 0x22, 0x33, 0x66, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_T2_S_ARRAY[23] = { + 0x2D, + 0x06, + 0x22, + 0x40, + 0x05, 0x23, 0x33, 0x66, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_T2_T_ARRAY[23] = { + 0x2D, + 0x06, + 0x22, + 0x80, + 0x05, 0x22, 0x31, 0x66, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_T2_D_ARRAY[23] = { + 0x2D, + 0x06, + 0x22, + 0xC0, + 0x05, 0x22, 0x33, 0x65, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame.content = L2_PAG_2_T1_A_ARRAY; + if (variant == 'B') prim->l2_frame.content = L2_PAG_2_T1_S_ARRAY; + if (variant == 'C') prim->l2_frame.content = L2_PAG_2_T1_T_ARRAY; + if (variant == 'D') prim->l2_frame.content = L2_PAG_2_T1_D_ARRAY; + if (variant == 'E') prim->l2_frame.content = L2_PAG_2_T2_A_ARRAY; + if (variant == 'F') prim->l2_frame.content = L2_PAG_2_T2_S_ARRAY; + if (variant == 'G') prim->l2_frame.content = L2_PAG_2_T2_T_ARRAY; + if (variant == 'H') prim->l2_frame.content = L2_PAG_2_T2_D_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_29() +{ + const U8 L2_PAG_2_WRONG_ARRAY[23] = { + 0x2D, + 0x06, + 0x22, + 0x30, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_PAG_2_WRONG_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_30(CHAR variant) +{ + const U8 L2_PAG_2_I3_A_ARRAY[23] = { + 0x55, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x08, 0x09, 0x10, 0x10, + 0x83, 0x32, 0x03, 0x95, 0x54, + 0x8B + }; + const U8 L2_PAG_2_I3_S_ARRAY[23] = { + 0x55, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x08, 0x09, 0x10, 0x10, + 0x83, 0x32, 0x03, 0x95, 0x54, + 0xAB + }; + const U8 L2_PAG_2_I3_T_ARRAY[23] = { + 0x55, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x08, 0x09, 0x10, 0x10, + 0x83, 0x32, 0x03, 0x95, 0x54, + 0xCB + }; + const U8 L2_PAG_2_I3_D_ARRAY[23] = { + 0x55, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x08, 0x09, 0x10, 0x10, + 0x83, 0x32, 0x03, 0x95, 0x54, + 0xEB + }; + const U8 L2_PAG_2_I3_N_ARRAY[23] = { + 0x55, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x08, 0x09, 0x10, 0x10, + 0x83, 0x32, 0x03, 0x95, 0x54, + 0x2B + }; + const U8 L2_PAG_2_T3_A_ARRAY[23] = { + 0x49, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x05, 0xF4, 0x05, 0x22, + 0x33, 0x66, 0x8B, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_T3_S_ARRAY[23] = { + 0x49, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x05, 0xF4, 0x05, 0x22, + 0x33, 0x66, 0xAB, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_T3_T_ARRAY[23] = { + 0x49, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x05, 0xF4, 0x05, 0x22, + 0x33, 0x66, 0xCB, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_T3_D_ARRAY[23] = { + 0x49, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x05, 0xF4, 0x05, 0x22, + 0x33, 0x66, 0xEB, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_T3_N_ARRAY[23] = { + 0x49, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x05, 0xF4, 0x05, 0x22, + 0x33, 0x66, 0x2B, 0x2B, 0x2B, + 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame.content = L2_PAG_2_I3_A_ARRAY; + if (variant == 'B') prim->l2_frame.content = L2_PAG_2_I3_S_ARRAY; + if (variant == 'C') prim->l2_frame.content = L2_PAG_2_I3_T_ARRAY; + if (variant == 'D') prim->l2_frame.content = L2_PAG_2_I3_D_ARRAY; + if (variant == 'E') prim->l2_frame.content = L2_PAG_2_I3_N_ARRAY; + if (variant == 'F') prim->l2_frame.content = L2_PAG_2_T3_A_ARRAY; + if (variant == 'G') prim->l2_frame.content = L2_PAG_2_T3_S_ARRAY; + if (variant == 'H') prim->l2_frame.content = L2_PAG_2_T3_T_ARRAY; + if (variant == 'I') prim->l2_frame.content = L2_PAG_2_T3_D_ARRAY; + if (variant == 'J') prim->l2_frame.content = L2_PAG_2_T3_N_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_31(CHAR variant) +{ + const U8 L2_PAG_2_SI3_A_ARRAY[23] = { + 0x4D, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x06, 0x01, 0x10, 0x10, + 0x83, 0x32, 0xF3, 0x8B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_ST3_S_ARRAY[23] = { + 0x3D, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x02, 0xF4, 142, 0xAB, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B + }; + const U8 L2_PAG_2_ST3_T_ARRAY[23] = { + 0x41, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x03, 0xF4, 0, 142, 0xCB, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_2_ST3_D_ARRAY[23] = { + 0x45, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x04, 0xF4, 0,0,142, 0xEB, + 0x2B, 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_2_ST3_N_ARRAY[23] = { + 0x49, + 0x06, + 0x22, + 0x00, + 0x01, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x17, 0x05, 0xF4, 0, 0,0,142, 0x2B, + 0x2B, 0x2B, 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame.content = L2_PAG_2_SI3_A_ARRAY; + if (variant == 'B') prim->l2_frame.content = L2_PAG_2_ST3_S_ARRAY; + if (variant == 'C') prim->l2_frame.content = L2_PAG_2_ST3_T_ARRAY; + if (variant == 'D') prim->l2_frame.content = L2_PAG_2_ST3_D_ARRAY; + if (variant == 'E') prim->l2_frame.content = L2_PAG_2_ST3_N_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_32() +{ + const U8 L2_PAG_3_EMPTY_ARRAY[23] = { + 0x11, + 0x06, + 0x24, + 0x00, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_PAG_3_EMPTY_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_33(CHAR variant) +{ + const U8 L2_PAG_3_T1_A_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x05, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T1_S_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x10, + 0x05, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T1_T_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x20, + 0x05, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T1_D_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x30, + 0x05, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T2_A_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x05, 0x22, 0x33, 0x66, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T2_S_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x40, + 0x04, 0x22, 0x33, 0x66, + 0x05, 0x22, 0x33, 0x66, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T2_T_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x80, + 0x04, 0x22, 0x33, 0x66, + 0x05, 0x22, 0x33, 0x66, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T2_D_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0xC0, + 0x04, 0x22, 0x33, 0x66, + 0x05, 0x22, 0x33, 0x66, + 0x03, 0x22, 0x33, 0x65, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T3_A_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x05, 0x22, 0x33, 0x66, + 0x02, 0x22, 0x33, 0x65, + 0x83, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T3_S_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x05, 0x22, 0x33, 0x66, + 0x02, 0x22, 0x33, 0x65, + 0xA3, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T3_T_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x05, 0x22, 0x33, 0x66, + 0x02, 0x22, 0x33, 0x65, + 0xC3, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T3_D_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x05, 0x22, 0x33, 0x66, + 0x02, 0x22, 0x33, 0x65, + 0xE3, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T3_N_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x10, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x05, 0x22, 0x33, 0x66, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T4_A_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x04, 0x22, 0x33, 0x67, + 0x05, 0x22, 0x33, 0x66, + 0xA3, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T4_S_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x04, 0x22, 0x33, 0x67, + 0x05, 0x22, 0x33, 0x66, + 0x8B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T4_T_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x04, 0x22, 0x33, 0x67, + 0x05, 0x22, 0x33, 0x66, + 0x93, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T4_D_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x00, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x04, 0x22, 0x33, 0x67, + 0x05, 0x22, 0x33, 0x66, + 0x9B, 0x2B, 0x2B + }; + const U8 L2_PAG_3_T4_N_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x50, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x04, 0x22, 0x33, 0x67, + 0x05, 0x22, 0x33, 0x66, + 0x2B, 0x2B, 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + if (variant == 'A') prim->l2_frame.content = L2_PAG_3_T1_A_ARRAY; + if (variant == 'B') prim->l2_frame.content = L2_PAG_3_T1_S_ARRAY; + if (variant == 'C') prim->l2_frame.content = L2_PAG_3_T1_T_ARRAY; + if (variant == 'D') prim->l2_frame.content = L2_PAG_3_T1_D_ARRAY; + if (variant == 'E') prim->l2_frame.content = L2_PAG_3_T2_A_ARRAY; + if (variant == 'F') prim->l2_frame.content = L2_PAG_3_T2_S_ARRAY; + if (variant == 'G') prim->l2_frame.content = L2_PAG_3_T2_T_ARRAY; + if (variant == 'H') prim->l2_frame.content = L2_PAG_3_T2_D_ARRAY; + if (variant == 'I') prim->l2_frame.content = L2_PAG_3_T3_A_ARRAY; + if (variant == 'J') prim->l2_frame.content = L2_PAG_3_T3_S_ARRAY; + if (variant == 'K') prim->l2_frame.content = L2_PAG_3_T3_T_ARRAY; + if (variant == 'L') prim->l2_frame.content = L2_PAG_3_T3_D_ARRAY; + if (variant == 'M') prim->l2_frame.content = L2_PAG_3_T3_N_ARRAY; + if (variant == 'N') prim->l2_frame.content = L2_PAG_3_T4_A_ARRAY; + if (variant == 'O') prim->l2_frame.content = L2_PAG_3_T4_S_ARRAY; + if (variant == 'P') prim->l2_frame.content = L2_PAG_3_T4_T_ARRAY; + if (variant == 'Q') prim->l2_frame.content = L2_PAG_3_T4_D_ARRAY; + if (variant == 'R') prim->l2_frame.content = L2_PAG_3_T4_N_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_34() +{ + const U8 L2_PAG_3_WRONG_ARRAY[23] = { + 0x4D, + 0x06, + 0x24, + 0x50, + 0x04, 0x22, 0x33, 0x66, + 0x04, 0x22, 0x33, 0x65, + 0x04, 0x22, 0x33, 0x67, + 0x02, 0x22, 0x33, 0x65, + 0x2B, 0x2B, 0x2B + }; + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_PAG_3_WRONG_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_36() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_CCCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_imm_ass_hop(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_51() +{ + const U8 L2_IMM_ASS_EXT_REO_ARRAY[23] = { + 0x49, + 0x06, + 0x39, + 0x02, + 0x20, 0xA0, 0x14, + 0x00, 0x00, 0x00, + 0x00, + 0x20, 0xA0, 0x14, + 0x00, 0x00, 0x00, + 0x00, + 0x00, + 0x2b,0x2b,0x2b,0x2b + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_IMM_ASS_EXT_REO_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_52() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_PAG_2_T1_A_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +/* SACCH */ +T_PRIMITIVE_UNION mphc_data_ind_37() +{ + const U8 L2_SYS_INFO_5_ARRAY[23] = { + 0xFF, 0xAA, + 0x03, 0x03, 0x01, + 0x06, + 0x1D, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_SACCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_SYS_INFO_5_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_sacch_error() +{ + const U8 L2_SYS_INFO_5_ARRAY[23] = { + 0xFF, 0xAA, + 0x03, 0x03, 0x01, + 0x06, + 0x1D, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_SACCH; + prim->error_flag = INVALID_BLOCK; + prim->l2_frame.content = L2_SYS_INFO_5_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_38() +{ + const U8 L2_SYS_INFO_5BIS_ARRAY[23] = { + 0xFF, 0xAA, + 0x03, 0x03, 0x01, + 0x06, + 0x05, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_SACCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_SYS_INFO_5BIS_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_39() +{ + const U8 L2_SYS_INFO_6_ARRAY[23] = { + 0xFF, 0xAA, + 0x03, 0x03, 0x01, + 0x06, + 0x1E, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_SACCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_SYS_INFO_6_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_40() +{ + const U8 L2_I_SMS_ARRAY[23] = { + 0xFF, 0xAA, + 0x0F, + 0x02, + 0x19, + 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_SACCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_I_SMS_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +T_PRIMITIVE_UNION mphc_data_ind_41() +{ + const U8 L2_CHANGED_SYS_INFO_6_ARRAY[23] = { + 0xFF, 0xAA, + 0x03, 0x03, 0x01, + 0x06, + 0x1E, + 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x08, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00 + }; + + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_14; + prim->l2_channel = L2_CHANNEL_SACCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame.content = L2_CHANGED_SYS_INFO_6_ARRAY; + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + + +/* UNITDATA BCCH */ +T_PRIMITIVE_UNION mph_unitdata_ind_si1(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_si1_chg(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1_new(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_si2(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn ._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.neigh_cell_desc.raw = neigh_cell_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_2.ncc_permit = NCC_PERMIT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_si3(U16 arfcn, U16 cell_id) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn ._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = cell_id; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_si7(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn ._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_7.si7_rest_oct = si7_rest_oct_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_si4(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn ._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_si4_diff_cs(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn ._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_2(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_si8(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn ._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_8.si8_rest_oct = si8_rest_oct_1(); + return prim; +} + +#if 0 +T_PRIMITIVE_UNION mph_unitdata_ind_1() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_5() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_124; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_6() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_1; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_12() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1_new(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_20() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_637; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_24() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_885; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_25() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_512; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_38() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn = FN_OFFSET_0; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +_PRIMITIVE_UNION mph_unitdata_ind_26() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_27() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_580; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_1.cell_chan_desc.raw = cell_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_1.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_2() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.neigh_cell_desc.raw = neigh_cell_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_2.ncc_permit = NCC_PERMIT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_13() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.neigh_cell_desc.raw = neigh_cell_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_2.ncc_permit = NCC_PERMIT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_14() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_1; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.neigh_cell_desc.raw = neigh_cell_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_2.ncc_permit = NCC_PERMIT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_21() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_637; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.neigh_cell_desc.raw = neigh_cell_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_2.ncc_permit = NCC_PERMIT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_39() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn = FN_OFFSET_0; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.neigh_cell_desc.raw = neigh_cell_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_2.ncc_permit = NCC_PERMIT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_2.rach_ctrl = rach_ctrl_1(); + return prim; +} + + +T_PRIMITIVE_UNION mph_unitdata_ind_3() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + + +T_PRIMITIVE_UNION mph_unitdata_ind_7() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_1; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_8() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_9() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_124; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_22() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_637; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_28() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_25; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_29() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_512; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_30() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_580; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_31() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_885; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_32() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_11; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_33() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_87; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_34() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_513; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_35() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_600; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_36() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_700; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_37() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_810; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_54() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_1; + prim->fn = FN_OFFSET_224; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_55() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn = FN_OFFSET_224; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_56() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_124; + prim->fn = FN_OFFSET_114; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_57() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn = FN_OFF_ARFCN_14; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_58() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_25; + prim->fn = FN_OFF_ARFCN_14; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_59() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_512; + prim->fn = FN_OFF_ARFCN_14; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_60() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_580; + prim->fn = FN_OFF_ARFCN_14; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_61() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_637; + prim->fn = FN_OFF_ARFCN_14; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_62() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_885; + prim->fn = FN_OFF_ARFCN_14; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_ident = CELL_IDENT_1; + prim->sdu.aim.entity.RR->D_SYS_INFO_3.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.ctrl_chan_desc = ctrl_chan_desc_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_opt_bcch = cell_opt_bcch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_3.rach_ctrl = rach_ctrl_1(); + return prim; +} + + + + +T_PRIMITIVE_UNION mph_unitdata_ind_4() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_23() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_637; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_40() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_1; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_41() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_42() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_124; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_43() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_1; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_2(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} + + +T_PRIMITIVE_UNION mph_unitdata_ind_45() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_2(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_47() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_124; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_4.loc_area_ident = loc_area_ident_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.cell_select = cell_select_2(); + prim->sdu.aim.entity.RR->D_SYS_INFO_4.rach_ctrl = rach_ctrl_1(); + return prim; +} + + +T_PRIMITIVE_UNION mph_unitdata_ind_49() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_1; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_8.si8_rest_oct = si8_rest_oct_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_50() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_8.si8_rest_oct = si8_rest_oct_1(); + return prim; +} + +T_PRIMITIVE_UNION mph_unitdata_ind_51() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_124; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_8.si8_rest_oct = si8_rest_oct_1(); + return prim; +} +#endif +/* UNITDATA PCH,CCCH */ +T_PRIMITIVE_UNION mph_unitdata_ind_10() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.tma = TMA_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.dl = DL_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.d_t = D_T_DED; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.page_mode = page_mode_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc = chan_desc_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.pck_chan_desc._skip; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.req_ref = req_ref_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.time_advance = time_advance_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.mob_alloc = mob_alloc_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_11() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_23; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.tma = TMA_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.dl = DL_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.d_t = D_T_DED; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.page_mode = page_mode_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc.chan_type= SDCCH_4_S1; //chan_desc_2(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc.tn=3; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc.tsc=2; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc.hop=HOP_YES; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc.arfcn._skip; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc.maio=18; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc.hsn=20; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.pck_chan_desc._skip; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.req_ref = req_ref_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.time_advance.ta = 0x1B;//time_advance_2(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.mob_alloc = mob_alloc_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_15() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.tma = TMA_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.dl = DL_0; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.d_t = D_T_DED; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.page_mode = page_mode_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.chan_desc = chan_desc_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.pck_chan_desc._skip; + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.req_ref = req_ref_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.time_advance = time_advance_1(); + prim->sdu.aim.entity.RR->D_IMM_ASSIGN.mob_alloc = mob_alloc_1(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_16() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_5.neigh_cell_desc.raw = neigh_cell_desc_2(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_17() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_5BIS.neigh_cell_desc.raw = neigh_cell_desc_2(); + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_18() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_6.cell_ident = CELL_IDENT_2; + prim->sdu.aim.entity.RR->D_SYS_INFO_6.loc_area_ident = loc_area_ident_2(); + prim->sdu.aim.entity.RR->D_SYS_INFO_6.cell_opt_sacch = cell_opt_sacch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_6.ncc_permit = NCC_PERMIT_2; + prim->sdu.aim.entity.RR->D_SYS_INFO_6.si6_rest_oct._skip; + return prim; +} +T_PRIMITIVE_UNION mph_unitdata_ind_19() +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = ARFCN_14; + prim->fn._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_6.cell_ident = CELL_IDENT_3; + prim->sdu.aim.entity.RR->D_SYS_INFO_6.loc_area_ident = loc_area_ident_2(); + prim->sdu.aim.entity.RR->D_SYS_INFO_6.cell_opt_sacch = cell_opt_sacch_1(); + prim->sdu.aim.entity.RR->D_SYS_INFO_6.ncc_permit = NCC_PERMIT_2; + prim->sdu.aim.entity.RR->D_SYS_INFO_6.si6_rest_oct._skip; + return prim; +} +T_PRIMITIVE_UNION mph_error_ind_1() +{ + T_MPH_ERROR_IND prim; + prim->cs = CS_BCCH_READ_ERROR; + prim->arfcn = ARFCN_23; + return prim; +} + +T_PRIMITIVE_UNION mph_error_ind_radio_link_fail() +{ + T_MPH_ERROR_IND prim; + prim->cs = CS_RADIO_LINK_FAIL; + prim->arfcn = ARFCN_14; + return prim; +} + +T_PRIMITIVE_UNION mph_error_ind_2() +{ + T_MPH_ERROR_IND prim; + prim->cs = CS_DOWN_LINK_FAIL; + prim->arfcn = ARFCN_23; + return prim; +} + +T_PRIMITIVE_UNION mph_error_ind_3() +{ + T_MPH_ERROR_IND prim; + prim->cs = CS_BCCH_READ_ERROR; + prim->arfcn = ARFCN_14; + return prim; +} +T_PRIMITIVE_UNION mph_error_ind_4() +{ + T_MPH_ERROR_IND prim; + prim->cs = CS_BCCH_READ_ERROR; + prim->arfcn = ARFCN_637; + return prim; +} + +T_PRIMITIVE_UNION mph_error_ind_5() +{ + T_MPH_ERROR_IND prim; + prim->cs = CS_NC_SYNC_FAILED; + prim->arfcn = ARFCN_14; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_scell_bcch_req() +{ + T_MPHC_STOP_SCELL_BCCH_REQ prim; + prim->param._skip; + return prim; +} +T_PRIMITIVE_UNION mphc_stop_scell_bcch_con() +{ + T_MPHC_STOP_SCELL_BCCH_CON prim; + prim->param._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_classmark_req_1() +{ + T_MPH_CLASSMARK_REQ prim; + prim->classmark.pclass = 4; + prim->classmark.pclass2 = 0; + return prim; +} +T_PRIMITIVE_UNION mph_classmark_req_2() +{ + T_MPH_CLASSMARK_REQ prim; + prim->classmark.pclass2=CLASS_1; + prim->classmark.pclass=CLASS_1; + return prim; +} +T_PRIMITIVE_UNION mph_classmark_req_3() +{ + T_MPH_CLASSMARK_REQ prim; + prim->classmark.pclass = CLASS_4; + prim->classmark.pclass2 = CLASS_2; //class_dual(); + return prim; +} + +T_PRIMITIVE_UNION mph_idle_req_1(CHAR variant) +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_14; + prim->ext_bcch._skip; + if (variant == 'A') prim->comb_ccch = COMB_CCCH_COMB; + if (variant == 'B') prim->comb_ccch = COMB_CCCH_COMB; + if (variant == 'C') prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_2() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_3(CHAR variant) +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_COMB; + if (variant == 'A') prim->tn = TN_0; + if (variant == 'B') prim->tn = TN_4; + prim->dlt = DLT_24; + prim->pg = PG_23; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_2; + prim->bs_pa_mfrms = BS_PA_MFRMS_5; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_4(CHAR variant) +{ + T_MPH_IDLE_REQ prim; + prim->mod._skip; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_24; + prim->pg = PG_11; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_2; + if (variant == 'A') prim->bs_pa_mfrms = BS_PA_MFRMS_0; + if (variant == 'B') prim->bs_pa_mfrms = BS_PA_MFRMS_1; + if (variant == 'C') prim->bs_pa_mfrms = BS_PA_MFRMS_2; + if (variant == 'D') prim->bs_pa_mfrms = BS_PA_MFRMS_3; + if (variant == 'E') prim->bs_pa_mfrms = BS_PA_MFRMS_4; + if (variant == 'F') prim->bs_pa_mfrms = BS_PA_MFRMS_5; + if (variant == 'G') prim->bs_pa_mfrms = BS_PA_MFRMS_6; + if (variant == 'H') prim->bs_pa_mfrms = BS_PA_MFRMS_7; + + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; +#ifdef FF_EGPRS + prim->si2quater_status = SI2QUATER_ABSENT; + prim->si2quater_pos = SI2QUATER_ON_NBCCH; +#endif // FF_EGPRS + if (variant == 'I') { + prim->bs_pa_mfrms = BS_PA_MFRMS_7; +#ifdef FF_EGPRS + prim->si2quater_status = SI2QUATER_CONFIGURE; + prim->si2quater_pos = SI2QUATER_ON_EBCCH; +#endif // FF_EGPRS + prim->gprs_support = MPH_GPRS_PROCS_NOT_USED; + } + if (variant == 'J') { + prim->bs_pa_mfrms = BS_PA_MFRMS_7; +#ifdef FF_EGPRS + prim->si2quater_status = SI2QUATER_CONFIGURE; + prim->si2quater_pos = SI2QUATER_ON_NBCCH; +#endif // FF_EGPRS + prim->gprs_support = MPH_GPRS_PROCS_NOT_USED; + } + if (variant == 'K') { + prim->bs_pa_mfrms = BS_PA_MFRMS_7; +#ifdef FF_EGPRS + prim->si2quater_status = SI2QUATER_CONFIGURE; + prim->si2quater_pos = SI2QUATER_ON_EBCCH; +#endif // FF_EGPRS + prim->gprs_support = MPH_GPRS_PROCS_USED; + } + return prim; +} + +T_PRIMITIVE_UNION mph_idle_req_resel() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_RESELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_24; + prim->pg = PG_11; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_2; + prim->bs_pa_mfrms = BS_PA_MFRMS_0; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_idle_req_cell_sel() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_24; + prim->pg = PG_11; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_2; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} + + +T_PRIMITIVE_UNION mph_idle_req_5(CHAR variant) +{ + T_MPH_IDLE_REQ prim; + prim->mod._skip; + if (variant == 'E') + prim->mod = MODE_CELL_RESELECTION; + else // variant 'A' .. 'D' + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_23; + if (variant == 'E') + prim->ext_bcch = BSIC_16; // just for stressing the entity with a wrong value + else // variant 'A' .. 'D' + prim->ext_bcch = BSIC_1; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + if (variant == 'A') prim->ncc_permitted = NOT_PRESENT_8BIT; + if (variant == 'B') prim->ncc_permitted = NOT_PRESENT_8BIT; + if (variant == 'C') prim->ncc_permitted = NOT_PRESENT_8BIT; + if (variant == 'D') prim->ncc_permitted = NCC_PERMITTED_4; + if (variant == 'E') prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_6() +{ + T_MPH_IDLE_REQ prim; + prim->mod._skip; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_7(CHAR variant) +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_580; + prim->ext_bcch._skip; + if (variant == 'A') prim->comb_ccch = COMB_CCCH_COMB; + if (variant == 'B') prim->comb_ccch = COMB_CCCH_COMB; + if (variant == 'C') prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_8() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_637; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_9() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_637; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_10() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_11() +{ + T_MPH_IDLE_REQ prim; + prim->mod._skip; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_12() +{ + T_MPH_IDLE_REQ prim; + prim->mod._skip; + prim->arfcn = ARFCN_578; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_13() +{ + T_MPH_IDLE_REQ prim; + prim->mod._skip; + prim->arfcn = ARFCN_637; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_14() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_14; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_15() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_RESELECTION; + prim->arfcn = ARFCN_14; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_15g() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_RESELECTION; + prim->arfcn = ARFCN_14; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support = MPH_GPRS_PROCS_USED; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_16() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_14; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_1; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_5; + prim->bs_pa_mfrms = BS_PA_MFRMS_2; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_17() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_RESELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_20() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_RESELECTION; + prim->arfcn = ARFCN_1; + prim->ext_bcch = NORMAL_PGM; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_21() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_RESELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch = NORMAL_PGM; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_22() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch = NORMAL_PGM; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_PRES; + prim->gprs_support._skip; + return prim; +} +T_PRIMITIVE_UNION mph_idle_req_23() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_RESELECTION; + prim->arfcn = ARFCN_14; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_PRES; + prim->gprs_support._skip; + return prim; +} + + +T_PRIMITIVE_UNION mphc_start_ccch_req_1(CHAR variant) +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_8; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_3; + if (variant == 'A') prim->bcch_combined = COMB_CCCH_COMB; + if (variant == 'B') prim->bcch_combined = COMB_CCCH_COMB; + if (variant == 'C') prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_20; + if (variant == 'A') prim->page_block_index = PBI_0; + if (variant == 'B') prim->page_block_index = PBI_0; + if (variant == 'C') prim->page_block_index = PBI_2; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_2() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_8; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_3; + prim->bcch_combined = COMB_CCCH_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_20; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_3(CHAR variant) +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_7; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_2; + prim->bcch_combined = COMB_CCCH_COMB; + if (variant == 'A') prim->ccch_group = CCCH_GROUP_0; + if (variant == 'B') prim->ccch_group = CCCH_GROUP_2; + prim->page_group = PG_23; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_4() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_7; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_2; + prim->bcch_combined = COMB_CCCH_COMB; + prim->ccch_group = CCCH_GROUP_2; + prim->page_group = PG_23; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_EXTENDED; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req(U8 bs_pa_mfrms, U8 bs_ag_blks_res, U8 bcch_combined, U8 ccch_group, U8 page_group, U8 page_block_index, U8 page_mode ) +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = bs_pa_mfrms ; + prim->bs_ag_blks_res = bs_ag_blks_res ; + prim->bcch_combined = bcch_combined ; + prim->ccch_group = ccch_group ; + prim->page_group = page_group ; + prim->page_block_index = page_block_index; + prim->page_mode = page_mode ; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_4_reorg() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_7; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_2; + prim->bcch_combined = COMB_CCCH_COMB; + prim->ccch_group = CCCH_GROUP_2; + prim->page_group = PG_23; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_REORG; + return prim; +} + +T_PRIMITIVE_UNION mphc_start_ccch_req_5() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_2; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_7; + prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_0; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_REORG; + return prim; +} + + +T_PRIMITIVE_UNION mphc_start_ccch_req_6() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_7; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_2; + prim->bcch_combined = COMB_CCCH_COMB; + prim->ccch_group = CCCH_GROUP_2; + prim->page_group = PG_23; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_NORMAL; + return prim; +} + +T_PRIMITIVE_UNION mphc_start_ccch_req_6_reorg() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_7; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_2; + prim->bcch_combined = COMB_CCCH_COMB; + prim->ccch_group = CCCH_GROUP_2; + prim->page_group = PG_23; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_REORG; + return prim; +} + +T_PRIMITIVE_UNION mphc_start_ccch_req_7(CHAR variant) +{ + T_MPHC_START_CCCH_REQ prim; + if (variant == 'A') prim->bs_pa_mfrms = BS_PA_MFRMS_2; + if (variant == 'B') prim->bs_pa_mfrms = BS_PA_MFRMS_3; + if (variant == 'C') prim->bs_pa_mfrms = BS_PA_MFRMS_4; + if (variant == 'D') prim->bs_pa_mfrms = BS_PA_MFRMS_5; + if (variant == 'E') prim->bs_pa_mfrms = BS_PA_MFRMS_6; + if (variant == 'F') prim->bs_pa_mfrms = BS_PA_MFRMS_7; + if (variant == 'G') prim->bs_pa_mfrms = BS_PA_MFRMS_8; + if (variant == 'H') prim->bs_pa_mfrms = BS_PA_MFRMS_9; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_2; + prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_11; + prim->page_block_index = PBI_4; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_8() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_8; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_3; + prim->bcch_combined = COMB_CCCH_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_20; + prim->page_block_index = PBI_0; + prim->page_mode = PGM_NORMAL; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_9() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_3; + prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_20; + prim->page_block_index = PBI_2; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_10() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_8; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_3; + prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_20; + prim->page_block_index = PBI_2; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_11(CHAR variant) +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_8; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_3; + if (variant == 'A') prim->bcch_combined = COMB_CCCH_COMB; + if (variant == 'B') prim->bcch_combined = COMB_CCCH_COMB; + if (variant == 'C') prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_20; + if (variant == 'A') prim->page_block_index = PBI_0; + if (variant == 'B') prim->page_block_index = PBI_0; + if (variant == 'C') prim->page_block_index = PBI_2; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_12() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_5; + prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_1; + prim->page_block_index = PBI_1; + prim->page_mode = PGM_REORG; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_13() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms = BS_PA_MFRMS_4; + prim->bs_ag_blks_res = BS_AG_BLKS_RES_5; + prim->bcch_combined = COMB_CCCH_NOT_COMB; + prim->ccch_group = CCCH_GROUP_0; + prim->page_group = PG_1; + prim->page_block_index = PBI_1; + prim->page_mode = PGM_NORMAL; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_14() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms._skip; + prim->bs_ag_blks_res._skip; + prim->bcch_combined._skip; + prim->ccch_group._skip; + prim->page_group._skip; + prim->page_block_index._skip; + prim->page_mode._skip; + return prim; +} +T_PRIMITIVE_UNION mphc_start_ccch_req_normal() +{ + T_MPHC_START_CCCH_REQ prim; + prim->bs_pa_mfrms._show; /* = BS_PA_MFRMS_9;*/ + prim->bs_ag_blks_res._show; /* = BS_AG_BLKS_RES_2;*/ + prim->bcch_combined._show; /* = COMB_CCCH_NOT_COMB;*/ + prim->ccch_group._show; /* = CCCH_GROUP_0;*/ + prim->page_group._show; /* = PG_11;*/ + prim->page_block_index._show; /* = PBI_4;*/ + prim->page_mode = PGM_NORMAL; + return prim; +} +T_PRIMITIVE_UNION mph_identity_req_1() +{ + const U8 IMSI[15] = { + 0,0,1,0,1,3,8,2,3,3,0,5,9,4,5 + }; + + T_MPH_IDENTITY_REQ prim; + prim->mid.len_imsi = 15; + prim->mid.imsi = IMSI; + prim->mid.v_tmsi = 1; + prim->mid.tmsi = 0x05223366L; + prim->mid.v_ptmsi._skip; + prim->mid.ptmsi._skip; + return prim; +} +T_PRIMITIVE_UNION mph_identity_req_2() +{ + const U8 IMSI2[15] = { + 0,0,1,0,1,3,8,2,3,3,0xF,0xF,0xF,0xF,0xF + }; + + T_MPH_IDENTITY_REQ prim; + prim->mid.len_imsi = 10; + prim->mid.imsi = IMSI2; + prim->mid.v_tmsi = 1; + prim->mid.tmsi = 142; + prim->mid.v_ptmsi ._skip; + prim->mid.ptmsi ._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_sync_req(U8 cs) +{ + T_MPH_SYNC_REQ prim; + prim->cs = cs; + return prim; +} + +T_PRIMITIVE_UNION em_l1_event_req_1() +{ + T_EM_L1_EVENT_REQ prim; + prim->bitmask_l1_h = Bitm_H; + prim->bitmask_l1_l = Bitm_L; + return prim; +} +T_PRIMITIVE_UNION em_l1_event_req_2() +{ + T_EM_L1_EVENT_REQ prim; + prim->bitmask_l1_h = 0xFFFFFFFF; + prim->bitmask_l1_l = 0xFFFFFFFF; + return prim; +} + +T_PRIMITIVE_UNION em_data_ind_1() +{ + T_EM_DATA_IND prim; + prim->entity = ENTITY; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_network_sync_req_1() +{ + T_MPHC_STOP_NETWORK_SYNC_REQ prim; + prim->param._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_network_sync_con_1() +{ + T_MPHC_STOP_NETWORK_SYNC_CON prim; + prim->param._skip; + return prim; +} + + +T_PRIMITIVE_UNION mphc_scell_nbcch_req_full() +{ + T_MPHC_SCELL_NBCCH_REQ prim; + prim->schedule_array_size = SCHED_SIZE_1; + prim->schedule_array[0].modulus = 1; + prim->schedule_array[0].relative_position = 0; + prim->schedule_array[1].modulus._skip; + prim->schedule_array[1].relative_position._skip; + prim->schedule_array[2].modulus._skip; + prim->schedule_array[2].relative_position._skip; + prim->schedule_array[3].modulus._skip; + prim->schedule_array[3].relative_position._skip; + prim->schedule_array[4].modulus._skip; + prim->schedule_array[4].relative_position._skip; + prim->schedule_array[5].modulus._skip; + prim->schedule_array[5].relative_position._skip; + prim->schedule_array[6].modulus._skip; + prim->schedule_array[6].relative_position._skip; + prim->schedule_array[7].modulus._skip; + prim->schedule_array[7].relative_position._skip; + prim->schedule_array[8].modulus._skip; + prim->schedule_array[8].relative_position._skip; + prim->schedule_array[9].modulus._skip; + prim->schedule_array[9].relative_position._skip; + return prim; +} +T_PRIMITIVE_UNION mphc_scell_nbcch_req_periodic() +{ + T_MPHC_SCELL_NBCCH_REQ prim; + prim->schedule_array_size = PERIODIC_SCELL_BCCH_ARRAY_SIZE; + prim->schedule_array[0].modulus = 128; + prim->schedule_array[0].relative_position = 0; + prim->schedule_array[1].modulus = 128; + prim->schedule_array[1].relative_position = 1; + prim->schedule_array[2].modulus = 128; + prim->schedule_array[2].relative_position = 2; + prim->schedule_array[3].modulus = 128; + prim->schedule_array[3].relative_position = 3; + prim->schedule_array[4].modulus = 128; + prim->schedule_array[4].relative_position = 4; + prim->schedule_array[5].modulus = 128; + prim->schedule_array[5].relative_position = 5; + prim->schedule_array[6].modulus = 128; + prim->schedule_array[6].relative_position = 6; + prim->schedule_array[7].modulus = 128; + prim->schedule_array[7].relative_position = 7; + prim->schedule_array[8].modulus ._skip; + prim->schedule_array[8].relative_position ._skip; + prim->schedule_array[9].modulus ._skip; + prim->schedule_array[9].relative_position ._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_ccch_req() +{ + T_MPHC_STOP_CCCH_REQ prim; + prim->param._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_ncell_sync_req_1() +{ + T_MPHC_STOP_NCELL_SYNC_REQ prim; + prim->radio_freq_array_size = 12; + prim->radio_freq_array._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_ncell_bcch_req_1 () +{ + T_MPHC_STOP_NCELL_BCCH_REQ prim; + prim->radio_freq_array_size = 6; + + int i=0; + prim->radio_freq_array[i] = 0; + i++; + + for(;i<MAX_NCELL;i++) { + prim->radio_freq_array[i] = 0; + } + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_rxlev_periodic_req() +{ + T_MPHC_STOP_RXLEV_PERIODIC_REQ prim; + prim->param._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_random_access_req_1() +{ + const U8 BURST_DELTA[8] = { + 5,7,0,0,0,0,0,0 + }; +#if defined FF_EGPRS + const U16 BURST_RACH[8] = { + CHANNEL_REQUEST_1,CHANNEL_REQUEST_2,0,0,0,0,0,0 + }; + const U8 BURST_TS[8] = { + 0xA0,0xA3,0,0,0,0,0,0 + }; +#else + const U8 BURST_RACH[8] = { + CHANNEL_REQUEST_GO_1,CHANNEL_REQUEST_GO_1,0,0,0,0,0,0 + }; +#endif + T_MPH_RANDOM_ACCESS_REQ prim; + prim->send_mode.c ._skip; + prim->send_mode.no = RAND_BURSTS_2; + prim->send_mode.delta = BURST_DELTA; + prim->send_mode.rach = BURST_RACH; +#if defined FF_EGPRS + prim->send_mode.train_seq = BURST_TS; +#endif + + return prim; +} +T_PRIMITIVE_UNION mph_random_access_req_2() +{ + T_MPH_RANDOM_ACCESS_REQ prim; + prim->send_mode.c._skip; + prim->send_mode.no._skip; + prim->send_mode.delta._skip; + prim->send_mode.rach._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_ra_req_1() +{ + T_MPHC_RA_REQ prim; + prim->txpwr = POWER_12; + prim->rand = RAND_BURST_1; +#if defined FF_EGPRS + prim->channel_request = CHANNEL_REQUEST_1; +#else + prim->channel_request = CHANNEL_REQUEST_GO_1; +#endif + prim->powerclass_gsm = POWER_CLASS_5; + prim->powerclass_dcs._skip; + return prim; +} +T_PRIMITIVE_UNION mphc_ra_req_2() +{ + T_MPHC_RA_REQ prim; + prim->txpwr = POWER_12; + prim->rand = RAND_BURST_2; +#if defined FF_EGPRS + prim->channel_request = CHANNEL_REQUEST_2; +#else + prim->channel_request = CHANNEL_REQUEST_GO_1; +#endif + prim->powerclass_gsm = POWER_CLASS_5; + prim->powerclass_dcs._skip; + return prim; +} +T_PRIMITIVE_UNION mphc_ra_req_3() +{ + T_MPHC_RA_REQ prim; + prim->txpwr = POWER_12; + prim->rand = RAND_BURST_1; +#if defined FF_EGPRS + prim->channel_request = CHANNEL_REQUEST_1; +#else + prim->channel_request = CHANNEL_REQUEST_GO_1; +#endif + prim->powerclass_gsm._skip; + prim->powerclass_dcs._skip; + return prim; +} +T_PRIMITIVE_UNION mphc_ra_req_4() +{ + T_MPHC_RA_REQ prim; + prim->txpwr = POWER_12; + prim->rand = RAND_BURST_2; +#if defined FF_EGPRS + prim->channel_request = CHANNEL_REQUEST_2; +#else + prim->channel_request = CHANNEL_REQUEST_GO_1; +#endif + prim->powerclass_gsm._skip; + prim->powerclass_dcs._skip; + return prim; +} +T_PRIMITIVE_UNION mphc_ra_req_5() +{ + T_MPHC_RA_REQ prim; + prim->txpwr = POWER_12; + prim->rand = RAND_BURST_1; +#if defined FF_EGPRS + prim->channel_request = CHANNEL_REQUEST_1; +#else + prim->channel_request = CHANNEL_REQUEST_GO_1; +#endif + prim->powerclass_gsm = POWER_CLASS_4; + prim->powerclass_dcs = POW_CLASS_2; + return prim; +} + +T_PRIMITIVE_UNION mphc_ra_req_6() +{ + T_MPHC_RA_REQ prim; + prim->txpwr = POWER_12; + prim->rand = RAND_BURST_2; +#if defined FF_EGPRS + prim->channel_request = CHANNEL_REQUEST_2; +#else + prim->channel_request = CHANNEL_REQUEST_GO_1; +#endif + prim->powerclass_gsm = POWER_CLASS_4; + prim->powerclass_dcs = POW_CLASS_2; + return prim; +} + +T_PRIMITIVE_UNION mphc_ra_con_1() +{ + T_MPHC_RA_CON prim; + prim->fn = FN_BURST_1; + prim->channel_request = CHANNEL_REQUEST_1; + return prim; +} + +T_PRIMITIVE_UNION mph_random_access_cnf_1() +{ + T_MPH_RANDOM_ACCESS_CNF prim; + prim->frame_no.t1 = 14; + prim->frame_no.t2 = 22; + prim->frame_no.t3 = 30; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_ra_req_1() +{ + T_MPHC_STOP_RA_REQ prim; + prim->param._skip; + return prim; +} + + + +T_PRIMITIVE_UNION mph_ext_meas_req_1() +{ + const U16 ARFCN_EXT_MEAS_000_elements[] = { + CONST_20, + CONST_0, + CONST_974, + CONST_10, + CONST_1, + CONST_1023, + CONST_124, + CONST_1022, + CONST_123, + CONST_975 + }; + T_ARRAY<U16> ARFCN_EXT_MEAS_000(ARFCN_EXT_MEAS_000_elements, SKIP_TO_END); + + T_MPH_EXT_MEAS_REQ prim; + prim->pch_interrupt = NO_PCH_INTERRUPT; + prim->freq_bands = BAND_E_GSM; + prim->num_of_chan = CHANNELS_4; + prim->arfcn = ARFCN_EXT_MEAS_000; + return prim; +} + + + +T_PRIMITIVE_UNION mph_ext_meas_cnf_1() +{ + const U16 ARFCN_EXT_MEAS_SORT_000_elements[] = { + (CONST_1023|0x1000), + (CONST_1022|0x1000), + (CONST_0|0x1000), + (CONST_974|0x1000), + (CONST_124|0x1000), + (CONST_123|0x1000), + (CONST_20|0x1000), + (CONST_10|0x1000), + (CONST_1|0x1000), + (CONST_975|0x1000) + }; + T_ARRAY<U16> ARFCN_EXT_MEAS_SORT_000(ARFCN_EXT_MEAS_SORT_000_elements, SKIP_TO_END); + + const U8 RXLEV_EXT_MEAS_000_elements[] = { + 80,70,60,50,40,30,20,10,0,-10 + }; + T_ARRAY<U8> RXLEV_EXT_MEAS_000(RXLEV_EXT_MEAS_000_elements, SKIP_TO_END); + + T_MPH_EXT_MEAS_CNF prim; + prim->num_of_chan = CHANNELS_10; + prim->arfcn = ARFCN_EXT_MEAS_SORT_000; + prim->rx_lev = RXLEV_EXT_MEAS_000; + return prim; +} + + + + + + +T_PRIMITIVE_UNION mph_sync_ind_1() +{ + T_MPH_SYNC_IND prim; + prim->cs = CS_STOP_PLMN_SEARCH; + prim->arfcn._skip; + return prim; +} + + + +T_PRIMITIVE_UNION mph_paging_ind_1(CHAR variant) +{ + T_MPH_PAGING_IND prim; + if (variant == 'A') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'B') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'C') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'D') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'E') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'F') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'G') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'H') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'I') prim->identity_type = ID_TYPE_IMSI; + + if (variant == 'A') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'B') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'C') prim->channel_needed = CN_TCH_F; + if (variant == 'D') prim->channel_needed = CN_TCH_F; + if (variant == 'E') prim->channel_needed = CN_SDCCH; + if (variant == 'F') prim->channel_needed = CN_SDCCH; + if (variant == 'G') prim->channel_needed = CN_TCH; + if (variant == 'H') prim->channel_needed = CN_TCH; +#if defined GPRS + if (variant == 'I') prim->channel_needed = CN_PACKET; +#else + if (variant == 'I') prim->channel_needed = CN_ANY_CHAN; +#endif + return prim; +} + + + + +T_PRIMITIVE_UNION mph_paging_ind_2(CHAR variant) +{ + T_MPH_PAGING_IND prim; + if (variant == 'A') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'B') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'C') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'D') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'E') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'F') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'A') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'B') prim->channel_needed = CN_TCH_F; + if (variant == 'C') prim->channel_needed = CN_SDCCH; + if (variant == 'D') prim->channel_needed = CN_TCH; + if (variant == 'E') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'F') prim->channel_needed = CN_TCH_F; + return prim; +} + + +T_PRIMITIVE_UNION mph_paging_ind_3(CHAR variant) +{ + T_MPH_PAGING_IND prim; + prim->identity_type = ID_TYPE_TMSI; + if (variant == 'A') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'B') prim->channel_needed = CN_SDCCH; + if (variant == 'C') prim->channel_needed = CN_TCH_F; + if (variant == 'D') prim->channel_needed = CN_TCH; + if (variant == 'E') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'F') prim->channel_needed = CN_SDCCH; + if (variant == 'G') prim->channel_needed = CN_TCH_F; + if (variant == 'H') prim->channel_needed = CN_TCH; + return prim; +} + + +T_PRIMITIVE_UNION mph_paging_ind_4(CHAR variant) +{ + T_MPH_PAGING_IND prim; + if (variant == 'A') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'B') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'C') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'D') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'E') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'F') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'G') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'H') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'I') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'J') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'A') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'B') prim->channel_needed = CN_SDCCH; + if (variant == 'C') prim->channel_needed = CN_TCH_F; + if (variant == 'D') prim->channel_needed = CN_TCH; + if (variant == 'E') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'F') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'G') prim->channel_needed = CN_SDCCH; + if (variant == 'H') prim->channel_needed = CN_TCH_F; + if (variant == 'I') prim->channel_needed = CN_TCH; + if (variant == 'J') prim->channel_needed = CN_ANY_CHAN; + return prim; +} + + +T_PRIMITIVE_UNION mph_paging_ind_5(CHAR variant) +{ + T_MPH_PAGING_IND prim; + if (variant == 'A') prim->identity_type = ID_TYPE_IMSI; + if (variant == 'B') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'C') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'D') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'E') prim->identity_type = ID_TYPE_TMSI; + if (variant == 'A') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'B') prim->channel_needed = CN_SDCCH; + if (variant == 'C') prim->channel_needed = CN_TCH_F; + if (variant == 'D') prim->channel_needed = CN_TCH; + if (variant == 'E') prim->channel_needed = CN_ANY_CHAN; + return prim; +} + + +T_PRIMITIVE_UNION mph_paging_ind_6(CHAR variant) +{ + T_MPH_PAGING_IND prim; + prim->identity_type = ID_TYPE_TMSI; + if (variant == 'A') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'B') prim->channel_needed = CN_SDCCH; + if (variant == 'C') prim->channel_needed = CN_TCH_F; + if (variant == 'D') prim->channel_needed = CN_TCH; + if (variant == 'E') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'F') prim->channel_needed = CN_SDCCH; + if (variant == 'G') prim->channel_needed = CN_TCH_F; + if (variant == 'H') prim->channel_needed = CN_TCH; + if (variant == 'I') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'J') prim->channel_needed = CN_SDCCH; + if (variant == 'K') prim->channel_needed = CN_TCH_F; + if (variant == 'L') prim->channel_needed = CN_TCH; + if (variant == 'M') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'N') prim->channel_needed = CN_ANY_CHAN; + if (variant == 'O') prim->channel_needed = CN_SDCCH; + if (variant == 'P') prim->channel_needed = CN_TCH_F; + if (variant == 'Q') prim->channel_needed = CN_TCH; + if (variant == 'R') prim->channel_needed = CN_ANY_CHAN; + return prim; +} + +T_PRIMITIVE_UNION mph_paging_ind_7() +{ + T_MPH_PAGING_IND prim; + prim->identity_type = ID_TMSI; + prim->channel_needed = CN_ANY_CHAN; + return prim; +} + +T_PRIMITIVE_UNION mph_emo_req_1() +{ + T_MPH_EMO_REQ prim; + prim->ba_id = CONST_129; + prim->arfcn = A_ARFCN_EMO_000; + return prim; +} +T_PRIMITIVE_UNION mph_emo_req_2() +{ + T_MPH_EMO_REQ prim; + prim->ba_id = CONST_130; + prim->arfcn = A_ARFCN_EMO_000; + return prim; +} + + +T_PRIMITIVE_UNION mph_emo_meas_ind_1() +{ + T_MPH_EMO_MEAS_IND prim; + prim->ba_id = CONST_129; + prim->dtx = CONST_1; + prim->meas_results = s_emo_meas_res_000(); + return prim; +} + + + +T_PRIMITIVE_UNION mph_emo_meas_ind_2() +{ + T_MPH_EMO_MEAS_IND prim; + prim->ba_id = CONST_130; + prim->dtx = CONST_1; + prim->meas_results = s_emo_meas_res_000(); + return prim; +} + + +T_PRIMITIVE_UNION mphc_stop_rxlev_req(void) +{ + T_MPHC_STOP_RXLEV_REQ prim; + prim->param._skip; + return prim; +} + +T_PRIMITIVE_UNION mphc_stop_rxlev_con(void) +{ + T_MPHC_STOP_RXLEV_CON prim; + prim->param._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_deactivate_req(void) +{ + T_MPH_DEACTIVATE_REQ prim; + return prim; +} + +T_mid ms_id_imsi_ptmsi() +{ + const U8 IMSI[15] = { + 0,0,1,0,1,3,8,2,3,3,0,5,9,4,5 + }; + #define TMSI 0x05223366L + T_mid pstruct; + pstruct->len_imsi = 15; + pstruct->imsi = IMSI; + pstruct->v_tmsi = 1; + pstruct->tmsi = TMSI; + pstruct->v_ptmsi = 1; + pstruct->ptmsi = 143; + pstruct->v_ptmsi2 = 1; + pstruct->ptmsi2 = 144; + return pstruct; +} + +T_PRIMITIVE_UNION mph_identity_req_2g() +{ + T_MPH_IDENTITY_REQ prim; + prim->mid = ms_id_imsi_ptmsi(); + return prim; +} + +T_PRIMITIVE_UNION mph_idle_req_1g() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CELL_SELECTION; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail._skip; + prim->gprs_support = MPH_GPRS_PROCS_USED; + return prim; +} +const U8 L2_PAG_1_PT1_A1_ARRAY[23] = { + 0x19, + 0x06, + 0x21, + 0x00, + 0x02, + 0xF4, 143, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B +}; + +T_l2_frame l2_pag_1_pt1_a1() +{ + T_l2_frame pstruct; + pstruct->content = L2_PAG_1_PT1_A1_ARRAY; + return pstruct; +} +T_PRIMITIVE_UNION mphc_data_ind_8g() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_pag_1_pt1_a1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mph_paging_ind_1g() +{ + T_MPH_PAGING_IND prim; + prim->identity_type = ID_PTMSI; + prim->channel_needed = CN_PACKET; + return prim; +} + +const U8 L2_PAG_1_EMPTY_ARRAY[23] = { + 0x11, + 0x06, + 0x21, + 0x00, + 0x00, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B +}; + +T_l2_frame l2_pag_1_empty() +{ + T_l2_frame pstruct; + pstruct->content = L2_PAG_1_EMPTY_ARRAY; + return pstruct; +} + +T_PRIMITIVE_UNION mphc_data_ind_9g() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_pag_1_empty(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +const U8 L2_PAG_1_PT2_A1_ARRAY[23] = { + 0x19, + 0x06, + 0x21, + 0x00, + 0x02, + 0xF4, 144, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B +}; + +T_l2_frame l2_pag_1_pt2_a1() +{ + T_l2_frame pstruct; + pstruct->content = L2_PAG_1_PT2_A1_ARRAY; + return pstruct; +} + +T_PRIMITIVE_UNION mphc_data_ind_10g() +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = L2_CHANNEL_PCH; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_pag_1_pt2_a1(); + prim->tc = TC_0; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} + +T_PRIMITIVE_UNION mph_idle_req_4g() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_CONFIG_PL; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only = NORMAL_PGM; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support = MPH_GPRS_PROCS_USED; + return prim; +} +T_PRIMITIVE_UNION mph_mon_ctrl_req(U8 action) +{ + T_MPH_MON_CTRL_REQ prim; + prim->action = action; + prim->si_to_read._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_idle_req_2g() +{ + T_MPH_IDLE_REQ prim; + prim->mod = MODE_PACKET_TRANSFER; + prim->arfcn = ARFCN_23; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail._skip; + prim->gprs_support = MPH_GPRS_PROCS_USED; + return prim; +} + +#ifdef FF_EGPRS +T_PRIMITIVE_UNION mph_unitdata_ind_si2q(U16 arfcn) +{ + T_MPH_UNITDATA_IND prim; + prim->arfcn = arfcn; + prim->fn ._skip; + prim->sdu.aim.ti = TI_0; + prim->sdu.aim.entity.RR->D_SYS_INFO_2QUATER.msg_type._show; + prim->sdu.aim.entity.RR->D_SYS_INFO_2QUATER.si_2qua_octets._show; + return prim; +} + +T_PRIMITIVE_UNION mphc_data_ind_si2quater(int ch_type) +{ + T_MPHC_DATA_IND prim; + prim->radio_freq = ARFCN_23; + prim->l2_channel = ch_type; + prim->error_flag = VALID_BLOCK; + prim->l2_frame = l2_sys_info_2q(); + prim->tc = TC_1; + prim->ccch_lev._skip; + prim->fn = FN_OFFSET_0; + return prim; +} +#endif // FF_EGPRS + +T_PRIMITIVE_UNION mph_mon_ctrl_req_1(U8 action, U8 si_read) +{ + T_MPH_MON_CTRL_REQ prim; + prim->action = action; + prim->si_to_read = si_read; + return prim; +} + +T_PRIMITIVE_UNION mphc_scell_ebcch_req_si2q() +{ + T_MPHC_SCELL_EBCCH_REQ prim; + prim->schedule_array_size = 1; + prim->schedule_array._show; + return prim; +} + +T_PRIMITIVE_UNION mphc_scell_nbcch_req_1() +{ + T_MPHC_SCELL_NBCCH_REQ prim; + prim->schedule_array_size._show; + prim->schedule_array._show; + return prim; +} + +#ifdef FF_EGPRS +T_PRIMITIVE_UNION mph_enhpara_update_req_1 (char variant) +{ + T_MPH_ENHPARA_UPDATE_REQ prim; + int i = MAX_NEIGHBOURCELLS; + + switch(variant) { + case 'A': + { + prim->rep_type = REP_TYPE_ENH; + prim->enh_para.num_valid_cells = 3; + prim->enh_para.enh_cell_list._skip ; + prim->enh_para.enh_rep_data._skip ; + prim->enh_para.inv_bsic_enabled = TRUE; + prim->enh_para.multiband_rep = 2; + prim->enh_para.ncc_permitted = NCC_PERMITTED_4; + prim->enh_para.rep_rate = NORMAL_REP_RATE; + prim->enh_para.scale_order = SCALE_0dB; + prim->enh_para.servingband_rep = 2; + } + break; + case 'B': + { + prim->rep_type = REP_TYPE_ENH; + prim->enh_para.num_valid_cells = 8; + /*GSM NC List Idle*/ + + while ( i) + { + prim->enh_para.enh_cell_list[i-1].arfcn = 0; + prim->enh_para.enh_cell_list[i-1].bsic = 0; + prim->enh_para.enh_cell_list[i-1].rep_priority = REP_PRIOR_HIGH; + i--; + } + + prim->enh_para.enh_cell_list[0].arfcn = 1; + prim->enh_para.enh_cell_list[0].bsic = 16; + + prim->enh_para.enh_cell_list[1].arfcn = 15; + prim->enh_para.enh_cell_list[1].bsic = 17; + + + prim->enh_para.enh_cell_list[2].arfcn = 30; + prim->enh_para.enh_cell_list[2].bsic = 18; + + + prim->enh_para.enh_cell_list[3].arfcn = 46; + prim->enh_para.enh_cell_list[3].bsic = 19; + + + prim->enh_para.enh_cell_list[4].arfcn = 59; + prim->enh_para.enh_cell_list[4].bsic = 20; + + + prim->enh_para.enh_cell_list[5].arfcn = 73; + prim->enh_para.enh_cell_list[5].bsic = 21; + + + prim->enh_para.enh_cell_list[6].arfcn = 90; + prim->enh_para.enh_cell_list[6].bsic = 22; + + + prim->enh_para.enh_cell_list[7].arfcn = 108; + prim->enh_para.enh_cell_list[7].bsic = 24; + + + i=5; + while (i) + { + prim->enh_para.enh_rep_data[i-1].rep_threshold = REP_THRESHOLD_0; + prim->enh_para.enh_rep_data[i-1].rep_offset = REP_OFFSET_0; + i--; + } + prim->enh_para.inv_bsic_enabled = TRUE; + prim->enh_para.multiband_rep = 2; + prim->enh_para.ncc_permitted = NCC_PERMITTED_4; + prim->enh_para.rep_rate = NORMAL_REP_RATE; + prim->enh_para.scale_order = SCALE_AUTO; + prim->enh_para.servingband_rep = 2; + } + break; + case 'C': + prim->rep_type = REP_TYPE_NORM; + prim->enh_para._skip; + break; + case 'D': + case 'E': + { + prim->rep_type = REP_TYPE_ENH; + prim->enh_para.num_valid_cells = 16; + /*GSM NC List Idle*/ + + if (variant == 'D') + { + while ( i) + { + prim->enh_para.enh_cell_list[i-1].arfcn = 0; + prim->enh_para.enh_cell_list[i-1].bsic = 0; + prim->enh_para.enh_cell_list[i-1].rep_priority = REP_PRIOR_HIGH; + i--; + } + prim->enh_para.rep_rate = NORMAL_REP_RATE; + } + else + { + while ( i) + { + prim->enh_para.enh_cell_list[i-1].arfcn = 0; + prim->enh_para.enh_cell_list[i-1].bsic = 0; + if ( i%2 == 0) + prim->enh_para.enh_cell_list[i-1].rep_priority = REP_PRIOR_HIGH; + else + prim->enh_para.enh_cell_list[i-1].rep_priority = REP_PRIOR_NORM; + i--; + } + prim->enh_para.rep_rate = REDUCED_REP_RATE; + } + + + prim->enh_para.enh_cell_list[0].arfcn = 30; + prim->enh_para.enh_cell_list[0].bsic = 18; + + prim->enh_para.enh_cell_list[1].arfcn = 46; + prim->enh_para.enh_cell_list[1].bsic = 19; + + + prim->enh_para.enh_cell_list[2].arfcn = 59; + prim->enh_para.enh_cell_list[2].bsic = 20; + + + prim->enh_para.enh_cell_list[3].arfcn = 73; + prim->enh_para.enh_cell_list[3].bsic = 21; + + + prim->enh_para.enh_cell_list[4].arfcn = 90; + prim->enh_para.enh_cell_list[4].bsic = 22; + + + prim->enh_para.enh_cell_list[5].arfcn = 108; + prim->enh_para.enh_cell_list[5].bsic = 24; + + + prim->enh_para.enh_cell_list[6].arfcn = 512; + prim->enh_para.enh_cell_list[6].bsic = 16; + + + prim->enh_para.enh_cell_list[7].arfcn = 513; + prim->enh_para.enh_cell_list[7].bsic = 17; + + prim->enh_para.enh_cell_list[8].arfcn = 516; + prim->enh_para.enh_cell_list[8].bsic = 25; + + prim->enh_para.enh_cell_list[9].arfcn = 525; + prim->enh_para.enh_cell_list[9].bsic = 26; + + prim->enh_para.enh_cell_list[10].arfcn = 578; + prim->enh_para.enh_cell_list[10].bsic = 27; + + prim->enh_para.enh_cell_list[11].arfcn = 580; + prim->enh_para.enh_cell_list[11].bsic = 28; + + prim->enh_para.enh_cell_list[12].arfcn = 581; + prim->enh_para.enh_cell_list[12].bsic = 29; + + prim->enh_para.enh_cell_list[13].arfcn = 582; + prim->enh_para.enh_cell_list[13].bsic = 30; + + prim->enh_para.enh_cell_list[14].arfcn = 583; + prim->enh_para.enh_cell_list[14].bsic = 31; + + prim->enh_para.enh_cell_list[15].arfcn = 584; + prim->enh_para.enh_cell_list[15].bsic = 48; + + i=5; + while (i) + { + prim->enh_para.enh_rep_data[i-1].rep_threshold = REP_THRESHOLD_0; + prim->enh_para.enh_rep_data[i-1].rep_offset = REP_OFFSET_0; + i--; + } + prim->enh_para.inv_bsic_enabled = TRUE; + prim->enh_para.multiband_rep = 2; + prim->enh_para.ncc_permitted = NCC_PERMITTED_4; + prim->enh_para.scale_order = SCALE_AUTO; + prim->enh_para.servingband_rep = 2; + } + break; + default: + break; + } + return prim; +} + +T_PRIMITIVE_UNION mph_idle_req_15_si2q(int mode) +{ + T_MPH_IDLE_REQ prim; + prim->mod = mode; + prim->arfcn = ARFCN_14; + prim->ext_bcch._skip; + prim->comb_ccch = COMB_CCCH_NOT_COMB; + prim->tn = TN_0; + prim->dlt = DLT_10; + prim->pg = PG_20; + prim->bs_ag_blocks_res = BS_AG_BLKS_RES_3; + prim->bs_pa_mfrms = BS_PA_MFRMS_6; + prim->power = POWER_12; + prim->ncc_permitted = NOT_PRESENT_8BIT; + prim->reorg_only._skip; + prim->eotd_avail = EOTD_NOT_PRES; + prim->gprs_support._skip; + prim->si2quater_status = SI2QUATER_CONFIGURE; + prim->si2quater_pos = SI2QUATER_ON_EBCCH; + + return prim; +} +#endif // FF_EGPRS + +T_PRIMITIVE_UNION mphc_new_scell_req_20() +{ + T_MPHC_NEW_SCELL_REQ prim; + prim->radio_freq = ARFCN_14; + prim->fn_offset = FN_OFFSET_0; + prim->time_alignment = TIME_ALIGNMT_0; + prim->tsc = BSIC_1; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_variant(CHAR variant) +{ + T_MPH_POWER_CNF prim; + int no_of_channels = CHANNELS_0, no_of_white_channels = CHANNELS_0; + + const U16 ARFCN_23_14_124_1_WITH_STD_elements[] = { + ARFCN_23_STD_EGSM, ARFCN_150_STD_DUAL_US, ARFCN_14_STD_EGSM, ARFCN_140_STD_DUAL_US, + ARFCN_124_STD_EGSM, ARFCN_250_STD_DUAL_US, ARFCN_1_STD_EGSM, ARFCN_130_STD_DUAL_US + }; + T_ARRAY<U16> ARFCN_23_14_124_1_WITH_STD(ARFCN_23_14_124_1_WITH_STD_elements, SKIP_TO_END); + + const U16 ARFCN_130_STD_DUAL_US_elements[] = { ARFCN_130_STD_DUAL_US }; + + T_ARRAY<U16> ARFCN_130_WITH_STD(ARFCN_130_STD_DUAL_US_elements, SKIP_TO_END); + + switch(variant) + { + case 'A' : + no_of_channels = 110; + no_of_white_channels = 1; + prim->arfcn = ARFCN_130_WITH_STD; + break; + case 'B' : + prim->inactive_carrier_list.list[0].channels = LIST_1_14_23_124_euro; + prim->inactive_carrier_list.list[1].channels = LIST_130_140_150_250_155_amr; + prim->arfcn._skip; + break; + case 'C': + no_of_channels = CHANNELS_8; + prim->inactive_carrier_list.list[0].channels = LIST_no_carriers; + prim->inactive_carrier_list.list[1].channels = LIST_155_amr; + prim->arfcn = ARFCN_23_14_124_1_WITH_STD; + break; + case 'D': + prim->inactive_carrier_list.list[0].channels._show; + prim->inactive_carrier_list.list[1].channels = LIST_no_carriers; + prim->arfcn._skip; + break; + default : + prim->inactive_carrier_list.list[0].channels._skip; + prim->inactive_carrier_list.list[1].channels._skip; + prim->arfcn._skip; + break; + } + + prim->rx_lev._skip; + prim->num_of_chan = no_of_channels; + prim->num_of_white_list_chan = no_of_white_channels; + return prim; +} + + +T_PRIMITIVE_UNION mph_power_cnf_max() +{ + T_MPH_POWER_CNF prim; + + prim->num_of_chan = CHANNELS_160; + prim->num_of_white_list_chan._show; + prim->arfcn._show; + prim->rx_lev._show; + prim->inactive_carrier_list.list[0].channels._skip; + prim->inactive_carrier_list.list[1].channels._skip; + return prim; +} + + +T_PRIMITIVE_UNION mph_power_cnf_overlap() +{ + T_MPH_POWER_CNF prim; + + prim->num_of_chan._show; + prim->num_of_white_list_chan._show; + prim->arfcn._show; + prim->rx_lev._show; + prim->inactive_carrier_list.list[0].channels._skip; + prim->inactive_carrier_list.list[1].channels._skip; + return prim; +} + +T_PRIMITIVE_UNION mph_power_cnf_overlap1() +{ + T_MPH_POWER_CNF prim; + + prim->num_of_chan = CHANNELS_160; + prim->num_of_white_list_chan._show; + prim->arfcn._show; + prim->rx_lev._show; + prim->inactive_carrier_list.list[0].channels._skip; + prim->inactive_carrier_list.list[1].channels._skip; + return prim; +}