📄 r64_encode_message.c
字号:
}/********************************************************************************* Function Name: r64_encode_header** Input parameters description: a - p_udp_msg, pointer to the msg that saves the encode result b - p_r3_msg, pointer to the msg that contains the original data** Output results description: a - ERROR, encode msg header failure b - OK, encode msg header success.** function description: r64 encode msg header*******************************************************************************/int r64_encode_header(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ R64_R6_HEADER_S * p_r6_header = NULL; R64_R4_HEADER_S * p_r4_header = NULL; p_udp_msg->srcIp = p_r64_msg->msgHead.sourceIp; p_udp_msg->destIp = p_r64_msg->msgHead.destinationIp; p_udp_msg->srcUdpPort = p_r64_msg->msgHead.sourceUdpPort; p_udp_msg->destUdpPort = p_r64_msg->msgHead.destinationUdpPort; if (IF_TYPE_R6 == p_r64_msg->msgHead.ifType) { p_r6_header = (R64_R6_HEADER_S *)p_udp_msg->data; p_r6_header->b_ver = p_r64_msg->msgHead.version; p_r6_header->b_flags = p_r64_msg->msgHead.flags; p_r6_header->b_function_type = p_r64_msg->msgHead.functionType; p_r6_header->b_msg_type = p_r64_msg->msgHead.messageType; p_r6_header->w_len = htons(p_udp_msg->dataLen); memcpy(p_r6_header->ab_msid, p_r64_msg->msgHead.msId.id, R64_MSID_LENGTH); p_r6_header->ab_rsvd[0] = 0; p_r6_header->ab_rsvd[1] = 0; p_r6_header->ab_rsvd[2] = 0; p_r6_header->ab_rsvd[3] = 0; p_r6_header->w_transaction_id = htons(p_r64_msg->msgHead.transId); p_r6_header->b_rsvd = 0; p_r6_header->b_fragment_id = 0; } else { if (IF_TYPE_R4 == p_r64_msg->msgHead.ifType) { p_r4_header = (R64_R4_HEADER_S *)p_udp_msg->data; p_r4_header->b_ver = p_r64_msg->msgHead.version; p_r4_header->b_flags = p_r64_msg->msgHead.flags; p_r4_header->b_function_type = p_r64_msg->msgHead.functionType; p_r4_header->b_msg_type = p_r64_msg->msgHead.messageType; p_r4_header->w_len = R64_R4_HEADER_LEN; p_r4_header->w_len = htons(p_udp_msg->dataLen);; memcpy(p_r4_header->ab_msid, p_r64_msg->msgHead.msId.id, R64_MSID_LENGTH); p_r4_header->ab_rsvd[0] = 0; p_r4_header->ab_rsvd[1] = 0; p_r4_header->ab_rsvd[2] = 0; p_r4_header->ab_rsvd[3] = 0; p_r4_header->w_transaction_id = htons(p_r64_msg->msgHead.transId); p_r4_header->b_rsvd = 0; p_r4_header->b_fragment_id = 0; p_r4_header->w_src_id_type = htons(R64_T_SRC_ID); p_r4_header->w_src_id_len = sizeof(DWORD); p_r4_header->w_src_id_len = htons(p_r4_header->w_src_id_len); p_r4_header->dw_src_entity_id = htonl(p_r64_msg->msgHead.sourceId); p_r4_header->w_dst_id_type = htons(R64_T_DST_ID); p_r4_header->w_dst_id_len = sizeof(DWORD); p_r4_header->w_dst_id_len = htons(p_r4_header->w_dst_id_len); p_r4_header->dw_dst_entity_id = htonl(p_r64_msg->msgHead.destinationId); } else { printf("r64_encode_header, unknown interface type %d\n", p_r64_msg->msgHead.ifType); return ERROR; } } return OK;}/********************************************************************************* Function Name: r64_encode_ft_???** Input parameters description: a - p_udp_msg, pointer to the msg that saves the encode result b - p_r64_msg, pointer to the msg that contains the original data** Output results description: a - ERROR, encode msg access failure b - OK, encode msg access success.** function description: r64 encode function type entry*******************************************************************************/int r64_encode_ft_qos(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = ERROR; switch (p_r64_msg->msgHead.messageType) { case R64_ID_RESOURCE_REGISTRATION_REQUEST: i_ret = r64_encode_ft_qos_msg_registration_request(p_udp_msg, p_r64_msg); break; case R64_ID_RESOURCE_REGISTRATION_RESPONSE: i_ret = r64_encode_ft_qos_msg_registration_response(p_udp_msg, p_r64_msg); break; case R64_ID_PD_REQUEST: i_ret = r64_encode_ft_qos_msg_pd_request(p_udp_msg, p_r64_msg); break; case R64_ID_PD_RESPONSE: i_ret = r64_encode_ft_qos_msg_pd_response(p_udp_msg, p_r64_msg); break; case R64_ID_PR_REQUEST: i_ret = r64_encode_ft_qos_msg_pr_request(p_udp_msg, p_r64_msg); break; case R64_ID_PR_RESPONSE: i_ret = r64_encode_ft_qos_msg_pr_response(p_udp_msg, p_r64_msg); break; case R64_ID_LU_REQUEST: i_ret = r64_encode_ft_qos_msg_lu_request(p_udp_msg, p_r64_msg); break; case R64_ID_LU_RESPONSE: i_ret = r64_encode_ft_qos_msg_lu_response(p_udp_msg, p_r64_msg); break; default: printf("r64_encode_ft_qos, unknown msg type %d\n", p_r64_msg->msgHead.messageType); break; } return i_ret;}int r64_encode_ft_handoff(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = ERROR; switch (p_r64_msg->msgHead.messageType) { case R64_ID_HANDOFF_REQUEST: i_ret = r64_encode_ft_handoff_msg_request(p_udp_msg, p_r64_msg); break; case R64_ID_HANDOFF_RESPONSE: i_ret = r64_encode_ft_handoff_msg_response(p_udp_msg, p_r64_msg); break; case R64_ID_HANDOFF_CONFIRM: i_ret = r64_encode_ft_handoff_msg_confirm(p_udp_msg, p_r64_msg); break; case R64_ID_HANDOFF_COMPLETE: i_ret = r64_encode_ft_handoff_msg_complete(p_udp_msg, p_r64_msg); break; case R64_ID_HANDOFF_ACK: i_ret = r64_encode_ft_handoff_msg_ack(p_udp_msg, p_r64_msg); break; default: printf("r64_encode_ft_handoff, unknown msg type %d\n", p_r64_msg->msgHead.messageType); break; } return i_ret;}int r64_encode_ft_data_path(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = ERROR; switch (p_r64_msg->msgHead.messageType) { case R64_ID_DATA_PATH_PRE_REGISTRATION_REQUEST: i_ret = r64_encode_ft_data_path_msg_pre_registration(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_REGISTRATION_REQUEST: i_ret = r64_encode_ft_data_path_msg_registration_request(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_DE_REGISTRATION_REQUEST: i_ret = r64_encode_ft_data_path_msg_de_registration_request(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_MODIFICATION_REQUEST: i_ret = r64_encode_ft_data_path_msg_modification_request(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_PRE_REGISTRATION_RESPONSE: i_ret = r64_encode_ft_data_path_msg_pre_registration_response(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_REGISTRATION_RESPONSE: i_ret = r64_encode_ft_data_path_msg_registration_response(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_DE_REGISTRATION_RESPONSE: i_ret = r64_encode_ft_data_path_msg_de_registration_response(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_MODIFICATION_RESPONSE: i_ret = r64_encode_ft_data_path_msg_modification_response(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_REGISTRATION_ACK: i_ret = r64_encode_ft_data_path_msg_registration_ack(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_SETUP_REQUEST: i_ret = r64_encode_ft_data_path_msg_setup_request(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_SETUP_RESPONSE: i_ret = r64_encode_ft_data_path_msg_setup_response(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_MODIFY_ACK: i_ret = r64_encode_ft_data_path_msg_modify_ack(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_RELEASE_REQUEST: i_ret = r64_encode_ft_data_path_msg_release_request(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_RELEASE_RESPONSE: i_ret = r64_encode_ft_data_path_msg_release_response(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_RELEASE_ACK: i_ret = r64_encode_ft_data_path_msg_release_ack(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_DE_REGISTRATION_ACK: i_ret = r64_encode_ft_data_path_msg_de_registration_ack(p_udp_msg, p_r64_msg); break; case R64_ID_DATA_PATH_SETUP_ACK: i_ret = r64_encode_ft_data_path_msg_setup_ack(p_udp_msg, p_r64_msg); break; default: printf("r64_encode_ft_data_path, unknown msg type %d\n", p_r64_msg->msgHead.messageType); break; } return i_ret;}int r64_encode_ft_context(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = ERROR; switch (p_r64_msg->msgHead.messageType) { case R64_ID_CONTEXT_REQUEST: i_ret = r64_encode_ft_context_msg_request(p_udp_msg, p_r64_msg); break; case R64_ID_CONTEXT_REPORT: i_ret = r64_encode_ft_context_msg_report(p_udp_msg, p_r64_msg); break; case R64_ID_CONTEXT_ACK: i_ret = r64_encode_ft_context_msg_ack(p_udp_msg, p_r64_msg); break; case R64_ID_CONTEXT_RSP: i_ret = r64_encode_ft_context_msg_rsp(p_udp_msg, p_r64_msg); break; case R64_ID_MS_INFO_REQUEST: i_ret = r64_encode_ft_context_msg_ms_info_request(p_udp_msg, p_r64_msg); break; case R64_ID_MS_INFO_RESPONSE: i_ret = r64_encode_ft_context_msg_ms_info_response(p_udp_msg, p_r64_msg); break; default: printf("r64_encode_ft_context, unknown msg type %d\n", p_r64_msg->msgHead.messageType); break; } return i_ret;}int r64_encode_ft_r3_mobility(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = ERROR; switch (p_r64_msg->msgHead.messageType) { case R64_ID_RELOCATION_REQUEST: i_ret = r64_encode_ft_r3_mobility_msg_relocation_request(p_udp_msg, p_r64_msg); break; case R64_ID_RELOCATION_RESPONSE: i_ret = r64_encode_ft_r3_mobility_msg_relocation_response(p_udp_msg, p_r64_msg); break; case R64_ID_RELOCATION_CONFIRM: i_ret = r64_encode_ft_r3_mobility_msg_relocation_confirm(p_udp_msg, p_r64_msg); break; default: printf("r64_encode_ft_r3_mobility, unknown msg type %d\n", p_r64_msg->msgHead.messageType); break; } return i_ret;}int r64_encode_ft_paging(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = ERROR; switch (p_r64_msg->msgHead.messageType) { case R64_ID_LOCATION_UPDATE_REQUEST: i_ret = r64_encode_ft_paging_msg_location_update_reuqest(p_udp_msg, p_r64_msg); break; case R64_ID_LOCATION_UPDATE_RESPONSE: i_ret = r64_encode_ft_paging_msg_location_update_response(p_udp_msg, p_r64_msg); break; case R64_ID_LOCATION_UPDATE_CONFRIM: i_ret = r64_encode_ft_paging_msg_location_update_confirm(p_udp_msg, p_r64_msg); break; case R64_ID_PAGING_ANNOUNCE: i_ret = r64_encode_ft_paging_msg_paging_announce(p_udp_msg, p_r64_msg); break; case R64_ID_INIT_PAGING_REQ: i_ret = r64_encode_ft_paging_msg_init_paging_req(p_udp_msg, p_r64_msg); break; case R64_ID_INIT_PAGING_RSP: i_ret = r64_encode_ft_paging_msg_init_paging_rsp(p_udp_msg, p_r64_msg); break; default: printf("r64_encode_ft_paging, unknown msg type %d\n", p_r64_msg->msgHead.messageType); break; } return i_ret;}int r64_encode_ft_rrm(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){ int i_ret = ERROR; switch (p_r64_msg->msgHead.messageType) { case R64_ID_PHY_PARAMETER_REQUEST: i_ret = r64_encode_ft_rrm_msg_phy_parameter_request(p_udp_msg, p_r64_msg); break; case R64_ID_PHY_PARAMETER_RESPONSE: i_ret = r64_encode_ft_rrm_msg_phy_parameter_response(p_udp_msg, p_r64_msg); break; case R64_ID_SPARE_CAPACITY_REQUEST:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -