📄 r64_decode_message.cpp
字号:
/********************************************************************************** Copyright (c) 2007, UTStarcom, Inc.** All Rights Reserved.**** Subsystem : Wimax BS** File : r64_decode_message.c** Created By: scott.wang** Created On: 1/18/2007**** Purpose:** R64 decode function** History:** Programmer Date Rev Description** Scott.wang 1/18/2007 0.0 Creating file******************************************************************************/#include "global.h"#include "r64_type_length.h"#include "r64_message_ie.h"#include "r64_message.h"#include "r64_endec.h"#include "common.h"/* decode function type declare */int r64_decode_ft_qos(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_handoff(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_context(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_r3_mobility(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_paging(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_rrm(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_auth_relay(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_acct_info(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);/* decode message type declare */int r64_decode_ft_qos_msg_registration_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_qos_msg_registration_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_qos_msg_pd_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_qos_msg_pd_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_qos_msg_pr_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_qos_msg_pr_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_qos_msg_lu_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_qos_msg_lu_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_handoff_msg_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_handoff_msg_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_handoff_msg_confirm(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_handoff_msg_complete(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_handoff_msg_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_pre_registration(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_registration_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_de_registration_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_modification_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_pre_registration_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_registration_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_de_registration_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_modification_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_registration_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_setup_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_setup_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_modify_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_release_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_release_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_release_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_de_registration_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_data_path_msg_setup_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_context_msg_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_context_msg_report(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_context_msg_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_context_msg_rsp(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_context_msg_ms_info_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_context_msg_ms_info_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_r3_mobility_msg_relocation_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_r3_mobility_msg_relocation_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_r3_mobility_msg_relocation_confirm(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_paging_msg_location_update_reuqest(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_paging_msg_location_update_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_paging_msg_location_update_confirm(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_paging_msg_paging_announce(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_paging_msg_init_paging_req(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_paging_msg_init_paging_rsp(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_rrm_msg_phy_parameter_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_rrm_msg_phy_parameter_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_rrm_msg_spare_capacity_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_rrm_msg_spare_capacity_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_auth_relay_msg_eap_start(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_auth_relay_msg_eap_transfer(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_auth_relay_msg_authenticated_eap_start(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_auth_relay_msg_authenticated_eap_relay(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_delete_ms_context_directive(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_delete_ms_context_directive_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_entry_ms_state_change_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_entry_ms_state_change_directive(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_entry_ms_state_change_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_entry_ms_state_change_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_exit_ms_state_change_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_exit_ms_state_change_directive(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_exit_ms_state_change_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_im_exit_ms_state_change_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_nw_entry_ms_state_change_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_nw_entry_ms_state_change_directive(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_nw_entry_ms_state_change_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_ms_state_change_msg_nw_entry_ms_state_change_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_acct_info_msg_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_acct_info_msg_report(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);int r64_decode_ft_acct_info_msg_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);/* decode tlv functions */int r64_decode_tlv_context_purpose_indicator(R64_CONTEXT_PURPOSE_INDICATOR_S * p_context_purpose_indicator, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ms_id(R64_MS_ID_S * p_ms_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ms_nai(R64_MS_NAI_S * p_ms_nai, BYTE * p_offset, WORD w_len);int r64_decode_tlv_bs_id(R64_BS_ID_S * p_bs_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sf_id(R64_SFID_S * p_sf_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_cause_code(R64_CAUSE_CODE_S * p_cause_code, BYTE * p_offset, WORD w_len);int r64_decode_tlv_registration_type(R64_REGISTRATION_TYPE_S * p_registration_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_cs_type(R64_CS_TYPE_S * p_cs_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_key_sn(R64_KEY_SN_S * p_key_sn, BYTE * p_offset, WORD w_len);int r64_decode_tlv_gw_id(R64_GW_ID_S * p_gw_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_anchor_gw_info(R64_ANCHOR_GW_INFO_S * p_anchor_gw_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_anchor_authenticator_id(R64_ANCHOR_AUTHENTICATOR_ID_S * p_authenticator_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ak(R64_AK_S * p_ak, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ak_id(R64_AK_ID_S * p_ak_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ak_life_time(R64_AK_LIFE_TIME_S * p_ak_life_time, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ak_sn(R64_AK_SN_S * p_ak_sn, BYTE * p_offset, WORD w_len);int r64_decode_tlv_eap_message(R64_EAP_MESSAGE_S * p_eap_message, BYTE * p_offset, WORD w_len);int r64_decode_tlv_packet_classifier_rule_priority(R64_PACKET_CLASSIFIER_RULE_PRIORITY_S * p_packet_classifier_rule_priority, BYTE * p_offset, WORD w_len);int r64_decode_tlv_dscp_rang_and_mask(R64_DSCP_RANG_AND_MASK_S * p_dscp_rang_and_mask, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ip_protocol(R64_IP_PROTOCOL_S * p_ip_protocol, BYTE * p_offset, WORD w_len);int r64_decode_tlv_source_address_and_mask(R64_SOURCE_ADDRESS_AND_MASK_S * p_source_address_and_mask, BYTE * p_offset, WORD w_len);int r64_decode_tlv_destination_address_and_mask(R64_DESTINATION_ADDRESS_AND_MASK_S * p_destination_address_and_mask, BYTE * p_offset, WORD w_len);int r64_decode_tlv_source_port_range(R64_SOURCE_PORT_RANGE_S * p_source_port_range, BYTE * p_offset, WORD w_len);int r64_decode_tlv_destination_port_range(R64_DESTINATION_PORT_RANGE_S * p_destination_port_range, BYTE * p_offset, WORD w_len);int r64_decode_tlv_trafic_priority(R64_TRAFIC_PRIORITY_S * p_trafic_priority, BYTE * p_offset, WORD w_len);int r64_decode_tlv_maximam_sustained_trafic_rate(R64_MAXIMAM_SUSTAINED_TRAFIC_RATE_S * p_maximam_sustained_trafic_rate, BYTE * p_offset, WORD w_len);int r64_decode_tlv_minimam_reserved_trafic_rate(R64_MINIMAM_RESERVED_TRAFIC_RATE_S * p_minimam_reserved_trafic_rate, BYTE * p_offset, WORD w_len);int r64_decode_tlv_maximam_latency(R64_MAXIMAM_LATENCY_S * p_maximam_latency, BYTE * p_offset, WORD w_len);int r64_decode_tlv_classifier_action(R64_CLASSIFIER_ACTION_S * p_classifier_action, BYTE * p_offset, WORD w_len);int r64_decode_tlv_tolerated_jitter(R64_TOLERATED_JITTER_S * p_tolerated_jitter, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sdu_size(R64_SDU_SIZE_S * p_sdu_size, BYTE * p_offset, WORD w_len);int r64_decode_tlv_unsolicited_grant_interval(R64_UNSOLICITED_GRANT_INTERVAL_S * p_unsolicited_grant_interval, BYTE * p_offset, WORD w_len);int r64_decode_tlv_maximam_trafic_burst(R64_MAXIMAM_TRAFIC_BURST_S * p_maximam_trafic_burst, BYTE * p_offset, WORD w_len);int r64_decode_tlv_service_flow_type(R64_SERVICE_FLOW_TYPE_S * p_service_flow_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_request_transmission_policy_type_of_data_delivery_service(R64_REQUEST_TRANSMISSION_POLICY_TYPE_OF_DATA_DELIVERY_SERVICE_S * p_request_transmission_policy_type_of_data_delivery_service, BYTE * p_offset, WORD w_len);int r64_decode_tlv_reduced_source_code(R64_REDUCED_SOURCE_CODE_S * p_reduced_source_code, BYTE * p_offset, WORD w_len);int r64_decode_tlv_data_path_type(R64_DATA_PATH_TYPE_S * p_data_path_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_data_path_id(R64_DATA_PATH_ID_S * p_data_path_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_reservation_action(R64_RESERVATION_ACTION_S * p_reservation_action, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sa_id(R64_SA_ID_S * p_sa_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sa_index(R64_SA_INDEX_S * p_sa_index, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sa_type(R64_SA_TYPE_S * p_sa_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sa_service_type(R64_SA_SERVICE_TYPE_S * p_sa_service_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_dl_phy_quality_info(R64_DL_PHY_QUALITY_INFO_S * p_dl_phy_quality_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ul_phy_quality_info(R64_UL_PHY_QUALITY_INFO_S * p_ul_phy_quality_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_relative_delay(R64_RELATIVE_DELAY_S * p_relative_delay, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ho_id(R64_HO_ID_S * p_ho_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_service_level_prediction(R64_SERVICE_LEVEL_PREDICTION_S * p_service_level_prediction, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ho_process_optimization(R64_HO_PROCESS_OPTIMIZATION_S * p_ho_process_optimization, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ho_authorization_policy_support(R64_HO_AUTHORIZATION_POLICY_SUPPORT_S * p_ho_authorization_policy_support, BYTE * p_offset, WORD w_len);int r64_decode_tlv_data_path_establishment_option(R64_DATA_PATH_ESTABLISHMENT_OPTION_S * p_data_path_establishment_option, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ho_authorization_policy_indicator(R64_HO_AUTHORIZATION_POLICY_INDICATOR_S * p_ho_authorization_policy_indicator, BYTE * p_offset, WORD w_len);int r64_decode_tlv_action_time(R64_ACTION_TIME_S * p_action_time, BYTE * p_offset, WORD w_len);int r64_decode_tlv_resource_retain_type(R64_RESOURCE_RETAIN_TYPE_S * p_resource_retain_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_resource_retain_time(R64_RESOURCE_RETAIN_TIME_S * p_resource_retain_time, BYTE * p_offset, WORD w_len);int r64_decode_tlv_preamble_index_subchannel_index(R64_PREAMBLE_INDEX_SUBCHANNEL_INDEX_S * p_preamble_index_subchannel_index, BYTE * p_offset, WORD w_len);int r64_decode_tlv_auth_result(R64_AUTH_RESULT_S * p_auth_result, BYTE * p_offset, WORD w_len);int r64_decode_tlv_number_of_uplink_cids(R64_NUMBER_OF_UPLINK_CIDS_S * p_number_of_uplink_cids, BYTE * p_offset, WORD w_len);int r64_decode_tlv_number_of_downlink_cids(R64_NUMBER_OF_DOWNLINK_CIDS_S * p_number_of_downlink_cids, BYTE * p_offset, WORD w_len);int r64_decode_tlv_number_of_classifiers(R64_NUMBER_OF_CLASSIFIERS_S * p_number_of_classifiers, BYTE * p_offset, WORD w_len);int r64_decode_tlv_auth_policy(R64_AUTH_POLICY_S * p_auth_policy, BYTE * p_offset, WORD w_len);int r64_decode_tlv_pkmv2_message_code(R64_PKMV2_MESSAGE_CODE_S * p_pkmv2_message_code, BYTE * p_offset, WORD w_len);int r64_decode_tlv_reservation_result(R64_RESERVATION_RESULT_S * p_reservation_result, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sf_direction(R64_SF_DIRECTION_S * p_sf_direction, BYTE * p_offset, WORD w_len);int r64_decode_tlv_correlation_id(R64_CORRELATION_ID_S * p_correlation_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_target_serving_indicator(R64_TARGET_SERVING_INDICATOR_S * p_target_serving_indicator, BYTE * p_offset, WORD w_len);int r64_decode_tlv_phsi(R64_PHSI_S * p_phsi, BYTE * p_offset, WORD w_len);int r64_decode_tlv_phsm(R64_PHSM_S * p_phsm, BYTE * p_offset, WORD w_len);int r64_decode_tlv_phss(R64_PHSS_S * p_phss, BYTE * p_offset, WORD w_len);int r64_decode_tlv_phsf(R64_PHSF_S * p_phsf, BYTE * p_offset, WORD w_len);int r64_decode_tlv_phsv(R64_PHSV_S * p_phsv, BYTE * p_offset, WORD w_len);int r64_decode_tlv_phs_rule_action(R64_PHS_RULE_ACTION_S * p_phs_rule_action, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_cycle(R64_PAGING_CYCLE_S * p_paging_cycle, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_offset(R64_PAGING_OFFSET_S * p_paging_offset, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_group_id(R64_PAGING_GROUP_ID_S * p_paging_group_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_action(R64_PAGING_ACTION_S * p_paging_action, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_cause(R64_PAGING_CAUSE_S * p_paging_cause, BYTE * p_offset, WORD w_len);int r64_decode_tlv_powerdown_indicator(R64_POWERDOWN_INDICATOR_S * p_powerdown_indicator, BYTE * p_offset, WORD w_len);int r64_decode_tlv_anchor_pc_id(R64_ANCHOR_PC_ID_S * p_anchor_pc_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_lu_status(R64_LU_STATUS_S * p_lu_status, BYTE * p_offset, WORD w_len);int r64_decode_tlv_lu_indicator(R64_LU_INDICATOR_S * p_lu_indicator, BYTE * p_offset, WORD w_len);int r64_decode_tlv_idle_mode_retain_info(R64_IDLE_MODE_RETAIN_INFO_S * p_idle_mode_retain_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_cycle_request(R64_PAGING_CYCLE_REQUEST_S * p_paging_cycle_request, BYTE * p_offset, WORD w_len);int r64_decode_tlv_idle_mode_timer(R64_IDLE_MODE_TIMER_S * p_idle_mode_timer, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_controller_id(R64_PAGING_CONTROLLER_ID_S * p_paging_controller_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_im_event_code(R64_IM_EVENT_CODE_S * p_im_event_code, BYTE * p_offset, WORD w_len);int r64_decode_tlv_authentication_indicator(R64_AUTHENTICATION_INDICATOR_S * p_authentication_indicator, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ho_type(R64_HO_TYPE_S * p_ho_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_pre_reg_result_code(R64_PRE_REG_RESULT_CODE_S * p_pre_reg_result_code, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ho_indication_type(R64_HO_INDICATION_TYPE_S * p_ho_indication_type, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sbc_context(R64_SBC_CONTEXT_S * p_sbc_context, BYTE * p_offset, WORD w_len);int r64_decode_tlv_reg_context(R64_REG_CONTEXT_S * p_reg_context, BYTE * p_offset, WORD w_len);int r64_decode_tlv_pkm_context(R64_PKM_CONTEXT_S * p_pkm_context, BYTE * p_offset, WORD w_len);int r64_decode_tlv_tek_context(R64_TEK_CONTEXT_S * p_tek_context, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ak_context(R64_AK_CONTEXT_S * p_ak_context, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sa_descriptor(R64_SA_DESCRIPTOR_S * p_sa_descriptor, BYTE * p_offset, WORD w_len);int r64_decode_tlv_rule_index(R64_RULE_INDEX_S * p_rule_index, BYTE * p_offset, WORD w_len);int r64_decode_tlv_packet_classification_rule(R64_PACKET_CLASSIFICATION_RULE_S * p_packet_classification_rule, BYTE * p_offset, WORD w_len);int r64_decode_tlv_phs_context(R64_PHS_CONTEXT_S * p_phs_context, BYTE * p_offset, WORD w_len);int r64_decode_tlv_data_path_info(R64_DATA_PATH_INFO_S * p_data_path_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_paging_info(R64_PAGING_INFO_S * p_paging_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_be_data_delivery_service(R64_BE_DATA_DELIVERY_SERVICE_S * p_be_data_delivery_service, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ugs_delivery_service(R64_UGS_DELIVERY_SERVICE_S * p_ugs_delivery_service, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ertvr_delivery_service(R64_ERTVR_DELIVERY_SERVICE_S * p_ertvr_delivery_service, BYTE * p_offset, WORD w_len);int r64_decode_tlv_qos_info_resource_descriptor(R64_QOS_INFO_RESOURCE_DESCRIPTOR_S * p_qos_info_resource_descriptor, BYTE * p_offset, WORD w_len);int r64_decode_tlv_tos_id(R64_TOS_ID_S * p_tos_id, BYTE * p_offset, WORD w_len);int r64_decode_tlv_sf_info(R64_SF_INFO_S * p_sf_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ms_info(R64_MS_INFO_S * p_ms_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_bs_info(R64_BS_INFO_S * p_bs_info, BYTE * p_offset, WORD w_len);int r64_decode_tlv_auth_complete(R64_AUTH_COMPLETE_S * p_auth_complete, BYTE * p_offset, WORD w_len);int r64_decode_tlv_ho_operation_mode(R64_HO_OPERATION_MODE_S * p_ho_operation_mode, BYTE * p_offset, WORD w_len);int r64_decode_tlv_init_paging_rsp_code(R64_INIT_PAGING_RSP_CODE_S * p_init_paging_rsp_code, BYTE * p_offset, WORD w_len);int r64_decode_tlv_acct_info(R64_ACCT_INFO_S * p_acct_info, BYTE * p_offset, WORD w_len);int r64_check_tlvs_len(BYTE * p_buf, WORD w_tlvs_len);int r64_decode_msg_header_r6(UDP_MSG_S * p_udp_msg, R64_MESSAGE_HEAD_S * p_head);int r64_decode_msg_header_r4(UDP_MSG_S * p_udp_msg, R64_MESSAGE_HEAD_S * p_head);int r64_decode_msg_header(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg);DWORD adw_r64_decode_msg_stat[R64_MAX_FUNCTION_TYPE][R64_MAX_MSG_TYPE]={{0}};/********************************************************************************* Function Name: r64_decode_msg** Input parameters description: a - p_udp_msg, pointer to the msg that contains the original data b - p_r64_msg, pointer to the msg that saves the encode result** Output results description: a - ERROR, encode failure b - SUCCESS, encode success.** function description: r64 decode function entry*******************************************************************************/int r64_decode_msg(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = FAILURE;/* memcpy((BYTE *)p_r64_msg, p_udp_msg->data, p_udp_msg->dataLen); return SUCCESS;*/ if (FAILURE == r64_decode_msg_header(p_udp_msg, p_r64_msg)) { printf("r64_decode_msg, decode msg header error.\n"); R64_SAVE_DECODE_ERROR_LINE; \ return FAILURE; } /* if just header exist, not need to decode other tlv */ if ((p_r64_msg->msgHead.length == R64_R4_HEADER_LEN) && (p_r64_msg->msgHead.ifType == IF_TYPE_R4)) return SUCCESS; if ((p_r64_msg->msgHead.length == R64_R6_HEADER_LEN) && (p_r64_msg->msgHead.ifType == IF_TYPE_R6)) return SUCCESS; switch(p_r64_msg->msgHead.functionType) { case R64_FUNCTION_TYPE_QOS: i_ret = r64_decode_ft_qos(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_HANDOFF: i_ret = r64_decode_ft_handoff(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_DATA_PATH: i_ret = r64_decode_ft_data_path(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_CONTEXT: i_ret = r64_decode_ft_context(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_R3_MOBILITY: i_ret = r64_decode_ft_r3_mobility(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_PAGING: i_ret = r64_decode_ft_paging(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_RRM: i_ret = r64_decode_ft_rrm(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_AUTH_RELAY: i_ret = r64_decode_ft_auth_relay(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_MS_STATE_CHANGE: i_ret = r64_decode_ft_ms_state_change(p_udp_msg, p_r64_msg); break; case R64_FUNCTION_TYPE_ACCT_INFO: i_ret = r64_decode_ft_acct_info(p_udp_msg, p_r64_msg); break; default: R64_SAVE_DECODE_ERROR_LINE; printf("Unknown function type %d\n", p_r64_msg->msgHead.functionType); break; } if (FAILURE == i_ret) { printf("r64_decode_msg Decode error \n"); } else { adw_r64_decode_msg_stat[p_r64_msg->msgHead.functionType-1][p_r64_msg->msgHead.messageType-1]++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -