⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r64_encode_message.c

📁 wimax bs模拟器
💻 C
📖 第 1 页 / 共 5 页
字号:
}/********************************************************************************* 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 + -