Adopt plmn_id_t in nr_guami_t
This commit is contained in:
@@ -37,9 +37,7 @@ typedef struct nssai_s {
|
|||||||
|
|
||||||
// Globally Unique AMF Identifier
|
// Globally Unique AMF Identifier
|
||||||
typedef struct nr_guami_s {
|
typedef struct nr_guami_s {
|
||||||
uint16_t mcc;
|
plmn_id_t plmn;
|
||||||
uint16_t mnc;
|
|
||||||
uint8_t mnc_len;
|
|
||||||
uint8_t amf_region_id;
|
uint8_t amf_region_id;
|
||||||
uint16_t amf_set_id;
|
uint16_t amf_set_id;
|
||||||
uint8_t amf_pointer;
|
uint8_t amf_pointer;
|
||||||
|
|||||||
@@ -39,11 +39,9 @@ ue_id_e2sm_t fill_e2sm_gnb_ue_id_data(const gNB_RRC_UE_t *rrc_ue_context, __attr
|
|||||||
|
|
||||||
// Mandatory
|
// Mandatory
|
||||||
//GUAMI 6.2.3.17
|
//GUAMI 6.2.3.17
|
||||||
ue_id.gnb.guami.plmn_id = (e2sm_plmn_t) {
|
ue_id.gnb.guami.plmn_id = (e2sm_plmn_t){.mcc = rrc_ue_context->ue_guami.plmn.mcc,
|
||||||
.mcc = rrc_ue_context->ue_guami.mcc,
|
.mnc = rrc_ue_context->ue_guami.plmn.mnc,
|
||||||
.mnc = rrc_ue_context->ue_guami.mnc,
|
.mnc_digit_len = rrc_ue_context->ue_guami.plmn.mnc_digit_length};
|
||||||
.mnc_digit_len = rrc_ue_context->ue_guami.mnc_len
|
|
||||||
};
|
|
||||||
|
|
||||||
ue_id.gnb.guami.amf_region_id = rrc_ue_context->ue_guami.amf_region_id;
|
ue_id.gnb.guami.amf_region_id = rrc_ue_context->ue_guami.amf_region_id;
|
||||||
ue_id.gnb.guami.amf_set_id = rrc_ue_context->ue_guami.amf_set_id;
|
ue_id.gnb.guami.amf_set_id = rrc_ue_context->ue_guami.amf_set_id;
|
||||||
|
|||||||
@@ -165,9 +165,7 @@ static nr_guami_t get_guami(const uint32_t amf_Id, const plmn_id_t plmn)
|
|||||||
guami.amf_region_id = (amf_Id >> 16) & 0xff;
|
guami.amf_region_id = (amf_Id >> 16) & 0xff;
|
||||||
guami.amf_set_id = (amf_Id >> 6) & 0x3ff;
|
guami.amf_set_id = (amf_Id >> 6) & 0x3ff;
|
||||||
guami.amf_pointer = amf_Id & 0x3f;
|
guami.amf_pointer = amf_Id & 0x3f;
|
||||||
guami.mcc = plmn.mcc;
|
guami.plmn = plmn;
|
||||||
guami.mnc = plmn.mnc;
|
|
||||||
guami.mnc_len = plmn.mnc_digit_length;
|
|
||||||
return guami;
|
return guami;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ ngap_cause_t decode_ngap_cause(const NGAP_Cause_t *in)
|
|||||||
nr_guami_t decode_ngap_guami(const NGAP_GUAMI_t *in)
|
nr_guami_t decode_ngap_guami(const NGAP_GUAMI_t *in)
|
||||||
{
|
{
|
||||||
nr_guami_t out = {0};
|
nr_guami_t out = {0};
|
||||||
TBCD_TO_MCC_MNC(&in->pLMNIdentity, out.mcc, out.mnc, out.mnc_len);
|
TBCD_TO_MCC_MNC(&in->pLMNIdentity, out.plmn.mcc, out.plmn.mnc, out.plmn.mnc_digit_length);
|
||||||
OCTET_STRING_TO_INT8(&in->aMFRegionID, out.amf_region_id);
|
OCTET_STRING_TO_INT8(&in->aMFRegionID, out.amf_region_id);
|
||||||
OCTET_STRING_TO_INT16(&in->aMFSetID, out.amf_set_id);
|
OCTET_STRING_TO_INT16(&in->aMFSetID, out.amf_set_id);
|
||||||
OCTET_STRING_TO_INT8(&in->aMFPointer, out.amf_pointer);
|
OCTET_STRING_TO_INT8(&in->aMFPointer, out.amf_pointer);
|
||||||
|
|||||||
@@ -76,9 +76,9 @@ static ngap_gNB_amf_data_t *select_amf(ngap_gNB_instance_t *instance_p, const ng
|
|||||||
const nr_guami_t *guami = &msg->ue_identity.guami;
|
const nr_guami_t *guami = &msg->ue_identity.guami;
|
||||||
LOG_D(NGAP,
|
LOG_D(NGAP,
|
||||||
"GUAMI is present: MCC=%03d MNC=%0*d RegionID=%d SetID=%d Pointer=%d\n",
|
"GUAMI is present: MCC=%03d MNC=%0*d RegionID=%d SetID=%d Pointer=%d\n",
|
||||||
guami->mcc,
|
guami->plmn.mcc,
|
||||||
guami->mnc_len,
|
guami->plmn.mnc_digit_length,
|
||||||
guami->mnc,
|
guami->plmn.mnc,
|
||||||
guami->amf_region_id,
|
guami->amf_region_id,
|
||||||
guami->amf_set_id,
|
guami->amf_set_id,
|
||||||
guami->amf_pointer);
|
guami->amf_pointer);
|
||||||
@@ -89,9 +89,9 @@ static ngap_gNB_amf_data_t *select_amf(ngap_gNB_instance_t *instance_p, const ng
|
|||||||
msg->gNB_ue_ngap_id,
|
msg->gNB_ue_ngap_id,
|
||||||
amf->amf_name,
|
amf->amf_name,
|
||||||
amf->assoc_id,
|
amf->assoc_id,
|
||||||
guami->mcc,
|
guami->plmn.mcc,
|
||||||
guami->mnc_len,
|
guami->plmn.mnc_digit_length,
|
||||||
guami->mnc,
|
guami->plmn.mnc,
|
||||||
guami->amf_region_id,
|
guami->amf_region_id,
|
||||||
guami->amf_set_id,
|
guami->amf_set_id,
|
||||||
guami->amf_pointer);
|
guami->amf_pointer);
|
||||||
|
|||||||
@@ -286,8 +286,7 @@ ngap_gNB_amf_data_t *ngap_gNB_nnsf_select_amf_by_guami(ngap_gNB_instance_t *inst
|
|||||||
struct plmn_identity_s *served_plmn_p = NULL;
|
struct plmn_identity_s *served_plmn_p = NULL;
|
||||||
|
|
||||||
STAILQ_FOREACH(served_plmn_p, &guami_p->served_plmns, next) {
|
STAILQ_FOREACH(served_plmn_p, &guami_p->served_plmns, next) {
|
||||||
if ((served_plmn_p->mcc == guami.mcc) &&
|
if ((served_plmn_p->mcc == guami.plmn.mcc) && (served_plmn_p->mnc == guami.plmn.mnc)) {
|
||||||
(served_plmn_p->mnc == guami.mnc)) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -322,9 +321,9 @@ ngap_gNB_amf_data_t *ngap_gNB_nnsf_select_amf_by_guami(ngap_gNB_instance_t *inst
|
|||||||
}
|
}
|
||||||
|
|
||||||
NGAP_WARN("No matching AMF found for GUAMI (MCC=%03d MNC=%0*d RegionID=%d SetID=%d Pointer=%d)\n",
|
NGAP_WARN("No matching AMF found for GUAMI (MCC=%03d MNC=%0*d RegionID=%d SetID=%d Pointer=%d)\n",
|
||||||
guami.mcc,
|
guami.plmn.mcc,
|
||||||
guami.mnc_len,
|
guami.plmn.mnc_digit_length,
|
||||||
guami.mnc,
|
guami.plmn.mnc,
|
||||||
guami.amf_region_id,
|
guami.amf_region_id,
|
||||||
guami.amf_set_id,
|
guami.amf_set_id,
|
||||||
guami.amf_pointer);
|
guami.amf_pointer);
|
||||||
@@ -373,8 +372,7 @@ ngap_gNB_amf_data_t *ngap_gNB_nnsf_select_amf_by_guami_no_cause(ngap_gNB_instanc
|
|||||||
struct plmn_identity_s *served_plmn_p = NULL;
|
struct plmn_identity_s *served_plmn_p = NULL;
|
||||||
|
|
||||||
STAILQ_FOREACH(served_plmn_p, &guami_p->served_plmns, next) {
|
STAILQ_FOREACH(served_plmn_p, &guami_p->served_plmns, next) {
|
||||||
if ((served_plmn_p->mcc == guami.mcc) &&
|
if ((served_plmn_p->mcc == guami.plmn.mcc) && (served_plmn_p->mnc == guami.plmn.mnc)) {
|
||||||
(served_plmn_p->mnc == guami.mnc)) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user