r64_decode_message.c

来自「wimax bs模拟器」· C语言 代码 · 共 1,553 行 · 第 1/5 页

C
1,553 行
字号
    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathRegRsp);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_REGISTRATION_TYPE:            i_ret = r64_decode_tlv_registration_type(&p_msg->regType, p_value, w_one_tlv_len);            p_msg->present.regTypePresent = 1;            break;        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_de_registration_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    R64_DATA_PATH_DEREGISTER_RESPONSE_S * p_msg;    char * p_name = "R64_DATA_PATH_DEREGISTER_RESPONSE";    BYTE * p_offset;    WORD w_one_tlv_len = 0;    WORD w_tlvs_len;    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathDeregRsp);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_REGISTRATION_TYPE:            i_ret = r64_decode_tlv_registration_type(&p_msg->deregType, p_value, w_one_tlv_len);            p_msg->present.deregTypePresent = 1;            break;        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_modification_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    /* this message is not used */    return ERROR;}int r64_decode_ft_data_path_msg_registration_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    R64_DATA_PATH_REGISTRATION_ACK_S * p_msg;    char * p_name = "R64_DATA_PATH_REGISTRATION_ACK";    BYTE * p_offset;    WORD w_one_tlv_len = 0;    WORD w_tlvs_len;    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathRegAck);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_REGISTRATION_TYPE:            i_ret = r64_decode_tlv_registration_type(&p_msg->regType, p_value, w_one_tlv_len);            p_msg->present.regTypePresent = 1;            break;        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        case R64_T_CAUSE_CODE:            i_ret = r64_decode_tlv_cause_code(&p_msg->causeCode, p_value, w_one_tlv_len);            p_msg->present.causeCodePresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_setup_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    R64_DATA_PATH_ESTABLISH_REQUEST_S * p_msg;    char * p_name = "R64_DATA_PATH_ESTABLISH_REQUEST";    BYTE * p_offset;    WORD w_one_tlv_len = 0;    WORD w_tlvs_len;    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathEstReq);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_setup_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    R64_DATA_PATH_ESTABLISH_RESPONSE_S * p_msg;    char * p_name = "R64_DATA_PATH_ESTABLISH_RESPONSE";    BYTE * p_offset;    WORD w_one_tlv_len = 0;    WORD w_tlvs_len;    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathEstRsp);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_modify_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    /* this message is not used */    return ERROR;}int r64_decode_ft_data_path_msg_release_request(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    R64_DATA_PATH_RELEASE_REQUEST_S * p_msg;    char * p_name = "R64_DATA_PATH_RELEASE_REQUEST";    BYTE * p_offset;    WORD w_one_tlv_len = 0;    WORD w_tlvs_len;    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathRelReq);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        case R64_T_BS_INFO:            i_ret = r64_decode_tlv_bs_info(&p_msg->bsInfo, p_value, w_one_tlv_len);            p_msg->present.bsInfoPresent = 1;            break;        case R64_T_PAGING_INFO:            i_ret = r64_decode_tlv_paging_info(&p_msg->pagingInfo, p_value, w_one_tlv_len);            p_msg->present.pagingInfoPresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_release_response(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    R64_DATA_PATH_RELEASE_RESPONSE_S * p_msg;    char * p_name = "R64_DATA_PATH_RELEASE_RESPONSE";    BYTE * p_offset;    WORD w_one_tlv_len = 0;    WORD w_tlvs_len;    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathRelRsp);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        case R64_T_BS_INFO:            i_ret = r64_decode_tlv_bs_info(&p_msg->bsInfo, p_value, w_one_tlv_len);            p_msg->present.bsInfoPresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_release_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r64_msg){    R64_DATA_PATH_RELEASE_ACK_S * p_msg;    char * p_name = "R64_DATA_PATH_RELEASE_ACK";    BYTE * p_offset;    WORD w_one_tlv_len = 0;    WORD w_tlvs_len;    WORD w_type;    BYTE * p_value;    R64_IF_TYPE_E e_if_type;    int i_ret = ERROR;    R64_DECODE_MSG_PREPARE(p_r64_msg->u.dataPathRelAck);    while (w_tlvs_len > 0)    {        R64_DECODE_MSG_SET_OFFSET_LEN;        switch (w_type)        {        case R64_T_MS_INFO:            i_ret = r64_decode_tlv_ms_info(&p_msg->msInfo, p_value, w_one_tlv_len);            p_msg->present.msInfoPresent = 1;            break;        case R64_T_BS_INFO:            i_ret = r64_decode_tlv_bs_info(&p_msg->bsInfo, p_value, w_one_tlv_len);            p_msg->present.bsInfoPresent = 1;            break;        default:            R64_SAVE_DECODE_ERROR_LINE;            printf("decode_msg %s, unknown type error %d.\n", p_name, w_type);            i_ret = OK;            break;        }        R64_DECODE_CHK_MSG_ERROR(p_name);    }    return OK;}int r64_decode_ft_data_path_msg_de_registration_ack(UDP_MSG_S * p_udp_msg, R64_MSG_S * p_r

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?