Add configurable DNN in PDU session request encoding
This commit is contained in:
@@ -474,6 +474,7 @@ typedef struct nas_pdu_session_req_s {
|
|||||||
int pdusession_type;
|
int pdusession_type;
|
||||||
int sst;
|
int sst;
|
||||||
int sd;
|
int sd;
|
||||||
|
char dnn[103]; /* 24.501 §9.11.2.1A: max length 102 + 0-byte */
|
||||||
} nas_pdu_session_req_t;
|
} nas_pdu_session_req_t;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1697,11 +1697,11 @@ static void generatePduSessionEstablishRequest(nr_ue_nas_t *nas, as_nas_info_t *
|
|||||||
if (has_nssai_sd)
|
if (has_nssai_sd)
|
||||||
INT24_TO_BUFFER(pdu_req->sd, &mm_msg->snssai.value[1]);
|
INT24_TO_BUFFER(pdu_req->sd, &mm_msg->snssai.value[1]);
|
||||||
size += 1 + 1 + nssai_len;
|
size += 1 + 1 + nssai_len;
|
||||||
int dnnSize = strlen(nas->uicc->dnnStr);
|
int dnnSize = strlen(pdu_req->dnn);
|
||||||
mm_msg->dnn.value = calloc(1, dnnSize + 1);
|
mm_msg->dnn.value = calloc(1, dnnSize + 1);
|
||||||
mm_msg->dnn.length = dnnSize + 1;
|
mm_msg->dnn.length = dnnSize + 1;
|
||||||
mm_msg->dnn.value[0] = dnnSize;
|
mm_msg->dnn.value[0] = dnnSize;
|
||||||
memcpy(mm_msg->dnn.value + 1, nas->uicc->dnnStr, dnnSize);
|
memcpy(mm_msg->dnn.value + 1, pdu_req->dnn, dnnSize);
|
||||||
size += (1 + 1 + dnnSize + 1);
|
size += (1 + 1 + dnnSize + 1);
|
||||||
|
|
||||||
// encode the message
|
// encode the message
|
||||||
@@ -1776,10 +1776,12 @@ static void send_nas_5gmm_ind(instance_t instance, const Guti5GSMobileIdentity_t
|
|||||||
void request_pdusession(nr_ue_nas_t *nas, int pdusession_id)
|
void request_pdusession(nr_ue_nas_t *nas, int pdusession_id)
|
||||||
{
|
{
|
||||||
MessageDef *message_p = itti_alloc_new_message(TASK_NAS_NRUE, nas->UE_id, NAS_PDU_SESSION_REQ);
|
MessageDef *message_p = itti_alloc_new_message(TASK_NAS_NRUE, nas->UE_id, NAS_PDU_SESSION_REQ);
|
||||||
NAS_PDU_SESSION_REQ(message_p).pdusession_id = pdusession_id;
|
nas_pdu_session_req_t *pdu_req = &NAS_PDU_SESSION_REQ(message_p);
|
||||||
NAS_PDU_SESSION_REQ(message_p).pdusession_type = 0x91; // 0x91 = IPv4, 0x92 = IPv6, 0x93 = IPv4v6
|
pdu_req->pdusession_id = pdusession_id;
|
||||||
NAS_PDU_SESSION_REQ(message_p).sst = nas->uicc->nssai_sst;
|
pdu_req->pdusession_type = 0x91; // 0x91 = IPv4, 0x92 = IPv6, 0x93 = IPv4v6
|
||||||
NAS_PDU_SESSION_REQ(message_p).sd = nas->uicc->nssai_sd;
|
pdu_req->sst = nas->uicc->nssai_sst;
|
||||||
|
pdu_req->sd = nas->uicc->nssai_sd;
|
||||||
|
snprintf(pdu_req->dnn, sizeof(pdu_req->dnn), "%s", nas->uicc->dnnStr);
|
||||||
itti_send_msg_to_task(TASK_NAS_NRUE, nas->UE_id, message_p);
|
itti_send_msg_to_task(TASK_NAS_NRUE, nas->UE_id, message_p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user