etc: miscellaneous work (#779)
o Check IMEISV length == 16 digits o Add Relative Capabity comment in the configuration file
This commit is contained in:
parent
49a9e58efe
commit
388e64213f
|
@ -160,6 +160,10 @@ logger:
|
|||
#
|
||||
# amf_name: amf1.open5gs.amf.5gc.mnc70.mcc901.3gppnetwork.org
|
||||
#
|
||||
# <Relative Capacity> - Default(255)
|
||||
#
|
||||
# relative_capacity: 100
|
||||
#
|
||||
amf:
|
||||
sbi:
|
||||
- addr: 127.0.0.5
|
||||
|
|
|
@ -201,6 +201,10 @@ logger:
|
|||
#
|
||||
# mme_name: open5gs-mme0
|
||||
#
|
||||
# <Relative Capacity> - Default(255)
|
||||
#
|
||||
# relative_capacity: 100
|
||||
#
|
||||
mme:
|
||||
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
|
||||
s1ap:
|
||||
|
|
|
@ -621,17 +621,31 @@ int gmm_handle_security_mode_complete(amf_ue_t *amf_ue,
|
|||
|
||||
switch (mobile_identity_imeisv->type) {
|
||||
case OGS_NAS_5GS_MOBILE_IDENTITY_IMEISV:
|
||||
memcpy(&amf_ue->nas_mobile_identity_imeisv,
|
||||
mobile_identity_imeisv, imeisv->length);
|
||||
ogs_nas_imeisv_to_bcd(mobile_identity_imeisv, imeisv->length,
|
||||
amf_ue->imeisv_bcd);
|
||||
ogs_nas_imeisv_bcd_to_buffer(amf_ue->imeisv_bcd,
|
||||
amf_ue->masked_imeisv, &amf_ue->masked_imeisv_len);
|
||||
amf_ue->masked_imeisv[5] = 0xff;
|
||||
amf_ue->masked_imeisv[6] = 0xff;
|
||||
if (amf_ue->pei)
|
||||
ogs_free(amf_ue->pei);
|
||||
amf_ue->pei = ogs_msprintf("imeisv-%s", amf_ue->imeisv_bcd);
|
||||
/* TS23.003 6.2.2 Composition of IMEISV
|
||||
*
|
||||
* The International Mobile station Equipment Identity and
|
||||
* Software Version Number (IMEISV) is composed.
|
||||
*
|
||||
* TAC(8 digits) - SNR(6 digits) - SVN(2 digits)
|
||||
* IMEISV(16 digits) ==> 8bytes
|
||||
*/
|
||||
if (imeisv->length == sizeof(ogs_nas_mobile_identity_imeisv_t)) {
|
||||
memcpy(&amf_ue->nas_mobile_identity_imeisv,
|
||||
mobile_identity_imeisv, imeisv->length);
|
||||
ogs_nas_imeisv_to_bcd(mobile_identity_imeisv, imeisv->length,
|
||||
amf_ue->imeisv_bcd);
|
||||
ogs_nas_imeisv_bcd_to_buffer(amf_ue->imeisv_bcd,
|
||||
amf_ue->masked_imeisv, &amf_ue->masked_imeisv_len);
|
||||
amf_ue->masked_imeisv[5] = 0xff;
|
||||
amf_ue->masked_imeisv[6] = 0xff;
|
||||
if (amf_ue->pei)
|
||||
ogs_free(amf_ue->pei);
|
||||
amf_ue->pei = ogs_msprintf("imeisv-%s", amf_ue->imeisv_bcd);
|
||||
} else {
|
||||
ogs_error("[%s] Unknown IMEISV Length [%d]",
|
||||
amf_ue->supi, imeisv->length);
|
||||
ogs_log_hexdump(OGS_LOG_ERROR, imeisv->buffer, imeisv->length);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ogs_warn("[%s] Invalid IMEISV Type [%d]",
|
||||
|
|
|
@ -619,7 +619,15 @@ ogs_pkbuf_t *ngap_ue_build_initial_context_setup_request(
|
|||
UERadioCapability);
|
||||
}
|
||||
|
||||
if (amf_ue->masked_imeisv_len) {
|
||||
/* TS23.003 6.2.2 Composition of IMEISV
|
||||
*
|
||||
* The International Mobile station Equipment Identity and
|
||||
* Software Version Number (IMEISV) is composed.
|
||||
*
|
||||
* TAC(8 digits) - SNR(6 digits) - SVN(2 digits)
|
||||
* IMEISV(16 digits) ==> 8bytes
|
||||
*/
|
||||
if (amf_ue->masked_imeisv_len == OGS_MAX_IMEISV_LEN) {
|
||||
ie = CALLOC(1, sizeof(NGAP_InitialContextSetupRequestIEs_t));
|
||||
ASN_SEQUENCE_ADD(&InitialContextSetupRequest->protocolIEs, ie);
|
||||
|
||||
|
|
|
@ -650,16 +650,31 @@ int emm_handle_security_mode_complete(mme_ue_t *mme_ue,
|
|||
OGS_NAS_EPS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT) {
|
||||
switch (imeisv->imeisv.type) {
|
||||
case OGS_NAS_MOBILE_IDENTITY_IMEISV:
|
||||
memcpy(&mme_ue->nas_mobile_identity_imeisv,
|
||||
&imeisv->imeisv, imeisv->length);
|
||||
ogs_nas_imeisv_to_bcd(&imeisv->imeisv, imeisv->length,
|
||||
mme_ue->imeisv_bcd);
|
||||
ogs_bcd_to_buffer(mme_ue->imeisv_bcd,
|
||||
mme_ue->imeisv, &mme_ue->imeisv_len);
|
||||
ogs_nas_imeisv_bcd_to_buffer(mme_ue->imeisv_bcd,
|
||||
mme_ue->masked_imeisv, &mme_ue->masked_imeisv_len);
|
||||
mme_ue->masked_imeisv[5] = 0xff;
|
||||
mme_ue->masked_imeisv[6] = 0xff;
|
||||
/* TS23.003 6.2.2 Composition of IMEISV
|
||||
*
|
||||
* The International Mobile station Equipment Identity and
|
||||
* Software Version Number (IMEISV) is composed.
|
||||
*
|
||||
* TAC(8 digits) - SNR(6 digits) - SVN(2 digits)
|
||||
* IMEISV(16 digits) ==> 8bytes
|
||||
*/
|
||||
if (imeisv->length == sizeof(ogs_nas_mobile_identity_imeisv_t)) {
|
||||
memcpy(&mme_ue->nas_mobile_identity_imeisv,
|
||||
&imeisv->imeisv, imeisv->length);
|
||||
ogs_nas_imeisv_to_bcd(&imeisv->imeisv, imeisv->length,
|
||||
mme_ue->imeisv_bcd);
|
||||
ogs_bcd_to_buffer(mme_ue->imeisv_bcd,
|
||||
mme_ue->imeisv, &mme_ue->imeisv_len);
|
||||
ogs_nas_imeisv_bcd_to_buffer(mme_ue->imeisv_bcd,
|
||||
mme_ue->masked_imeisv, &mme_ue->masked_imeisv_len);
|
||||
mme_ue->masked_imeisv[5] = 0xff;
|
||||
mme_ue->masked_imeisv[6] = 0xff;
|
||||
} else {
|
||||
ogs_error("[%s] Unknown IMEISV Length [%d]",
|
||||
mme_ue->imsi_bcd, imeisv->length);
|
||||
ogs_log_hexdump(OGS_LOG_ERROR,
|
||||
(unsigned char *)&imeisv->imeisv, imeisv->length);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ogs_warn("Invalid IMEISV Type[%d]", imeisv->imeisv.type);
|
||||
|
|
|
@ -569,7 +569,15 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
|
|||
UERadioCapability);
|
||||
}
|
||||
|
||||
if (mme_ue->imeisv_len) {
|
||||
/* TS23.003 6.2.2 Composition of IMEISV
|
||||
*
|
||||
* The International Mobile station Equipment Identity and
|
||||
* Software Version Number (IMEISV) is composed.
|
||||
*
|
||||
* TAC(8 digits) - SNR(6 digits) - SVN(2 digits)
|
||||
* IMEISV(16 digits) ==> 8bytes
|
||||
*/
|
||||
if (mme_ue->imeisv_len == OGS_MAX_IMEISV_LEN) {
|
||||
ie = CALLOC(1, sizeof(S1AP_InitialContextSetupRequestIEs_t));
|
||||
ASN_SEQUENCE_ADD(&InitialContextSetupRequest->protocolIEs, ie);
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@ ogs_pkbuf_t *testngap_build_initial_ue_message(
|
|||
|
||||
initiatingMessage = pdu.choice.initiatingMessage;
|
||||
initiatingMessage->procedureCode = NGAP_ProcedureCode_id_InitialUEMessage;
|
||||
initiatingMessage->criticality = NGAP_Criticality_reject;
|
||||
initiatingMessage->criticality = NGAP_Criticality_ignore;
|
||||
initiatingMessage->value.present =
|
||||
NGAP_InitiatingMessage__value_PR_InitialUEMessage;
|
||||
|
||||
|
@ -272,9 +272,8 @@ ogs_pkbuf_t *testngap_build_initial_ue_message(
|
|||
ASN_SEQUENCE_ADD(&InitialUEMessage->protocolIEs, ie);
|
||||
|
||||
ie->id = NGAP_ProtocolIE_ID_id_FiveG_S_TMSI;
|
||||
ie->criticality = NGAP_Criticality_ignore;
|
||||
ie->value.present =
|
||||
NGAP_InitialUEMessage_IEs__value_PR_FiveG_S_TMSI;
|
||||
ie->criticality = NGAP_Criticality_reject;
|
||||
ie->value.present = NGAP_InitialUEMessage_IEs__value_PR_FiveG_S_TMSI;
|
||||
|
||||
FiveG_S_TMSI = &ie->value.choice.FiveG_S_TMSI;
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ ogs_pkbuf_t *test_s1ap_build_initial_ue_message(
|
|||
|
||||
initiatingMessage = pdu.choice.initiatingMessage;
|
||||
initiatingMessage->procedureCode = S1AP_ProcedureCode_id_initialUEMessage;
|
||||
initiatingMessage->criticality = S1AP_Criticality_reject;
|
||||
initiatingMessage->criticality = S1AP_Criticality_ignore;
|
||||
initiatingMessage->value.present =
|
||||
S1AP_InitiatingMessage__value_PR_InitialUEMessage;
|
||||
|
||||
|
@ -211,7 +211,7 @@ ogs_pkbuf_t *test_s1ap_build_initial_ue_message(
|
|||
ASN_SEQUENCE_ADD(&InitialUEMessage->protocolIEs, ie);
|
||||
|
||||
ie->id = S1AP_ProtocolIE_ID_id_S_TMSI;
|
||||
ie->criticality = S1AP_Criticality_ignore;
|
||||
ie->criticality = S1AP_Criticality_reject;
|
||||
ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_S_TMSI;
|
||||
|
||||
S_TMSI = &ie->value.choice.S_TMSI;
|
||||
|
|
Loading…
Reference in New Issue