(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-rlc-lte.c) |
| |
| 851 | | | static void dissect_rlc_lte_am(tvbuff_t *tvb, packet_info *pinfo, |
| 852 | | | proto_tree *tree, |
| 853 | | | int offset, |
| 854 | | | rlc_lte_info *p_rlc_lte_info _U_) |
| 855 | | | { |
| 856 | | | guint8 is_data; |
| 857 | | | guint8 is_segment; |
| 858 | | | guint8 polling; |
| 859 | | | guint8 fixed_extension; |
| 860 | | | guint8 framing_info; |
| 861 | | | gboolean first_includes_start; |
| 862 | | | gboolean last_includes_end; |
| 863 | | | proto_tree *; |
| 864 | | | proto_item *; |
| 865 | | | gint start_offset = offset; |
| 866 | | | guint16 sn; |
| 867 | | | |
| 868 | | | |
| 869 | | | = proto_tree_add_string_format(tree, |
| 870 | | | , |
| 871 | | | tvb, offset, 0, |
| 872 | | | "", |
| 873 | | | "AM "); |
| 874 | | | = proto_item_add_subtree(, |
| 875 | | | ); |
| 876 | | | |
| 877 | | | |
| 878 | | | |
| 879 | | | |
| 880 | | | is_data = (tvb_get_guint8(tvb, offset) & 0x80) >> 7; |
| 881 | | | proto_tree_add_item(, hf_rlc_lte_am_data_control, tvb, offset, 1, FALSE); |
| 882 | | | if (check_col(pinfo->cinfo, COL_INFO)) { |
Event 1:
Taking true branch. check_col(...) evaluates to true.
hide
|
|
| 883 | | | col_append_str(pinfo->cinfo, COL_INFO, (is_data) ? " [DATA]" : " [CONTROL]"); |
Event 2:
is_data evaluates to true.
hide
|
|
| 884 | | | } |
| 885 | | | |
| 886 | | | |
| 887 | | | |
| 888 | | | |
| 889 | | | if (!is_data) { |
Event 3:
Skipping " if". is_data evaluates to true.
hide
|
|
| 890 | | | dissect_rlc_lte_am_status_pdu(tvb, pinfo, , offset); |
| 891 | | | return; |
| 892 | | | } |
| 893 | | | |
| 894 | | | |
| 895 | | | |
| 896 | | | |
| 897 | | | |
| 898 | | | |
| 899 | | | is_segment = (tvb_get_guint8(tvb, offset) & 0x40) >> 6; |
| 900 | | | proto_tree_add_item(, hf_rlc_lte_am_rf, tvb, offset, 1, FALSE); |
| 901 | | | |
| 902 | | | |
| 903 | | | polling = (tvb_get_guint8(tvb, offset) & 0x20) >> 5; |
| 904 | | | proto_tree_add_item(, hf_rlc_lte_am_p, tvb, offset, 1, FALSE); |
| 905 | | | if (check_col(pinfo->cinfo, COL_INFO)) { |
Event 4:
Taking true branch. check_col(...) evaluates to true.
hide
|
|
| 906 | | | col_append_str(pinfo->cinfo, COL_INFO, (polling) ? " (P) " : " "); |
Event 5:
polling evaluates to false.
hide
|
|
| 907 | | | } |
| 908 | | | if (polling) { |
Event 6:
Skipping " if". polling evaluates to false.
hide
|
|
| 909 | | | proto_item_append_text(, " (P)"); |
| 910 | | | } |
| 911 | | | |
| 912 | | | |
| 913 | | | framing_info = (tvb_get_guint8(tvb, offset) & 0x18) >> 3; |
| 914 | | | proto_tree_add_item(, hf_rlc_lte_am_fi, tvb, offset, 1, FALSE); |
| 915 | | | |
| 916 | | | |
| 917 | | | fixed_extension = (tvb_get_guint8(tvb, offset) & 0x04) >> 2; |
| 918 | | | proto_tree_add_item(, hf_rlc_lte_am_fixed_e, tvb, offset, 1, FALSE); |
| 919 | | | |
| 920 | | | |
| 921 | | | sn = tvb_get_ntohs(tvb, offset) & 0x03ff; |
| 922 | | | proto_tree_add_item(, hf_rlc_lte_am_fixed_sn, tvb, offset, 2, FALSE); |
| 923 | | | offset += 2; |
| 924 | | | |
| 925 | [+] | | if (check_col(pinfo->cinfo, COL_INFO)) { |
 |
| 926 | | | col_append_fstr(pinfo->cinfo, COL_INFO, "sn=%u", sn); |
| 927 | | | } |
| 928 | | | |
| 929 | | | |
| 930 | | | |
| 931 | | | proto_item_append_text(, " (SN=%u)", sn); |
| 932 | | | proto_item_set_len(, offset-start_offset); |
| 933 | | | |
| 934 | | | |
| 935 | | | |
| 936 | | | if (is_segment) { |
Event 10:
Skipping " if". is_segment evaluates to false.
hide
|
|
| 937 | | | |
| 938 | | | proto_tree_add_item(, hf_rlc_lte_am_segment_lsf, tvb, offset, 1, FALSE); |
| 939 | | | |
| 940 | | | |
| 941 | | | proto_tree_add_item(, hf_rlc_lte_am_segment_so, tvb, offset, 2, FALSE); |
| 942 | | | |
| 943 | | | offset += 2; |
| 944 | | | } |
| 945 | | | |
| 946 | | | |
| 947 | | | |
| 948 | | | if (fixed_extension) { |
Event 11:
Skipping " if". fixed_extension evaluates to false.
hide
|
|
| 949 | | | offset = (tvb, pinfo, tree, offset); |
| 950 | | | } |
| 951 | | | |
| 952 | | | |
| 953 | | | |
| 954 | | | first_includes_start = (framing_info & 0x02) == 0; |
Event 12:
(framing_info & 2) == 0 evaluates to true.
hide
|
|
| 955 | | | last_includes_end = (framing_info & 0x01) == 0; |
Event 13:
(framing_info & 1) == 0 evaluates to true.
hide
|
|
| 956 | | | |
| 957 | | | |
| 958 | | | |
| 959 | | | #if 0 |
| 960 | | | if (global_rlc_lte_sequence_analysis) { |
| 961 | | | checkChannelSequenceInfo(pinfo, tvb, p_rlc_lte_info, (guint16)sn, |
| 962 | | | first_includes_start, last_includes_end, |
| 963 | | | ); |
| 964 | | | } |
| 965 | | | #endif |
| 966 | | | |
| 967 | | | |
| 968 | | | |
| 969 | | | |
| 970 | | | if (s_number_of_extensions > 0) { |
Event 14:
Skipping " if". s_number_of_extensions > 0 evaluates to false.
hide
|
|
| 971 | | | |
| 972 | | | int n; |
| 973 | | | for (n=0; n < s_number_of_extensions; n++) { |
| 974 | | | proto_tree_add_item(tree, hf_rlc_lte_am_data, tvb, offset, s_lengths[n], FALSE); |
| 975 | | | show_PDU_in_info(pinfo, s_lengths[n], |
| 976 | | | (n==0) ? first_includes_start : TRUE, |
| 977 | | | TRUE); |
| 978 | | | tvb_ensure_bytes_exist(tvb, offset, s_lengths[n]); |
| 979 | | | offset += s_lengths[n]; |
| 980 | | | } |
| 981 | | | } |
| 982 | | | |
| 983 | | | |
| 984 | | | proto_tree_add_item(tree, hf_rlc_lte_am_data, tvb, offset, -1, FALSE); |
| 985 | [+] | | show_PDU_in_info(pinfo, (guint16)tvb_length_remaining(tvb, offset), |
 |
| 986 | | | (s_number_of_extensions == 0) ? first_includes_start : TRUE, |
Event 15:
s_number_of_extensions == 0 evaluates to true.
hide
|
|
| 987 | | | last_includes_end); |
| |