laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/30787 )
Change subject: osmo_gprs_llc_bssgp_prim: cell_id is always RAI + CI ......................................................................
osmo_gprs_llc_bssgp_prim: cell_id is always RAI + CI
As per what's specified in 3GPP TS 48.018 section 11.3.9 Cell Identifier.
Change-Id: I1efcdbe3e42be35e191bcb1ae513c768d63096aa --- M include/osmocom/gprs/llc/llc_prim.h M tests/llc/llc_prim_test.c 2 files changed, 15 insertions(+), 9 deletions(-)
Approvals: Jenkins Builder: Verified msuraev: Looks good to me, but someone else must approve fixeria: Looks good to me, approved laforge: Looks good to me, approved
diff --git a/include/osmocom/gprs/llc/llc_prim.h b/include/osmocom/gprs/llc/llc_prim.h index 4f359d8..23b41cf 100644 --- a/include/osmocom/gprs/llc/llc_prim.h +++ b/include/osmocom/gprs/llc/llc_prim.h @@ -7,7 +7,7 @@
#include <osmocom/core/prim.h> #include <osmocom/core/utils.h> -#include <osmocom/gsm/gsm0808_utils.h> +#include <osmocom/gsm/gsm48.h> #include <osmocom/gprs/llc/llc.h>
/* Section 7.1.0 */ @@ -214,6 +214,11 @@ }; };
+struct osmo_gprs_llc_bssgp_prim_cell_id { + struct gprs_ra_id rai; + uint16_t ci; +}; + /* Parameters for OSMO_GPRS_LLC_BSSGP_* prims */ struct osmo_gprs_llc_bssgp_prim { /* Common fields */ @@ -236,7 +241,7 @@ } dl_unitdata_req; /* OSMO_GPRS_LLC_BSSGP_UL_UNITDATA | Ind */ struct { - struct gsm0808_cell_id cell_id; + struct osmo_gprs_llc_bssgp_prim_cell_id cell_id; /* TODO: MOCN specific parameters: * - Redirect attempt * - IMSI diff --git a/tests/llc/llc_prim_test.c b/tests/llc/llc_prim_test.c index 63f99aa..ab3bf65 100644 --- a/tests/llc/llc_prim_test.c +++ b/tests/llc/llc_prim_test.c @@ -144,14 +144,15 @@ struct osmo_gprs_llc_prim *llc_prim; const uint32_t tlli = 0xe1c5d364; int rc; - struct gsm0808_cell_id cell_id = { - .id_discr = CELL_IDENT_LAC_AND_CI, - .id = { - .lac_and_ci = { - .lac = 0x0304, - .ci = 0x9876, - }, + struct osmo_gprs_llc_bssgp_prim_cell_id cell_id = { + .rai = { + .mcc = 901, + .mnc = 70, + .mnc_3_digits = false, + .lac = 0x0304, + .rac = 0x01, }, + .ci = 0x9876, };
printf("==== %s() [start] ====\n", __func__);