fixed warnings and add ie for PDUSessionResourceReleaseCommandTransfer
This commit is contained in:
@@ -741,6 +741,10 @@ typedef struct ngap_ue_release_command_s {
|
||||
typedef struct pdusession_release_s {
|
||||
/* Unique pdusession_id for the UE. */
|
||||
uint8_t pdusession_id;
|
||||
/* Octet string data */
|
||||
uint8_t *transfer_buffer;
|
||||
/* Length of the octet string */
|
||||
uint32_t transfer_length;
|
||||
} pdusession_release_t;
|
||||
|
||||
typedef struct ngap_ue_release_req_s {
|
||||
|
||||
@@ -1270,7 +1270,6 @@ rrc_gNB_send_NGAP_PDUSESSION_RELEASE_RESPONSE(
|
||||
//clear release pdusessions
|
||||
ue_context_pP->ue_context.nb_release_of_pdusessions = 0;
|
||||
memset(&ue_context_pP->ue_context.pdusessions_release_failed[0], 0, sizeof(pdusession_failed_t)*NGAP_MAX_PDUSESSION);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -1291,7 +1290,7 @@ rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND(
|
||||
uint8_t xid;
|
||||
int i, pdusession;
|
||||
uint8_t b_existed,is_existed;
|
||||
uint8_t pdusession_release_drb;
|
||||
uint8_t pdusession_release_drb = 0;
|
||||
|
||||
memcpy(&pdusession_release_params[0], &(NGAP_PDUSESSION_RELEASE_COMMAND (msg_p).pdusession_release_params[0]),
|
||||
sizeof(pdusession_release_t)*NGAP_MAX_PDUSESSION);
|
||||
@@ -1307,7 +1306,7 @@ rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND(
|
||||
PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, GNB_FLAG_YES, ue_context_p->ue_context.rnti, 0, 0);
|
||||
xid = rrc_gNB_get_next_transaction_identifier(ctxt.module_id);
|
||||
LOG_I(NR_RRC,"PDU Session Release Command: AMF_UE_NGAP_ID %lu GNB_UE_NGAP_ID %d release_pdusessions %d \n",
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND (msg_p).amf_ue_ngap_id, gNB_ue_ngap_id, nb_pdusessions_torelease);
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND (msg_p).amf_ue_ngap_id&0x000000FFFFFFFFFF, gNB_ue_ngap_id, nb_pdusessions_torelease);
|
||||
|
||||
for (pdusession = 0; pdusession < nb_pdusessions_torelease; pdusession++) {
|
||||
b_existed = 0;
|
||||
@@ -1385,7 +1384,7 @@ rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND(
|
||||
}
|
||||
} else {
|
||||
LOG_E(NR_RRC, "PDU Session Release Command: AMF_UE_NGAP_ID %lu GNB_UE_NGAP_ID %d Error ue_context_p NULL \n",
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND (msg_p).amf_ue_ngap_id, NGAP_PDUSESSION_RELEASE_COMMAND(msg_p).gNB_ue_ngap_id);
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND (msg_p).amf_ue_ngap_id&0x000000FFFFFFFFFF, NGAP_PDUSESSION_RELEASE_COMMAND(msg_p).gNB_ue_ngap_id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -149,4 +149,11 @@ rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND(
|
||||
instance_t instance
|
||||
);
|
||||
|
||||
void
|
||||
rrc_gNB_send_NGAP_PDUSESSION_RELEASE_RESPONSE(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
rrc_gNB_ue_context_t *const ue_context_pP,
|
||||
uint8_t xid
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1850,7 +1850,18 @@ int ngap_gNB_handle_pdusession_release_command(uint32_t assoc_id,
|
||||
item_p = (NGAP_PDUSessionResourceToReleaseItemRelCmd_t *)ie->value.choice.PDUSessionResourceToReleaseListRelCmd.list.array[i];
|
||||
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND(message_p).pdusession_release_params[i].pdusession_id = item_p->pDUSessionID;
|
||||
NGAP_DEBUG("[SCTP] Received pdu session release command for pDUSessionID id %ld\n", item_p->pDUSessionID);
|
||||
if(item_p->pDUSessionResourceReleaseCommandTransfer.size > 0) {
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND(message_p).pdusession_release_params[i].transfer_length = item_p->pDUSessionResourceReleaseCommandTransfer.size;
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND(message_p).pdusession_release_params[i].transfer_buffer = malloc(sizeof(uint8_t) * item_p->pDUSessionResourceReleaseCommandTransfer.size);
|
||||
memcpy(NGAP_PDUSESSION_RELEASE_COMMAND(message_p).pdusession_release_params[i].transfer_buffer,
|
||||
item_p->pDUSessionResourceReleaseCommandTransfer.buf,
|
||||
item_p->pDUSessionResourceReleaseCommandTransfer.size);
|
||||
}else {
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND(message_p).pdusession_release_params[i].transfer_length = 0;
|
||||
NGAP_PDUSESSION_RELEASE_COMMAND(message_p).pdusession_release_params[i].transfer_buffer = NULL;
|
||||
NGAP_ERROR("[NGAP] Received pdu session release command for pDUSessionResourceReleaseCommandTransfer is NULL!\n");
|
||||
}
|
||||
NGAP_DEBUG("[NGAP] Received pdu session release command for pDUSessionID id %ld\n", item_p->pDUSessionID);
|
||||
}
|
||||
} else {
|
||||
return -1;
|
||||
|
||||
@@ -1425,6 +1425,17 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
|
||||
item = (NGAP_PDUSessionResourceReleasedItemRelRes_t *)calloc(1, sizeof(NGAP_PDUSessionResourceReleasedItemRelRes_t));
|
||||
|
||||
item->pDUSessionID = pdusession_release_resp_p->pdusession_release[i].pdusession_id;
|
||||
if(pdusession_release_resp_p->pdusession_release[i].transfer_length > 0){
|
||||
item->pDUSessionResourceReleaseResponseTransfer.size = pdusession_release_resp_p->pdusession_release[i].transfer_length;
|
||||
item->pDUSessionResourceReleaseResponseTransfer.buf = malloc(sizeof(uint8_t) * pdusession_release_resp_p->pdusession_release[i].transfer_length);
|
||||
memcpy(item->pDUSessionResourceReleaseResponseTransfer.buf,
|
||||
pdusession_release_resp_p->pdusession_release[i].transfer_buffer,
|
||||
pdusession_release_resp_p->pdusession_release[i].transfer_length);
|
||||
}else {
|
||||
item->pDUSessionResourceReleaseResponseTransfer.size = 0;
|
||||
item->pDUSessionResourceReleaseResponseTransfer.buf = NULL;
|
||||
NGAP_DEBUG("pdusession_release_resp: transfer_buffer is NULL!\n");
|
||||
}
|
||||
NGAP_DEBUG("pdusession_release_resp: pdusession ID %ld\n", item->pDUSessionID);
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceReleasedListRelRes.list, item);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user