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
|
||||
typedef struct nr_guami_s {
|
||||
uint16_t mcc;
|
||||
uint16_t mnc;
|
||||
uint8_t mnc_len;
|
||||
plmn_id_t plmn;
|
||||
uint8_t amf_region_id;
|
||||
uint16_t amf_set_id;
|
||||
uint8_t amf_pointer;
|
||||
|
||||
@@ -38,13 +38,11 @@ ue_id_e2sm_t fill_e2sm_gnb_ue_id_data(const gNB_RRC_UE_t *rrc_ue_context, __attr
|
||||
ue_id.gnb.amf_ue_ngap_id = auni < (1LL << 40) ? auni : 0;
|
||||
|
||||
// Mandatory
|
||||
//GUAMI 6.2.3.17
|
||||
ue_id.gnb.guami.plmn_id = (e2sm_plmn_t) {
|
||||
.mcc = rrc_ue_context->ue_guami.mcc,
|
||||
.mnc = rrc_ue_context->ue_guami.mnc,
|
||||
.mnc_digit_len = rrc_ue_context->ue_guami.mnc_len
|
||||
};
|
||||
|
||||
//GUAMI 6.2.3.17
|
||||
ue_id.gnb.guami.plmn_id = (e2sm_plmn_t){.mcc = rrc_ue_context->ue_guami.plmn.mcc,
|
||||
.mnc = rrc_ue_context->ue_guami.plmn.mnc,
|
||||
.mnc_digit_len = rrc_ue_context->ue_guami.plmn.mnc_digit_length};
|
||||
|
||||
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_ptr = rrc_ue_context->ue_guami.amf_pointer;
|
||||
|
||||
@@ -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_set_id = (amf_Id >> 6) & 0x3ff;
|
||||
guami.amf_pointer = amf_Id & 0x3f;
|
||||
guami.mcc = plmn.mcc;
|
||||
guami.mnc = plmn.mnc;
|
||||
guami.mnc_len = plmn.mnc_digit_length;
|
||||
guami.plmn = plmn;
|
||||
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 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_INT16(&in->aMFSetID, out.amf_set_id);
|
||||
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;
|
||||
LOG_D(NGAP,
|
||||
"GUAMI is present: MCC=%03d MNC=%0*d RegionID=%d SetID=%d Pointer=%d\n",
|
||||
guami->mcc,
|
||||
guami->mnc_len,
|
||||
guami->mnc,
|
||||
guami->plmn.mcc,
|
||||
guami->plmn.mnc_digit_length,
|
||||
guami->plmn.mnc,
|
||||
guami->amf_region_id,
|
||||
guami->amf_set_id,
|
||||
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,
|
||||
amf->amf_name,
|
||||
amf->assoc_id,
|
||||
guami->mcc,
|
||||
guami->mnc_len,
|
||||
guami->mnc,
|
||||
guami->plmn.mcc,
|
||||
guami->plmn.mnc_digit_length,
|
||||
guami->plmn.mnc,
|
||||
guami->amf_region_id,
|
||||
guami->amf_set_id,
|
||||
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;
|
||||
|
||||
STAILQ_FOREACH(served_plmn_p, &guami_p->served_plmns, next) {
|
||||
if ((served_plmn_p->mcc == guami.mcc) &&
|
||||
(served_plmn_p->mnc == guami.mnc)) {
|
||||
if ((served_plmn_p->mcc == guami.plmn.mcc) && (served_plmn_p->mnc == guami.plmn.mnc)) {
|
||||
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",
|
||||
guami.mcc,
|
||||
guami.mnc_len,
|
||||
guami.mnc,
|
||||
guami.plmn.mcc,
|
||||
guami.plmn.mnc_digit_length,
|
||||
guami.plmn.mnc,
|
||||
guami.amf_region_id,
|
||||
guami.amf_set_id,
|
||||
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;
|
||||
|
||||
STAILQ_FOREACH(served_plmn_p, &guami_p->served_plmns, next) {
|
||||
if ((served_plmn_p->mcc == guami.mcc) &&
|
||||
(served_plmn_p->mnc == guami.mnc)) {
|
||||
if ((served_plmn_p->mcc == guami.plmn.mcc) && (served_plmn_p->mnc == guami.plmn.mnc)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user