forked from acouzens/open5gs
Fix to decode configuration update complete [#487]
This commit is contained in:
parent
3c6711c9c8
commit
5eabfc8275
|
@ -28,7 +28,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by nas-message.py script v0.2.0
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2020-06-19 19:55:35.949469 by acetcom
|
||||
* Created on: 2020-06-30 08:13:45.448896 by acetcom
|
||||
* from 24501-g41.docx
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -44,7 +44,6 @@ int ogs_nas_5gs_decode_service_request(ogs_nas_5gs_message_t *message, ogs_pkbuf
|
|||
int ogs_nas_5gs_decode_service_reject(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_service_accept(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_configuration_update_command(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_configuration_update_complete(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_authentication_request(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_authentication_response(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_authentication_reject(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf);
|
||||
|
@ -1063,94 +1062,6 @@ int ogs_nas_5gs_decode_configuration_update_command(ogs_nas_5gs_message_t *messa
|
|||
return decoded;
|
||||
}
|
||||
|
||||
int ogs_nas_5gs_decode_configuration_update_complete(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf)
|
||||
{
|
||||
ogs_nas_5gs_configuration_update_complete_t *configuration_update_complete = &message->gmm.configuration_update_complete;
|
||||
int decoded = 0;
|
||||
int size = 0;
|
||||
|
||||
ogs_trace("[NAS] Decode CONFIGURATION_UPDATE_COMPLETE\n");
|
||||
|
||||
size = ogs_nas_5gs_decode_control_plane_service_type(&configuration_update_complete->control_plane_service_type, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
decoded += size;
|
||||
|
||||
while (pkbuf->len > 0) {
|
||||
uint8_t *buffer = pkbuf->data;
|
||||
uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
|
||||
|
||||
size = sizeof(uint8_t);
|
||||
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
|
||||
decoded += size;
|
||||
|
||||
switch(type) {
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_CIOT_SMALL_DATA_CONTAINER_TYPE:
|
||||
size = ogs_nas_5gs_decode_ciot_small_data_container(&configuration_update_complete->ciot_small_data_container, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_CIOT_SMALL_DATA_CONTAINER_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE_TYPE:
|
||||
decoded--;
|
||||
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
|
||||
size = ogs_nas_5gs_decode_payload_container_type(&configuration_update_complete->payload_container_type, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE:
|
||||
size = ogs_nas_5gs_decode_payload_container(&configuration_update_complete->payload_container, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_ID_TYPE:
|
||||
size = ogs_nas_5gs_decode_pdu_session_identity_2(&configuration_update_complete->pdu_session_id, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_ID_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_STATUS_TYPE:
|
||||
size = ogs_nas_5gs_decode_pdu_session_status(&configuration_update_complete->pdu_session_status, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_STATUS_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_RELEASE_ASSISTANCE_INDICATION_TYPE:
|
||||
decoded--;
|
||||
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
|
||||
size = ogs_nas_5gs_decode_release_assistance_indication(&configuration_update_complete->release_assistance_indication, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_RELEASE_ASSISTANCE_INDICATION_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_UPLINK_DATA_STATUS_TYPE:
|
||||
size = ogs_nas_5gs_decode_uplink_data_status(&configuration_update_complete->uplink_data_status, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_UPLINK_DATA_STATUS_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE:
|
||||
size = ogs_nas_5gs_decode_message_container(&configuration_update_complete->nas_message_container, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_ADDITIONAL_INFORMATION_TYPE:
|
||||
size = ogs_nas_5gs_decode_additional_information(&configuration_update_complete->additional_information, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
configuration_update_complete->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_ADDITIONAL_INFORMATION_PRESENT;
|
||||
decoded += size;
|
||||
break;
|
||||
default:
|
||||
ogs_error("Unknown type(0x%x) or not implemented\n", type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return decoded;
|
||||
}
|
||||
|
||||
int ogs_nas_5gs_decode_authentication_request(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf)
|
||||
{
|
||||
ogs_nas_5gs_authentication_request_t *authentication_request = &message->gmm.authentication_request;
|
||||
|
@ -2710,9 +2621,6 @@ int ogs_nas_5gmm_decode(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf)
|
|||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE:
|
||||
size = ogs_nas_5gs_decode_configuration_update_complete(message, pkbuf);
|
||||
ogs_assert(size >= 0);
|
||||
decoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_AUTHENTICATION_REQUEST:
|
||||
size = ogs_nas_5gs_decode_authentication_request(message, pkbuf);
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by nas-message.py script v0.2.0
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2020-06-19 19:55:35.960740 by acetcom
|
||||
* Created on: 2020-06-30 08:13:45.459717 by acetcom
|
||||
* from 24501-g41.docx
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -44,7 +44,6 @@ int ogs_nas_5gs_encode_service_request(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t
|
|||
int ogs_nas_5gs_encode_service_reject(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message);
|
||||
int ogs_nas_5gs_encode_service_accept(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message);
|
||||
int ogs_nas_5gs_encode_configuration_update_command(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message);
|
||||
int ogs_nas_5gs_encode_configuration_update_complete(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message);
|
||||
int ogs_nas_5gs_encode_authentication_request(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message);
|
||||
int ogs_nas_5gs_encode_authentication_response(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message);
|
||||
int ogs_nas_5gs_encode_authentication_reject(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message);
|
||||
|
@ -1316,107 +1315,6 @@ int ogs_nas_5gs_encode_configuration_update_command(ogs_pkbuf_t *pkbuf, ogs_nas_
|
|||
return encoded;
|
||||
}
|
||||
|
||||
int ogs_nas_5gs_encode_configuration_update_complete(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message)
|
||||
{
|
||||
ogs_nas_5gs_configuration_update_complete_t *configuration_update_complete = &message->gmm.configuration_update_complete;
|
||||
int encoded = 0;
|
||||
int size = 0;
|
||||
|
||||
ogs_trace("[NAS] Encode CONFIGURATION_UPDATE_COMPLETE");
|
||||
|
||||
size = ogs_nas_5gs_encode_control_plane_service_type(pkbuf, &configuration_update_complete->control_plane_service_type);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_CIOT_SMALL_DATA_CONTAINER_PRESENT) {
|
||||
size = ogs_nas_5gs_encode_optional_type(pkbuf, OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_CIOT_SMALL_DATA_CONTAINER_TYPE);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
size = ogs_nas_5gs_encode_ciot_small_data_container(pkbuf, &configuration_update_complete->ciot_small_data_container);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE_PRESENT) {
|
||||
configuration_update_complete->payload_container_type.type = (OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE_TYPE >> 4);
|
||||
|
||||
size = ogs_nas_5gs_encode_payload_container_type(pkbuf, &configuration_update_complete->payload_container_type);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_PRESENT) {
|
||||
size = ogs_nas_5gs_encode_optional_type(pkbuf, OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
size = ogs_nas_5gs_encode_payload_container(pkbuf, &configuration_update_complete->payload_container);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_ID_PRESENT) {
|
||||
size = ogs_nas_5gs_encode_optional_type(pkbuf, OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_ID_TYPE);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
size = ogs_nas_5gs_encode_pdu_session_identity_2(pkbuf, &configuration_update_complete->pdu_session_id);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_STATUS_PRESENT) {
|
||||
size = ogs_nas_5gs_encode_optional_type(pkbuf, OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_STATUS_TYPE);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
size = ogs_nas_5gs_encode_pdu_session_status(pkbuf, &configuration_update_complete->pdu_session_status);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_RELEASE_ASSISTANCE_INDICATION_PRESENT) {
|
||||
configuration_update_complete->release_assistance_indication.type = (OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_RELEASE_ASSISTANCE_INDICATION_TYPE >> 4);
|
||||
|
||||
size = ogs_nas_5gs_encode_release_assistance_indication(pkbuf, &configuration_update_complete->release_assistance_indication);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_UPLINK_DATA_STATUS_PRESENT) {
|
||||
size = ogs_nas_5gs_encode_optional_type(pkbuf, OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_UPLINK_DATA_STATUS_TYPE);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
size = ogs_nas_5gs_encode_uplink_data_status(pkbuf, &configuration_update_complete->uplink_data_status);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT) {
|
||||
size = ogs_nas_5gs_encode_optional_type(pkbuf, OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
size = ogs_nas_5gs_encode_message_container(pkbuf, &configuration_update_complete->nas_message_container);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
if (configuration_update_complete->presencemask & OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_ADDITIONAL_INFORMATION_PRESENT) {
|
||||
size = ogs_nas_5gs_encode_optional_type(pkbuf, OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_ADDITIONAL_INFORMATION_TYPE);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
|
||||
size = ogs_nas_5gs_encode_additional_information(pkbuf, &configuration_update_complete->additional_information);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
}
|
||||
|
||||
return encoded;
|
||||
}
|
||||
|
||||
int ogs_nas_5gs_encode_authentication_request(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_message_t *message)
|
||||
{
|
||||
ogs_nas_5gs_authentication_request_t *authentication_request = &message->gmm.authentication_request;
|
||||
|
@ -2978,9 +2876,6 @@ ogs_pkbuf_t *ogs_nas_5gmm_encode(ogs_nas_5gs_message_t *message)
|
|||
encoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE:
|
||||
size = ogs_nas_5gs_encode_configuration_update_complete(pkbuf, message);
|
||||
ogs_assert(size >= 0);
|
||||
encoded += size;
|
||||
break;
|
||||
case OGS_NAS_5GS_AUTHENTICATION_REQUEST:
|
||||
size = ogs_nas_5gs_encode_authentication_request(pkbuf, message);
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by nas-message.py script v0.2.0
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2020-06-19 19:55:35.932346 by acetcom
|
||||
* Created on: 2020-06-30 08:13:45.431932 by acetcom
|
||||
* from 24501-g41.docx
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -700,40 +700,6 @@ int ogs_nas_5gs_encode_cag_information_list(ogs_pkbuf_t *pkbuf, ogs_nas_cag_info
|
|||
return cag_information_list->length + sizeof(cag_information_list->length);
|
||||
}
|
||||
|
||||
/* 9.11.3.18B CIoT small data container
|
||||
* O TLV 4-257 */
|
||||
int ogs_nas_5gs_decode_ciot_small_data_container(ogs_nas_ciot_small_data_container_t *ciot_small_data_container, ogs_pkbuf_t *pkbuf)
|
||||
{
|
||||
uint16_t size = 0;
|
||||
ogs_nas_ciot_small_data_container_t *source = (ogs_nas_ciot_small_data_container_t *)pkbuf->data;
|
||||
|
||||
ciot_small_data_container->length = source->length;
|
||||
size = ciot_small_data_container->length + sizeof(ciot_small_data_container->length);
|
||||
|
||||
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
|
||||
memcpy(ciot_small_data_container, pkbuf->data - size, size);
|
||||
|
||||
ogs_trace(" CIOT_SMALL_DATA_CONTAINER - ");
|
||||
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
int ogs_nas_5gs_encode_ciot_small_data_container(ogs_pkbuf_t *pkbuf, ogs_nas_ciot_small_data_container_t *ciot_small_data_container)
|
||||
{
|
||||
uint16_t size = ciot_small_data_container->length + sizeof(ciot_small_data_container->length);
|
||||
ogs_nas_ciot_small_data_container_t target;
|
||||
|
||||
memcpy(&target, ciot_small_data_container, sizeof(ogs_nas_ciot_small_data_container_t));
|
||||
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
|
||||
memcpy(pkbuf->data - size, &target, size);
|
||||
|
||||
ogs_trace(" CIOT_SMALL_DATA_CONTAINER - ");
|
||||
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
/* 9.11.3.18C Ciphering key data
|
||||
* O TLV-E x-n */
|
||||
int ogs_nas_5gs_decode_ciphering_key_data(ogs_nas_ciphering_key_data_t *ciphering_key_data, ogs_pkbuf_t *pkbuf)
|
||||
|
@ -776,36 +742,6 @@ int ogs_nas_5gs_encode_ciphering_key_data(ogs_pkbuf_t *pkbuf, ogs_nas_ciphering_
|
|||
return ciphering_key_data->length + sizeof(ciphering_key_data->length);
|
||||
}
|
||||
|
||||
/* 9.11.3.18D Control plane service type
|
||||
* M V 1/2 */
|
||||
int ogs_nas_5gs_decode_control_plane_service_type(ogs_nas_control_plane_service_type_t *control_plane_service_type, ogs_pkbuf_t *pkbuf)
|
||||
{
|
||||
uint16_t size = sizeof(ogs_nas_control_plane_service_type_t);
|
||||
|
||||
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
|
||||
memcpy(control_plane_service_type, pkbuf->data - size, size);
|
||||
|
||||
ogs_trace(" CONTROL_PLANE_SERVICE_TYPE - ");
|
||||
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
int ogs_nas_5gs_encode_control_plane_service_type(ogs_pkbuf_t *pkbuf, ogs_nas_control_plane_service_type_t *control_plane_service_type)
|
||||
{
|
||||
uint16_t size = sizeof(ogs_nas_control_plane_service_type_t);
|
||||
ogs_nas_control_plane_service_type_t target;
|
||||
|
||||
memcpy(&target, control_plane_service_type, size);
|
||||
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
|
||||
memcpy(pkbuf->data - size, &target, size);
|
||||
|
||||
ogs_trace(" CONTROL_PLANE_SERVICE_TYPE - ");
|
||||
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
/* 9.11.3.19 Daylight saving time
|
||||
* O TLV 3 */
|
||||
int ogs_nas_5gs_decode_daylight_saving_time(ogs_nas_daylight_saving_time_t *daylight_saving_time, ogs_pkbuf_t *pkbuf)
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by nas-message.py script v0.2.0
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2020-06-19 19:55:35.929537 by acetcom
|
||||
* Created on: 2020-06-30 08:13:45.429071 by acetcom
|
||||
* from 24501-g41.docx
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -64,9 +64,7 @@ int ogs_nas_5gs_decode_authentication_parameter_rand(ogs_nas_authentication_para
|
|||
int ogs_nas_5gs_decode_authentication_response_parameter(ogs_nas_authentication_response_parameter_t *authentication_response_parameter, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_configuration_update_indication(ogs_nas_configuration_update_indication_t *configuration_update_indication, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_cag_information_list(ogs_nas_cag_information_list_t *cag_information_list, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_ciot_small_data_container(ogs_nas_ciot_small_data_container_t *ciot_small_data_container, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_ciphering_key_data(ogs_nas_ciphering_key_data_t *ciphering_key_data, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_control_plane_service_type(ogs_nas_control_plane_service_type_t *control_plane_service_type, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_daylight_saving_time(ogs_nas_daylight_saving_time_t *daylight_saving_time, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_5gmm_cause(ogs_nas_5gmm_cause_t *gmm_cause, ogs_pkbuf_t *pkbuf);
|
||||
int ogs_nas_5gs_decode_de_registration_type(ogs_nas_de_registration_type_t *de_registration_type, ogs_pkbuf_t *pkbuf);
|
||||
|
@ -174,9 +172,7 @@ int ogs_nas_5gs_encode_authentication_parameter_rand(ogs_pkbuf_t *pkbuf, ogs_nas
|
|||
int ogs_nas_5gs_encode_authentication_response_parameter(ogs_pkbuf_t *pkbuf, ogs_nas_authentication_response_parameter_t *authentication_response_parameter);
|
||||
int ogs_nas_5gs_encode_configuration_update_indication(ogs_pkbuf_t *pkbuf, ogs_nas_configuration_update_indication_t *configuration_update_indication);
|
||||
int ogs_nas_5gs_encode_cag_information_list(ogs_pkbuf_t *pkbuf, ogs_nas_cag_information_list_t *cag_information_list);
|
||||
int ogs_nas_5gs_encode_ciot_small_data_container(ogs_pkbuf_t *pkbuf, ogs_nas_ciot_small_data_container_t *ciot_small_data_container);
|
||||
int ogs_nas_5gs_encode_ciphering_key_data(ogs_pkbuf_t *pkbuf, ogs_nas_ciphering_key_data_t *ciphering_key_data);
|
||||
int ogs_nas_5gs_encode_control_plane_service_type(ogs_pkbuf_t *pkbuf, ogs_nas_control_plane_service_type_t *control_plane_service_type);
|
||||
int ogs_nas_5gs_encode_daylight_saving_time(ogs_pkbuf_t *pkbuf, ogs_nas_daylight_saving_time_t *daylight_saving_time);
|
||||
int ogs_nas_5gs_encode_5gmm_cause(ogs_pkbuf_t *pkbuf, ogs_nas_5gmm_cause_t *gmm_cause);
|
||||
int ogs_nas_5gs_encode_de_registration_type(ogs_pkbuf_t *pkbuf, ogs_nas_de_registration_type_t *de_registration_type);
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
/*******************************************************************************
|
||||
* This file had been created by nas-message.py script v0.2.0
|
||||
* Please do not modify this file but regenerate it via script.
|
||||
* Created on: 2020-06-19 19:55:35.941362 by acetcom
|
||||
* Created on: 2020-06-30 08:13:45.441307 by acetcom
|
||||
* from 24501-g41.docx
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -572,46 +572,6 @@ typedef struct ogs_nas_5gs_configuration_update_command_s {
|
|||
} ogs_nas_5gs_configuration_update_command_t;
|
||||
|
||||
|
||||
/*******************************************************
|
||||
* CONFIGURATION UPDATE COMPLETE
|
||||
******************************************************/
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_CIOT_SMALL_DATA_CONTAINER_PRESENT ((uint64_t)1<<0)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE_PRESENT ((uint64_t)1<<1)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_PRESENT ((uint64_t)1<<2)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_ID_PRESENT ((uint64_t)1<<3)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<4)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_RELEASE_ASSISTANCE_INDICATION_PRESENT ((uint64_t)1<<5)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_UPLINK_DATA_STATUS_PRESENT ((uint64_t)1<<6)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<7)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_ADDITIONAL_INFORMATION_PRESENT ((uint64_t)1<<8)
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_CIOT_SMALL_DATA_CONTAINER_TYPE 0x6F
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE_TYPE 0x80
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PAYLOAD_CONTAINER_TYPE 0x7B
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_ID_TYPE 0x12
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_PDU_SESSION_STATUS_TYPE 0x50
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_RELEASE_ASSISTANCE_INDICATION_TYPE 0xF0
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_UPLINK_DATA_STATUS_TYPE 0x40
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE 0x71
|
||||
#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE_ADDITIONAL_INFORMATION_TYPE 0x24
|
||||
|
||||
typedef struct ogs_nas_5gs_configuration_update_complete_s {
|
||||
/* Mandatory fields */
|
||||
ogs_nas_control_plane_service_type_t control_plane_service_type;
|
||||
|
||||
/* Optional fields */
|
||||
uint64_t presencemask;
|
||||
ogs_nas_ciot_small_data_container_t ciot_small_data_container;
|
||||
ogs_nas_payload_container_type_t payload_container_type;
|
||||
ogs_nas_payload_container_t payload_container;
|
||||
ogs_nas_pdu_session_identity_2_t pdu_session_id;
|
||||
ogs_nas_pdu_session_status_t pdu_session_status;
|
||||
ogs_nas_release_assistance_indication_t release_assistance_indication;
|
||||
ogs_nas_uplink_data_status_t uplink_data_status;
|
||||
ogs_nas_message_container_t nas_message_container;
|
||||
ogs_nas_additional_information_t additional_information;
|
||||
} ogs_nas_5gs_configuration_update_complete_t;
|
||||
|
||||
|
||||
/*******************************************************
|
||||
* AUTHENTICATION REQUEST
|
||||
******************************************************/
|
||||
|
@ -1316,7 +1276,6 @@ typedef struct ogs_nas_5gmm_message_s {
|
|||
ogs_nas_5gs_service_reject_t service_reject;
|
||||
ogs_nas_5gs_service_accept_t service_accept;
|
||||
ogs_nas_5gs_configuration_update_command_t configuration_update_command;
|
||||
ogs_nas_5gs_configuration_update_complete_t configuration_update_complete;
|
||||
ogs_nas_5gs_authentication_request_t authentication_request;
|
||||
ogs_nas_5gs_authentication_response_t authentication_response;
|
||||
ogs_nas_5gs_authentication_reject_t authentication_reject;
|
||||
|
|
|
@ -1,12 +1,2 @@
|
|||
ies = []
|
||||
ies.append({ "iei" : "", "value" : "Control plane service type", "type" : "Control plane service type", "reference" : "9.11.3.18D", "presence" : "M", "format" : "V", "length" : "1/2"})
|
||||
ies.append({ "iei" : "6F", "value" : "CIoT small data container", "type" : "CIoT small data container", "reference" : "9.11.3.18B", "presence" : "O", "format" : "TLV", "length" : "4-257"})
|
||||
ies.append({ "iei" : "8-", "value" : "Payload container type", "type" : "Payload container type", "reference" : "9.11.3.40", "presence" : "O", "format" : "TV", "length" : "1"})
|
||||
ies.append({ "iei" : "7B", "value" : "Payload container", "type" : "Payload container", "reference" : "9.11.3.39", "presence" : "O", "format" : "TLV-E", "length" : "4-65538"})
|
||||
ies.append({ "iei" : "12", "value" : "PDU session ID", "type" : "PDU session identity 2", "reference" : "9.11.3.41", "presence" : "C", "format" : "TV", "length" : "2"})
|
||||
ies.append({ "iei" : "50", "value" : "PDU session status", "type" : "PDU session status", "reference" : "9.11.3.44", "presence" : "O", "format" : "TLV", "length" : "4-34"})
|
||||
ies.append({ "iei" : "F-", "value" : "Release assistance indication", "type" : "Release assistance indication", "reference" : "9.11.3.46A", "presence" : "O", "format" : "TV", "length" : "1"})
|
||||
ies.append({ "iei" : "40", "value" : "Uplink data status", "type" : "Uplink data status", "reference" : "9.11.3.57", "presence" : "O", "format" : "TLV", "length" : "4-34"})
|
||||
ies.append({ "iei" : "71", "value" : "NAS message container", "type" : "message container", "reference" : "9.11.3.33", "presence" : "O", "format" : "TLV-E", "length" : "4-n"})
|
||||
ies.append({ "iei" : "24", "value" : "Additional information", "type" : "Additional information", "reference" : "9.11.2.1", "presence" : "O", "format" : "TLV", "length" : "3-n"})
|
||||
msg_list[key]["ies"] = ies
|
||||
|
|
|
@ -230,7 +230,7 @@ msg_list["SERVICE REQUEST"]["table"] = 15
|
|||
msg_list["SERVICE ACCEPT"]["table"] = 16
|
||||
msg_list["SERVICE REJECT"]["table"] = 17
|
||||
msg_list["CONFIGURATION UPDATE COMMAND"]["table"] = 18
|
||||
msg_list["CONFIGURATION UPDATE COMPLETE"]["table"] = 29
|
||||
msg_list["CONFIGURATION UPDATE COMPLETE"]["table"] = 19
|
||||
msg_list["IDENTITY REQUEST"]["table"] = 20
|
||||
msg_list["IDENTITY RESPONSE"]["table"] = 21
|
||||
msg_list["NOTIFICATION"]["table"] = 22
|
||||
|
|
|
@ -504,7 +504,7 @@ void gmm_state_authentication(ogs_fsm_t *s, amf_event_t *e)
|
|||
break;
|
||||
|
||||
default:
|
||||
ogs_warn("Unknown message[%d]", nas_message->gmm.h.message_type);
|
||||
ogs_error("Unknown message[%d]", nas_message->gmm.h.message_type);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -735,7 +735,7 @@ void gmm_state_security_mode(ogs_fsm_t *s, amf_event_t *e)
|
|||
break;
|
||||
|
||||
default:
|
||||
ogs_warn("Unknown message[%d]", nas_message->gmm.h.message_type);
|
||||
ogs_error("Unknown message[%d]", nas_message->gmm.h.message_type);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -911,7 +911,7 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
|
|||
break;
|
||||
|
||||
default:
|
||||
ogs_warn("Unknown message[%d]", nas_message->gmm.h.message_type);
|
||||
ogs_error("Unknown message [%d]", nas_message->gmm.h.message_type);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -541,15 +541,9 @@ ogs_pkbuf_t *testgmm_build_configuration_update_complete(test_ue_t *test_ue)
|
|||
{
|
||||
ogs_nas_5gs_message_t message;
|
||||
ogs_pkbuf_t *pkbuf = NULL;
|
||||
ogs_nas_5gs_configuration_update_complete_t *configuration_update_complete =
|
||||
&message.gmm.configuration_update_complete;
|
||||
ogs_nas_control_plane_service_type_t *control_plane_service_type = NULL;
|
||||
|
||||
ogs_assert(test_ue);
|
||||
|
||||
control_plane_service_type =
|
||||
&configuration_update_complete->control_plane_service_type;
|
||||
|
||||
memset(&message, 0, sizeof(message));
|
||||
message.h.security_header_type =
|
||||
OGS_NAS_SECURITY_HEADER_INTEGRITY_PROTECTED_AND_CIPHERED;
|
||||
|
@ -560,9 +554,6 @@ ogs_pkbuf_t *testgmm_build_configuration_update_complete(test_ue_t *test_ue)
|
|||
OGS_NAS_EXTENDED_PROTOCOL_DISCRIMINATOR_5GMM;
|
||||
message.gmm.h.message_type = OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE;
|
||||
|
||||
control_plane_service_type->value =
|
||||
OGS_NAS_5GS_CONTROL_PLANE_SERVICE_TYPE_MO;
|
||||
|
||||
return test_nas_5gs_security_encode(test_ue, &message);
|
||||
}
|
||||
|
||||
|
|
|
@ -292,6 +292,16 @@ static void test1_func(abts_case *tc, void *data)
|
|||
rv = testgnb_ngap_send(ngap, sendbuf);
|
||||
ABTS_INT_EQUAL(tc, OGS_OK, rv);
|
||||
|
||||
#if 0 /* No need to send configuration update complete */
|
||||
/* Send Configuration update complete */
|
||||
gmmbuf = testgmm_build_configuration_update_complete(&test_ue);
|
||||
ABTS_PTR_NOTNULL(tc, gmmbuf);
|
||||
sendbuf = testngap_build_uplink_nas_transport(&test_ue, gmmbuf);
|
||||
ABTS_PTR_NOTNULL(tc, sendbuf);
|
||||
rv = testgnb_ngap_send(ngap, sendbuf);
|
||||
ABTS_INT_EQUAL(tc, OGS_OK, rv);
|
||||
#endif
|
||||
|
||||
/* Receive PDU session establishment accept */
|
||||
recvbuf = testgnb_ngap_read(ngap);
|
||||
ABTS_PTR_NOTNULL(tc, recvbuf);
|
||||
|
|
Loading…
Reference in New Issue