merge develop
This commit is contained in:
@@ -683,7 +683,7 @@ int is_m3ap_MCE_enabled(void)
|
||||
|
||||
char *enable_m3 = NULL;
|
||||
paramdef_t p[] = {
|
||||
{ "enable_mce_m3", "yes/no", 0, strptr:&enable_m3, defstrval:"", TYPE_STRING, 0 }
|
||||
{ "enable_mce_m3", "yes/no", 0, .strptr=&enable_m3, .defstrval="", TYPE_STRING, 0 }
|
||||
};
|
||||
|
||||
/* TODO: do it per module - we check only first MCE */
|
||||
|
||||
@@ -708,7 +708,7 @@ int is_m3ap_MME_enabled(void)
|
||||
|
||||
char *enable_m3 = NULL;
|
||||
paramdef_t p[] = {
|
||||
{ "enable_mme_m3", "yes/no", 0, strptr:&enable_m3, defstrval:"", TYPE_STRING, 0 }
|
||||
{ "enable_mme_m3", "yes/no", 0, .strptr=&enable_m3, .defstrval="", TYPE_STRING, 0 }
|
||||
};
|
||||
|
||||
/* TODO: do it per module - we check only first MME */
|
||||
|
||||
@@ -658,7 +658,7 @@ int MME_send_M3_SETUP_RESPONSE(instance_t instance, /*uint32_t assoc_id,*/
|
||||
ie = (M3AP_M3SetupResponseIEs_t *)calloc(1, sizeof(M3AP_M3SetupResponseIEs_t));
|
||||
ie->id = M3AP_ProtocolIE_ID_id_CriticalityDiagnostics;
|
||||
ie->criticality = M3AP_Criticality_ignore;
|
||||
ie->value.present = M3AP_M3SetupFailureIEs__value_PR_CriticalityDiagnostics;
|
||||
ie->value.present = M3AP_M3SetupResponseIEs__value_PR_CriticalityDiagnostics;
|
||||
ie->value.choice.CriticalityDiagnostics.procedureCode = (M3AP_ProcedureCode_t *)calloc(1, sizeof(M3AP_ProcedureCode_t));
|
||||
*ie->value.choice.CriticalityDiagnostics.procedureCode = M3AP_ProcedureCode_id_m3Setup;
|
||||
ie->value.choice.CriticalityDiagnostics.triggeringMessage = (M3AP_TriggeringMessage_t *)calloc(1, sizeof(M3AP_TriggeringMessage_t));
|
||||
|
||||
@@ -66,8 +66,8 @@ void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_
|
||||
packet_filter_t pf;
|
||||
|
||||
if(qos_rule.oc == ROC_CREATE_NEW_QOS_RULE ||
|
||||
ROC_MODIFY_QOS_RULE_ADD_PF ||
|
||||
ROC_MODIFY_QOS_RULE_REPLACE_PF) {
|
||||
qos_rule.oc == ROC_MODIFY_QOS_RULE_ADD_PF ||
|
||||
qos_rule.oc == ROC_MODIFY_QOS_RULE_REPLACE_PF) {
|
||||
pf.pf_type.type_1.pf_dir = (*(buffer + offset) & 0x30) >> 4;
|
||||
pf.pf_type.type_1.pf_id = *(buffer + offset++) & 0x0F;
|
||||
pf.pf_type.type_1.length = *(buffer + offset++);
|
||||
|
||||
@@ -991,7 +991,7 @@ void *nas_nrue_task(void *args_p)
|
||||
uint8_t offset = 0;
|
||||
uint8_t *payload_container = pdu_buffer;
|
||||
offset += SECURITY_PROTECTED_5GS_NAS_MESSAGE_HEADER_LENGTH;
|
||||
uint16_t payload_container_length = htons(((dl_nas_transport_t *)(pdu_buffer + offset))->payload_container_length);
|
||||
uint32_t payload_container_length = htons(((dl_nas_transport_t *)(pdu_buffer + offset))->payload_container_length);
|
||||
if ((payload_container_length >= PAYLOAD_CONTAINER_LENGTH_MIN) &&
|
||||
(payload_container_length <= PAYLOAD_CONTAINER_LENGTH_MAX))
|
||||
offset += (PLAIN_5GS_NAS_MESSAGE_HEADER_LENGTH + 3);
|
||||
|
||||
@@ -1068,31 +1068,31 @@ static int _at_response_encode_cgpaddr(char* buffer, const at_response_t* data)
|
||||
if (cgpaddr->PDP_addr_1[i] != NULL) {
|
||||
/* IPv4 address */
|
||||
offset += sprintf(buffer+offset, ",%hhu.%hhu.%hhu.%hhu",
|
||||
(unsigned int)cgpaddr->PDP_addr_1[i][0],
|
||||
(unsigned int)cgpaddr->PDP_addr_1[i][1],
|
||||
(unsigned int)cgpaddr->PDP_addr_1[i][2],
|
||||
(unsigned int)cgpaddr->PDP_addr_1[i][3]);
|
||||
(unsigned char)cgpaddr->PDP_addr_1[i][0],
|
||||
(unsigned char)cgpaddr->PDP_addr_1[i][1],
|
||||
(unsigned char)cgpaddr->PDP_addr_1[i][2],
|
||||
(unsigned char)cgpaddr->PDP_addr_1[i][3]);
|
||||
}
|
||||
|
||||
if (cgpaddr->PDP_addr_2[i] != NULL) {
|
||||
/* IPv6 Link-local address prefixe */
|
||||
offset += sprintf(buffer+offset,
|
||||
",%hhu.%hhu.%hhu.%hhu.%hhu.%hhu.%hhu.%hhu",
|
||||
(unsigned int)0xfe, (unsigned int)0x80,
|
||||
(unsigned int)0, (unsigned int)0,
|
||||
(unsigned int)0, (unsigned int)0,
|
||||
(unsigned int)0, (unsigned int)0);
|
||||
(unsigned char)0xfe, (unsigned char)0x80,
|
||||
(unsigned char)0, (unsigned char)0,
|
||||
(unsigned char)0, (unsigned char)0,
|
||||
(unsigned char)0, (unsigned char)0);
|
||||
/* IPv6 Link-local address */
|
||||
offset += sprintf(buffer+offset,
|
||||
".%hhu.%hhu.%hhu.%hhu.%hhu.%hhu.%hhu.%hhu",
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][0],
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][1],
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][2],
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][3],
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][4],
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][5],
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][6],
|
||||
(unsigned int)cgpaddr->PDP_addr_2[i][7]);
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][0],
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][1],
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][2],
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][3],
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][4],
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][5],
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][6],
|
||||
(unsigned char)cgpaddr->PDP_addr_2[i][7]);
|
||||
}
|
||||
|
||||
offset += sprintf(buffer+offset, "\r\n");
|
||||
|
||||
@@ -308,7 +308,7 @@ void *nas_ue_task(void *args_p)
|
||||
struct epoll_event events[20];
|
||||
nb_events = itti_get_events(TASK_NAS_UE, events, 20);
|
||||
|
||||
if ((nb_events > 0) && (events != NULL)) {
|
||||
if (nb_events > 0) {
|
||||
if (nas_ue_process_events(users, events, nb_events) == true) {
|
||||
LOG_E(NAS, "[UE] Received exit loop\n");
|
||||
}
|
||||
|
||||
@@ -1133,13 +1133,13 @@ static int ngap_gNB_handle_pdusession_modify_request(uint32_t assoc_id, uint32_t
|
||||
memset(msg, 0, sizeof(*msg));
|
||||
msg->gNB_ue_ngap_id = gnb_ue_ngap_id;
|
||||
for (int nb_of_pdusessions_failed = 0; nb_of_pdusessions_failed < ie->value.choice.PDUSessionResourceModifyListModReq.list.count; nb_of_pdusessions_failed++) {
|
||||
NGAP_PDUSessionResourceModifyItemModReq_t *item_p;
|
||||
item_p = (NGAP_PDUSessionResourceModifyItemModReq_t *)ie->value.choice.PDUSessionResourceModifyListModReq.list.array[nb_of_pdusessions_failed];
|
||||
pdusession_failed_t *tmp = &msg->pdusessions_failed[nb_of_pdusessions_failed];
|
||||
tmp->pdusession_id = item_p->pDUSessionID;
|
||||
tmp->cause = NGAP_Cause_PR_radioNetwork;
|
||||
tmp->cause_value = NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID;
|
||||
}
|
||||
NGAP_PDUSessionResourceModifyItemModReq_t *item_p;
|
||||
item_p = (NGAP_PDUSessionResourceModifyItemModReq_t *)ie->value.choice.PDUSessionResourceModifyListModReq.list.array[nb_of_pdusessions_failed];
|
||||
pdusession_failed_t *tmp = &msg->pdusessions_failed[nb_of_pdusessions_failed];
|
||||
tmp->pdusession_id = item_p->pDUSessionID;
|
||||
tmp->cause = NGAP_CAUSE_RADIO_NETWORK;
|
||||
tmp->cause_value = NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID;
|
||||
}
|
||||
msg->nb_of_pdusessions_failed = ie->value.choice.PDUSessionResourceModifyListModReq.list.count;
|
||||
ngap_gNB_pdusession_modify_resp(amf_desc_p->ngap_gNB_instance->instance,msg);
|
||||
itti_free(TASK_RRC_GNB, message_p);
|
||||
|
||||
@@ -660,36 +660,35 @@ int ngap_gNB_initial_ctxt_resp(instance_t instance, ngap_initial_context_setup_r
|
||||
for (i = 0; i < initial_ctxt_resp_p->nb_of_pdusessions_failed; i++) {
|
||||
asn1cSequenceAdd(ie->value.choice.PDUSessionResourceFailedToSetupListCxtRes.list, NGAP_PDUSessionResourceFailedToSetupItemCxtRes_t, item);
|
||||
NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_t pdusessionUnTransfer = {0};
|
||||
|
||||
|
||||
/* pDUSessionID */
|
||||
item->pDUSessionID = initial_ctxt_resp_p->pdusessions_failed[i].pdusession_id;
|
||||
|
||||
/* cause */
|
||||
|
||||
pdusessionUnTransfer.cause.present = initial_ctxt_resp_p->pdusessions_failed[i].cause;
|
||||
switch (pdusessionUnTransfer.cause.present) {
|
||||
case NGAP_Cause_PR_radioNetwork:
|
||||
case NGAP_CAUSE_RADIO_NETWORK:
|
||||
pdusessionUnTransfer.cause.choice.radioNetwork = initial_ctxt_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_transport:
|
||||
case NGAP_CAUSE_TRANSPORT:
|
||||
pdusessionUnTransfer.cause.choice.transport = initial_ctxt_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_nas:
|
||||
case NGAP_CAUSE_NAS:
|
||||
pdusessionUnTransfer.cause.choice.nas = initial_ctxt_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_protocol:
|
||||
case NGAP_CAUSE_PROTOCOL:
|
||||
pdusessionUnTransfer.cause.choice.protocol = initial_ctxt_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_misc:
|
||||
case NGAP_CAUSE_MISC:
|
||||
pdusessionUnTransfer.cause.choice.misc = initial_ctxt_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_NOTHING:
|
||||
default:
|
||||
case NGAP_CAUSE_NOTHING:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -931,29 +930,29 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance, ngap_pdusession_setup_re
|
||||
/* cause */
|
||||
pdusessionUnTransfer_p.cause.present = pdusession_failed->cause;
|
||||
switch (pdusessionUnTransfer_p.cause.present) {
|
||||
case NGAP_Cause_PR_radioNetwork:
|
||||
case NGAP_CAUSE_RADIO_NETWORK:
|
||||
pdusessionUnTransfer_p.cause.choice.radioNetwork = pdusession_failed->cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_transport:
|
||||
case NGAP_CAUSE_TRANSPORT:
|
||||
pdusessionUnTransfer_p.cause.choice.transport = pdusession_failed->cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_nas:
|
||||
case NGAP_CAUSE_NAS:
|
||||
pdusessionUnTransfer_p.cause.choice.nas = pdusession_failed->cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_protocol:
|
||||
case NGAP_CAUSE_PROTOCOL:
|
||||
pdusessionUnTransfer_p.cause.choice.protocol = pdusession_failed->cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_misc:
|
||||
case NGAP_CAUSE_MISC:
|
||||
pdusessionUnTransfer_p.cause.choice.misc = pdusession_failed->cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_NOTHING:
|
||||
default:
|
||||
break;
|
||||
case NGAP_CAUSE_NOTHING:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
NGAP_DEBUG("pdusession setup response: failed pdusession ID %ld\n", item->pDUSessionID);
|
||||
@@ -1091,27 +1090,27 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance, ngap_pdusession_modify_
|
||||
pdusessionTransfer.cause.present = pdusession_modify_resp_p->pdusessions_failed[i].cause;
|
||||
|
||||
switch (pdusessionTransfer.cause.present) {
|
||||
case NGAP_Cause_PR_radioNetwork:
|
||||
case NGAP_CAUSE_RADIO_NETWORK:
|
||||
pdusessionTransfer.cause.choice.radioNetwork = pdusession_modify_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_transport:
|
||||
case NGAP_CAUSE_TRANSPORT:
|
||||
pdusessionTransfer.cause.choice.transport = pdusession_modify_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_nas:
|
||||
case NGAP_CAUSE_NAS:
|
||||
pdusessionTransfer.cause.choice.nas = pdusession_modify_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_protocol:
|
||||
case NGAP_CAUSE_PROTOCOL:
|
||||
pdusessionTransfer.cause.choice.protocol = pdusession_modify_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_misc:
|
||||
case NGAP_CAUSE_MISC:
|
||||
pdusessionTransfer.cause.choice.misc = pdusession_modify_resp_p->pdusessions_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case NGAP_Cause_PR_NOTHING:
|
||||
case NGAP_CAUSE_NOTHING:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -373,7 +373,7 @@ void s1ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa
|
||||
timer_kind = timer_kind | SCTP_REQ_WAIT;
|
||||
|
||||
if( s1ap_timer_setup( instance_p->sctp_req_timer, 0, TASK_S1AP, instance_p->instance,
|
||||
timer_kind, S1AP_TIMER_ONE_SHOT, NULL, &s1ap_mme_data_p->timer_id) < 0 ) {
|
||||
timer_kind, TIMER_ONE_SHOT, NULL, &s1ap_mme_data_p->timer_id) < 0 ) {
|
||||
S1AP_ERROR("Timer Start NG(SCTP retransmission wait timer) : MME=%d\n",s1ap_mme_data_p->cnx_id);
|
||||
s1ap_sctp_req( instance_p, s1ap_mme_data_p );
|
||||
}
|
||||
@@ -750,7 +750,7 @@ static int s1ap_eNB_generate_s1_setup_request(
|
||||
timer_kind = timer_kind | S1AP_MMEIND;
|
||||
timer_kind = timer_kind | S1_SETRSP_WAIT;
|
||||
|
||||
if( s1ap_timer_setup(instance_p->s1_setuprsp_wait_timer, 0, TASK_S1AP, instance_p->instance, timer_kind, S1AP_TIMER_ONE_SHOT,
|
||||
if( s1ap_timer_setup(instance_p->s1_setuprsp_wait_timer, 0, TASK_S1AP, instance_p->instance, timer_kind, TIMER_ONE_SHOT,
|
||||
NULL, &s1ap_mme_data_p->timer_id) < 0 )
|
||||
{
|
||||
S1AP_ERROR("Timer Start NG(S1 Setup Response) : MME=%d\n",s1ap_mme_data_p->cnx_id);
|
||||
|
||||
@@ -349,7 +349,7 @@ int s1ap_eNB_handle_s1_setup_failure(uint32_t assoc_id,
|
||||
timer_kind = timer_kind | S1AP_MMEIND;
|
||||
timer_kind = timer_kind | S1_SETREQ_WAIT;
|
||||
|
||||
if( s1ap_timer_setup(interval_sec, 0, TASK_S1AP, instance_p->instance, timer_kind, S1AP_TIMER_ONE_SHOT,
|
||||
if( s1ap_timer_setup(interval_sec, 0, TASK_S1AP, instance_p->instance, timer_kind, TIMER_ONE_SHOT,
|
||||
NULL, &mme_desc_p->timer_id) < 0 ) {
|
||||
S1AP_ERROR("Timer Start NG(S1 Setup Request) : MME=%d\n",mme_desc_p->cnx_id);
|
||||
s1ap_eNB_snd_s1_setup_request( instance_p, mme_desc_p );
|
||||
@@ -1445,7 +1445,7 @@ int s1ap_eNB_handle_e_rab_modify_request(uint32_t assoc_id,
|
||||
item_p = &(((S1AP_E_RABToBeModifiedItemBearerModReqIEs_t *)
|
||||
ie->value.choice.E_RABToBeModifiedListBearerModReq.list.array[nb_of_e_rabs_failed])->value.choice.E_RABToBeModifiedItemBearerModReq);
|
||||
S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[nb_of_e_rabs_failed].e_rab_id = item_p->e_RAB_ID;
|
||||
S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[nb_of_e_rabs_failed].cause = S1AP_Cause_PR_radioNetwork;
|
||||
S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[nb_of_e_rabs_failed].cause = S1AP_CAUSE_RADIO_NETWORK;
|
||||
S1AP_E_RAB_MODIFY_RESP(message_p).e_rabs_failed[nb_of_e_rabs_failed].cause_value = S1AP_CauseRadioNetwork_unknown_mme_ue_s1ap_id;
|
||||
}
|
||||
} else {
|
||||
@@ -1981,7 +1981,7 @@ static int s1ap_eNB_snd_s1_setup_request(
|
||||
timer_kind = timer_kind | S1AP_MMEIND;
|
||||
timer_kind = timer_kind | S1_SETRSP_WAIT;
|
||||
|
||||
if( s1ap_timer_setup(instance_p->s1_setuprsp_wait_timer, 0, TASK_S1AP, instance_p->instance, timer_kind, S1AP_TIMER_ONE_SHOT,
|
||||
if( s1ap_timer_setup(instance_p->s1_setuprsp_wait_timer, 0, TASK_S1AP, instance_p->instance, timer_kind, TIMER_ONE_SHOT,
|
||||
NULL, &s1ap_mme_data_p->timer_id) < 0 )
|
||||
{
|
||||
S1AP_ERROR("Timer Start NG(S1 Setup Response) : MME=%d\n",s1ap_mme_data_p->cnx_id);
|
||||
|
||||
@@ -687,52 +687,56 @@ int s1ap_eNB_initial_ctxt_resp(
|
||||
|
||||
/* optional */
|
||||
if (initial_ctxt_resp_p->nb_of_e_rabs_failed) {
|
||||
ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
|
||||
ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToSetupListCtxtSURes;
|
||||
ie->criticality = S1AP_Criticality_ignore;
|
||||
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_E_RABList;
|
||||
ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
|
||||
ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToSetupListCtxtSURes;
|
||||
ie->criticality = S1AP_Criticality_ignore;
|
||||
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_E_RABList;
|
||||
|
||||
for (i = 0; i < initial_ctxt_resp_p->nb_of_e_rabs_failed; i++) {
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
/* mandatory */
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = initial_ctxt_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
item->value.choice.E_RABItem.cause.present = initial_ctxt_resp_p->e_rabs_failed[i].cause;
|
||||
for (i = 0; i < initial_ctxt_resp_p->nb_of_e_rabs_failed; i++) {
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
/* mandatory */
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = initial_ctxt_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
|
||||
switch(item->value.choice.E_RABItem.cause.present) {
|
||||
case S1AP_Cause_PR_radioNetwork:
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
switch(initial_ctxt_resp_p->e_rabs_failed[i].cause) {
|
||||
case S1AP_CAUSE_RADIO_NETWORK:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_radioNetwork;
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_transport:
|
||||
item->value.choice.E_RABItem.cause.choice.transport = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_TRANSPORT:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_transport;
|
||||
item->value.choice.E_RABItem.cause.choice.transport = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_nas:
|
||||
item->value.choice.E_RABItem.cause.choice.nas = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_NAS:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_nas;
|
||||
item->value.choice.E_RABItem.cause.choice.nas = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_protocol:
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_PROTOCOL:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_protocol;
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_misc:
|
||||
item->value.choice.E_RABItem.cause.choice.misc = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_MISC:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_misc;
|
||||
item->value.choice.E_RABItem.cause.choice.misc = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_NOTHING:
|
||||
case S1AP_Cause_PR_NOTHING:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
S1AP_DEBUG("initial context setup response: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
break;
|
||||
}
|
||||
|
||||
asn1cSeqAdd(&out->protocolIEs.list, ie);
|
||||
S1AP_DEBUG("initial context setup response: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
}
|
||||
|
||||
asn1cSeqAdd(&out->protocolIEs.list, ie);
|
||||
}
|
||||
|
||||
/* optional */
|
||||
@@ -935,51 +939,55 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
|
||||
|
||||
/* optional */
|
||||
if (e_rab_setup_resp_p->nb_of_e_rabs_failed > 0) {
|
||||
ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t));
|
||||
ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToSetupListBearerSURes;
|
||||
ie->criticality = S1AP_Criticality_ignore;
|
||||
ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_E_RABList;
|
||||
ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t));
|
||||
ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToSetupListBearerSURes;
|
||||
ie->criticality = S1AP_Criticality_ignore;
|
||||
ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_E_RABList;
|
||||
|
||||
for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs_failed; i++) {
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = e_rab_setup_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
item->value.choice.E_RABItem.cause.present = e_rab_setup_resp_p->e_rabs_failed[i].cause;
|
||||
for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs_failed; i++) {
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = e_rab_setup_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
|
||||
switch(item->value.choice.E_RABItem.cause.present) {
|
||||
case S1AP_Cause_PR_radioNetwork:
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
switch(e_rab_setup_resp_p->e_rabs_failed[i].cause) {
|
||||
case S1AP_CAUSE_RADIO_NETWORK:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_radioNetwork;
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_transport:
|
||||
item->value.choice.E_RABItem.cause.choice.transport = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_TRANSPORT:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_transport;
|
||||
item->value.choice.E_RABItem.cause.choice.transport = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_nas:
|
||||
item->value.choice.E_RABItem.cause.choice.nas = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_NAS:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_nas;
|
||||
item->value.choice.E_RABItem.cause.choice.nas = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_protocol:
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_PROTOCOL:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_protocol;
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_misc:
|
||||
item->value.choice.E_RABItem.cause.choice.misc = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_MISC:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_misc;
|
||||
item->value.choice.E_RABItem.cause.choice.misc = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_NOTHING:
|
||||
case S1AP_Cause_PR_NOTHING:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
S1AP_DEBUG("e_rab_setup_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
break;
|
||||
}
|
||||
|
||||
asn1cSeqAdd(&out->protocolIEs.list, ie);
|
||||
S1AP_DEBUG("e_rab_setup_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
}
|
||||
|
||||
asn1cSeqAdd(&out->protocolIEs.list, ie);
|
||||
}
|
||||
|
||||
/* optional */
|
||||
@@ -1095,51 +1103,54 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
|
||||
|
||||
/* optional */
|
||||
if (e_rab_modify_resp_p->nb_of_e_rabs_failed > 0) {
|
||||
ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t));
|
||||
ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToModifyList;
|
||||
ie->criticality = S1AP_Criticality_ignore;
|
||||
ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_E_RABList;
|
||||
ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t));
|
||||
ie->id = S1AP_ProtocolIE_ID_id_E_RABFailedToModifyList;
|
||||
ie->criticality = S1AP_Criticality_ignore;
|
||||
ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_E_RABList;
|
||||
|
||||
for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs_failed; i++) {
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = e_rab_modify_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
item->value.choice.E_RABItem.cause.present = e_rab_modify_resp_p->e_rabs_failed[i].cause;
|
||||
for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs_failed; i++) {
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = e_rab_modify_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
|
||||
switch(item->value.choice.E_RABItem.cause.present) {
|
||||
case S1AP_Cause_PR_radioNetwork:
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
switch(e_rab_modify_resp_p->e_rabs_failed[i].cause) {
|
||||
case S1AP_CAUSE_RADIO_NETWORK:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_radioNetwork;
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_transport:
|
||||
item->value.choice.E_RABItem.cause.choice.transport = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_TRANSPORT:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_transport;
|
||||
item->value.choice.E_RABItem.cause.choice.transport = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_nas:
|
||||
item->value.choice.E_RABItem.cause.choice.nas = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_NAS:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_nas;
|
||||
item->value.choice.E_RABItem.cause.choice.nas = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_protocol:
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_PROTOCOL:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_protocol;
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_misc:
|
||||
item->value.choice.E_RABItem.cause.choice.misc = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_MISC:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_misc;
|
||||
item->value.choice.E_RABItem.cause.choice.misc = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_NOTHING:
|
||||
case S1AP_Cause_PR_NOTHING:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
S1AP_DEBUG("e_rab_modify_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
break;
|
||||
}
|
||||
|
||||
asn1cSeqAdd(&out->protocolIEs.list, ie);
|
||||
S1AP_DEBUG("e_rab_modify_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
}
|
||||
asn1cSeqAdd(&out->protocolIEs.list, ie);
|
||||
}
|
||||
|
||||
/* optional */
|
||||
@@ -1243,48 +1254,47 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
|
||||
ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_E_RABList;
|
||||
|
||||
for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_failed; i++) {
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = e_rab_release_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
item->value.choice.E_RABItem.cause.present = e_rab_release_resp_p->e_rabs_failed[i].cause;
|
||||
S1AP_E_RABItemIEs_t *item;
|
||||
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
|
||||
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
|
||||
item->criticality = S1AP_Criticality_ignore;
|
||||
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
|
||||
item->value.choice.E_RABItem.e_RAB_ID = e_rab_release_resp_p->e_rabs_failed[i].e_rab_id;
|
||||
|
||||
switch(item->value.choice.E_RABItem.cause.present) {
|
||||
case S1AP_Cause_PR_radioNetwork:
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
switch(e_rab_release_resp_p->e_rabs_failed[i].cause) {
|
||||
case S1AP_CAUSE_RADIO_NETWORK:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_radioNetwork;
|
||||
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_transport:
|
||||
item->value.choice.E_RABItem.cause.choice.transport = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_TRANSPORT:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_transport;
|
||||
item->value.choice.E_RABItem.cause.choice.transport = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_nas:
|
||||
item->value.choice.E_RABItem.cause.choice.nas = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_NAS:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_nas;
|
||||
item->value.choice.E_RABItem.cause.choice.nas = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_protocol:
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_Cause_PR_misc:
|
||||
item->value.choice.E_RABItem.cause.choice.misc = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_CAUSE_PROTOCOL:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_protocol;
|
||||
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
|
||||
case S1AP_CAUSE_MISC:
|
||||
item->value.choice.E_RABItem.cause.present = S1AP_Cause_PR_misc;
|
||||
item->value.choice.E_RABItem.cause.choice.misc = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
|
||||
break;
|
||||
case S1AP_Cause_PR_NOTHING:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
break;
|
||||
}
|
||||
asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
|
||||
}
|
||||
|
||||
asn1cSeqAdd(&out->protocolIEs.list, ie);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
|
||||
S1AP_ERROR("Failed to encode release response\n");
|
||||
/* Encode procedure has failed... */
|
||||
|
||||
@@ -38,16 +38,16 @@ extern uint16_t NB_UE_INST;
|
||||
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
||||
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||
#define UICC_PARAMS_DESC { \
|
||||
{"imsi", "USIM IMSI\n", 0, strptr:&uicc->imsiStr, defstrval:"2089900007487", TYPE_STRING, 0 }, \
|
||||
{"nmc_size" "number of digits in NMC", 0, iptr:&uicc->nmc_size, defintval:2, TYPE_INT, 0 }, \
|
||||
{"key", "USIM Ki\n", 0, strptr:&uicc->keyStr, defstrval:"fec86ba6eb707ed08905757b1bb44b8f", TYPE_STRING, 0 }, \
|
||||
{"opc", "USIM OPc\n", 0, strptr:&uicc->opcStr, defstrval:"c42449363bbad02b66d16bc975d77cc1", TYPE_STRING, 0 }, \
|
||||
{"amf", "USIM amf\n", 0, strptr:&uicc->amfStr, defstrval:"8000", TYPE_STRING, 0 }, \
|
||||
{"sqn", "USIM sqn\n", 0, strptr:&uicc->sqnStr, defstrval:"000000", TYPE_STRING, 0 }, \
|
||||
{"dnn", "UE dnn (apn)\n", 0, strptr:&uicc->dnnStr, defstrval:"oai", TYPE_STRING, 0 }, \
|
||||
{"nssai_sst", "UE nssai\n", 0, iptr:&uicc->nssai_sst, defintval:1, TYPE_INT, 0 }, \
|
||||
{"nssai_sd", "UE nssai\n", 0, iptr:&uicc->nssai_sd, defintval:0xffffff, TYPE_INT, 0 }, \
|
||||
{"imeisv", "IMEISV\n", 0, strptr:&uicc->imeisvStr, defstrval:"6754567890123413", TYPE_STRING, 0 }, \
|
||||
{"imsi", "USIM IMSI\n", 0, .strptr=&uicc->imsiStr, .defstrval="2089900007487", TYPE_STRING, 0 }, \
|
||||
{"nmc_size" "number of digits in NMC", 0, .iptr=&uicc->nmc_size, .defintval=2, TYPE_INT, 0 }, \
|
||||
{"key", "USIM Ki\n", 0, .strptr=&uicc->keyStr, .defstrval="fec86ba6eb707ed08905757b1bb44b8f", TYPE_STRING, 0 }, \
|
||||
{"opc", "USIM OPc\n", 0, .strptr=&uicc->opcStr, .defstrval="c42449363bbad02b66d16bc975d77cc1", TYPE_STRING, 0 }, \
|
||||
{"amf", "USIM amf\n", 0, .strptr=&uicc->amfStr, .defstrval="8000", TYPE_STRING, 0 }, \
|
||||
{"sqn", "USIM sqn\n", 0, .strptr=&uicc->sqnStr, .defstrval="000000", TYPE_STRING, 0 }, \
|
||||
{"dnn", "UE dnn (apn)\n", 0, .strptr=&uicc->dnnStr, .defstrval="oai", TYPE_STRING, 0 }, \
|
||||
{"nssai_sst", "UE nssai\n", 0, .iptr=&uicc->nssai_sst, .defintval=1, TYPE_INT, 0 }, \
|
||||
{"nssai_sd", "UE nssai\n", 0, .iptr=&uicc->nssai_sd, .defintval=0xffffff, TYPE_INT, 0 }, \
|
||||
{"imeisv", "IMEISV\n", 0, .strptr=&uicc->imeisvStr, .defstrval="6754567890123413", TYPE_STRING, 0 }, \
|
||||
};
|
||||
|
||||
static uicc_t** uiccArray=NULL;
|
||||
@@ -133,4 +133,4 @@ uint8_t getImeisvDigit(int Mod_id,uint8_t i)
|
||||
}
|
||||
}
|
||||
return (0x0f & r);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -998,7 +998,7 @@ static int Gtpv1uHandleGpdu(int h,
|
||||
//Minimum length of GTP-U header if non of the optional fields are present
|
||||
unsigned int offset = sizeof(Gtpv1uMsgHeaderT);
|
||||
|
||||
uint8_t qfi = -1;
|
||||
int8_t qfi = -1;
|
||||
bool rqi = false;
|
||||
uint32_t NR_PDCP_PDU_SN = 0;
|
||||
|
||||
@@ -1232,7 +1232,7 @@ void *gtpv1uTask(void *args) {
|
||||
itti_receive_msg(TASK_GTPV1_U, &message_p);
|
||||
|
||||
if (message_p != NULL ) {
|
||||
openAddr_t addr= {0};
|
||||
openAddr_t addr= {{0}};
|
||||
const instance_t myInstance = ITTI_MSG_DESTINATION_INSTANCE(message_p);
|
||||
const int msgType = ITTI_MSG_ID(message_p);
|
||||
LOG_D(GTPU, "GTP-U received %s for instance %ld\n", messages_info[msgType].name, myInstance);
|
||||
|
||||
Reference in New Issue
Block a user