Commit 15428278 authored by matzakos's avatar matzakos

ENDC path switch S1-U: Minor additions

parent 4222d356
...@@ -2312,6 +2312,7 @@ int rrc_eNB_send_E_RAB_Modification_Indication(const protocol_ctxt_t *const ctxt ...@@ -2312,6 +2312,7 @@ int rrc_eNB_send_E_RAB_Modification_Indication(const protocol_ctxt_t *const ctxt
for (e_rab = 0; e_rab < ue_context_pP->ue_context.setup_e_rabs ; e_rab++) { for (e_rab = 0; e_rab < ue_context_pP->ue_context.setup_e_rabs ; e_rab++) {
//Add E-RAB in the list of E-RABs to be modified //Add E-RAB in the list of E-RABs to be modified
if (ue_context_pP->ue_context.e_rab[e_rab].status == E_RAB_STATUS_TOMODIFY) { if (ue_context_pP->ue_context.e_rab[e_rab].status == E_RAB_STATUS_TOMODIFY) {
S1AP_E_RAB_MODIFICATION_IND (msg_p).e_rabs_tobemodified[e_rab_modify_index].e_rab_id = ue_context_pP->ue_context.e_rab[e_rab].param.e_rab_id;
memcpy(S1AP_E_RAB_MODIFICATION_IND (msg_p).e_rabs_tobemodified[e_rab_modify_index].eNB_addr.buffer, memcpy(S1AP_E_RAB_MODIFICATION_IND (msg_p).e_rabs_tobemodified[e_rab_modify_index].eNB_addr.buffer,
ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].buffer, ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].buffer,
ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].length); ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].length);
...@@ -2321,6 +2322,7 @@ int rrc_eNB_send_E_RAB_Modification_Indication(const protocol_ctxt_t *const ctxt ...@@ -2321,6 +2322,7 @@ int rrc_eNB_send_E_RAB_Modification_Indication(const protocol_ctxt_t *const ctxt
} }
//Add E-RAB in the list of E-RABs NOT to be modified //Add E-RAB in the list of E-RABs NOT to be modified
else{ else{
S1AP_E_RAB_MODIFICATION_IND (msg_p).e_rabs_nottobemodified[e_rab_notmodify_index].e_rab_id = ue_context_pP->ue_context.e_rab[e_rab].param.e_rab_id;
memcpy(S1AP_E_RAB_MODIFICATION_IND (msg_p).e_rabs_nottobemodified[e_rab_notmodify_index].eNB_addr.buffer, memcpy(S1AP_E_RAB_MODIFICATION_IND (msg_p).e_rabs_nottobemodified[e_rab_notmodify_index].eNB_addr.buffer,
ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].buffer, ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].buffer,
ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].length); ue_context_pP->ue_context.gnb_gtp_endc_addrs[e_rab].length);
......
...@@ -104,6 +104,11 @@ int s1ap_eNB_handle_s1_path_switch_request_failure(uint32_t assoc_ ...@@ -104,6 +104,11 @@ int s1ap_eNB_handle_s1_path_switch_request_failure(uint32_t assoc_
uint32_t stream, uint32_t stream,
S1AP_S1AP_PDU_t *pdu); S1AP_S1AP_PDU_t *pdu);
static
int s1ap_eNB_handle_s1_ENDC_e_rab_modification_confirm(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu);
/* Handlers matrix. Only eNB related procedure present here */ /* Handlers matrix. Only eNB related procedure present here */
s1ap_message_decoded_callback messages_callback[][3] = { s1ap_message_decoded_callback messages_callback[][3] = {
{ 0, 0, 0 }, /* HandoverPreparation */ { 0, 0, 0 }, /* HandoverPreparation */
...@@ -154,6 +159,9 @@ s1ap_message_decoded_callback messages_callback[][3] = { ...@@ -154,6 +159,9 @@ s1ap_message_decoded_callback messages_callback[][3] = {
{ 0, 0, 0 }, /* UplinkUEAssociatedLPPaTransport */ { 0, 0, 0 }, /* UplinkUEAssociatedLPPaTransport */
{ 0, 0, 0 }, /* DownlinkNonUEAssociatedLPPaTransport */ { 0, 0, 0 }, /* DownlinkNonUEAssociatedLPPaTransport */
{ 0, 0, 0 }, /* UplinkNonUEAssociatedLPPaTransport */ { 0, 0, 0 }, /* UplinkNonUEAssociatedLPPaTransport */
{ 0, 0, 0 }, /* UERadioCapabilityMatch */
{ 0, 0, 0 }, /* PWSRestartIndication */
{ 0, s1ap_eNB_handle_s1_ENDC_e_rab_modification_confirm, 0 }, /* E_RABModificationIndication */
}; };
char *s1ap_direction2String(int s1ap_dir) { char *s1ap_direction2String(int s1ap_dir) {
static char *s1ap_direction_String[] = { static char *s1ap_direction_String[] = {
...@@ -1722,3 +1730,13 @@ int s1ap_eNB_handle_s1_path_switch_request_failure(uint32_t assoc_ ...@@ -1722,3 +1730,13 @@ int s1ap_eNB_handle_s1_path_switch_request_failure(uint32_t assoc_
// TODO continue // TODO continue
return 0; return 0;
} }
static
int s1ap_eNB_handle_s1_ENDC_e_rab_modification_confirm(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu){
LOG_W(S1AP, "Implementation of S1AP E-RAB Modification confirm handler is pending...\n");
return 0;
}
...@@ -1650,7 +1650,6 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication( ...@@ -1650,7 +1650,6 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
DevAssert(s1ap_eNB_instance_p != NULL); DevAssert(s1ap_eNB_instance_p != NULL);
DevAssert(e_rab_modification_ind != NULL); DevAssert(e_rab_modification_ind != NULL);
// Currently hardcoded (dummy) values filling the fields of E_RAB_Modification_Indication message. To be substituted
int num_e_rabs_tobemodified = e_rab_modification_ind->nb_of_e_rabs_tobemodified; int num_e_rabs_tobemodified = e_rab_modification_ind->nb_of_e_rabs_tobemodified;
int num_e_rabs_nottobemodified = e_rab_modification_ind->nb_of_e_rabs_nottobemodified; int num_e_rabs_nottobemodified = e_rab_modification_ind->nb_of_e_rabs_nottobemodified;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment