diff --git a/epan/dissectors/packet-bssgp.c b/epan/dissectors/packet-bssgp.c index 5e73a06194..1925550725 100644 --- a/epan/dissectors/packet-bssgp.c +++ b/epan/dissectors/packet-bssgp.c @@ -12,12 +12,12 @@ * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -93,7 +93,7 @@ static int hf_bssgp_tlli = -1; /* Initialize the subtree pointers */ static gint ett_bssgp = -1; -static gint ett_bssgp_qos_profile = -1; +static gint ett_bssgp_qos_profile = -1; static gint ett_bssgp_gprs_timer = -1; static gint ett_bssgp_cell_identifier = -1; static gint ett_bssgp_channel_needed = -1; @@ -247,7 +247,7 @@ static const value_string tab_bssgp_pdu_types[] = { /* Information element coding, v 6.5.0, table 11.3, p 72 */ #define BSSGP_IEI_ALIGNMENT_OCTETS 0x00 -#define BSSGP_IEI_BMAX_DEFAULT_MS 0x01 +#define BSSGP_IEI_BMAX_DEFAULT_MS 0x01 #define BSSGP_IEI_BSS_AREA_INDICATION 0x02 #define BSSGP_IEI_BUCKET_LEAK_RATE 0x03 #define BSSGP_IEI_BVCI 0x04 @@ -329,7 +329,7 @@ static const value_string tab_nacc_cause[]={ { 0x01, "Syntax error in the Application Container" }, { 0x02, "Reporting Cell Identifier does not match with the Destination Cell Identifier or with the Source Cell Identifier" }, { 0x03, "SI/PSI type error" }, - { 0x04, "Inconsistent lenght of a SI/PSI message" }, + { 0x04, "Inconsistent length of a SI/PSI message" }, { 0x05, "Inconsistent set of messages" }, { 0, NULL }, @@ -403,7 +403,7 @@ static const value_string tab_bssgp_ie_types[] = { { BSSGP_IEI_RIM_PROTOCOL_VERSION, "RIM Protocol Version Number" }, { BSSGP_IEI_NUMBER_OF_CONTAINER_UNITS, "Number of Container Units" }, { BSSGP_IEI_PFC_FLOW_CONTROL_PARAMETERS, "PFC Flow Control Parameters" }, - { BSSGP_IEI_GLOBAL_CN_ID, "Global CN Id" }, + { BSSGP_IEI_GLOBAL_CN_ID, "Global CN Id" }, { 0, NULL }, }; @@ -421,12 +421,12 @@ static const value_string tab_bssgp_ie_types[] = { static guint8 get_masked_guint8(guint8 value, guint8 mask) { - const guint8 MASK_BIT_1 = 0x01; + const guint8 MASK_BIT_1 = 0x01; guint8 i = 0; - + while (!((mask >> i) & MASK_BIT_1)) { i++; - if (i > 7) return 0; + if (i > 7) return 0; } return (value & mask) >> i; } @@ -434,12 +434,12 @@ get_masked_guint8(guint8 value, guint8 mask) { #if 0 static guint16 get_masked_guint16(guint16 value, guint16 mask) { - const guint16 MASK_BIT_1 = 0x01; + const guint16 MASK_BIT_1 = 0x01; guint8 i = 0; - + while (!((mask >> i) & MASK_BIT_1)) { i++; - if (i > 15) return 0; + if (i > 15) return 0; } return (value & mask) >> i; } @@ -450,7 +450,7 @@ make_mask32(guint8 num_bits, guint8 shift_value) { const guint32 LEFT_MOST_1 = 0x80000000; int i; guint32 mask = LEFT_MOST_1; - + for (i = 0; i < (num_bits - 1); i++) { mask = (mask >> 1) | LEFT_MOST_1; } @@ -459,12 +459,12 @@ make_mask32(guint8 num_bits, guint8 shift_value) { static guint32 get_masked_guint32(guint32 value, guint32 mask) { - const guint16 MASK_BIT_1 = 0x01; + const guint16 MASK_BIT_1 = 0x01; guint8 i = 0; - + while (!((mask >> i) & MASK_BIT_1)) { i++; - if (i > 31) return 0; + if (i > 31) return 0; } return (value & mask) >> i; } @@ -503,7 +503,7 @@ get_bit_field_label8(guint8 value, guint8 value_mask) { g_snprintf(formatted_label, 10, "%c%c%c%c %c%c%c%c", bits[0], bits[1], bits[2], bits[3], bits[4], bits[5], bits[6], bits[7]); - return formatted_label; + return formatted_label; } static char* @@ -516,7 +516,7 @@ get_bit_field_label16(guint16 value, guint16 value_mask) { bits[4], bits[5], bits[6], bits[7], bits[8], bits[9], bits[10], bits[11], bits[12], bits[13], bits[14], bits[15]); - return formatted_label; + return formatted_label; } static proto_item * @@ -552,13 +552,13 @@ get_start_octet(guint64 bo) { } static guint32 -get_end_octet(guint64 bo, guint32 bl) +get_end_octet(guint64 bo, guint32 bl) { return (guint32) ceil((gint64)(bo + bl) / 8.0); } static guint32 -get_num_octets_spanned(guint64 bo, guint32 bl) +get_num_octets_spanned(guint64 bo, guint32 bl) { return get_end_octet(bo, bl) - get_start_octet(bo); } @@ -587,7 +587,7 @@ bssgp_tvb_get_bits8(tvbuff_t *tvb, guint64 bo, guint8 num_bits) { /* Returns 0-8 bits from tvb */ guint8 shift_value; guint16 mask, data; - + shift_value = get_byte_offset(bo); mask = make_mask(num_bits, shift_value); if (( mask & 0xff ) == 0 ) data = tvb_get_guint8(tvb, get_start_octet(bo)) << 8; @@ -596,7 +596,7 @@ bssgp_tvb_get_bits8(tvbuff_t *tvb, guint64 bo, guint8 num_bits) { } static proto_item * -bit_proto_tree_add_text(proto_tree *tree, tvbuff_t *tvb, +bit_proto_tree_add_text(proto_tree *tree, tvbuff_t *tvb, guint64 bo, guint8 bl, const char *value) { /* XXX: Use varargs */ return proto_tree_add_text(tree, tvb, get_start_octet(bo), @@ -618,7 +618,7 @@ bit_proto_tree_add_bit_field8(proto_tree *tree, tvbuff_t *tvb, label = get_bit_field_label16(value, mask); DISSECTOR_ASSERT(bl < 9); - + if (get_num_octets_spanned(bo, bl) == 1) { end_i = 7; } @@ -637,33 +637,33 @@ bit_proto_tree_add_bit_field8(proto_tree *tree, tvbuff_t *tvb, static const char* translate_abqp_reliability_class(guint8 value, build_info_t *bi) { switch (value) { - case 0: + case 0: if (bi->ul_data) { return "Subscribed reliability class"; } else { return "Reserved"; } - case 1: - return "Unused (Unacknowledged GTP; Acknowledged LLc and RLC, Protected data)"; - case 2: - return "Unacknowledged GTP; Acknowledged LLc and RLC, Protected data"; - case 3: + case 1: + return "Unused (Unacknowledged GTP; Acknowledged LLc and RLC, Protected data)"; + case 2: + return "Unacknowledged GTP; Acknowledged LLc and RLC, Protected data"; + case 3: return "Unacknowledged GTP and LLC; Acknowledged RLC, Protected data"; - case 4: + case 4: return "Unacknowledged GTP, LLC, and RLC, Protected data"; case 5: return "Unacknowledged GTP, LLC, and RLC, Unprotedcted data"; - case 7: + case 7: return "Reserved"; default: - return "Unacknowledged GTP and LLC; Acknowledged RLC, Protected data"; + return "Unacknowledged GTP and LLC; Acknowledged RLC, Protected data"; } } static const char* translate_abqp_delay_class(guint8 value, build_info_t *bi) { switch (value) { - case 0: + case 0: if (bi->ul_data) { return "Subscribed delay class"; } @@ -706,7 +706,7 @@ translate_abqp_peak_throughput(guint8 value, build_info_t *bi) { static const char* translate_abqp_precedence_class(guint8 value, build_info_t *bi) { switch (value) { - case 0: + case 0: if (bi->ul_data) { return "Subscribed precedence"; } @@ -784,7 +784,7 @@ translate_abqp_traffic_class(guint8 value, build_info_t *bi) { static const char* translate_abqp_delivery_order(guint8 value, build_info_t *bi) { switch (value) { - case 0: + case 0: if (bi->ul_data) { return "Subscribed delivery order"; } @@ -858,7 +858,7 @@ translate_abqp_max_sdu_size(guint8 value, build_info_t *bi) { /* The network shall map all other values not explicitly defined onto one of the values defined in this version of the protocol. The network shall return a negotiated value which is explicitly defined in this version of the protocol */ return "Error"; } -} +} static const char* translate_abqp_max_bit_rate_for_ul(guint8 value, build_info_t *bi) { @@ -1088,28 +1088,28 @@ static const char* translate_msrac_extended_dtm_gprs_multislot_class(guint8 value, guint8 dgmsc) { switch (dgmsc) { case 0: return "Unused, interpreted as Multislot class 5 supported"; - case 1: + case 1: switch (value) { case 0: return "Multislot class 5 supported"; case 1: return "Multislot class 6 supported"; - case 2: - case 3: + case 2: + case 3: return "Unused, interpreted as Multislot class 5 supported"; } - case 2: + case 2: switch (value) { case 0: return "Multislot class 9 supported"; case 1: return "Multislot class 10 supported"; - case 2: - case 3: + case 2: + case 3: return "Unused, interpreted as Multislot class 5 supported"; } - case 3: + case 3: switch (value) { case 0: return "Multislot class 11 supported"; case 1: case 2: - case 3: + case 3: return "Unused, interpreted as Multislot class 5 supported"; } } @@ -1123,12 +1123,12 @@ translate_msrac_high_multislot_capability(guint8 capability, guint8 class) { switch (capability) { case 0: switch (class) { - case 8: + case 8: return 30; case 10: case 23: - case 28: - case 29: + case 28: + case 29: return 39; case 11: case 20: @@ -1140,12 +1140,12 @@ translate_msrac_high_multislot_capability(guint8 capability, guint8 class) { case 26: case 27: return 33; - default: + default: return class; } - case 1: + case 1: switch (class) { - case 8: + case 8: return 35; case 10: case 19: @@ -1162,7 +1162,7 @@ translate_msrac_high_multislot_capability(guint8 capability, guint8 class) { case 26: case 27: return 38; - default: + default: return class; } case 2: @@ -1227,15 +1227,15 @@ translate_channel_needed(guint8 value) { return NULL; } -static proto_item* +static proto_item* bssgp_proto_tree_add_ie(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const char *iename; iename = ie->name; if (iename == NULL) iename = val_to_str(ie->iei, tab_bssgp_ie_types, "Unknown"); - return proto_tree_add_uint_format(bi->bssgp_tree, hf_bssgp_ie_type, - bi->tvb, ie_start_offset, ie->total_length, + return proto_tree_add_uint_format(bi->bssgp_tree, hf_bssgp_ie_type, + bi->tvb, ie_start_offset, ie->total_length, ie->iei, "%s", iename); } @@ -1259,22 +1259,22 @@ bssgp_proto_handoff(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset, disse } } -static void +static void decode_nri(proto_tree *tf, build_info_t *bi, guint32 tmsi_tlli) { const guint32 LOCAL_TLLI_MASK = 0xc0000000; const guint32 FOREIGN_TLLI_MASK = 0x80000000; guint16 nri; - - if (bssgp_decode_nri && (bssgp_nri_length != 0) && + + if (bssgp_decode_nri && (bssgp_nri_length != 0) && (((tmsi_tlli & LOCAL_TLLI_MASK) == LOCAL_TLLI_MASK) || ((tmsi_tlli & FOREIGN_TLLI_MASK) == FOREIGN_TLLI_MASK))) { nri = get_masked_guint32(tmsi_tlli, make_mask32( (guint8) bssgp_nri_length, 8)); if (tf) { - proto_tree_add_uint_hidden(tf, hf_bssgp_nri, bi->tvb, bi->offset, 4, - nri); + proto_tree_add_uint_hidden(tf, hf_bssgp_nri, bi->tvb, bi->offset, 4, + nri); } if (check_col(bi->pinfo->cinfo, COL_INFO)) { - col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, + col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "NRI %u", nri); } } @@ -1314,7 +1314,7 @@ decode_mobile_identity(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { odd_even = get_masked_guint8(data, MASK_ODD_EVEN_INDICATION); if (bi->bssgp_tree) { - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_ODD_EVEN_INDICATION); proto_item_append_text(pi, "Odd/Even Indication: %s number of identity digits%s", odd_even == ODD ? "Odd" : "Even", @@ -1323,10 +1323,10 @@ decode_mobile_identity(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { type = get_masked_guint8(data, MASK_TYPE_OF_IDENTITY); if (bi->bssgp_tree) { - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_TYPE_OF_IDENTITY); proto_item_append_text(pi, "Type of Identity: %s", - val_to_str(type, tab_type_of_identity, + val_to_str(type, tab_type_of_identity, "Reserved")); } bi->offset++; @@ -1355,7 +1355,7 @@ decode_mobile_identity(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset++; } bi->offset++; - + if (bi->bssgp_tree) { proto_item_append_text(ti, ": "); for (i = 0; i < num_digits; i++) { @@ -1380,10 +1380,10 @@ decode_mobile_identity(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (tf) proto_tree_add_string(tf, hf_id, bi->tvb, ie_start_offset + 2, ((num_digits/2)+1), digits_str); - } + } if (check_col(bi->pinfo->cinfo, COL_INFO)) { - col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "%s %s", - val_to_str(type, tab_type_of_identity, + col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "%s %s", + val_to_str(type, tab_type_of_identity, "Mobile identity unknown"), digits_str); } @@ -1391,11 +1391,11 @@ decode_mobile_identity(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { case BSSGP_MOBILE_IDENTITY_TYPE_TMSI_PTMSI: tmsi = tvb_get_ntohl(bi->tvb, bi->offset); if (check_col(bi->pinfo->cinfo, COL_INFO)) { - col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, + col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "TMSI/P-TMSI %0x04x", tmsi); } if (bi->bssgp_tree) { - proto_tree_add_item(tf, hf_bssgp_tmsi_ptmsi, bi->tvb, bi->offset, 4, + proto_tree_add_item(tf, hf_bssgp_tmsi_ptmsi, bi->tvb, bi->offset, 4, BSSGP_LITTLE_ENDIAN); proto_item_append_text(ti, ": %#04x", tmsi); } @@ -1403,7 +1403,7 @@ decode_mobile_identity(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset += 4; break; default: - ; + ; } #undef MAX_NUM_IMSI_DIGITS } @@ -1423,7 +1423,7 @@ decode_mcc_mnc(build_info_t *bi, proto_tree *parent_tree) { mcc2 = get_masked_guint8(data, BSSGP_MASK_LEFT_OCTET_HALF); mcc1 = get_masked_guint8(data, BSSGP_MASK_RIGHT_OCTET_HALF); bi->offset++; - + data = tvb_get_guint8(bi->tvb, bi->offset); mnc3 = get_masked_guint8(data, BSSGP_MASK_LEFT_OCTET_HALF); mcc3 = get_masked_guint8(data, BSSGP_MASK_RIGHT_OCTET_HALF); @@ -1441,14 +1441,14 @@ decode_mcc_mnc(build_info_t *bi, proto_tree *parent_tree) { /* XXX: Interpretation of mnci? */ mnc = 10 * mnc1 + mnc2; - + if (mnc3 != UNUSED_MNC3) { mnc += 10 * mnc + mnc3; } - proto_tree_add_uint(parent_tree, hf_bssgp_mcc, + proto_tree_add_uint(parent_tree, hf_bssgp_mcc, bi->tvb, start_offset, 3, mcc); - proto_tree_add_uint(parent_tree, hf_bssgp_mnc, + proto_tree_add_uint(parent_tree, hf_bssgp_mnc, bi->tvb, start_offset, 3, mnc); if (mnc3 != UNUSED_MNC3) { @@ -1469,11 +1469,11 @@ decode_lai(build_info_t *bi, proto_tree *parent_tree) { guint16 lac; char *mcc_mnc; static char lai[RES_LEN]; - + mcc_mnc = decode_mcc_mnc(bi, parent_tree); lac = tvb_get_ntohs(bi->tvb, bi->offset); - proto_tree_add_item(parent_tree, hf_bssgp_lac, + proto_tree_add_item(parent_tree, hf_bssgp_lac, bi->tvb, bi->offset, 2, BSSGP_LITTLE_ENDIAN); bi->offset += 2; @@ -1487,8 +1487,8 @@ decode_rai(build_info_t *bi, proto_tree *parent_tree) { #define RES_LEN 20 guint8 rac; static char rai[RES_LEN]; - char *lai = decode_lai(bi, parent_tree); - + char *lai = decode_lai(bi, parent_tree); + rac = tvb_get_guint8(bi->tvb, bi->offset); proto_tree_add_item(parent_tree, hf_bssgp_rac, bi->tvb, bi->offset, 1, BSSGP_LITTLE_ENDIAN); bi->offset++; @@ -1508,7 +1508,7 @@ decode_rai_ci(build_info_t *bi, proto_tree *parent_tree) { rai = decode_rai(bi, parent_tree); ci = tvb_get_ntohs(bi->tvb, bi->offset); - proto_tree_add_item(parent_tree, hf_bssgp_ci, + proto_tree_add_item(parent_tree, hf_bssgp_ci, bi->tvb, bi->offset, 2, BSSGP_LITTLE_ENDIAN); bi->offset += 2; g_snprintf(rai_ci, RES_LEN, "RAI %s, CI %u", rai, ci); @@ -1528,19 +1528,19 @@ bssgp_pi_append_queuing_delay(proto_item *pi, tvbuff_t *tvb, int offset) { } } -static void +static void bssgp_pi_append_bucket_leak_rate(proto_item *pi, tvbuff_t *tvb, int offset) { guint16 value = tvb_get_ntohs(tvb, offset); proto_item_append_text(pi, ": %u bytes", value * 100); } -static void +static void bssgp_pi_append_bucket_size(proto_item *pi, tvbuff_t *tvb, int offset) { guint16 value = tvb_get_ntohs(tvb, offset); proto_item_append_text(pi, ": %u bytes", value * 100); } -static void +static void bssgp_pi_append_bucket_full_ratio(proto_item *pi, tvbuff_t *tvb, int offset) { guint8 value = tvb_get_guint8(tvb, offset); proto_item_append_text(pi, ": %.2f * Bmax ", value / 100.0); @@ -1550,7 +1550,7 @@ static void bssgp_pi_append_pfi(proto_item *pi, tvbuff_t *tvb, int offset) { const guint8 MASK_PFI = 0x7f; guint8 value; - + static const value_string tab_pfi[] = { { 0, "Best effort" }, { 1, "Signaling" }, @@ -1563,12 +1563,12 @@ bssgp_pi_append_pfi(proto_item *pi, tvbuff_t *tvb, int offset) { { 0, NULL }, /* Otherwise "Dynamically assigned (PFI: )" */ }; - value = tvb_get_masked_guint8(tvb, offset, MASK_PFI); - proto_item_append_text(pi, + value = tvb_get_masked_guint8(tvb, offset, MASK_PFI); + proto_item_append_text(pi, val_to_str(value, tab_pfi, "Dynamically assigned (PFI: %d)")); } -static void +static void decode_pfi(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; if (bi->bssgp_tree) { @@ -1588,7 +1588,7 @@ decode_queuing_delay(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset += ie->value_length; } -static void +static void decode_bucket_size(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; if (bi->bssgp_tree) { @@ -1598,7 +1598,7 @@ decode_bucket_size(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset += ie->value_length; } -static void +static void decode_bucket_leak_rate(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; if (bi->bssgp_tree) { @@ -1608,17 +1608,17 @@ decode_bucket_leak_rate(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset += ie->value_length; } -static void +static void get_value_length(bssgp_ie_t *ie, build_info_t *bi) { /* length indicator in bit 8, 0 => two bytes, 1 => one byte */ const guint8 MASK_LENGTH_INDICATOR = 0x80; const guint8 MASK_ONE_BYTE_LENGTH = 0x7f; guint8 length_len; guint16 length; - + length = tvb_get_guint8(bi->tvb, bi->offset); length_len = 1; - + if (length & MASK_LENGTH_INDICATOR) { length &= MASK_ONE_BYTE_LENGTH; } @@ -1633,8 +1633,8 @@ get_value_length(bssgp_ie_t *ie, build_info_t *bi) { } static void -decode_simple_ie(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset, - const char *pre_str, const char *post_str, +decode_simple_ie(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset, + const char *pre_str, const char *post_str, gboolean show_as_dec) { /* XXX: Allow mask? */ proto_item *ti; @@ -1650,9 +1650,9 @@ decode_simple_ie(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset, if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); - + proto_item_append_text(ti, ": "); - + if (pre_str) { proto_item_append_text(ti, "%s ", pre_str); } @@ -1673,34 +1673,34 @@ decode_simple_ie(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset, bi->offset += ie->value_length; } -static int +static int check_correct_iei(bssgp_ie_t *ie, build_info_t *bi) { guint8 fetched_iei = tvb_get_guint8(bi->tvb, bi->offset); #ifdef BSSGP_DEBUG if (fetched_iei != ie->iei) { - proto_tree_add_text(bi->bssgp_tree, bi->tvb, bi->offset, 1, - "Tried IEI %s (%#02x), found IEI %s (%#02x)", - val_to_str(ie->iei, tab_bssgp_ie_types, "Unknown"), - ie->iei, - val_to_str(fetched_iei, tab_bssgp_ie_types, "Unknown"), + proto_tree_add_text(bi->bssgp_tree, bi->tvb, bi->offset, 1, + "Tried IEI %s (%#02x), found IEI %s (%#02x)", + val_to_str(ie->iei, tab_bssgp_ie_types, "Unknown"), + ie->iei, + val_to_str(fetched_iei, tab_bssgp_ie_types, "Unknown"), fetched_iei); } #endif return (fetched_iei == ie->iei); } -static void +static void decode_iei_alignment_octets(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); proto_item_append_text(ti, " (%u bytes)", ie->value_length); - } + } bi->offset += ie->value_length; } -static void +static void decode_iei_bvci(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; guint16 bvci; @@ -1710,14 +1710,14 @@ decode_iei_bvci(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); proto_item_append_text(ti, ": %u", bvci); - proto_tree_add_item_hidden(bi->bssgp_tree, hf_bssgp_bvci, - bi->tvb, bi->offset, ie->value_length, + proto_tree_add_item_hidden(bi->bssgp_tree, hf_bssgp_bvci, + bi->tvb, bi->offset, ie->value_length, BSSGP_LITTLE_ENDIAN); } bi->offset += ie->value_length; if (check_col(bi->pinfo->cinfo, COL_INFO)) { - col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, + col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "BVCI %u", bvci); } } @@ -1754,7 +1754,7 @@ const value_string tab_cause[] = { { 0, NULL }, }; -static void +static void decode_iei_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; guint8 value; @@ -1763,8 +1763,8 @@ decode_iei_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); value = tvb_get_guint8(bi->tvb, bi->offset); - proto_item_append_text(ti, ": %s (%#02x)", - val_to_str(value, tab_cause, + proto_item_append_text(ti, ": %s (%#02x)", + val_to_str(value, tab_cause, "Protocol error - unspecified"), value); } @@ -1774,7 +1774,7 @@ decode_iei_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* * 11.3.9 Cell Identifier 3GPP TS 48.018 version 6.7.0 Release 6 */ -static void +static void decode_iei_cell_identifier(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; @@ -1783,7 +1783,7 @@ decode_iei_cell_identifier(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_cell_identifier); - + rai_ci = decode_rai_ci(bi, tf); proto_item_append_text(ti, ": %s", rai_ci); @@ -1796,21 +1796,21 @@ decode_iei_cell_identifier(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset /* * 11.3.10 Channel needed */ -static void +static void decode_iei_channel_needed(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { - /* XXX: 'If this IE is used for only one MS, the the first CHANNEL field + /* XXX: 'If this IE is used for only one MS, the the first CHANNEL field is used and the second CHANNEL field is spare.' How know? */ const guint8 MASK_CH1 = 0x03; const guint8 MASK_CH2 = 0x0c; proto_item *ti; guint8 data, ch1, ch2; - + if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); data = tvb_get_guint8(bi->tvb, bi->offset); ch1 = get_masked_guint8(data, MASK_CH1); ch2 = get_masked_guint8(data, MASK_CH2); - proto_item_append_text(ti, ": Ch1: %s (%u), Ch2: %s (%u)", + proto_item_append_text(ti, ": Ch1: %s (%u), Ch2: %s (%u)", translate_channel_needed(ch1), ch1, translate_channel_needed(ch2), @@ -1821,7 +1821,7 @@ decode_iei_channel_needed(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) /* * 11.3.11 DRX Parameters */ -static void +static void decode_iei_drx_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_CYCLE_LENGTH_COEFFICIENT = 0xf0; const guint8 MASK_SPLIT_ON_CCCH = 0x08; @@ -1862,7 +1862,7 @@ decode_iei_drx_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) tf = proto_item_add_subtree(ti, ett_bssgp_drx_parameters); value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "SPLIT PG CYCLE: code %u", value); if ((value >= 1) && (value <= 64)) { cycle_value = value; @@ -1917,7 +1917,7 @@ decode_iei_drx_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_CYCLE_LENGTH_COEFFICIENT); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_CYCLE_LENGTH_COEFFICIENT); proto_item_append_text(pi, "CN specific DRX cycle length coefficient: %s (%#02x)", val_to_str(value, tab_cycle_length_coefficient, @@ -1928,7 +1928,7 @@ decode_iei_drx_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_SPLIT_ON_CCCH); proto_item_append_text(pi, "SPLIT on CCCH: Split pg cycle on CCCH is%s supported by the mobile station", value == 0 ? " not" : ""); - + value = get_masked_guint8(data, MASK_NON_DRX_TIMER); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_NON_DRX_TIMER); proto_item_append_text(pi, "Non-DRX Timer: %s (%#x)", @@ -1940,7 +1940,7 @@ decode_iei_drx_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) * 11.3.12 eMLPP-Priority */ -static void +static void decode_iei_emlpp_priority(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_CALL_PRIORITY = 0x07; proto_item *ti; @@ -1962,7 +1962,7 @@ decode_iei_emlpp_priority(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_CALL_PRIORITY); - proto_item_append_text(ti, ": %s", + proto_item_append_text(ti, ": %s", val_to_str(value, tab_call_priority, "")); } bi->offset += ie->value_length; @@ -1971,7 +1971,7 @@ decode_iei_emlpp_priority(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) * 11.3.13 Flush Action */ -static void +static void decode_iei_flush_action(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; guint8 value; @@ -1997,14 +1997,14 @@ decode_iei_flush_action(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { * 11.3.16 LLC Frames Discarded */ -static void +static void decode_iei_llc_frames_discarded(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { decode_simple_ie(ie, bi, ie_start_offset, "", " frames discarded", TRUE); } /* * 11.3.17 Location Area */ -static void +static void decode_iei_location_area(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; @@ -2022,7 +2022,7 @@ decode_iei_location_area(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) } static void -decode_msrac_additional_access_technologies(proto_tree *tree, tvbuff_t *tvb, +decode_msrac_additional_access_technologies(proto_tree *tree, tvbuff_t *tvb, guint64 bo, guint32 length _U_) { proto_item *pi; guint8 value; @@ -2032,8 +2032,8 @@ decode_msrac_additional_access_technologies(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "Access Technology Type: %s (%#01x)", - translate_msrac_access_technology_type(value), + proto_item_append_text(pi, "Access Technology Type: %s (%#01x)", + translate_msrac_access_technology_type(value), value); bl = 3; @@ -2056,13 +2056,13 @@ decode_msrac_additional_access_technologies(proto_tree *tree, tvbuff_t *tvb, } static gboolean -struct_bits_exist(guint64 start_bo, guint32 struct_length, +struct_bits_exist(guint64 start_bo, guint32 struct_length, guint64 bo, guint32 num_bits) { return (bo + num_bits) <= (start_bo + struct_length); } -static void +static void decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, guint64 bo, guint32 struct_length) { /* Error handling: @@ -2099,7 +2099,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, if (!struct_bits_exist(start_bo, struct_length, bo, bl)) return; value = bssgp_tvb_get_bits8(tvb, bo, bl); ti = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); - proto_item_append_text(ti, "A5 Bits: %#02x", value); + proto_item_append_text(ti, "A5 Bits: %#02x", value); tf = proto_item_add_subtree(ti, ett_bssgp_msrac_a5_bits); for (i = 0; i < bl; i++) { pi = bit_proto_tree_add_bit_field8(tf, tvb, bo + i, 1); @@ -2112,7 +2112,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, else { pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "A5 bits: Same as in the immediately preceding Access capabilities field within this IE"); + proto_item_append_text(pi, "A5 bits: Same as in the immediately preceding Access capabilities field within this IE"); } /* ES IND */ @@ -2161,7 +2161,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); if (value == 1) { bo += bl; - ti = bit_proto_tree_add_text(tree, tvb, bo, bl, "Multislot capability"); + ti = bit_proto_tree_add_text(tree, tvb, bo, bl, "Multislot capability"); tf = proto_item_add_subtree(ti, ett_bssgp_msrac_multislot_capability); /* HSCSD Multislot Class */ @@ -2188,7 +2188,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, pi = bit_proto_tree_add_bit_field8(tf, tvb, bo-1, bl); proto_item_append_text(pi, "HSCSD Multislot Class - Bits are not available" ); } - + /* GPRS Multislot Class, GPRS Extended Dynamic Allocation Capability */ bl = 1; if (!struct_bits_exist(start_bo, struct_length, bo, bl)) return; @@ -2200,7 +2200,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tf, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "GPRS Multislot Class: Multislot Class %u", + proto_item_append_text(pi, "GPRS Multislot Class: Multislot Class %u", value); bl = 1; @@ -2228,8 +2228,8 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tf, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, - "SMS_VALUE: %u/4 timeslot (~%u microseconds)", + proto_item_append_text(pi, + "SMS_VALUE: %u/4 timeslot (~%u microseconds)", value + 1, (value + 1) * 144); bl = 4; @@ -2237,8 +2237,8 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tf, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, - "SM_VALUE: %u/4 timeslot (~%u microseconds)", + proto_item_append_text(pi, + "SM_VALUE: %u/4 timeslot (~%u microseconds)", value + 1, (value + 1) * 144); } else @@ -2313,7 +2313,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, dgmsc = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tf, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "DTM GPRS Multislot Class: %s", + proto_item_append_text(pi, "DTM GPRS Multislot Class: %s", translate_msrac_dtm_gprs_multislot_class(dgmsc)); /* Single slot DTM */ @@ -2322,10 +2322,10 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tf, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, + proto_item_append_text(pi, "Single Slot DTM: Single slot DTM%s supported", value == 0 ? " not" : ""); - + /* DTM EGPRS Multislot Class */ bl = 1; if (!struct_bits_exist(start_bo, struct_length, bo, bl)) return; @@ -2337,17 +2337,17 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, demsc = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tf, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "DTM EGPRS Multislot Class: %s", + proto_item_append_text(pi, "DTM EGPRS Multislot Class: %s", translate_msrac_dtm_gprs_multislot_class(demsc)); } } - proto_item_set_len(ti, get_num_octets_spanned(start_bo, + proto_item_set_len(ti, get_num_octets_spanned(start_bo, (guint32) (bo - start_bo))); } else { pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "Multislot capability: Same as in the immediately preceding Access capabilities field within this IE"); + proto_item_append_text(pi, "Multislot capability: Same as in the immediately preceding Access capabilities field within this IE"); } /* Additions in release 99 */ @@ -2373,14 +2373,14 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, } proto_item_append_text(pi, ", 8PSK modulation capability in uplink"); } - + /* COMPACT Interference Measurement Capability */ bl = 1; if (!struct_bits_exist(start_bo, struct_length, bo, bl)) return; value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, + proto_item_append_text(pi, "COMPACT Interference Measurement Capability: %s", value == 0 ? "Not implemented" : "Implemented"); @@ -2390,7 +2390,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "Revision Level Indicator: The ME is Release '%u %s", + proto_item_append_text(pi, "Revision Level Indicator: The ME is Release '%u %s", value == 0 ? 98 : 99, value == 0 ? "or older" : "onwards"); @@ -2401,7 +2401,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "UMTS FDD Radio Access Technology Capability: UMTS FDD%s supported", + proto_item_append_text(pi, "UMTS FDD Radio Access Technology Capability: UMTS FDD%s supported", value == 0 ? " not" : ""); bl = 1; @@ -2409,7 +2409,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "UMTS 3.84 Mcps TDD Radio Access Technology Capability: UMTS 3.84 Mcps TDD%s supported", + proto_item_append_text(pi, "UMTS 3.84 Mcps TDD Radio Access Technology Capability: UMTS 3.84 Mcps TDD%s supported", value == 0 ? " not" : ""); bl = 1; @@ -2417,7 +2417,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "CDMA 2000 Radio Access Technology Capability: CDMA 2000%s supported", + proto_item_append_text(pi, "CDMA 2000 Radio Access Technology Capability: CDMA 2000%s supported", value == 0 ? " not" : ""); @@ -2427,7 +2427,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "UMTS 1.28 Mcps TDD Radio Access Technology Capability: UMTS 1.28 Mcps TDD%s supported", + proto_item_append_text(pi, "UMTS 1.28 Mcps TDD Radio Access Technology Capability: UMTS 1.28 Mcps TDD%s supported", value == 0 ? " not" : ""); @@ -2437,11 +2437,11 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "GERAN Feature Package 1: GERAN Feature Package 1%s supported", + proto_item_append_text(pi, "GERAN Feature Package 1: GERAN Feature Package 1%s supported", value == 0 ? " not" : ""); - /* Extended DTM xGPRS Multislot Class */ + /* Extended DTM xGPRS Multislot Class */ bl = 1; if (!struct_bits_exist(start_bo, struct_length, bo, bl)) return; value = bssgp_tvb_get_bits8(tvb, bo, bl); @@ -2452,7 +2452,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "Extended DTM GPRS Multi Slot Class: %s", + proto_item_append_text(pi, "Extended DTM GPRS Multi Slot Class: %s", translate_msrac_extended_dtm_gprs_multislot_class(value, dgmsc)); /* XXX: 'This field shall be included only if the MS supports EGPRS DTM'. @@ -2462,7 +2462,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "Extended DTM EGPRS Multi Slot Class: %s", + proto_item_append_text(pi, "Extended DTM EGPRS Multi Slot Class: %s", translate_msrac_extended_dtm_gprs_multislot_class(value, demsc)); } @@ -2472,7 +2472,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value = bssgp_tvb_get_bits8(tvb, bo, bl); pi = bit_proto_tree_add_bit_field8(tree, tvb, bo, bl); bo += bl; - proto_item_append_text(pi, "Modulation based multislot class support: %s supported", + proto_item_append_text(pi, "Modulation based multislot class support: %s supported", value == 0 ? "Not" : ""); /* Additions in release 5 */ @@ -2542,7 +2542,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, bo += bl; proto_item_append_text(pi, "Donwlink Advanced Receiver Performance: Downlink Advanced Receiver Performance %s supported", value == 0 ? "not" : "- phase 1"); - + /* Extended RLC_MAC Control Message Segmentation Capability */ bl = 1; @@ -2554,7 +2554,7 @@ decode_msrac_access_capabilities(proto_tree *tree, tvbuff_t *tvb, value == 0 ? " not" : ""); } -static void +static void decode_msrac_value_part(proto_tree *tree, tvbuff_t *tvb, guint64 bo) { /* No need to check bi->bssgp_tree here */ const guint8 ADD_ACC_TECHN = 0x0f; @@ -2563,7 +2563,7 @@ decode_msrac_value_part(proto_tree *tree, tvbuff_t *tvb, guint64 bo) { proto_tree *tf, *tf2; const char *att_name; guint64 start_bo; - + start_bo = bo; ti = bit_proto_tree_add_text(tree, tvb, bo, 8, "MS RA capability value part"); @@ -2583,7 +2583,7 @@ decode_msrac_value_part(proto_tree *tree, tvbuff_t *tvb, guint64 bo) { pi = bit_proto_tree_add_bit_field8(tf, tvb, bo, bl); proto_item_append_text(pi, "Length: %u bits", length); bo += bl; - + if (att == ADD_ACC_TECHN) { bo++; /* Always '1' */ ti2 = bit_proto_tree_add_text(tf, tvb, bo, length, @@ -2592,11 +2592,11 @@ decode_msrac_value_part(proto_tree *tree, tvbuff_t *tvb, guint64 bo) { proto_item_set_len(ti, get_num_octets_spanned(start_bo, 4 + 7 + length + 1 + 1)); decode_msrac_additional_access_technologies(tf2, tvb, bo, length); } - else if (att <= 0x0b) { + else if (att <= 0x0b) { ti2 = bit_proto_tree_add_text(tf, tvb, bo, length, "Access Capabilities"); tf2 = proto_item_add_subtree(ti2, ett_bssgp_msrac_access_capabilities); proto_item_set_len(ti, get_num_octets_spanned(start_bo, 4 + 7 + length + 1)); - decode_msrac_access_capabilities(tf2, tvb, bo, length); + decode_msrac_access_capabilities(tf2, tvb, bo, length); } /* else unknown Access Technology Type */ @@ -2610,14 +2610,14 @@ decode_msrac_value_part(proto_tree *tree, tvbuff_t *tvb, guint64 bo) { /* * 11.3.22 MS Radio Access Capability */ -static void +static void decode_iei_ms_radio_access_capability(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; - + if (!bi->bssgp_tree) { bi->offset += ie->value_length; - return; + return; } ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_ms_radio_access_capability); @@ -2632,7 +2632,7 @@ decode_iei_ms_radio_access_capability(bssgp_ie_t *ie, build_info_t *bi, int ie_s /* * 11.3.23 OMC Id */ -static void +static void decode_iei_omc_id(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* XXX: Translation: where in 3GPP TS 12.20? */ proto_item *ti; @@ -2646,19 +2646,19 @@ decode_iei_omc_id(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* * 11.3.24 PDU In Error */ -static void +static void decode_iei_pdu_in_error(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); - proto_item_append_text(ti, ": Erroneous BSSGP PDU (%u bytes)", + proto_item_append_text(ti, ": Erroneous BSSGP PDU (%u bytes)", ie->value_length); } bi->offset += ie->value_length; } -static void +static void decode_iei_priority(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_PCI = 0x40; const guint8 MASK_PRIORITY_LEVEL = 0x3c; @@ -2691,39 +2691,39 @@ decode_iei_priority(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (!bi->bssgp_tree) { bi->offset += ie->value_length; return; - } + } ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_priority); - - data = tvb_get_guint8(bi->tvb, bi->offset); - + + data = tvb_get_guint8(bi->tvb, bi->offset); + value = get_masked_guint8(data, MASK_PCI); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PCI); proto_item_append_text(pi, "PCI: This allocation request %s preempt an existing connection", value == 0 ? "shall not" : "may"); - + value = get_masked_guint8(data, MASK_PRIORITY_LEVEL); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PRIORITY_LEVEL); proto_item_append_text(pi, "Priority Level: %s", val_to_str(value, tab_priority_level, "")); - + value = get_masked_guint8(data, MASK_QA); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_QA); proto_item_append_text(pi, "QA: Queuing%s allowed", value == 0 ? " not" : ""); - + value = get_masked_guint8(data, MASK_PVI); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PVI); proto_item_append_text(pi, "PVI: This connection %s be preempted by another allocation request", value == 0 ? "shall not" : "might"); - + bi->offset += ie->value_length; } /* * 11.3.28 QoS Profile */ -static void +static void decode_iei_qos_profile(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_CR_BIT = 0x20; const guint8 MASK_T_BIT = 0x10; @@ -2735,14 +2735,14 @@ decode_iei_qos_profile(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { guint16 peak_bit_rate; static const value_string tab_precedence_ul[] = { - { 0, "High priority" }, + { 0, "High priority" }, { 1, "Normal priority" }, { 2, "Low priority" }, { 0, NULL }, }; static const value_string tab_precedence_dl[] = { - { 0, "Radio priority 1" }, + { 0, "Radio priority 1" }, { 1, "Radio priority 2" }, { 2, "Radio priority 3" }, { 3, "Radio priority 4" }, @@ -2777,21 +2777,21 @@ decode_iei_qos_profile(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { value = get_masked_guint8(data, MASK_T_BIT); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_T_BIT); proto_item_append_text(pi, "T: The SDU contains %s", - value == 0 ? - "data" : + value == 0 ? + "data" : "signalling (e.g. related to GMM)"); value = get_masked_guint8(data, MASK_A_BIT); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_A_BIT); proto_item_append_text(pi, "A: Radio interface uses RLC/MAC %s functionality", value == 0 ? "ARQ " : "UNITDATA "); - + value = get_masked_guint8(data, MASK_PRECEDENCE); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PRECEDENCE); proto_item_append_text(pi, "Precedence: "); if (bi->ul_data) { - proto_item_append_text(pi, val_to_str(value, tab_precedence_ul, + proto_item_append_text(pi, val_to_str(value, tab_precedence_ul, "Reserved (Low priority)")); } else { @@ -2804,7 +2804,7 @@ decode_iei_qos_profile(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* * 11.3.29 Radio Cause */ -static void +static void decode_iei_radio_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; guint8 value; @@ -2829,7 +2829,7 @@ decode_iei_radio_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset += ie->value_length; } -static void +static void decode_iei_ra_cap_upd_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; guint8 value; @@ -2852,7 +2852,7 @@ decode_iei_ra_cap_upd_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offse bi->offset += ie->value_length; } -static void +static void decode_iei_routeing_area(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; @@ -2869,7 +2869,7 @@ decode_iei_routeing_area(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) proto_item_append_text(ti, ": RAI %s", rai); } -static void +static void decode_iei_tlli(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; @@ -2879,33 +2879,33 @@ decode_iei_tlli(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); proto_item_append_text(ti, ": %#04x", tlli); - - /* By Stefan Boman LN/Ericsson 2006-07-14 -- - * Commented the following four lines. Preventing redundant data + + /* By Stefan Boman LN/Ericsson 2006-07-14 -- + * Commented the following four lines. Preventing redundant data */ /* ti = bssgp_proto_tree_add_ie(ie, bi, bi->offset); tf = proto_item_add_subtree(ti, ett_bssgp_tlli); - - proto_tree_add_item(tf, hf_bssgp_tlli, + + proto_tree_add_item(tf, hf_bssgp_tlli, bi->tvb, bi->offset, 4, BSSGP_LITTLE_ENDIAN); */ } bi->offset += 4; if (check_col(bi->pinfo->cinfo, COL_INFO)) { - col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, + col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "TLLI %#4x", tlli); } - + if (check_col(bi->pinfo->cinfo, COL_BSSGP_TLLI)) { col_add_fstr(bi->pinfo->cinfo, COL_BSSGP_TLLI, "%#04x", tlli); } - + decode_nri(bi->bssgp_tree, bi, tlli); } -static void +static void decode_iei_tmsi(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; @@ -2916,49 +2916,49 @@ decode_iei_tmsi(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); proto_item_append_text(ti, ": %#04x", tmsi); - + ti = bssgp_proto_tree_add_ie(ie, bi, bi->offset); tf = proto_item_add_subtree(ti, ett_bssgp_tmsi_ptmsi); - - proto_tree_add_item(tf, hf_bssgp_tmsi_ptmsi, + + proto_tree_add_item(tf, hf_bssgp_tmsi_ptmsi, bi->tvb, bi->offset, 4, BSSGP_LITTLE_ENDIAN); } bi->offset += 4; if (check_col(bi->pinfo->cinfo, COL_INFO)) { - col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, + col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "(P)TMSI %#4x", tmsi); } decode_nri(bi->bssgp_tree, bi, tmsi); } -static void +static void decode_iei_trigger_id(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* XXX: value is 20 octets long! How add/show? */ proto_item *ti; - + if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); } bi->offset += ie->value_length; } -static void +static void proto_tree_add_lsa_id(build_info_t *bi, proto_tree *tree) { guint32 data, lsa_id; proto_item *pi; - + data = tvb_get_ntoh24(bi->tvb, bi->offset); lsa_id = data >> 1; - - pi = proto_tree_add_text(tree, bi->tvb, bi->offset, 3, + + pi = proto_tree_add_text(tree, bi->tvb, bi->offset, 3, "LSA ID: %#03x (%s)", lsa_id, - data & 1 ? + data & 1 ? "Universal LSA" : "PLMN significant number"); bi->offset += 3; } -static void +static void decode_iei_lsa_identifier_list(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_EP = 0x01; proto_item *ti, *pi; @@ -2986,7 +2986,7 @@ decode_iei_lsa_identifier_list(bssgp_ie_t *ie, build_info_t *bi, int ie_start_of } } -static void +static void decode_iei_lsa_information(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_LSA_ONLY = 0x01; const guint8 MASK_ACT = 0x20; @@ -3027,7 +3027,7 @@ decode_iei_lsa_information(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset value = tvb_get_masked_guint8(bi->tvb, bi->offset, MASK_LSA_ONLY); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_LSA_ONLY); proto_item_append_text(pi, "LSA Only: %s", - value == 0 ? + value == 0 ? "The subscriber has only access to the LSAs that are defined by the LSA information element" : "Allow an emergency call"); bi->offset++; @@ -3035,17 +3035,17 @@ decode_iei_lsa_information(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset num_lsa_infos = (ie->value_length - 1) / 4; for (i = 0; i < num_lsa_infos; i++) { - ti2 = proto_tree_add_text(tf, bi->tvb, bi->offset, 4, + ti2 = proto_tree_add_text(tf, bi->tvb, bi->offset, 4, "LSA Identification and attributes %u", i + 1); tf2 = proto_item_add_subtree(ti2, ett_bssgp_lsa_information_lsa_identification_and_attributes); - + data = tvb_get_guint8(bi->tvb, bi->offset); - + value = get_masked_guint8(data, MASK_ACT); pi = proto_tree_add_bitfield8(tf2, bi->tvb, bi->offset, MASK_ACT); proto_item_append_text(pi, "Act: The subscriber %s active mode support in the LSA", value == 0 ? "does not have" : "has"); - + value = get_masked_guint8(data, MASK_PREF); pi = proto_tree_add_bitfield8(tf2, bi->tvb, bi->offset, MASK_PREF); proto_item_append_text(pi, "Pref: The subscriber %s preferential access in the LSA", @@ -3056,12 +3056,12 @@ decode_iei_lsa_information(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset proto_item_append_text(pi, "Priority: %s", val_to_str(value, tab_priority, "")); bi->offset++; - + proto_tree_add_lsa_id(bi, tf2); } } -static void +static void decode_iei_gprs_timer(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_UNIT_VALUE = 0xe0; const guint8 MASK_TIMER_VALUE = 0x1f; @@ -3083,16 +3083,16 @@ decode_iei_gprs_timer(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_TIMER_VALUE); proto_item_append_text(ti, ": %u", value); - + value = get_masked_guint8(data, MASK_UNIT_VALUE); proto_item_append_text(ti, ", %s", - val_to_str(value, tab_unit_value, + val_to_str(value, tab_unit_value, "incremented in multiples of 1 minute")); } bi->offset += ie->value_length; } -static void +static void decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_DELAY_CLASS = 0x38; const guint8 MASK_RELIABILITY_CLASS = 0x07; @@ -3122,16 +3122,16 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { } ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_abqp); - + data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_DELAY_CLASS); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_DELAY_CLASS); - proto_item_append_text(pi, "Delay Class: %s (%#x)", + proto_item_append_text(pi, "Delay Class: %s (%#x)", translate_abqp_delay_class(value, bi), value); value = get_masked_guint8(data, MASK_RELIABILITY_CLASS); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_RELIABILITY_CLASS); proto_item_append_text(pi, "Reliability Class: %s (%#x)", translate_abqp_reliability_class(value, bi), value); @@ -3140,13 +3140,13 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_PEAK_THROUGHPUT); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PEAK_THROUGHPUT); proto_item_append_text(pi, "Peak Throughput: %s (%#x)", translate_abqp_peak_throughput(value, bi), value); value = get_masked_guint8(data, MASK_PRECEDENCE_CLASS); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PRECEDENCE_CLASS); proto_item_append_text(pi, "Precedence Class: %s (%#x)", translate_abqp_precedence_class(value, bi), value); @@ -3155,7 +3155,7 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_MEAN_THROUGHPUT); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_MEAN_THROUGHPUT); proto_item_append_text(pi, "Mean Throughput: %s (%#02x)", translate_abqp_mean_throughput(value, bi), value); @@ -3172,9 +3172,9 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { traffic_class = get_masked_guint8(data, MASK_TRAFFIC_CLASS); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_TRAFFIC_CLASS); proto_item_append_text(pi, "Traffic Class: %s (%#x)", - translate_abqp_traffic_class(traffic_class, bi), + translate_abqp_traffic_class(traffic_class, bi), value); - if ((traffic_class == TRAFFIC_CLASS_INTERACTIVE) || + if ((traffic_class == TRAFFIC_CLASS_INTERACTIVE) || (traffic_class == TRAFFIC_CLASS_BACKGROUND)) { proto_item_append_text(pi, " (ignored)"); } @@ -3185,7 +3185,7 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { translate_abqp_delivery_order(value, bi), value); value = get_masked_guint8(data, MASK_DELIVERY_OF_ERRONEOUS_SDU); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_DELIVERY_OF_ERRONEOUS_SDU); proto_item_append_text(pi, "Delivery of Erroneous SDU: %s (%#x)", translate_abqp_delivery_of_erroneous_sdu(value, bi), @@ -3194,21 +3194,21 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* Octet 7 */ value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Maximum SDU Size: %s", translate_abqp_max_sdu_size(value, bi)); /* Octet 8 */ bi->offset++; value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Maximum bit rate for uplink: %s", translate_abqp_max_bit_rate_for_ul(value, bi)); /* Octet 9 */ bi->offset++; value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Maximum bit rate for downlink: %s", translate_abqp_max_bit_rate_for_dl(value, bi)); /* Octet 10 */ @@ -3221,7 +3221,7 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { translate_abqp_residual_ber(value, bi), value); value = get_masked_guint8(data, MASK_SDU_ERROR_RATIO); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_SDU_ERROR_RATIO); proto_item_append_text(pi, "SDU Error Ratio: %s (%#x)", translate_abqp_sdu_error_ratio(value, bi), value); @@ -3235,7 +3235,7 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { translate_abqp_transfer_delay(value, bi), value); value = get_masked_guint8(data, MASK_TRAFFIC_HANDLING_PRIORITY); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_TRAFFIC_HANDLING_PRIORITY); proto_item_append_text(pi, "Traffic Handling Priority: %s (%#x)", translate_abqp_traffic_handling_priority(value, bi), @@ -3249,14 +3249,14 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset++; value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Guaranteed bit rate for uplink: %s", translate_abqp_guaranteed_bit_rate_for_ul(value, bi)); /* Octet 13 */ bi->offset++; value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Guaranteed bit rate for downlink: %s", translate_abqp_guaranteed_bit_rate_for_dl(value, bi)); /* @@ -3271,7 +3271,7 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_SIGNALLING_INDICATION); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_SIGNALLING_INDICATION); proto_item_append_text(pi, "Signalling Indication: %s for signalling traffic", value == 0 ? "Not optimized" : "Optimized"); @@ -3282,7 +3282,7 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { } value = get_masked_guint8(data, MASK_SOURCE_STATISTICS_DESCRIPTOR); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_SOURCE_STATISTICS_DESCRIPTOR); proto_item_append_text(pi, "Source Statistics Descriptor: %s (%#x)", translate_abqp_source_statistics_descriptor(value, bi), @@ -3301,20 +3301,20 @@ decode_iei_abqp(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { return; value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Maximum bit rate for downlink (extended): %s", translate_abqp_max_bit_rate_for_dl_extended(value, bi)); /* Octet 16 */ bi->offset++; value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Guaranteed bit rate for downlink (extended): %s", translate_abqp_guaranteed_bit_rate_for_dl_extended(value, bi)); bi->offset++; } -static void +static void decode_iei_feature_bitmap(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_ENHANCED_RADIO_STATUS = 0x40; const guint8 MASK_PFC_FC = 0x20; @@ -3333,15 +3333,15 @@ decode_iei_feature_bitmap(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) } ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_feature_bitmap); - + data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_ENHANCED_RADIO_STATUS); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_ENHANCED_RADIO_STATUS); proto_item_append_text(pi, "Enhanced Radio Status: Enhanced Radio Status Procedures%s supported", value == 0 ? " not" : ""); - + value = get_masked_guint8(data, MASK_PFC_FC); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PFC_FC); proto_item_append_text(pi, "PFC_FC: PFC Flow Control Procedures%s supported", @@ -3361,7 +3361,7 @@ decode_iei_feature_bitmap(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_INR); proto_item_append_text(pi, "INR: Inter-NSE re-routeing%s supported", value == 0 ? " not" : ""); - + value = get_masked_guint8(data, MASK_CBL); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_CBL); proto_item_append_text(pi, "CBL: Current Bucket Level Procedures%s supported", @@ -3370,15 +3370,15 @@ decode_iei_feature_bitmap(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) value = get_masked_guint8(data, MASK_PFC); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PFC); proto_item_append_text(pi, "PFC: Packet Flow Context Procedures%s supported", - value == 0 ? " not" : ""); + value == 0 ? " not" : ""); - bi->offset += ie->value_length; + bi->offset += ie->value_length; } -static void +static void decode_iei_bucket_full_ratio(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; - + if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); bssgp_pi_append_bucket_full_ratio(ti, bi->tvb, bi->offset); @@ -3386,11 +3386,11 @@ decode_iei_bucket_full_ratio(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offs bi->offset += ie->value_length; } -static void +static void decode_iei_service_utran_cco(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_SERVICE_UTRAN_CCO = 0x07; proto_item *ti; - guint8 data, value; + guint8 data, value; static const value_string tab_service_utran_cco[] = { { 0, "Network initiated cell change order procedure to UTRAN should be performed" }, @@ -3405,14 +3405,14 @@ decode_iei_service_utran_cco(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offs data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_SERVICE_UTRAN_CCO); proto_item_append_text(ti, ": %s (%#02x)", - val_to_str(value, tab_service_utran_cco, + val_to_str(value, tab_service_utran_cco, "No information available"), value); } bi->offset += ie->value_length; } -static void +static void decode_iei_nsei(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; guint16 nsei; @@ -3422,18 +3422,18 @@ decode_iei_nsei(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); proto_item_append_text(ti, ": %u", nsei); - proto_tree_add_item_hidden(bi->bssgp_tree, hf_bssgp_nsei, + proto_tree_add_item_hidden(bi->bssgp_tree, hf_bssgp_nsei, bi->tvb, bi->offset, 2, BSSGP_LITTLE_ENDIAN); } bi->offset += ie->value_length; if (check_col(bi->pinfo->cinfo, COL_INFO)) { - col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, + col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "NSEI %u", nsei); } } -static void +static void decode_iei_lcs_qos(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_VERT = 0x01; const guint8 MASK_XA = 0x80; @@ -3466,7 +3466,7 @@ decode_iei_lcs_qos(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset++; data = tvb_get_guint8(bi->tvb, bi->offset); - + value = get_masked_guint8(data, MASK_XA); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_XA); proto_item_append_text(pi, "HA: Horizontal Accuracy is%s specified", @@ -3475,13 +3475,13 @@ decode_iei_lcs_qos(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { if (value == 1) { value = get_masked_guint8(data, MASK_ACCURACY); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_ACCURACY); - proto_item_append_text(pi, "Horizontal Accuracy: %.1f m", + proto_item_append_text(pi, "Horizontal Accuracy: %.1f m", 10 * (pow(1.1, (double)value) - 1)); } bi->offset++; data = tvb_get_guint8(bi->tvb, bi->offset); - + if (vert == 1) { value = get_masked_guint8(data, MASK_XA); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_XA); @@ -3490,21 +3490,21 @@ decode_iei_lcs_qos(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { value = get_masked_guint8(data, MASK_ACCURACY); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_ACCURACY); - proto_item_append_text(pi, "Vertical Accuracy: %.1f m", + proto_item_append_text(pi, "Vertical Accuracy: %.1f m", 45 * (pow(1.025, (double)value) - 1)); } bi->offset++; data = tvb_get_guint8(bi->tvb, bi->offset); value = get_masked_guint8(data, MASK_RT); - + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_RT); proto_item_append_text(pi, "RT: %s", val_to_str(value, tab_rt, "")); bi->offset++; } -static void +static void decode_iei_lcs_client_type(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_CATEGORY = 0xf0; const guint8 MASK_SUBTYPE = 0x0f; @@ -3530,7 +3530,7 @@ decode_iei_lcs_client_type(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset tf = proto_item_add_subtree(ti, ett_bssgp_lcs_client_type); data = tvb_get_guint8(bi->tvb, bi->offset); - + category = get_masked_guint8(data, MASK_CATEGORY); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_CATEGORY); proto_item_append_text(pi, "Category: %s (%#x)", @@ -3575,7 +3575,7 @@ decode_iei_lcs_client_type(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset bi->offset++; } -static void +static void decode_iei_requested_gps_assistance_data(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_A = 0x01; const guint8 MASK_B = 0x02; @@ -3657,8 +3657,8 @@ decode_iei_requested_gps_assistance_data(bssgp_ie_t *ie, build_info_t *bi, int i gps_week = (data & 0xc0) << 2; data = tvb_get_guint8(bi->tvb, bi->offset + 1); gps_week += data; - proto_tree_add_text(tf, bi->tvb, bi->offset, 2, - "GPS Week: %u", gps_week); + proto_tree_add_text(tf, bi->tvb, bi->offset, 2, + "GPS Week: %u", gps_week); bi->offset += 2; value = tvb_get_guint8(bi->tvb, bi->offset); @@ -3687,14 +3687,14 @@ decode_iei_requested_gps_assistance_data(bssgp_ie_t *ie, build_info_t *bi, int i bi->offset++; value = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf2, bi->tvb, bi->offset, 1, + proto_tree_add_text(tf2, bi->tvb, bi->offset, 1, "IODE: %u", value); proto_item_append_text(ti2, ", IODE %u", value); bi->offset++; } } -static void +static void decode_iei_location_type(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 LOCATION_ASSISTANCE = 1; const guint8 DECIPHERING_KEYS = 2; @@ -3728,20 +3728,20 @@ decode_iei_location_type(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) value = tvb_get_guint8(bi->tvb, bi->offset); proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Location Information: %s", - val_to_str(value, tab_location_information, + val_to_str(value, tab_location_information, "Reserved")); bi->offset++; if ((value == LOCATION_ASSISTANCE) || (value == DECIPHERING_KEYS)) { value = tvb_get_guint8(bi->tvb, bi->offset); proto_tree_add_text(tf, bi->tvb, bi->offset, 1, "Positioning Method: %s", - val_to_str(value, tab_positioning_method, + val_to_str(value, tab_positioning_method, "Reserved")); bi->offset++; } } -static void +static void decode_iei_location_estimate(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* XXX: Which paragraph in 3GPP TS 23.032?*/ proto_item *ti; @@ -3755,7 +3755,7 @@ decode_iei_location_estimate(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offs } } -static void +static void decode_iei_positioning_data(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_PDD = 0x0f; const guint8 MASK_METHOD = 0xf8; @@ -3767,15 +3767,15 @@ decode_iei_positioning_data(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offse if (!bi->bssgp_tree) { bi->offset += ie->value_length; return; - } + } ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_positioning_data); value = tvb_get_masked_guint8(bi->tvb, bi->offset, MASK_PDD); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_PDD); proto_item_append_text(pi, "Positioning Data Discriminator: %s", - value == 0 ? - "Indicate usage of each positioning method that was attempted either successfully or unseccessfully" : + value == 0 ? + "Indicate usage of each positioning method that was attempted either successfully or unseccessfully" : "Reserved"); bi->offset++; @@ -3786,7 +3786,7 @@ decode_iei_positioning_data(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offse value = get_masked_guint8(data, MASK_METHOD); pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_METHOD); proto_item_append_text(pi, "Method: "); - + switch (value) { case 0: proto_item_set_text(pi, "Timing Advance"); break; case 1: proto_item_set_text(pi, "Reserved"); break; @@ -3806,7 +3806,7 @@ decode_iei_positioning_data(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offse } } proto_item_append_text(pi, " (%#02x)", value); /* Method */ - + value = get_masked_guint8(data, MASK_USAGE); switch (value) { @@ -3815,14 +3815,14 @@ decode_iei_positioning_data(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offse case 2: proto_item_append_text(pi, " attempted successfully: results used to verify but not generate location"); break; case 3: proto_item_append_text(pi, "attempted successfully: results used to generate location"); break; case 4: proto_item_append_text(pi, "a temmpted successfully: case where MS supports multiple mobile based positioning methods and the actual method or methods used by the MS cannot be determined"); break; - default: ; /* ??? */ + default: ; /* ??? */ } proto_item_append_text(pi, " (%#x)", value); /* Usage */ bi->offset++; } } -static void +static void decode_iei_deciphering_keys(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_KEY_FLAG = 0x01; proto_item *ti, *pi; @@ -3847,12 +3847,12 @@ decode_iei_deciphering_keys(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offse "Current Deciphering Key Value"); bi->offset += 7; - proto_tree_add_text(tf, bi->tvb, bi->offset, 7, + proto_tree_add_text(tf, bi->tvb, bi->offset, 7, "Next Deciphering Key Value"); bi->offset += 7; } -static void +static void decode_iei_lcs_priority(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /* XXX: coding (3GPP TS 29.002 7.6.11.7)? */ proto_item *ti; @@ -3864,7 +3864,7 @@ decode_iei_lcs_priority(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { bi->offset += ie->value_length; } -static void +static void decode_iei_lcs_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; @@ -3927,16 +3927,16 @@ decode_iei_lcs_cause(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { val_to_str(value, tab_cause_value, "Unspecified"), value); bi->offset++; - + value = tvb_get_guint8(bi->tvb, bi->offset); proto_tree_add_text(tf, bi->tvb, bi->offset, 1, ": %s (%#02x)", - val_to_str(value, tab_diagnostic_value, + val_to_str(value, tab_diagnostic_value, "Unrecognized => ignored"), value); bi->offset++; } -static void +static void decode_iei_lcs_capability(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_OTD_A = 0x10; const guint8 MASK_OTD_B = 0x08; @@ -3984,7 +3984,7 @@ decode_iei_lcs_capability(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) bi->offset++; } -static void +static void decode_iei_rrlp_flags(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_FLAG1 = 0x01; proto_item *ti; @@ -3994,7 +3994,7 @@ decode_iei_rrlp_flags(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); value = tvb_get_masked_guint8(bi->tvb, bi->offset, MASK_FLAG1); proto_item_append_text(ti, ": Flag1:%s Position Command (BSS to SGSN) or final response (SGSN to BSS) (%u)", - value == 0 ? " Not a" : "", value); + value == 0 ? " Not a" : "", value); } bi->offset++; } @@ -4009,7 +4009,7 @@ decode_iei_rim_application_identity(bssgp_ie_t *ie _U_, build_info_t *bi, int ie return; } - ti = proto_tree_add_item(bi->bssgp_tree, hf_bssgp_appid, + ti = proto_tree_add_item(bi->bssgp_tree, hf_bssgp_appid, bi->tvb, bi->offset, 1, FALSE); appid = tvb_get_guint8(bi->tvb, bi->offset); @@ -4025,14 +4025,14 @@ decode_iei_rim_application_identity(bssgp_ie_t *ie _U_, build_info_t *bi, int ie } #if 0 -static void +static void decode_ran_information_common(build_info_t *bi, proto_tree *parent_tree) { proto_tree *tf; proto_item *ti; char *rai_ci; guint8 num_rai_cis, i; - ti = proto_tree_add_text(parent_tree, bi->tvb, bi->offset, 8, + ti = proto_tree_add_text(parent_tree, bi->tvb, bi->offset, 8, "RAI + CI for Source Cell"); tf = proto_item_add_subtree(ti, ett_bssgp_rai_ci); @@ -4040,13 +4040,13 @@ decode_ran_information_common(build_info_t *bi, proto_tree *parent_tree) { proto_item_append_text(ti, ": %s", rai_ci); num_rai_cis = tvb_get_guint8(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 1, - "%u ""RAI+CI for Destination Cell"" follow%s", + proto_tree_add_text(tf, bi->tvb, bi->offset, 1, + "%u ""RAI+CI for Destination Cell"" follow%s", num_rai_cis, (num_rai_cis == 0) ? "" : "s"); bi->offset++; for (i = 0; i < num_rai_cis; i++) { - ti = proto_tree_add_text(parent_tree, bi->tvb, bi->offset, 8, + ti = proto_tree_add_text(parent_tree, bi->tvb, bi->offset, 8, """RAI + CI for Destination Cell"" (%u)", i + 1); tf = proto_item_add_subtree(ti, ett_bssgp_rai_ci); rai_ci = decode_rai_ci(bi, tf); @@ -4064,7 +4064,7 @@ static const value_string ra_discriminator_vals[] = { { 0, NULL }, }; -static void +static void decode_iei_rim_routing_information(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; @@ -4074,16 +4074,16 @@ decode_iei_rim_routing_information(bssgp_ie_t *ie, build_info_t *bi, int ie_star ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_rim_routing_information); - proto_tree_add_item(tf, hf_bssgp_ra_discriminator, + proto_tree_add_item(tf, hf_bssgp_ra_discriminator, bi->tvb, bi->offset, 1, FALSE); data = tvb_get_guint8(bi->tvb, bi->offset); - + bi->offset += 1; decode_rai(bi, tf); - proto_tree_add_item(tf, hf_bssgp_ci, + proto_tree_add_item(tf, hf_bssgp_ci, bi->tvb, bi->offset, 2, BSSGP_LITTLE_ENDIAN); bi->offset += 2; @@ -4124,10 +4124,10 @@ decode_iei_application_error(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offs } } -/* +/* * 11.3.63.1.1 RAN-INFORMATION-REQUEST Application Container for the NACC Application */ -static void +static void decode_iei_ran_information_request_application_container(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; proto_tree *tf; @@ -4136,7 +4136,7 @@ decode_iei_ran_information_request_application_container(bssgp_ie_t *ie, build_i if (bi->bssgp_tree) { ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_ran_information_container_unit); - + /* * Octet 3-10 Reporting Cell Identifier: * This field is encoded as the Cell Identifier defined in sub-clause 11.3.9 @@ -4148,7 +4148,7 @@ decode_iei_ran_information_request_application_container(bssgp_ie_t *ie, build_i bi->offset += ie->value_length; } } -static void +static void decode_iei_ran_information_application_container(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { const guint8 MASK_NUMBER_OF_SI_PSI = 0xfe; const guint8 MASK_UNIT_TYPE = 0x01; @@ -4175,7 +4175,7 @@ decode_iei_ran_information_application_container(bssgp_ie_t *ie, build_info_t *b num_si_psi = get_masked_guint8(data, MASK_NUMBER_OF_SI_PSI); type_si_psi = get_masked_guint8(data, MASK_UNIT_TYPE); - pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, + pi = proto_tree_add_bitfield8(tf, bi->tvb, bi->offset, MASK_NUMBER_OF_SI_PSI); proto_item_append_text(pi, "Number of SI/PSI: %u ""SI/PSI"" follow%s", num_si_psi, @@ -4185,26 +4185,26 @@ decode_iei_ran_information_application_container(bssgp_ie_t *ie, build_info_t *b proto_item_append_text(pi, "Type: %s messages as specified for %s follow", type_si_psi == TYPE_SI ? "SI" : "PSI", type_si_psi == TYPE_SI ? "BCCH" : "PBCCH"); - + bi->offset++; for (i = 0; i < num_si_psi; i++) { if (type_si_psi == TYPE_SI) { - proto_tree_add_text(tf, bi->tvb, bi->offset, LEN_SI, + proto_tree_add_text(tf, bi->tvb, bi->offset, LEN_SI, " SI (%u), %u octets", i + 1, LEN_SI); /* XXX: Not decoded yet; which section in 3GPP TS 44.018? */ proto_tree_add_item(tf, hf_bssgp_rrc_si_msg_type, bi->tvb, bi->offset, 1, FALSE); /* TODO: * Add decoding in packet-gsm_a.c ? Needs a new exported function "gsm_a_decode_rr_message?) - * + * */ bi->offset += LEN_SI; } else if (type_si_psi == TYPE_PSI) { - proto_tree_add_text(tf, bi->tvb, bi->offset, LEN_PSI, + proto_tree_add_text(tf, bi->tvb, bi->offset, LEN_PSI, " PSI (%u), %u octets", i + 1, LEN_PSI); /* XXX: Not decoded yet; which section in 3GPP TS 44.060? - + System information messages: Reference Packet System Information Type 1 11.2.18 Packet System Information Type 2 11.2.19 @@ -4249,7 +4249,7 @@ static const value_string ran_inf_pdu_type_ext_vals[] = { { 0, NULL }, }; /* 11.3.65 RIM PDU Indications 3GPP TS 48.018 version 6.7.0 Release 6 */ -static void +static void decode_iei_rim_pdu_indications(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { /** const guint8 MASK_EXT = 0x0E; **/ const guint8 MASK_ACK = 0x01; @@ -4263,11 +4263,11 @@ decode_iei_rim_pdu_indications(bssgp_ie_t *ie, build_info_t *bi, int ie_start_of } ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_rim_pdu_indications); - + data = tvb_get_guint8(bi->tvb, bi->offset); - + if (bi->pdutype == BSSGP_IEI_RAN_INFORMATION_CONTAINER_UNIT) { - proto_tree_add_item(tf, hf_ran_inf_pdu_type_ext, bi->tvb, bi->offset, 1, FALSE); + proto_tree_add_item(tf, hf_ran_inf_pdu_type_ext, bi->tvb, bi->offset, 1, FALSE); }else{ proto_tree_add_item(tf, hf_ran_inf_req_pdu_type_ext, bi->tvb, bi->offset, 1, FALSE); } @@ -4279,7 +4279,7 @@ decode_iei_rim_pdu_indications(bssgp_ie_t *ie, build_info_t *bi, int ie_start_of bi->offset++; } -static void +static void decode_iei_number_of_container_units(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_item *ti; guint8 value; @@ -4297,7 +4297,7 @@ decode_iei_number_of_container_units(bssgp_ie_t *ie, build_info_t *bi, int ie_st bi->offset++; } -static void +static void decode_iei_pfc_flow_control_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_tree *tf, *tf2; proto_item *ti, *ti2, *pi; @@ -4311,8 +4311,8 @@ decode_iei_pfc_flow_control_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_ ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset); tf = proto_item_add_subtree(ti, ett_bssgp_pfc_flow_control_parameters); - num_pfc = tvb_get_guint8(bi->tvb, bi->offset); - pi = proto_tree_add_text(bi->bssgp_tree, bi->tvb, bi->offset, 1, + num_pfc = tvb_get_guint8(bi->tvb, bi->offset); + pi = proto_tree_add_text(bi->bssgp_tree, bi->tvb, bi->offset, 1, "Number of PFCs: "); if (num_pfc < 12) { @@ -4329,7 +4329,7 @@ decode_iei_pfc_flow_control_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_ b_pfc_included = (pfc_len == 6); for (i = 0; i < num_pfc; i++) { - ti2 = proto_tree_add_text(tf, bi->tvb, bi->offset, pfc_len, + ti2 = proto_tree_add_text(tf, bi->tvb, bi->offset, pfc_len, "PFC (%u)", i + 1); tf2 = proto_item_add_subtree(ti2, ett_bssgp_pfc_flow_control_parameters_pfc); @@ -4349,11 +4349,11 @@ decode_iei_pfc_flow_control_parameters(bssgp_ie_t *ie, build_info_t *bi, int ie_ pi = proto_tree_add_text(tf2, bi->tvb, bi->offset, 1, "B_PFC"); bssgp_pi_append_bucket_full_ratio(pi, bi->tvb, bi->offset); bi->offset++; - } + } } } -static void +static void decode_iei_global_cn_id(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { proto_tree *ti; proto_tree *tf; @@ -4370,11 +4370,11 @@ decode_iei_global_cn_id(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) { mcc_mnc = decode_mcc_mnc(bi, tf); proto_item_append_text(ti, ": PLMN-Id %s", mcc_mnc); - value = tvb_get_ntohs(bi->tvb, bi->offset); - proto_tree_add_text(tf, bi->tvb, bi->offset, 2, + value = tvb_get_ntohs(bi->tvb, bi->offset); + proto_tree_add_text(tf, bi->tvb, bi->offset, 2, "CN-ID: %u", value); proto_item_append_text(ti, ", CN-Id %u", value); - bi->offset += 2; + bi->offset += 2; } static void @@ -4382,7 +4382,7 @@ decode_ie(bssgp_ie_t *ie, build_info_t *bi) { int org_offset = bi->offset; if (tvb_length_remaining(bi->tvb, bi->offset) < 1) { -/* TODO This code does not work well with omitted Optional elements +/* TODO This code does not work well with omitted Optional elements proto_tree_add_none_format(bi->bssgp_tree, NULL, bi->tvb, 0, -1, "[tvb_length_remaining] length remaining: %d", tvb_length_remaining(bi->tvb, bi->offset)); */ return; @@ -4515,7 +4515,7 @@ decode_ie(bssgp_ie_t *ie, build_info_t *bi) { break; case BSSGP_IEI_TLLI: decode_iei_tlli(ie, bi, org_offset); - break; + break; case BSSGP_IEI_TMSI: decode_iei_tmsi(ie, bi, org_offset); break; @@ -4656,7 +4656,7 @@ decode_ie(bssgp_ie_t *ie, build_info_t *bi) { } } -static void +static void decode_pdu_general(bssgp_ie_t *ies, int num_ies, build_info_t *bi) { int i; for (i = 0; i < num_ies; i++) { @@ -4664,46 +4664,46 @@ decode_pdu_general(bssgp_ie_t *ies, int num_ies, build_info_t *bi) { } } -static void +static void decode_pdu_dl_unitdata(build_info_t *bi) { bssgp_ie_t ies[] = { { BSSGP_IEI_TLLI, "TLLI (current)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_V, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_QOS_PROFILE, NULL, + { BSSGP_IEI_QOS_PROFILE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_V, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_PDU_LIFETIME, NULL, + { BSSGP_IEI_PDU_LIFETIME, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4}, - { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, + { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN}, - { BSSGP_IEI_PRIORITY, NULL, + { BSSGP_IEI_PRIORITY, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3}, - { BSSGP_IEI_DRX_PARAMETERS, NULL, + { BSSGP_IEI_DRX_PARAMETERS, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4}, - { BSSGP_IEI_IMSI, NULL, + { BSSGP_IEI_IMSI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN}, - { BSSGP_IEI_TLLI, "TLLI (old)", + { BSSGP_IEI_TLLI, "TLLI (old)", BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6}, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3}, - { BSSGP_IEI_LSA_INFORMATION, NULL, + { BSSGP_IEI_LSA_INFORMATION, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN}, - { BSSGP_IEI_SERVICE_UTRAN_CCO, NULL, + { BSSGP_IEI_SERVICE_UTRAN_CCO, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3}, - { BSSGP_IEI_ALIGNMENT_OCTETS, NULL, + { BSSGP_IEI_ALIGNMENT_OCTETS, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN}, - { BSSGP_IEI_LLC_PDU, NULL, + { BSSGP_IEI_LLC_PDU, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN}, }; bi->dl_data = TRUE; @@ -4712,28 +4712,28 @@ decode_pdu_dl_unitdata(build_info_t *bi) { decode_pdu_general(ies, 13, bi); } -static void +static void decode_pdu_ul_unitdata(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_V, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_QOS_PROFILE, NULL, + { BSSGP_IEI_QOS_PROFILE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_V, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_CELL_IDENTIFIER, NULL, + { BSSGP_IEI_CELL_IDENTIFIER, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_LSA_IDENTIFIER_LIST, NULL, + { BSSGP_IEI_LSA_IDENTIFIER_LIST, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_ALIGNMENT_OCTETS, NULL, + { BSSGP_IEI_ALIGNMENT_OCTETS, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_LLC_PDU, NULL, + { BSSGP_IEI_LLC_PDU, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = FALSE; @@ -4742,13 +4742,13 @@ decode_pdu_ul_unitdata(build_info_t *bi) { decode_pdu_general(ies, 7, bi); } -static void +static void decode_pdu_ra_capability(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, + { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN}, }; bi->dl_data = TRUE; @@ -4757,43 +4757,43 @@ decode_pdu_ra_capability(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_ptm_unitdata(build_info_t *bi) { - proto_tree_add_text(bi->bssgp_tree, bi->tvb, bi->offset, -1, + proto_tree_add_text(bi->bssgp_tree, bi->tvb, bi->offset, -1, "This shall be developed in GPRS phase 2"); } -static void +static void decode_pdu_paging_ps(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_IMSI, NULL, + { BSSGP_IEI_IMSI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_DRX_PARAMETERS, NULL, + { BSSGP_IEI_DRX_PARAMETERS, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_LOCATION_AREA, NULL, + { BSSGP_IEI_LOCATION_AREA, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 7 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, - { BSSGP_IEI_BSS_AREA_INDICATION, NULL, + { BSSGP_IEI_BSS_AREA_INDICATION, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_ABQP, NULL, + { BSSGP_IEI_ABQP, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_QOS_PROFILE, NULL, + { BSSGP_IEI_QOS_PROFILE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 5 }, - { BSSGP_IEI_TMSI, "P-TMSI", + { BSSGP_IEI_TMSI, "P-TMSI", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, }; bi->dl_data = TRUE; @@ -4802,40 +4802,40 @@ decode_pdu_paging_ps(build_info_t *bi) { decode_pdu_general(ies, 10, bi); } -static void +static void decode_pdu_paging_cs(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_IMSI, NULL, + { BSSGP_IEI_IMSI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_DRX_PARAMETERS, NULL, + { BSSGP_IEI_DRX_PARAMETERS, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_LOCATION_AREA, NULL, + { BSSGP_IEI_LOCATION_AREA, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 7 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, - { BSSGP_IEI_BSS_AREA_INDICATION, NULL, + { BSSGP_IEI_BSS_AREA_INDICATION, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_CHANNEL_NEEDED, NULL, + { BSSGP_IEI_CHANNEL_NEEDED, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_EMLPP_PRIORITY, NULL, + { BSSGP_IEI_EMLPP_PRIORITY, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_TMSI, NULL, + { BSSGP_IEI_TMSI, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_GLOBAL_CN_ID, NULL, + { BSSGP_IEI_GLOBAL_CN_ID, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 7 }, }; bi->dl_data = TRUE; @@ -4844,13 +4844,13 @@ decode_pdu_paging_cs(build_info_t *bi) { decode_pdu_general(ies, 11, bi); } -static void +static void decode_pdu_ra_capability_update(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -4859,22 +4859,22 @@ decode_pdu_ra_capability_update(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_ra_capability_update_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_IMSI, NULL, + { BSSGP_IEI_IMSI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_RA_CAP_UPD_CAUSE, NULL, + { BSSGP_IEI_RA_CAP_UPD_CAUSE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, + { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN}, }; bi->dl_data = TRUE; @@ -4883,19 +4883,19 @@ decode_pdu_ra_capability_update_ack(build_info_t *bi) { decode_pdu_general(ies, 5, bi); } -static void +static void decode_pdu_radio_status(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_TMSI, NULL, + { BSSGP_IEI_TMSI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_IMSI, NULL, + { BSSGP_IEI_IMSI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_RADIO_CAUSE, NULL, + { BSSGP_IEI_RADIO_CAUSE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -4904,13 +4904,13 @@ decode_pdu_radio_status(build_info_t *bi) { decode_pdu_general(ies, 4, bi); } -static void +static void decode_pdu_suspend(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, }; bi->dl_data = FALSE; @@ -4919,16 +4919,16 @@ decode_pdu_suspend(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_suspend_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, - { BSSGP_IEI_SUSPEND_REFERENCE_NUMBER, NULL, + { BSSGP_IEI_SUSPEND_REFERENCE_NUMBER, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -4937,16 +4937,16 @@ decode_pdu_suspend_ack(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_suspend_nack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -4955,16 +4955,16 @@ decode_pdu_suspend_nack(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_resume(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, - { BSSGP_IEI_SUSPEND_REFERENCE_NUMBER, NULL, + { BSSGP_IEI_SUSPEND_REFERENCE_NUMBER, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -4973,13 +4973,13 @@ decode_pdu_resume(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_resume_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, }; @@ -4989,16 +4989,16 @@ decode_pdu_resume_ack(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_resume_nack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_ROUTEING_AREA, NULL, + { BSSGP_IEI_ROUTEING_AREA, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 8 }, - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -5007,13 +5007,13 @@ decode_pdu_resume_nack(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_bvc_block(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5022,10 +5022,10 @@ decode_pdu_bvc_block(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_bvc_block_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4}, }; bi->dl_data = TRUE; @@ -5034,19 +5034,19 @@ decode_pdu_bvc_block_ack(build_info_t *bi) { decode_pdu_general(ies, 1, bi); } -static void +static void decode_pdu_bvc_reset(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_CELL_IDENTIFIER, NULL, + { BSSGP_IEI_CELL_IDENTIFIER, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_FEATURE_BITMAP, NULL, + { BSSGP_IEI_FEATURE_BITMAP, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -5055,16 +5055,16 @@ decode_pdu_bvc_reset(build_info_t *bi) { decode_pdu_general(ies, 4, bi); } -static void +static void decode_pdu_bvc_reset_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_CELL_IDENTIFIER, NULL, + { BSSGP_IEI_CELL_IDENTIFIER, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_FEATURE_BITMAP, NULL, + { BSSGP_IEI_FEATURE_BITMAP, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -5073,10 +5073,10 @@ decode_pdu_bvc_reset_ack(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_bvc_unblock(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, }; bi->dl_data = FALSE; @@ -5085,10 +5085,10 @@ decode_pdu_bvc_unblock(build_info_t *bi) { decode_pdu_general(ies, 1, bi); } -static void +static void decode_pdu_bvc_unblock_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, }; bi->dl_data = TRUE; @@ -5097,28 +5097,28 @@ decode_pdu_bvc_unblock_ack(build_info_t *bi) { decode_pdu_general(ies, 1, bi); } -static void +static void decode_pdu_flow_control_bvc(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_BVC_BUCKET_SIZE, NULL, + { BSSGP_IEI_BVC_BUCKET_SIZE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BUCKET_LEAK_RATE, NULL, + { BSSGP_IEI_BUCKET_LEAK_RATE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BMAX_DEFAULT_MS, NULL, + { BSSGP_IEI_BMAX_DEFAULT_MS, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_R_DEFAULT_MS, NULL, + { BSSGP_IEI_R_DEFAULT_MS, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BUCKET_FULL_RATIO, NULL, + { BSSGP_IEI_BUCKET_FULL_RATIO, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_BVC_MEASUREMENT, NULL, + { BSSGP_IEI_BVC_MEASUREMENT, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, }; bi->dl_data = FALSE; @@ -5127,10 +5127,10 @@ decode_pdu_flow_control_bvc(build_info_t *bi) { decode_pdu_general(ies, 7, bi); } -static void +static void decode_pdu_flow_control_bvc_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -5139,22 +5139,22 @@ decode_pdu_flow_control_bvc_ack(build_info_t *bi) { decode_pdu_general(ies, 1, bi); } -static void +static void decode_pdu_flow_control_ms(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_MS_BUCKET_SIZE, NULL, + { BSSGP_IEI_MS_BUCKET_SIZE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BUCKET_LEAK_RATE, NULL, + { BSSGP_IEI_BUCKET_LEAK_RATE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BUCKET_FULL_RATIO, NULL, + { BSSGP_IEI_BUCKET_FULL_RATIO, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5163,13 +5163,13 @@ decode_pdu_flow_control_ms(build_info_t *bi) { decode_pdu_general(ies, 5, bi); } -static void +static void decode_pdu_flow_control_ms_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -5178,19 +5178,19 @@ decode_pdu_flow_control_ms_ack(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_flush_ll(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_BVCI, "BVCI (old)", + { BSSGP_IEI_BVCI, "BVCI (old)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BVCI, "BVCI (new)", + { BSSGP_IEI_BVCI, "BVCI (new)", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_NSEI, "NSEI (new)", + { BSSGP_IEI_NSEI, "NSEI (new)", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, }; bi->dl_data = TRUE; @@ -5199,22 +5199,22 @@ decode_pdu_flush_ll(build_info_t *bi) { decode_pdu_general(ies, 4, bi); } -static void +static void decode_pdu_flush_ll_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_FLUSH_ACTION, NULL, + { BSSGP_IEI_FLUSH_ACTION, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_BVCI, "BVCI (new)", + { BSSGP_IEI_BVCI, "BVCI (new)", BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_NUMBER_OF_OCTETS_AFFECTED, NULL, + { BSSGP_IEI_NUMBER_OF_OCTETS_AFFECTED, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 5 }, - { BSSGP_IEI_NSEI, "NSEI (new)", + { BSSGP_IEI_NSEI, "NSEI (new)", BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, }; bi->dl_data = FALSE; @@ -5223,22 +5223,22 @@ decode_pdu_flush_ll_ack(build_info_t *bi) { decode_pdu_general(ies, 5, bi); } -static void +static void decode_pdu_llc_discarded(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_LLC_FRAMES_DISCARDED, NULL, + { BSSGP_IEI_LLC_FRAMES_DISCARDED, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_NUMBER_OF_OCTETS_AFFECTED, "Number of octets deleted", + { BSSGP_IEI_NUMBER_OF_OCTETS_AFFECTED, "Number of octets deleted", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 5 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5247,25 +5247,25 @@ decode_pdu_llc_discarded(build_info_t *bi) { decode_pdu_general(ies, 5, bi); } -static void +static void decode_pdu_flow_control_pfc(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_MS_BUCKET_SIZE, NULL, + { BSSGP_IEI_MS_BUCKET_SIZE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BUCKET_LEAK_RATE, NULL, + { BSSGP_IEI_BUCKET_LEAK_RATE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BUCKET_FULL_RATIO, NULL, + { BSSGP_IEI_BUCKET_FULL_RATIO, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_PFC_FLOW_CONTROL_PARAMETERS, NULL, + { BSSGP_IEI_PFC_FLOW_CONTROL_PARAMETERS, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = FALSE; @@ -5274,13 +5274,13 @@ decode_pdu_flow_control_pfc(build_info_t *bi) { decode_pdu_general(ies, 6, bi); } -static void +static void decode_pdu_flow_control_pfc_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_TAG, NULL, + { BSSGP_IEI_TAG, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -5289,25 +5289,25 @@ decode_pdu_flow_control_pfc_ack(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_sgsn_invoke_trace(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TRACE_TYPE, NULL, + { BSSGP_IEI_TRACE_TYPE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_TRACE_REFERENCE, NULL, + { BSSGP_IEI_TRACE_REFERENCE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_TRIGGER_ID, NULL, + { BSSGP_IEI_TRIGGER_ID, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_MOBILE_ID, NULL, + { BSSGP_IEI_MOBILE_ID, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_OMC_ID, NULL, + { BSSGP_IEI_OMC_ID, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_TRANSACTION_ID, NULL, + { BSSGP_IEI_TRANSACTION_ID, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, }; bi->dl_data = TRUE; @@ -5316,16 +5316,16 @@ decode_pdu_sgsn_invoke_trace(build_info_t *bi) { decode_pdu_general(ies, 6, bi); } -static void +static void decode_pdu_status(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_BVCI, NULL, + { BSSGP_IEI_BVCI, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_PDU_IN_ERROR, NULL, + { BSSGP_IEI_PDU_IN_ERROR, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = TRUE; @@ -5334,13 +5334,13 @@ decode_pdu_status(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_download_bss_pfc(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5350,34 +5350,34 @@ decode_pdu_download_bss_pfc(build_info_t *bi) { } /* 10.4.17 CREATE-BSS-PFC */ -static void +static void decode_pdu_create_bss_pfc(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_IMSI, NULL, + { BSSGP_IEI_IMSI, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_GPRS_TIMER, "PFT", + { BSSGP_IEI_GPRS_TIMER, "PFT", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_ABQP, NULL, + { BSSGP_IEI_ABQP, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_SERVICE_UTRAN_CCO, NULL, + { BSSGP_IEI_SERVICE_UTRAN_CCO, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, + { BSSGP_IEI_MS_RADIO_ACCESS_CAPABILITY, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_PRIORITY, "Allocation/Retention Priority", + { BSSGP_IEI_PRIORITY, "Allocation/Retention Priority", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_GPRS_TIMER, "T10", + { BSSGP_IEI_GPRS_TIMER, "T10", BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, /* Inter RAT Handover Info 11.3.94 3GPP TS 48.018 version 6.11.0 Release 6 */ }; @@ -5387,19 +5387,19 @@ decode_pdu_create_bss_pfc(build_info_t *bi) { decode_pdu_general(ies, 9, bi); } -static void +static void decode_pdu_create_bss_pfc_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_ABQP, NULL, + { BSSGP_IEI_ABQP, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5408,16 +5408,16 @@ decode_pdu_create_bss_pfc_ack(build_info_t *bi) { decode_pdu_general(ies, 4, bi); } -static void +static void decode_pdu_create_bss_pfc_nack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5426,16 +5426,16 @@ decode_pdu_create_bss_pfc_nack(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_modify_bss_pfc(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_ABQP, NULL, + { BSSGP_IEI_ABQP, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = FALSE; @@ -5444,19 +5444,19 @@ decode_pdu_modify_bss_pfc(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_modify_bss_pfc_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_GPRS_TIMER, "PFT", + { BSSGP_IEI_GPRS_TIMER, "PFT", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_ABQP, NULL, + { BSSGP_IEI_ABQP, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = TRUE; @@ -5465,13 +5465,13 @@ decode_pdu_modify_bss_pfc_ack(build_info_t *bi) { decode_pdu_general(ies, 4, bi); } -static void +static void decode_pdu_delete_bss_pfc(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = TRUE; @@ -5480,13 +5480,13 @@ decode_pdu_delete_bss_pfc(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_delete_bss_pfc_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5495,16 +5495,16 @@ decode_pdu_delete_bss_pfc_ack(build_info_t *bi) { decode_pdu_general(ies, 2, bi); } -static void +static void decode_pdu_delete_bss_pfc_req(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_PFI, NULL, + { BSSGP_IEI_PFI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_CAUSE, NULL, + { BSSGP_IEI_CAUSE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, }; bi->dl_data = FALSE; @@ -5513,43 +5513,43 @@ decode_pdu_delete_bss_pfc_req(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_perform_location_request(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_IMSI, NULL, + { BSSGP_IEI_IMSI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_DRX_PARAMETERS, NULL, + { BSSGP_IEI_DRX_PARAMETERS, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", + { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_NSEI, "NSEI (PCU-PTP)", + { BSSGP_IEI_NSEI, "NSEI (PCU-PTP)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_LOCATION_TYPE, NULL, + { BSSGP_IEI_LOCATION_TYPE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_CELL_IDENTIFIER, NULL, + { BSSGP_IEI_CELL_IDENTIFIER, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_LCS_CAPABILITY, NULL, + { BSSGP_IEI_LCS_CAPABILITY, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_LCS_PRIORITY, NULL, + { BSSGP_IEI_LCS_PRIORITY, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_LCS_QOS, NULL, + { BSSGP_IEI_LCS_QOS, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_LCS_CLIENT_TYPE, NULL, + { BSSGP_IEI_LCS_CLIENT_TYPE, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_REQUESTED_GPS_ASSISTANCE_DATA, NULL, + { BSSGP_IEI_REQUESTED_GPS_ASSISTANCE_DATA, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = TRUE; @@ -5558,25 +5558,25 @@ decode_pdu_perform_location_request(build_info_t *bi) { decode_pdu_general(ies, 12, bi); } -static void +static void decode_pdu_perform_location_response(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", + { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_LOCATION_ESTIMATE, NULL, + { BSSGP_IEI_LOCATION_ESTIMATE, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_POSITIONING_DATA, NULL, + { BSSGP_IEI_POSITIONING_DATA, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_DECIPHERING_KEYS, NULL, + { BSSGP_IEI_DECIPHERING_KEYS, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_LCS_CAUSE, NULL, + { BSSGP_IEI_LCS_CAUSE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = FALSE; @@ -5585,16 +5585,16 @@ decode_pdu_perform_location_response(build_info_t *bi) { decode_pdu_general(ies, 6, bi); } -static void +static void decode_pdu_perform_location_abort(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", + { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_LCS_CAUSE, NULL, + { BSSGP_IEI_LCS_CAUSE, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = TRUE; @@ -5603,19 +5603,19 @@ decode_pdu_perform_location_abort(build_info_t *bi) { decode_pdu_general(ies, 3, bi); } -static void +static void decode_pdu_position_command(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", + { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_RRLP_FLAGS, NULL, + { BSSGP_IEI_RRLP_FLAGS, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RRLP_APDU, NULL, + { BSSGP_IEI_RRLP_APDU, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = FALSE; @@ -5624,22 +5624,22 @@ decode_pdu_position_command(build_info_t *bi) { decode_pdu_general(ies, 4, bi); } -static void +static void decode_pdu_position_response(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_TLLI, NULL, + { BSSGP_IEI_TLLI, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", + { BSSGP_IEI_BVCI, "BVCI (PCU-PTP)", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, - { BSSGP_IEI_RRLP_FLAGS, NULL, + { BSSGP_IEI_RRLP_FLAGS, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RRLP_APDU, NULL, + { BSSGP_IEI_RRLP_APDU, NULL, BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - { BSSGP_IEI_LCS_CAUSE, NULL, + { BSSGP_IEI_LCS_CAUSE, NULL, BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = TRUE; @@ -5649,32 +5649,32 @@ decode_pdu_position_response(build_info_t *bi) { } -static void +static void decode_pdu_ran_information(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RAN_INFORMATION_CONTAINER_UNIT, "RAN-INFORMATION RIM Container", + { BSSGP_IEI_RAN_INFORMATION_CONTAINER_UNIT, "RAN-INFORMATION RIM Container", BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 2 }, - - { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", + + { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", + { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_RIM_PDU_INDICATIONS, "PDU Indications", + { BSSGP_IEI_RIM_PDU_INDICATIONS, "PDU Indications", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", + { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RAN_INFORMATION_APPLICATION_CONTAINER, "RAN-INFORMATION RIM Container", + { BSSGP_IEI_RAN_INFORMATION_APPLICATION_CONTAINER, "RAN-INFORMATION RIM Container", BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; @@ -5685,63 +5685,63 @@ decode_pdu_ran_information(build_info_t *bi) { decode_pdu_general(ies, 8, bi); } -static void +static void decode_pdu_ran_information_request(build_info_t *bi) { - + bssgp_ie_t ies[] = { - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-REQUEST RIM Container", + { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-REQUEST RIM Container", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 2 }, - - { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", + + { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", + { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_RIM_PDU_INDICATIONS, "PDU Indications", + { BSSGP_IEI_RIM_PDU_INDICATIONS, "PDU Indications", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", + { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RAN_INFORMATION_REQUEST_APPLICATION_CONTAINER, "RAN-INFORMATION-REQUEST Application Container", + { BSSGP_IEI_RAN_INFORMATION_REQUEST_APPLICATION_CONTAINER, "RAN-INFORMATION-REQUEST Application Container", BSSGP_IE_PRESENCE_C, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, - - }; + + }; bi->dl_data = TRUE; bi->ul_data = TRUE; - + decode_pdu_general(ies, 8, bi); } -static void +static void decode_pdu_ran_information_ack(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-ACK RIM Container", + { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-ACK RIM Container", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 2 }, - { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", + { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", + { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", + { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 4 }, }; @@ -5751,28 +5751,28 @@ decode_pdu_ran_information_ack(build_info_t *bi) { decode_pdu_general(ies, 6, bi); } -static void +static void decode_pdu_ran_information_error(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-ERROR RIM Container", + { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-ERROR RIM Container", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 2 }, - { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", + { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_CAUSE, "RIM Cause", + { BSSGP_IEI_CAUSE, "RIM Cause", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", + { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_PDU_IN_ERROR, NULL, + { BSSGP_IEI_PDU_IN_ERROR, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; bi->dl_data = TRUE; @@ -5781,32 +5781,32 @@ decode_pdu_ran_information_error(build_info_t *bi) { decode_pdu_general(ies, 7, bi); } -static void +static void decode_pdu_ran_information_application_error(build_info_t *bi) { bssgp_ie_t ies[] = { - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Destination Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", + { BSSGP_IEI_RIM_ROUTING_INFORMATION, "Source Cell Identifier", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 10 }, - { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-APPLICATION RIM Container", + { BSSGP_IEI_RAN_INFORMATION_REQUEST_CONTAINER_UNIT, "RAN-INFORMATION-APPLICATION RIM Container", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 2 }, - { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", + { BSSGP_IEI_RIM_APPLICATION_IDENTITY, "Application Identity", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, /* pdu indication, I hope RIM_PDU_INDICATIONS decode it right, it use the same IEI so it should... */ - { BSSGP_IEI_RIM_PDU_INDICATIONS, "PDU Indications", + { BSSGP_IEI_RIM_PDU_INDICATIONS, "PDU Indications", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", + { BSSGP_IEI_RIM_SEQUENCE_NUMBER, "Sequence Number", BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 6 }, - { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", + { BSSGP_IEI_RIM_PROTOCOL_VERSION, "Protocol Version", BSSGP_IE_PRESENCE_O, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, 3 }, - { BSSGP_IEI_APPLICATION_ERROR_CONTAINER, NULL, + { BSSGP_IEI_APPLICATION_ERROR_CONTAINER, NULL, BSSGP_IE_PRESENCE_M, BSSGP_IE_FORMAT_TLV, BSSGP_UNKNOWN, BSSGP_UNKNOWN }, }; @@ -5826,7 +5826,7 @@ decode_pdu(build_info_t *bi) { break; case BSSGP_PDU_UL_UNITDATA: decode_pdu_ul_unitdata(bi); - break; + break; case BSSGP_PDU_RA_CAPABILITY: decode_pdu_ra_capability(bi); break; @@ -5993,10 +5993,10 @@ dissect_bssgp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) pinfo->current_proto = "BSSGP"; - if (check_col(pinfo->cinfo, COL_PROTOCOL)) + if (check_col(pinfo->cinfo, COL_PROTOCOL)) col_set_str(pinfo->cinfo, COL_PROTOCOL, "BSSGP"); - - if (check_col(pinfo->cinfo, COL_INFO)) + + if (check_col(pinfo->cinfo, COL_INFO)) col_clear(pinfo->cinfo, COL_INFO); bi.pdutype = tvb_get_guint8(tvb, 0); @@ -6005,17 +6005,17 @@ dissect_bssgp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (tree) { ti = proto_tree_add_item(tree, proto_bssgp, tvb, 0, -1, FALSE); bssgp_tree = proto_item_add_subtree(ti, ett_bssgp); - proto_tree_add_uint_format_value(bssgp_tree, hf_bssgp_pdu_type, tvb, 0, 1, + proto_tree_add_uint_format_value(bssgp_tree, hf_bssgp_pdu_type, tvb, 0, 1, bi.pdutype, "%s (%#02x)", - val_to_str(bi.pdutype, tab_bssgp_pdu_types, + val_to_str(bi.pdutype, tab_bssgp_pdu_types, "Unknown"), bi.pdutype); bi.bssgp_tree = bssgp_tree; } - + if (check_col(pinfo->cinfo, COL_INFO)) { - col_add_str(pinfo->cinfo, COL_INFO, val_to_str(bi.pdutype, - tab_bssgp_pdu_types, + col_add_str(pinfo->cinfo, COL_INFO, val_to_str(bi.pdutype, + tab_bssgp_pdu_types, "Unknown PDU type")); } decode_pdu(&bi); @@ -6023,36 +6023,36 @@ dissect_bssgp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) void proto_register_bssgp(void) -{ +{ static hf_register_info hf[] = { { &hf_bssgp_pdu_type, { "PDU Type", "bssgp.pdu_type", - FT_UINT8, BASE_HEX, VALS(tab_bssgp_pdu_types), 0x0, + FT_UINT8, BASE_HEX, VALS(tab_bssgp_pdu_types), 0x0, "", HFILL } }, { &hf_bssgp_iei_nacc_cause, { "NACC Cause", "bssgp.iei.nacc_cause", - FT_UINT8, BASE_HEX, VALS(tab_nacc_cause), 0x0, + FT_UINT8, BASE_HEX, VALS(tab_nacc_cause), 0x0, "NACC Cause", HFILL } }, { &hf_bssgp_ie_type, { "IE Type", "bssgp.ie_type", - FT_UINT8, BASE_HEX, VALS(tab_bssgp_ie_types), 0x0, + FT_UINT8, BASE_HEX, VALS(tab_bssgp_ie_types), 0x0, "Information element type", HFILL } }, { &hf_bssgp_bvci, { "BVCI", "bssgp.bvci", - FT_UINT16, BASE_HEX, NULL, 0x0, + FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL } }, { &hf_bssgp_tlli, { "TLLI", "bssgp.tlli", - FT_UINT32, BASE_HEX, NULL, 0x0, + FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, { &hf_bssgp_nsei, { "NSEI", "bssgp.nsei", - FT_UINT16, BASE_HEX, NULL, 0x0, + FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL } }, { &hf_bssgp_mcc, @@ -6192,7 +6192,7 @@ proto_register_bssgp(void) proto_register_field_array(proto_bssgp, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); register_dissector("bssgp", dissect_bssgp, proto_bssgp); - + /* Register configuration options */ bssgp_module = prefs_register_protocol(proto_bssgp, proto_reg_handoff_bssgp); prefs_register_bool_preference(bssgp_module, "decode_nri", @@ -6201,7 +6201,7 @@ proto_register_bssgp(void) &bssgp_decode_nri); prefs_register_uint_preference(bssgp_module, "nri_length", "NRI length", "NRI length, in bits", - 10, &bssgp_nri_length); + 10, &bssgp_nri_length); } /* If this dissector uses sub-dissector registration add a registration routine. @@ -6212,5 +6212,5 @@ proto_reg_handoff_bssgp(void) bssgp_handle = create_dissector_handle(dissect_bssgp, proto_bssgp); llc_handle = find_dissector("llcgprs"); rrlp_handle = find_dissector("rrlp"); - data_handle = find_dissector("data"); + data_handle = find_dissector("data"); } diff --git a/epan/dissectors/packet-gdsdb.c b/epan/dissectors/packet-gdsdb.c index 1eb86a4f2e..b31d663fab 100644 --- a/epan/dissectors/packet-gdsdb.c +++ b/epan/dissectors/packet-gdsdb.c @@ -1387,7 +1387,7 @@ proto_register_gdsdb(void) NULL, HFILL } }, { &hf_gdsdb_attach_dpb, - { "Database parameter block", "gdsdb.attach.dpblenght", + { "Database parameter block", "gdsdb.attach.dpblength", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, @@ -1574,7 +1574,7 @@ proto_register_gdsdb(void) NULL, HFILL } }, { &hf_gdsdb_info_buffer_length, - { "Buffer lenght", "gdsdb.info.bufferlength", + { "Buffer length", "gdsdb.info.bufferlength", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, @@ -1655,7 +1655,7 @@ proto_register_gdsdb(void) }, /* gdsdb_slice_response */ { &hf_gdsdb_sliceresponse_length, - { "Lenght", "gdsdb.sliceresponse.lenght", + { "Lenght", "gdsdb.sliceresponse.length", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, diff --git a/epan/dissectors/packet-ipmi.c b/epan/dissectors/packet-ipmi.c index 9c372e1626..0462e90fb7 100644 --- a/epan/dissectors/packet-ipmi.c +++ b/epan/dissectors/packet-ipmi.c @@ -134,10 +134,10 @@ static gint ett_cmd_GetFRULedState_data_LEDState = -1; /* add subtree for LED static gint ett_cmd_GetFRULedState_data_LocalControlColor = -1; /* add subtree for Local Control Color*/ static gint ett_cmd_GetFRULedState_data_OverrideStateColor = -1; /* add subtree for Override State Color*/ /* Set FRU Activation Policy, added by lane */ -static gint ett_cmd_SetFRUActivationPolicy_data_FRUActivationPolicyMaskBit = -1; -static gint ett_cmd_SetFRUActivationPolicy_data_FRUActivationPolicySetBit = -1; +static gint ett_cmd_SetFRUActivationPolicy_data_FRUActivationPolicyMaskBit = -1; +static gint ett_cmd_SetFRUActivationPolicy_data_FRUActivationPolicySetBit = -1; /* Get FRU Activation Policy, added by lane */ -static gint ett_cmd_GetFRUActivationPolicy_data_FRUActivationPolicy = -1; +static gint ett_cmd_GetFRUActivationPolicy_data_FRUActivationPolicy = -1; /* Get Power Level, added by lane */ static gint ett_cmd_GetPowerLevel_data_Properties = -1; /* add subtree for Properties */ @@ -175,33 +175,33 @@ static int hf_ipmi_msg_csum2 = -1; /********* Sensor/Event, NetFN = 0x04 **********/ /* Platform Event Message, added by lane */ -static int hf_PEM_datafield_EvMRev = -1; -static int hf_PEM_datafield_SensorType = -1; -static int hf_PEM_datafield_SensorNumber = -1; -static int hf_PEM_datafield_EventDirAndEventType_EventDir = -1; -static int hf_PEM_datafield_EventDirAndEventType_EventType = -1; +static int hf_PEM_datafield_EvMRev = -1; +static int hf_PEM_datafield_SensorType = -1; +static int hf_PEM_datafield_SensorNumber = -1; +static int hf_PEM_datafield_EventDirAndEventType_EventDir = -1; +static int hf_PEM_datafield_EventDirAndEventType_EventType = -1; -static int hf_PEM_datafield_EventData1_threshold_76 = -1; -static int hf_PEM_datafield_EventData1_threshold_54 = -1; -static int hf_PEM_datafield_EventData1_threshold_30 = -1; -static int hf_PEM_datafield_EventData2_threshold = -1; -static int hf_PEM_datafield_EventData3_threshold = -1; +static int hf_PEM_datafield_EventData1_threshold_76 = -1; +static int hf_PEM_datafield_EventData1_threshold_54 = -1; +static int hf_PEM_datafield_EventData1_threshold_30 = -1; +static int hf_PEM_datafield_EventData2_threshold = -1; +static int hf_PEM_datafield_EventData3_threshold = -1; -static int hf_PEM_datafield_EventData1_discrete_76 = -1; -static int hf_PEM_datafield_EventData1_discrete_54 = -1; -static int hf_PEM_datafield_EventData1_discrete_30 = -1; -static int hf_PEM_datafield_EventData2_discrete_74 = -1; -static int hf_PEM_datafield_EventData2_discrete_30 = -1; -static int hf_PEM_datafield_EventData3_discrete = -1; +static int hf_PEM_datafield_EventData1_discrete_76 = -1; +static int hf_PEM_datafield_EventData1_discrete_54 = -1; +static int hf_PEM_datafield_EventData1_discrete_30 = -1; +static int hf_PEM_datafield_EventData2_discrete_74 = -1; +static int hf_PEM_datafield_EventData2_discrete_30 = -1; +static int hf_PEM_datafield_EventData3_discrete = -1; -static int hf_PEM_datafield_EventData1_OEM_76 = -1; -static int hf_PEM_datafield_EventData1_OEM_54 = -1; -static int hf_PEM_datafield_EventData1_OEM_30 = -1; -static int hf_PEM_datafield_EventData2_OEM_74 = -1; -static int hf_PEM_datafield_EventData2_OEM_30 = -1; -static int hf_PEM_datafield_EventData3_OEM = -1; +static int hf_PEM_datafield_EventData1_OEM_76 = -1; +static int hf_PEM_datafield_EventData1_OEM_54 = -1; +static int hf_PEM_datafield_EventData1_OEM_30 = -1; +static int hf_PEM_datafield_EventData2_OEM_74 = -1; +static int hf_PEM_datafield_EventData2_OEM_30 = -1; +static int hf_PEM_datafield_EventData3_OEM = -1; -static int hf_PEM_datafield_HotSwapEvent_CurrentState = -1; +static int hf_PEM_datafield_HotSwapEvent_CurrentState = -1; static int hf_PEM_datafield_HotSwapEvent_StateChangeCause = -1; static int hf_PEM_datafield_HotSwapEvent_PreviousState = -1; static int hf_PEM_datafield_HotSwapEvent_FRUDeviceID = -1; @@ -220,7 +220,7 @@ static int hf_GetDeviceSDRInfo_datafield_SensorPopulationChangeIndicator = -1; static int hf_GetDeviceSDR_datafield_NextRecordID = -1; static int hf_GetDeviceSDR_datafield_ReservationID = -1; static int hf_GetDeviceSDR_datafield_RecordID = -1; -static int hf_GetDeviceSDR_datafield_OffsetIntoRecord = -1; +static int hf_GetDeviceSDR_datafield_OffsetIntoRecord = -1; static int hf_GetDeviceSDR_datafield_BytesToRead = -1; /* Reserve Device SDR Repository, added by lane */ static int hf_ReserveDeviceSDRRepository_datafield_ReservationID = -1; @@ -820,7 +820,7 @@ static const value_string ipmi_app_cmd_vals[] = { }; /* ipmi_picmg_cmd_vals[] array added by lane */ -static const value_string ipmi_picmg_cmd_vals[] = { +static const value_string ipmi_picmg_cmd_vals[] = { { 0x00, "Get PICMG Properties" }, { 0x01, "Get Address Info" }, { 0x02, "Get Shelf Address Info" }, @@ -845,7 +845,7 @@ static const value_string ipmi_picmg_cmd_vals[] = { { 0x15, "Set Fan Level" }, { 0x16, "Get Fan Level" }, { 0x17, "Bused Resource" }, - { 0x18, "Get IPMB Link Info" }, + { 0x18, "Get IPMB Link Info" }, { 0x00, NULL }, }; @@ -1211,7 +1211,7 @@ static const value_string cmd_GetDeviceID_Data_DeviceRevision_vals[] = { { 0x0b, "11" }, { 0x0c, "12" }, { 0x0d, "13" }, - { 0x0e, "14" }, + { 0x0e, "14" }, { 0x0f, "15" }, { 0x00, NULL }, }; @@ -1237,7 +1237,7 @@ static const value_string cmd_GetDeviceID_Data_IPMIRevision_vals[] = { { 0x12, "V2.1" }, { 0x22, "V2.2" }, { 0x32, "V2.3" }, - { 0x42, "V2.4" }, + { 0x42, "V2.4" }, { 0x52, "V2.5" }, { 0x62, "V2.6" }, { 0x72, "V2.7" }, @@ -1278,7 +1278,7 @@ static const value_string cmd_GetSELInfo_Data_SELVersion_vals[] = { { 0x12, "V2.1" }, { 0x22, "V2.2" }, { 0x32, "V2.3" }, - { 0x42, "V2.4" }, + { 0x42, "V2.4" }, { 0x52, "V2.5" }, { 0x62, "V2.6" }, { 0x72, "V2.7" }, @@ -1624,7 +1624,7 @@ static const value_string cmd_GetFanLevel_data_OverrideFanLevel_vals[] = { typedef struct _ipmi_cmd_dissect{ guint8 netfn; guint8 cmd; - void (*dissectfunc)(proto_tree *, proto_tree *, packet_info *, tvbuff_t *, gint *, guint8, guint8, guint8); + void (*dissectfunc)(proto_tree *, proto_tree *, packet_info *, tvbuff_t *, gint *, guint8, guint8, guint8); } ipmi_cmd_dissect; @@ -1652,7 +1652,7 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet if(response) { - return; + return; } else { @@ -1665,26 +1665,26 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet /* Sensor Type */ SensorType = tvb_get_guint8(tvb, auth_offset + 17) ; - + if (tree) { proto_tree_add_item(ipmi_tree, hf_PEM_datafield_SensorType, tvb, (*poffset)++, 1, TRUE); len--; } - + /* Sensor Number */ if (tree) { proto_tree_add_item(ipmi_tree, hf_PEM_datafield_SensorNumber, tvb, (*poffset)++, 1, TRUE); len--; } - + /* Event Dir & Event Type*/ EventDirAndEventType = tvb_get_guint8(tvb, auth_offset + 19) ; EventType = EventDirAndEventType&0x7f; - + if (tree) { - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "EventDir&EventType: %s0x%02x", " ", EventDirAndEventType); field_tree = proto_item_add_subtree(tf, ett_cmd_PEM_EventDirAndEventType); @@ -1694,10 +1694,10 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet proto_tree_add_item(field_tree, hf_PEM_datafield_EventDirAndEventType_EventType, tvb, *poffset, 1, TRUE); (*poffset)++; - len--; + len--; } - - + + /* EventData 1~3 */ switch(SensorType) { @@ -1707,7 +1707,7 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet } - + /* threshold */ if(0x01==EventType) { /* EventData 1*/ @@ -1724,18 +1724,18 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet tvb, *poffset, 1, TRUE); proto_tree_add_item(field_tree, hf_PEM_datafield_EventData1_threshold_30, tvb, *poffset, 1, TRUE); - + (*poffset)++; len--; } - + /* EventData 2*/ if (tree&&(len!=0)) { proto_tree_add_item(field_tree, hf_PEM_datafield_EventData2_threshold, tvb, (*poffset)++, 1, TRUE); len--; } - + /* EventData 3*/ if (tree&&(len!=0)) { proto_tree_add_item(ipmi_tree, hf_PEM_datafield_EventData3_threshold, @@ -1744,7 +1744,7 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet } - + /* discrete */ if(((EventType>=0x02)&&(EventType<=0x0b))||(0x6f==EventType)) { /* EventData 1*/ @@ -1761,11 +1761,11 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet tvb, *poffset, 1, TRUE); proto_tree_add_item(field_tree, hf_PEM_datafield_HotSwapEvent_CurrentState, tvb, *poffset, 1, TRUE); - + (*poffset)++; len--; } - + /* EventData 2*/ if (tree&&(len!=0)) { EventData2 = tvb_get_guint8(tvb, auth_offset + 21) ; @@ -1778,11 +1778,11 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet tvb, *poffset, 1, TRUE); proto_tree_add_item(field_tree, hf_PEM_datafield_HotSwapEvent_PreviousState, tvb, *poffset, 1, TRUE); - + (*poffset)++; len--; } - + /* EventData 3*/ if (tree&&(len!=0)) { proto_tree_add_item(ipmi_tree, hf_PEM_datafield_HotSwapEvent_FRUDeviceID, @@ -1790,7 +1790,7 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet } } - + /* OEM */ if((EventType>=0x70)&&(EventType<=0x7f)) { /* EventData 1*/ @@ -1807,7 +1807,7 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet tvb, *poffset, 1, TRUE); proto_tree_add_item(field_tree, hf_PEM_datafield_EventData1_OEM_30, tvb, *poffset, 1, TRUE); - + (*poffset)++; len--; } @@ -1823,7 +1823,7 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet tvb, *poffset, 1, TRUE); proto_tree_add_item(field_tree, hf_PEM_datafield_EventData2_OEM_30, tvb, *poffset, 1, TRUE); - + (*poffset)++; len--; } @@ -1845,7 +1845,7 @@ dissect_cmd_PlatformEventMessage(proto_tree *tree, proto_tree *ipmi_tree, packet } break; } - + } } @@ -1872,7 +1872,7 @@ dissect_cmd_GetDeviceSDR(proto_tree *tree, proto_tree *ipmi_tree, packet_info *p call_dissector(data_handle, next_tvb, pinfo, tree); *poffset += len; } - + } else { @@ -1912,11 +1912,11 @@ dissect_cmd_Get_Device_SDR_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_ proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 flag; - + if(response) { flag = tvb_get_guint8(tvb, auth_offset + 18) ; - + /* Number of the Sensors in device*/ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetDeviceSDRInfo_datafield_SensorNumber, @@ -1924,7 +1924,7 @@ dissect_cmd_Get_Device_SDR_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_ } /* Flag */ if (tree) { - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Flag: %s0x%02x", " ", flag); @@ -1943,7 +1943,7 @@ dissect_cmd_Get_Device_SDR_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_ proto_tree_add_item(field_tree, hf_GetDeviceSDRInfo_datafield_Flag_DeviceLUNs0, tvb, *poffset, 1, TRUE); (*poffset)++; - + } /* Sensor Population Change Indicator */ if (tree) { @@ -1951,7 +1951,7 @@ dissect_cmd_Get_Device_SDR_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_ tvb, *poffset, 1, TRUE); (*poffset)+=4; } - + } else return; @@ -2083,32 +2083,32 @@ dissect_cmd_Set_Sensor_Thresholds(proto_tree *tree, proto_tree *ipmi_tree, packe (*poffset)++; /* lower non-critical threshold */ - if(ControlByte&0x01) + if(ControlByte&0x01) proto_tree_add_item(ipmi_tree, hf_SetSensorThresholds_datafield_LowerNonCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* lower critical threshold */ - if(ControlByte&0x02) + if(ControlByte&0x02) proto_tree_add_item(ipmi_tree, hf_SetSensorThresholds_datafield_LowerCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* lower non-recoverable threshold */ - if(ControlByte&0x04) + if(ControlByte&0x04) proto_tree_add_item(ipmi_tree, hf_SetSensorThresholds_datafield_LowerNonRecoverableThreshold, tvb, (*poffset)++, 1, TRUE); /* upper non-critical threshold */ - if(ControlByte&0x08) + if(ControlByte&0x08) proto_tree_add_item(ipmi_tree, hf_SetSensorThresholds_datafield_UpperNonCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* upper critical threshold value */ - if(ControlByte&0x10) + if(ControlByte&0x10) proto_tree_add_item(ipmi_tree, hf_SetSensorThresholds_datafield_UpperCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* upper non-recoverable threshold value */ - if(ControlByte&0x20) + if(ControlByte&0x20) proto_tree_add_item(ipmi_tree, hf_SetSensorThresholds_datafield_UpperNonRecoverableThreshold, tvb, (*poffset)++, 1, TRUE); } @@ -2151,32 +2151,32 @@ dissect_cmd_Get_Sensor_Thresholds(proto_tree *tree, proto_tree *ipmi_tree, packe (*poffset)++; /* lower non-critical threshold */ - if(ControlByte&0x01) + if(ControlByte&0x01) proto_tree_add_item(ipmi_tree, hf_GetSensorThresholds_datafield_LowerNonCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* lower critical threshold */ - if(ControlByte&0x02) + if(ControlByte&0x02) proto_tree_add_item(ipmi_tree, hf_GetSensorThresholds_datafield_LowerCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* lower non-recoverable threshold */ - if(ControlByte&0x04) + if(ControlByte&0x04) proto_tree_add_item(ipmi_tree, hf_GetSensorThresholds_datafield_LowerNonRecoverableThreshold, tvb, (*poffset)++, 1, TRUE); /* upper non-critical threshold */ - if(ControlByte&0x08) + if(ControlByte&0x08) proto_tree_add_item(ipmi_tree, hf_GetSensorThresholds_datafield_UpperNonCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* upper critical threshold value */ - if(ControlByte&0x10) + if(ControlByte&0x10) proto_tree_add_item(ipmi_tree, hf_GetSensorThresholds_datafield_UpperCriticalThreshold, tvb, (*poffset)++, 1, TRUE); /* upper non-recoverable threshold value */ - if(ControlByte&0x20) + if(ControlByte&0x20) proto_tree_add_item(ipmi_tree, hf_GetSensorThresholds_datafield_UpperNonRecoverableThreshold, tvb, (*poffset)++, 1, TRUE); } @@ -2200,7 +2200,7 @@ dissect_cmd_Get_Sensor_Reading(proto_tree *tree, proto_tree *ipmi_tree, packet_i proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 Response_Data_Byte2, Response_Data_Byte3, Response_Data_Byte4; - + if(response) { /* Sensor reading*/ @@ -2210,9 +2210,9 @@ dissect_cmd_Get_Sensor_Reading(proto_tree *tree, proto_tree *ipmi_tree, packet_i } /* Response Data Byte2 */ if (tree) { - + Response_Data_Byte2 = tvb_get_guint8(tvb, auth_offset + 18) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Response Data Byte 2: %s0x%02x", " ", Response_Data_Byte2); @@ -2227,15 +2227,15 @@ dissect_cmd_Get_Sensor_Reading(proto_tree *tree, proto_tree *ipmi_tree, packet_i proto_tree_add_item(field_tree, hf_GetSensorReading_datafield_ResponseDataByte2_Bit40, tvb, *poffset, 1, TRUE); (*poffset)++; - + } - + if(len==4) { /* Response Data Byte3 (For discrete reading sensors) */ if (tree) { - + Response_Data_Byte3 = tvb_get_guint8(tvb, auth_offset + 19) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Response Data Byte 3: %s0x%02x", " ", Response_Data_Byte3); @@ -2258,13 +2258,13 @@ dissect_cmd_Get_Sensor_Reading(proto_tree *tree, proto_tree *ipmi_tree, packet_i proto_tree_add_item(field_tree, hf_GetSensorReading_datafield_ResponseDataByte3_Bit0, tvb, *poffset, 1, TRUE); (*poffset)++; - + } /* Response Data Byte4 (For discrete reading sensors) */ if (tree) { - + Response_Data_Byte4 = tvb_get_guint8(tvb, auth_offset + 20) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Response Data Byte 4: %s0x%02x", " ", Response_Data_Byte4); @@ -2287,15 +2287,15 @@ dissect_cmd_Get_Sensor_Reading(proto_tree *tree, proto_tree *ipmi_tree, packet_i proto_tree_add_item(field_tree, hf_GetSensorReading_datafield_ResponseDataByte4_Bit0, tvb, *poffset, 1, TRUE); (*poffset)++; - + } } else { /* Response Data Byte3 (For threshold-based sensors) */ if (tree) { - + Response_Data_Byte3 = tvb_get_guint8(tvb, auth_offset + 19) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Present threshold comparison status: %s0x%02x", " ", Response_Data_Byte3); @@ -2316,10 +2316,10 @@ dissect_cmd_Get_Sensor_Reading(proto_tree *tree, proto_tree *ipmi_tree, packet_i proto_tree_add_item(field_tree, hf_GetSensorReading_datafield_ResponseDataByte3_Bit0_threshold, tvb, *poffset, 1, TRUE); (*poffset)++; - + } } - + } else { /* Sensor Number */ @@ -2328,7 +2328,7 @@ dissect_cmd_Get_Sensor_Reading(proto_tree *tree, proto_tree *ipmi_tree, packet_i tvb, (*poffset)++, 1, TRUE); } } - + } @@ -2344,9 +2344,9 @@ dissect_cmd_Get_Device_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info * proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 device_revision, firmware_revision1, additional_device_support; - guint32 ManufactureID; - guint16 ProductID; - + guint32 ManufactureID; + guint16 ProductID; + if(response) { @@ -2355,18 +2355,18 @@ dissect_cmd_Get_Device_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info * additional_device_support = tvb_get_guint8(tvb, auth_offset + 22) ; ManufactureID = tvb_get_ntoh24(tvb, auth_offset + 23); ProductID = tvb_get_ntohs(tvb, auth_offset + 26); - + /* Device ID */ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetDeviceID_datafield_DeviceID, tvb, (*poffset)++, 1, TRUE); } - - + + /* DeviceSDR/DeviceRevision */ if (tree) { - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Device SDR/Device Revision: %s (0x%02x)", val_to_str(device_revision>>7, cmd_GetDeviceID_data_DeviceSDR_vals, "Unknown (0x%02x)"), device_revision>>7); @@ -2383,7 +2383,7 @@ dissect_cmd_Get_Device_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info * /* Device available/Major Firmware Revision */ if (tree) { - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Device available/Major Firmware Revision: %s (0x%02x)", val_to_str(firmware_revision1>>7, cmd_GetDeviceID_data_DeviceAvailable_vals, "Unknown (0x%02x)"), firmware_revision1>>7); @@ -2403,7 +2403,7 @@ dissect_cmd_Get_Device_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info * proto_tree_add_item(ipmi_tree, hf_GetDeviceID_datafield_MinorFirmwareRevision, tvb, (*poffset)++, 1, TRUE); } - + /* IPMI Revision */ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetDeviceID_datafield_IPMIRevision, @@ -2412,7 +2412,7 @@ dissect_cmd_Get_Device_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info * /* Additional Device Support */ if (tree) { - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Additional Device Support: %s0x%02x", " ", additional_device_support); @@ -2434,7 +2434,7 @@ dissect_cmd_Get_Device_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info * tvb, *poffset, 1, TRUE); proto_tree_add_item(field_tree, hf_GetDeviceID_datafield_ADS_SensorDevice, tvb, *poffset, 1, TRUE); - + (*poffset)++; } @@ -2457,7 +2457,7 @@ dissect_cmd_Get_Device_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info * proto_tree_add_item(ipmi_tree, hf_GetDeviceID_datafield_AFRI, tvb, *poffset, 4, TRUE); (*poffset)+=4; - } + } } else @@ -2604,7 +2604,7 @@ dissect_cmd_Get_FRU_Inventory_Area_Info(proto_tree *tree, proto_tree *ipmi_tree, proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 Response_Data_Byte4; - + if(response) { /* FRU Inventory area size in bytes */ @@ -2615,9 +2615,9 @@ dissect_cmd_Get_FRU_Inventory_Area_Info(proto_tree *tree, proto_tree *ipmi_tree, } /* Response Data Byte4 */ if (tree) { - + Response_Data_Byte4 = tvb_get_guint8(tvb, auth_offset + 19) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Device is accessed by bytes or words: %s0x%02x", " ", Response_Data_Byte4); @@ -2629,18 +2629,18 @@ dissect_cmd_Get_FRU_Inventory_Area_Info(proto_tree *tree, proto_tree *ipmi_tree, tvb, *poffset, 1, TRUE); (*poffset)++; } - + } else { - + /* FRU Device ID */ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetFRUInventoryAreaInfo_datafield_FRUDeviceID, tvb, (*poffset)++, 1, TRUE); } - + } - + } static void @@ -2651,7 +2651,7 @@ dissect_cmd_Get_SEL_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_info *p proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 Operation_Support; - + if(response) { /* SEL Version */ @@ -2659,11 +2659,11 @@ dissect_cmd_Get_SEL_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_info *p proto_tree_add_item(ipmi_tree, hf_GetSELInfo_datafield_SELVersion, tvb, (*poffset)++, 1, TRUE); } - - + + /* number of log entries in SEL */ if (tree) { - + proto_tree_add_item(ipmi_tree, hf_GetSELInfo_datafield_Entries, tvb, *poffset, 2, TRUE); (*poffset)+=2; @@ -2671,7 +2671,7 @@ dissect_cmd_Get_SEL_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_info *p /* Free Space in bytes */ if (tree) { - + proto_tree_add_item(ipmi_tree, hf_GetSELInfo_datafield_FreeSpace, tvb, *poffset, 2, TRUE); (*poffset)+=2; @@ -2680,27 +2680,27 @@ dissect_cmd_Get_SEL_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_info *p /* Most recent addition timestamp */ if (tree) { - + proto_tree_add_item(ipmi_tree, hf_GetSELInfo_datafield_AdditionTimestamp, tvb, *poffset, 4, TRUE); (*poffset)+=4; - + } /* Most recent addition timestamp */ if (tree) { - + proto_tree_add_item(ipmi_tree, hf_GetSELInfo_datafield_EraseTimestamp, tvb, *poffset, 4, TRUE); (*poffset)+=4; - + } - + /* Operation Support */ if (tree) { - + Operation_Support = tvb_get_guint8(tvb, auth_offset + 30) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Operation Support: %s0x%02x", " ", Operation_Support); @@ -2720,7 +2720,7 @@ dissect_cmd_Get_SEL_Info(proto_tree *tree, proto_tree *ipmi_tree, packet_info *p tvb, *poffset, 1, TRUE); (*poffset)++; } - + } else return; @@ -2731,7 +2731,7 @@ static void dissect_cmd_Reserve_SEL(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinfo _U_, tvbuff_t *tvb, gint *poffset, guint8 len _U_, guint8 response, guint8 auth_offset _U_) { - + if(response) { /* Reservation ID */ @@ -2753,7 +2753,7 @@ dissect_cmd_Get_SEL_Entry(proto_tree *tree, proto_tree *ipmi_tree, packet_info * { tvbuff_t *next_tvb; - + if(response) { /* Next SEL Record ID */ @@ -2769,10 +2769,10 @@ dissect_cmd_Get_SEL_Entry(proto_tree *tree, proto_tree *ipmi_tree, packet_info * call_dissector(data_handle, next_tvb, pinfo, tree); *poffset += len; } - + } else { - + /* Reservation ID */ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetSELEntry_datafield_ReservationID, @@ -2808,14 +2808,14 @@ dissect_cmd_Clear_SEL(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinf proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 erasure_progress; - + if(response) { /* Erasure progress */ if (tree) { - + erasure_progress = tvb_get_guint8(tvb, auth_offset + 17) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Erasure progress: %s0x%02x", " ", erasure_progress); @@ -2827,10 +2827,10 @@ dissect_cmd_Clear_SEL(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinf tvb, *poffset, 1, TRUE); (*poffset)++; } - + } else { - + /* Reservation ID */ if (tree) { proto_tree_add_item(ipmi_tree, hf_ClearSEL_datafield_ReservationID, @@ -2871,7 +2871,7 @@ dissect_cmd_Get_PICMG_Properties(proto_tree *tree, proto_tree *ipmi_tree, packet /*proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 picmg_identifier, PICMGExtensionVersion, MaxFRUDeviceID, FRUDeviceIDforIPMController;*/ - + if(response) { /* PICMG Identifier */ @@ -2888,12 +2888,12 @@ dissect_cmd_Get_PICMG_Properties(proto_tree *tree, proto_tree *ipmi_tree, packet if (tree) { proto_tree_add_item(ipmi_tree, hf_GetPICMGProperties_datafield_MaxFRUDeviceID, tvb, (*poffset)++, 1, TRUE); - } + } /*FRU Device ID for IPM Controller*/ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetPICMGProperties_datafield_FRUDeviceIDforIPMController, tvb, (*poffset)++, 1, TRUE); - } + } } else { /* PICMG Identifier */ @@ -2921,7 +2921,7 @@ dissect_cmd_FRU_Control(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pi } else { - + /* PICMG Identifier */ if (tree) { proto_tree_add_item(ipmi_tree, hf_FRUControl_datafield_PICMGIdentifier, @@ -2949,7 +2949,7 @@ dissect_cmd_Get_FRU_Led_Properties(proto_tree *tree, proto_tree *ipmi_tree, pack proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 LedProperties; - + if(response) { /* PICMG Identifier */ @@ -2959,9 +2959,9 @@ dissect_cmd_Get_FRU_Led_Properties(proto_tree *tree, proto_tree *ipmi_tree, pack } /* General Status LED Properties */ if (tree) { - + LedProperties = tvb_get_guint8(tvb, auth_offset + 18) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "General Status LED Properties: %s0x%02x", " ", LedProperties); @@ -2978,7 +2978,7 @@ dissect_cmd_Get_FRU_Led_Properties(proto_tree *tree, proto_tree *ipmi_tree, pack proto_tree_add_item(field_tree, hf_GetFRULedProperties_datafield_LedProperties_BlueLED, tvb, *poffset, 1, TRUE); (*poffset)++; - + } /* Application Specific LED Count */ if (tree) { @@ -2988,7 +2988,7 @@ dissect_cmd_Get_FRU_Led_Properties(proto_tree *tree, proto_tree *ipmi_tree, pack } else { - + /* PICMG Identifier */ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetFRULedProperties_datafield_PICMGIdentifier, @@ -2999,12 +2999,12 @@ dissect_cmd_Get_FRU_Led_Properties(proto_tree *tree, proto_tree *ipmi_tree, pack proto_tree_add_item(ipmi_tree, hf_GetFRULedProperties_datafield_FRUDeviceID, tvb, (*poffset)++, 1, TRUE); } - + } } -static void +static void dissect_cmd_Get_Led_Color_Capabilities(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinfo _U_, tvbuff_t *tvb, gint *poffset, guint8 len _U_, guint8 response, guint8 auth_offset) { @@ -3012,7 +3012,7 @@ dissect_cmd_Get_Led_Color_Capabilities(proto_tree *tree, proto_tree *ipmi_tree, proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 LEDColorCapabilities, DefaultLEDColorLocalControl, DefaultLEDColorOverride; - + if(response) { /* PICMG Identifier */ @@ -3022,9 +3022,9 @@ dissect_cmd_Get_Led_Color_Capabilities(proto_tree *tree, proto_tree *ipmi_tree, } /* LED Color Capabilities */ if (tree) { - + LEDColorCapabilities = tvb_get_guint8(tvb, auth_offset + 18) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "LED Color Capabilities: %s0x%02x", " ", LEDColorCapabilities); @@ -3047,13 +3047,13 @@ dissect_cmd_Get_Led_Color_Capabilities(proto_tree *tree, proto_tree *ipmi_tree, proto_tree_add_item(field_tree, hf_GetLedColorCapabilities_datafield_LEDColorCapabilities_Reserved_0, tvb, *poffset, 1, TRUE); (*poffset)++; - + } /* Default LED Color in Local Control State*/ if (tree) { - + DefaultLEDColorLocalControl = tvb_get_guint8(tvb, auth_offset + 19) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Default LED Color in Local Control State: %s0x%02x", " ", DefaultLEDColorLocalControl); @@ -3067,9 +3067,9 @@ dissect_cmd_Get_Led_Color_Capabilities(proto_tree *tree, proto_tree *ipmi_tree, } /* Default LED Color in Override State */ if (tree) { - + DefaultLEDColorOverride = tvb_get_guint8(tvb, auth_offset + 20) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Default LED Color in Override State: %s0x%02x", " ", DefaultLEDColorOverride); @@ -3084,7 +3084,7 @@ dissect_cmd_Get_Led_Color_Capabilities(proto_tree *tree, proto_tree *ipmi_tree, } else { - + /* PICMG Identifier */ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetLedColorCapabilities_datafield_PICMGIdentifier, @@ -3100,13 +3100,13 @@ dissect_cmd_Get_Led_Color_Capabilities(proto_tree *tree, proto_tree *ipmi_tree, proto_tree_add_item(ipmi_tree, hf_GetLedColorCapabilities_datafield_LEDID, tvb, (*poffset)++, 1, TRUE); } - - + + } } -static void +static void dissect_cmd_Set_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinfo _U_, tvbuff_t *tvb, gint *poffset, guint8 len _U_, guint8 response, guint8 auth_offset) { @@ -3114,7 +3114,7 @@ dissect_cmd_Set_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in proto_item *tf = NULL; guint8 Color; - + if(response) { /* PICMG Identifier */ @@ -3122,7 +3122,7 @@ dissect_cmd_Set_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in proto_tree_add_item(ipmi_tree, hf_SetFRULedState_datafield_PICMGIdentifier, tvb, (*poffset)++, 1, TRUE); } - + } else { @@ -3156,7 +3156,7 @@ dissect_cmd_Set_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in /*On-duration */ if (tree) { guint8 duration = tvb_get_guint8(tvb, *poffset); - proto_tree_add_uint_format(ipmi_tree, hf_SetFRULedState_datafield_Onduration, + proto_tree_add_uint_format(ipmi_tree, hf_SetFRULedState_datafield_Onduration, tvb, (*poffset)++, 1, duration, "On-duration: %u ms (0x%02x)", duration * 10, duration); } @@ -3164,7 +3164,7 @@ dissect_cmd_Set_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in if (tree) { Color = tvb_get_guint8(tvb, auth_offset + 21) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Color when illuminated: %s0x%02x", " ", Color); @@ -3175,14 +3175,14 @@ dissect_cmd_Set_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in proto_tree_add_item(field_tree, hf_SetFRULedState_datafield_Color_ColorVal, tvb, *poffset, 1, TRUE); (*poffset)++; - + } - + } } -static void +static void dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinfo _U_, tvbuff_t *tvb, gint *poffset, guint8 len _U_, guint8 response, guint8 auth_offset) { @@ -3190,7 +3190,7 @@ dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in proto_item *tf = NULL; guint8 led_state, Color; - + if(response) { /* PICMG Identifier */ @@ -3202,7 +3202,7 @@ dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in if (tree) { led_state = tvb_get_guint8(tvb, auth_offset + 18) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "LED State: %s0x%02x", " ", led_state); @@ -3241,7 +3241,7 @@ dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in if (tree) { Color = tvb_get_guint8(tvb, auth_offset + 21) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Local Control Color: %s0x%02x", " ", Color); @@ -3252,7 +3252,7 @@ dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in proto_tree_add_item(field_tree, hf_GetFRULedState_datafield_LocalControlColor_ColorVal, tvb, *poffset, 1, TRUE); (*poffset)++; - + } /* Override State LED Function */ if (tree) { @@ -3275,9 +3275,9 @@ dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in } /* Override State Color */ if (tree) { - + Color = tvb_get_guint8(tvb, auth_offset + 24) ; - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Override State Color: %s0x%02x", " ", Color); @@ -3294,7 +3294,7 @@ dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in proto_tree_add_item(ipmi_tree, hf_GetFRULedState_datafield_LampTestDuration, tvb, (*poffset)++, 1, TRUE); } - + } else { @@ -3313,7 +3313,7 @@ dissect_cmd_Get_FRU_Led_State(proto_tree *tree, proto_tree *ipmi_tree, packet_in proto_tree_add_item(ipmi_tree, hf_GetFRULedState_datafield_LEDID, tvb, (*poffset)++, 1, TRUE); } - + } } @@ -3325,7 +3325,7 @@ dissect_cmd_Set_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 FRUActivationPolicyMaskBit, MaskBit1, MaskBit0, FRUActivationPolicySetBit; - + if(response) { /* PICMG Identifier */ @@ -3333,7 +3333,7 @@ dissect_cmd_Set_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p proto_tree_add_item(ipmi_tree, hf_SetFRUActivationPolicy_datafield_PICMGIdentifier, tvb, (*poffset)++, 1, TRUE); } - + } else { @@ -3366,7 +3366,7 @@ dissect_cmd_Set_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p /* FRU Activation Policy Set Bit */ MaskBit1 = FRUActivationPolicyMaskBit & 0x02; MaskBit0 = FRUActivationPolicyMaskBit & 0x01; - + if(MaskBit1&&MaskBit0) { if (tree) { @@ -3384,10 +3384,10 @@ dissect_cmd_Set_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p tvb, *poffset, 1, TRUE); (*poffset)++; } - + } else if(MaskBit1) { - + if (tree) { FRUActivationPolicySetBit = tvb_get_guint8(tvb, auth_offset + 19) ; tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, @@ -3403,7 +3403,7 @@ dissect_cmd_Set_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p tvb, *poffset, 1, TRUE); (*poffset)++; } - + } else if(MaskBit0) { @@ -3424,7 +3424,7 @@ dissect_cmd_Set_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p } } else { - + if (tree) { FRUActivationPolicySetBit = tvb_get_guint8(tvb, auth_offset + 19) ; tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, @@ -3440,10 +3440,10 @@ dissect_cmd_Set_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p tvb, *poffset, 1, TRUE); (*poffset)++; } - + } - - + + } } @@ -3456,7 +3456,7 @@ dissect_cmd_Get_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p proto_tree *field_tree = NULL; proto_item *tf = NULL; guint8 FRUActivationPolicy; - + if(response) { /* PICMG Identifier */ @@ -3480,7 +3480,7 @@ dissect_cmd_Get_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p tvb, *poffset, 1, TRUE); (*poffset)++; } - + } else { @@ -3494,7 +3494,7 @@ dissect_cmd_Get_FRU_Activation_Policy(proto_tree *tree, proto_tree *ipmi_tree, p proto_tree_add_item(ipmi_tree, hf_GetFRUActivationPolicy_datafield_FRUDeviceID, tvb, (*poffset)++, 1, TRUE); } - + } @@ -3512,7 +3512,7 @@ dissect_cmd_Set_FRU_Activation(proto_tree *tree, proto_tree *ipmi_tree, packet_i proto_tree_add_item(ipmi_tree, hf_SetFRUActivation_datafield_PICMGIdentifier, tvb, (*poffset)++, 1, TRUE); } - + } else { @@ -3530,8 +3530,8 @@ dissect_cmd_Set_FRU_Activation(proto_tree *tree, proto_tree *ipmi_tree, packet_i if (tree) { proto_tree_add_item(ipmi_tree, hf_SetFRUActivation_datafield_FRUActivationDeactivation, tvb, (*poffset)++, 1, TRUE); - } - + } + } } @@ -3540,7 +3540,7 @@ static void dissect_cmd_Get_Device_Locator_Record_ID(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinfo _U_, tvbuff_t *tvb, gint *poffset, guint8 len _U_, guint8 response, guint8 auth_offset _U_) { - + if(response) { /* PICMG Identifier */ @@ -3554,7 +3554,7 @@ dissect_cmd_Get_Device_Locator_Record_ID(proto_tree *tree, proto_tree *ipmi_tree tvb, *poffset, 2, TRUE); (*poffset)+=2; } - + } else { @@ -3568,7 +3568,7 @@ dissect_cmd_Get_Device_Locator_Record_ID(proto_tree *tree, proto_tree *ipmi_tree proto_tree_add_item(ipmi_tree, hf_GetDeviceLocatorRecordID_datafield_FRUDeviceID, tvb, (*poffset)++, 1, TRUE); } - + } } @@ -3587,7 +3587,7 @@ dissect_cmd_Set_Power_Level(proto_tree *tree, proto_tree *ipmi_tree, packet_info } else { - + /* PICMG Identifier */ if (tree) { proto_tree_add_item(ipmi_tree, hf_SetPowerLevel_datafield_PICMGIdentifier, @@ -3607,8 +3607,8 @@ dissect_cmd_Set_Power_Level(proto_tree *tree, proto_tree *ipmi_tree, packet_info if (tree) { proto_tree_add_item(ipmi_tree, hf_SetPowerLevel_datafield_SetPresentLevelsToDesiredLevels, tvb, (*poffset)++, 1, TRUE); - } - + } + } } @@ -3621,11 +3621,11 @@ dissect_cmd_Get_Power_Level(proto_tree *tree, proto_tree *ipmi_tree, packet_info proto_item *tf = NULL; guint8 Properties, j; - + if(response) { Properties = tvb_get_guint8(tvb, auth_offset + 18) ; - + /* PICMG Identifier */ if (tree) { proto_tree_add_item(ipmi_tree, hf_GetPowerLevel_datafield_PICMGIdentifier, @@ -3633,7 +3633,7 @@ dissect_cmd_Get_Power_Level(proto_tree *tree, proto_tree *ipmi_tree, packet_info } /* Properties */ if (tree) { - + tf = proto_tree_add_text(ipmi_tree, tvb, *poffset, 1, "Properties: %s0x%02x", " ", Properties); @@ -3646,7 +3646,7 @@ dissect_cmd_Get_Power_Level(proto_tree *tree, proto_tree *ipmi_tree, packet_info proto_tree_add_item(field_tree, hf_GetPowerLevel_datafield_Properties_PowerLevel, tvb, *poffset, 1, TRUE); (*poffset)++; - + } /*Delay To Stable Power*/ if (tree) { @@ -3660,13 +3660,13 @@ dissect_cmd_Get_Power_Level(proto_tree *tree, proto_tree *ipmi_tree, packet_info } /*Power Draw*/ for(j=0; jcinfo, COL_INFO, "%s", val_to_str(payloadtype, ipmi_payload_vals, "Unknown (0x%02x)")); } - + if ( payloadtype == IPMI_OEM_EXPLICIT){ proto_tree_add_item(field_tree, hf_ipmi_oem_iana, tvb, offset, 4, TRUE); @@ -4326,7 +4326,7 @@ dissect_ipmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; default: return; - + } } @@ -4389,7 +4389,7 @@ dissect_ipmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item_append_text(tf, ", LUN 0x%02x", lun); offset += 1; } - + /* command */ if (tree) { @@ -4397,7 +4397,7 @@ dissect_ipmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) "Command: %s (0x%02x)", get_netfn_cmd_text(netfn, cmd), cmd); } - + /* completion code */ if (tree && response) { @@ -4405,7 +4405,7 @@ dissect_ipmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) "Completion Code: %s (0x%02x)", get_ccode_cmd_text(netfn, cmd, ccode), ccode); } - + /* If ccode is non zero and there is only one more byte remaining in * the packet this probably means that the response has been truncated @@ -4433,7 +4433,7 @@ dissect_ipmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* dissect the data block, added by lane */ dissect_ipmi_data(tree, ipmi_tree, pinfo, tvb, &offset, len, netfn, cmd, response, auth_offset); - + /* checksum 2 */ if (tree) { @@ -4456,11 +4456,11 @@ proto_register_ipmi(void) "IPMI Payload Type", HFILL }}, { &hf_ipmi_payloadtype_auth,{ "Authenticated","ipmi.session.payloadtype.auth", - FT_BOOLEAN,8, TFS(&ipmi_payload_aut_val), 0x40, + FT_BOOLEAN,8, TFS(&ipmi_payload_aut_val), 0x40, "IPMI Payload Type authenticated", HFILL }}, { &hf_ipmi_payloadtype_enc,{ "Encryption","ipmi.session.payloadtype.enc", - FT_BOOLEAN,8, TFS(&ipmi_payload_enc_val), 0x80, + FT_BOOLEAN,8, TFS(&ipmi_payload_enc_val), 0x80, "IPMI Payload Type encryption", HFILL }}, { &hf_ipmi_oem_iana,{ "OEM IANA", "ipmi.session.oem.iana", @@ -4588,7 +4588,7 @@ proto_register_ipmi(void) { &hf_PEM_datafield_EventData3_threshold, { "threshold value that triggered event", "PEM.datafield.EventData3_threshold", FT_UINT8, BASE_HEX, NULL, 0, - "threshold value that triggered event", HFILL }}, + "threshold value that triggered event", HFILL }}, /* discrete */ { &hf_PEM_datafield_EventData1_discrete_76, { "[7,6] ", "PEM.datafield.EventData1_discrete_76", @@ -4727,7 +4727,7 @@ proto_register_ipmi(void) { &hf_GetDeviceSDR_datafield_NextRecordID, { "Record ID for next record", "GetDeviceSDR.datafield.ReservationID", FT_UINT16, BASE_HEX, NULL, 0, - "Record ID for next record", HFILL }}, + "Record ID for next record", HFILL }}, }; /* Data field of Set Sensor Hysteresis command, added by lane */ @@ -4889,7 +4889,7 @@ proto_register_ipmi(void) FT_UINT8, BASE_HEX, NULL, 0, "upper non-recoverable threshold", HFILL }}, }; - + /* Data field of Get Sensor Reading command, added by lane */ static hf_register_info hf_GetSensorReading_datafield[] = { { &hf_GetSensorReading_datafield_SensorNumber, { @@ -5037,7 +5037,7 @@ proto_register_ipmi(void) { &hf_GetDeviceID_datafield_MinorFirmwareRevision, { "Minor Firmware Revision", "GetDeviceID.datafield.MinorFirmwareRevision", FT_UINT8, BASE_HEX, NULL, 0, - "Minor Firmware Revision", HFILL }}, + "Minor Firmware Revision", HFILL }}, { &hf_GetDeviceID_datafield_IPMIRevision, { "IPMI Revision", "GetDeviceID.datafield.IPMIRevision", FT_UINT8, BASE_HEX, VALS(cmd_GetDeviceID_Data_IPMIRevision_vals), 0, @@ -5081,7 +5081,7 @@ proto_register_ipmi(void) { &hf_GetDeviceID_datafield_ProductID, { "Product ID", "GetDeviceID.datafield.ProductID", FT_UINT16, BASE_HEX, NULL, 0, - "Product ID", HFILL }}, + "Product ID", HFILL }}, { &hf_GetDeviceID_datafield_AFRI, { "Auxiliary Firmware Revision Infomation", "GetDeviceID.datafield.AuxiliaryFirmwareRevisionInfomation", FT_UINT32, BASE_HEX, NULL, 0, @@ -5095,7 +5095,7 @@ proto_register_ipmi(void) "Channel number", HFILL }}, { &hf_Get_Channel_Auth_Cap_comp_info, { "Compabillity information", "GetChannelAuthCap.resp.Auth_Cap_comp_info", - FT_BOOLEAN,8, TFS(&ipmi_Auth_Cap_comp_val), 0x80, + FT_BOOLEAN,8, TFS(&ipmi_Auth_Cap_comp_val), 0x80, "Compabillity information", HFILL }}, { &hf_Get_Channel_Auth_Cap_Auth_types_b5, { "OEM proprietary (per OEM identified by the IANA OEM ID in the RMCP Ping Response)", "GetChannelAuthCap.resp.auth_types_b4", @@ -5160,7 +5160,7 @@ proto_register_ipmi(void) { &hf_Get_Channel_Auth_Cap_datafield_comp_info, { "Compabillity information", "GetChannelAuthCap.datafield.compinfo", - FT_BOOLEAN,8, TFS(&ipmi_Auth_Cap_datafield_comp_val), 0x80, + FT_BOOLEAN,8, TFS(&ipmi_Auth_Cap_datafield_comp_val), 0x80, "Compabillity information", HFILL }}, { &hf_Get_Channel_Auth_Cap_datafield_channel_number, { "Channel number", "GetChannelAuthCap.datafield.channelno", @@ -5193,7 +5193,7 @@ proto_register_ipmi(void) FT_UINT8, BASE_HEX, VALS(cmd_GetFRUInventoryAreaInfo_Data_ResponseDataByte4_Bit0_vals), 0x01, "Device is accessed by bytes or words ?", HFILL }}, }; - + /* Data field of Get SEL Info command, added by lane */ static hf_register_info hf_GetSELInfo_datafield[] = { { &hf_GetSELInfo_datafield_SELVersion, { @@ -5219,7 +5219,7 @@ proto_register_ipmi(void) { &hf_GetSELInfo_datafield_OperationSupport_Bit7, { "Overflow Flag", "GetSELInfo.datafield.OperationSupport.Bit7", FT_UINT8, BASE_HEX, VALS(cmd_GetSELInfo_Data_OperationSupport_Bit7_vals), 0x80, - "Overflow Flag", HFILL }}, + "Overflow Flag", HFILL }}, { &hf_GetSELInfo_datafield_OperationSupport_Reserved, { "Reserved", "GetSELInfo.datafield.OperationSupport.Reserved", FT_UINT8, BASE_HEX, NULL, 0x70, @@ -5305,7 +5305,7 @@ proto_register_ipmi(void) FT_UINT8, BASE_HEX, VALS(cmd_ClearSEL_Data_ErasureProgress_EraProg_vals), 0x0f, "Erasure Progress", HFILL }}, }; - + /********* PICMG, NetFN = 0x2c *********/ @@ -5326,7 +5326,7 @@ proto_register_ipmi(void) { &hf_GetPICMGProperties_datafield_FRUDeviceIDforIPMController, { "FRU Device ID for IPM Controller", "GetPICMGProperties.datafield.FRUDeviceIDforIPMController", FT_UINT8, BASE_HEX, NULL, 0, - "FRU Device ID for IPM Controller", HFILL }}, + "FRU Device ID for IPM Controller", HFILL }}, }; /* Data field of FRU Control command, added by lane */ @@ -5395,7 +5395,7 @@ proto_register_ipmi(void) "LED ID", "GetLedColorCapabilities.datafield.LEDID", FT_UINT8, BASE_HEX, NULL, 0, "LED ID", HFILL }}, - /* LED Color Capabilities */ + /* LED Color Capabilities */ { &hf_GetLedColorCapabilities_datafield_LEDColorCapabilities_Reserved_7, { "Reserved", "GetLedColorCapabilities.datafield.LEDColorCapabilities.Reserved.bit7", FT_UINT8, BASE_HEX, NULL, 0x80, @@ -5428,7 +5428,7 @@ proto_register_ipmi(void) "Reserved", "GetLedColorCapabilities.datafield.LEDColorCapabilities.Reserved.bit0", FT_UINT8, BASE_HEX, NULL, 0x01, "Reserved", HFILL }}, - /* Default LED Color in Local Control State*/ + /* Default LED Color in Local Control State*/ { &hf_GetLedColorCapabilities_datafield_DefaultLEDColorLocalControl_Reserved_74, { "Reserved", "GetLedColorCapabilities.datafield.DefaultLEDColorLocalControl.Reserved.bit7-4", FT_UINT8, BASE_HEX, NULL, 0xf0, @@ -5437,7 +5437,7 @@ proto_register_ipmi(void) "Default LED Color (Local Control State)", "GetLedColorCapabilities.datafield.DefaultLEDColorLocalControl.Color", FT_UINT8, BASE_HEX, VALS(cmd_GetLedColorCapabilities_data_DefaultLEDColor_vals), 0x0f, "Default LED Color (Local Control State)", HFILL }}, - /* Default LED Color in Override State */ + /* Default LED Color in Override State */ { &hf_GetLedColorCapabilities_datafield_DefaultLEDColorOverride_Reserved_74, { "Reserved", "GetLedColorCapabilities.datafield.DefaultLEDColorOverride.Reserved.bit7-4", FT_UINT8, BASE_HEX, NULL, 0xf0, @@ -5445,7 +5445,7 @@ proto_register_ipmi(void) { &hf_GetLedColorCapabilities_datafield_DefaultLEDColorOverride_Color, { "Default LED Color (Override State)", "GetLedColorCapabilities.datafield.DefaultLEDColorOverride.Color", FT_UINT8, BASE_HEX, VALS(cmd_GetLedColorCapabilities_data_DefaultLEDColor_vals), 0x0f, - "Default LED Color (Override State)", HFILL }}, + "Default LED Color (Override State)", HFILL }}, }; /* Data field of Set FRU Led State, added by lane */ @@ -5477,7 +5477,7 @@ proto_register_ipmi(void) { &hf_SetFRULedState_datafield_Color_Reserved, { "Bit 7...4 Reserved", "SetFRULedState.datafield.Color.Reserved", FT_UINT8, BASE_HEX, NULL, 0xf0, - "Bit 7...4 Reserved", HFILL }}, + "Bit 7...4 Reserved", HFILL }}, { &hf_SetFRULedState_datafield_Color_ColorVal, { "Color", "SetFRULedState.datafield.Color.ColorVal", FT_UINT8, BASE_HEX, VALS(cmd_SetFRULedState_data_Color_ColorVal_vals), 0x0f, @@ -5509,7 +5509,7 @@ proto_register_ipmi(void) { &hf_GetFRULedState_datafield_LEDState_Bit1, { "Override State", "GetFRULedState.datafield.LEDState.Bit1", FT_UINT8, BASE_HEX, VALS(cmd_GetFRULedState_data_LEDState_Bit21_vals), 0x02, - "Override State", HFILL }}, + "Override State", HFILL }}, { &hf_GetFRULedState_datafield_LEDState_Bit0, { "IPM Controller has a Local Control State ?", "GetFRULedState.datafield.LEDState.Bit0", FT_UINT8, BASE_HEX, VALS(cmd_GetFRULedState_data_LEDState_Bit0_vals), 0x01, @@ -5529,7 +5529,7 @@ proto_register_ipmi(void) { &hf_GetFRULedState_datafield_LocalControlColor_Reserved, { "Bit 7...4 Reserved", "GetFRULedState.datafield.LocalControlColor.Reserved", FT_UINT8, BASE_HEX, NULL, 0xf0, - "Bit 7...4 Reserved", HFILL }}, + "Bit 7...4 Reserved", HFILL }}, { &hf_GetFRULedState_datafield_LocalControlColor_ColorVal, { "Color", "GetFRULedState.datafield.LocalControlColor.ColorVal", FT_UINT8, BASE_HEX, VALS(cmd_GetFRULedState_data_ColorVal_vals), 0x0f, @@ -5549,7 +5549,7 @@ proto_register_ipmi(void) { &hf_GetFRULedState_datafield_OverrideStateColor_Reserved, { "Bit 7...4 Reserved", "GetFRULedState.datafield.OverrideStateColor.Reserved", FT_UINT8, BASE_HEX, NULL, 0xf0, - "Bit 7...4 Reserved", HFILL }}, + "Bit 7...4 Reserved", HFILL }}, { &hf_GetFRULedState_datafield_OverrideStateColor_ColorVal, { "Color", "GetFRULedState.datafield.OverrideStateColor.ColorVal", FT_UINT8, BASE_HEX, VALS(cmd_GetFRULedState_data_ColorVal_vals), 0x0f, @@ -5573,7 +5573,7 @@ proto_register_ipmi(void) { &hf_SetFRUActivation_datafield_FRUActivationDeactivation, { "FRU Activation/Deactivation", "SetFRUActivation.datafield.FRUActivationDeactivation", FT_UINT8, BASE_HEX, VALS(cmd_SetFRUActivation_data_FRUActivationDeactivation_vals), 0, - "FRU Activation/Deactivation", HFILL }}, + "FRU Activation/Deactivation", HFILL }}, }; /* Data field of Set FRU Activation Policy command, added by lane */ @@ -5617,7 +5617,7 @@ proto_register_ipmi(void) { &hf_SetFRUActivationPolicy_datafield_FRUActivationPolicySetBit_Bit0_ignored, { "Set or Clear Locked", "SetFRUActivationPolicy.datafield.FRUActivationPolicySetBit.Bit0_ignored", FT_UINT8, BASE_HEX, VALS(cmd_SetFRUActivationPolicy_data_PFRUActivationPolicySetBit_Bit0_ignored_vals), 0x01, - "Set or Clear Locked", HFILL }}, + "Set or Clear Locked", HFILL }}, }; /* Data field of Get FRU Activation Policy command, added by lane */ @@ -5643,7 +5643,7 @@ proto_register_ipmi(void) FT_UINT8, BASE_HEX, VALS(cmd_GetFRUActivationPolicy_data_FRUActivationPolicy_Bit0_vals), 0x01, "Locked Bit", HFILL }}, }; - + /* Data field of Get Device Locator Record ID, added by lane */ static hf_register_info hf_GetDeviceLocatorRecordID_datafield[] = { { &hf_GetDeviceLocatorRecordID_datafield_PICMGIdentifier, { @@ -5677,7 +5677,7 @@ proto_register_ipmi(void) { &hf_SetPowerLevel_datafield_SetPresentLevelsToDesiredLevels, { "Set Present Levels to Desired Levels", "SetPowerLevel.datafield.SetPresentLevelsToDesiredLevels", FT_UINT8, BASE_HEX, VALS(cmd_SetPowerLevel_data_SetPresentLevelsToDesiredLevels_vals), 0, - "Set Present Levels to Desired Levels", HFILL }}, + "Set Present Levels to Desired Levels", HFILL }}, }; /* Data field of Get Power Level command, added by lane */ @@ -5789,13 +5789,13 @@ static gint *ett[] = { &ett_cmd_GetSensorReading_ResponseDataByte3, &ett_cmd_GetSensorReading_ResponseDataByte3_threshold, &ett_cmd_GetSensorReading_ResponseDataByte4, - + /********* APP, NetFN = 0x06 *********/ /*Get Device ID, added by lane */ &ett_cmd_GetDeviceID_data_dr, &ett_cmd_GetDeviceID_data_fr, &ett_cmd_GetDeviceID_data_ads, - + /********* Storage, NetFN = 0x0a *********/ &ett_Get_Channel_Auth_Cap_anonymouslogin, /* Get FRU Inventory Area Info, added by lane */ @@ -5825,7 +5825,7 @@ static gint *ett[] = { &ett_cmd_GetFRUActivationPolicy_data_FRUActivationPolicy, /* Get Power Level, added by lane*/ &ett_cmd_GetPowerLevel_data_Properties, - + }; proto_ipmi = proto_register_protocol( @@ -5839,7 +5839,7 @@ static gint *ett[] = { array_length(hf_msg_field)); /********* Sensor/Event, NetFN = 0x04 *********/ - + /* Platform Event Message, added by lane */ proto_register_field_array(proto_ipmi, hf_PEM_datafield, array_length(hf_PEM_datafield)); @@ -5869,15 +5869,15 @@ static gint *ett[] = { array_length(hf_GetSensorReading_datafield)); /********* APP, NetFN = 0x06 *********/ - + /*Get Device ID, added by lane */ proto_register_field_array(proto_ipmi, hf_GetDeviceID_datafield, array_length(hf_GetDeviceID_datafield)); - + /* Get Channel Authentication Capabilities */ proto_register_field_array(proto_ipmi, hf_Get_Ch_Auth_Cap_datafield, array_length(hf_Get_Ch_Auth_Cap_datafield)); - + /********* Storage, NetFN = 0x0a *********/ /* Get FRU Inventory Area Info, added by lane */ @@ -5897,7 +5897,7 @@ static gint *ett[] = { array_length(hf_ClearSEL_datafield)); /********* PICMG, NetFN = 0X2c *********/ - + /*Get PICMG Properties, added by lane */ proto_register_field_array(proto_ipmi, hf_GetPICMGProperties_datafield, array_length(hf_GetPICMGProperties_datafield)); @@ -5940,11 +5940,11 @@ static gint *ett[] = { /* Get Fan Level, added by lane */ proto_register_field_array(proto_ipmi, hf_GetFanLevel_datafield, array_length(hf_GetFanLevel_datafield)); - + /****************************************************************************/ proto_register_subtree_array(ett, array_length(ett)); - + } void @@ -5960,15 +5960,15 @@ proto_reg_handoff_ipmi(void) typedef void (*P_FUN)(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinfo, tvbuff_t *tvb, gint *poffset, guint8 len, guint8 response, guint8 auth_offset); -/* added hereinafter by lane */ +/* added hereinafter by lane */ void dissect_ipmi_data(proto_tree *tree, proto_tree *ipmi_tree, packet_info *pinfo, - tvbuff_t *tvb, gint *poffset, guint8 len, guint8 netfn, guint8 cmd, + tvbuff_t *tvb, gint *poffset, guint8 len, guint8 netfn, guint8 cmd, guint8 response, guint8 auth_offset) { tvbuff_t *next_tvb; guint i; - + for (i = 0; i < NUM_OF_CMD_ARRAY; i++) { if(((netfn&0xfe)==ipmi_cmd_array[i].netfn) && (cmd==ipmi_cmd_array[i].cmd)) { if(ipmi_cmd_array[i].dissectfunc) { diff --git a/epan/dissectors/packet-netsync.c b/epan/dissectors/packet-netsync.c index 1c386cab82..4f99ca95b7 100644 --- a/epan/dissectors/packet-netsync.c +++ b/epan/dissectors/packet-netsync.c @@ -180,16 +180,16 @@ static gint dissect_uleb128( tvbuff_t *tvb, gint offset, guint* size) do { tmp = tvb_get_guint8(tvb, offset); offset += 1; - + *size |= (tmp & 0x7F) << shift; - shift += 7; + shift += 7; } while (tmp & 0x80); return offset - start_offset; } -static gint dissect_netsync_cmd_error( tvbuff_t *tvb, gint offset, proto_tree *tree, guint size _U_) +static gint dissect_netsync_cmd_error( tvbuff_t *tvb, gint offset, proto_tree *tree, guint size _U_) { guint len = 0; @@ -376,7 +376,7 @@ static gint dissect_netsync_cmd_send_delta(tvbuff_t *tvb, gint offset, proto_tr static gint dissect_netsync_cmd_data(tvbuff_t *tvb, gint offset, proto_tree *tree, guint size _U_) { guint len = -1; - + proto_tree_add_item(tree, hf_netsync_cmd_data_type, tvb, offset, 1, FALSE ); offset += 1; @@ -449,19 +449,19 @@ get_netsync_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset) /* skip version and command */ offset += 2; - + size_bytes = dissect_uleb128( tvb, offset, &size ); - + /* the calculated size if for the data only, this doesn't - * include the version (1 byte), command (1 byte), - * lenght (size_bytes bytes) and checksum (4 bytes) + * include the version (1 byte), command (1 byte), + * length (size_bytes bytes) and checksum (4 bytes) */ return 1 + 1 + size_bytes + size + 4; } static void -dissect_netsync_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +dissect_netsync_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { gint offset = 0; guint8 tmp; @@ -477,7 +477,7 @@ dissect_netsync_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (tree == NULL) return; - + while (tvb_reported_length_remaining(tvb, offset) > 0) { ti = proto_tree_add_item(tree, proto_netsync, tvb, offset, -1, FALSE); netsync_tree = proto_item_add_subtree(ti, ett_netsync); @@ -500,12 +500,12 @@ dissect_netsync_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) do { tmp = tvb_get_guint8(tvb, offset + size_bytes); size_bytes += 1; - + size |= (tmp & 0x7F) << shift; - shift += 7; + shift += 7; } while (tmp & 0x80); - - + + proto_tree_add_uint(netsync_tree, hf_netsync_size, tvb, offset, size_bytes, size ); offset += size_bytes; @@ -576,8 +576,8 @@ dissect_netsync_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) offset += 4; - proto_item_append_text(netsync_tree, " V%d, Cmd: %s (%d), Size: %d", - version, val_to_str(cmd, netsync_cmd_vals, "(0x%x)"), cmd, size ); + proto_item_append_text(netsync_tree, " V%d, Cmd: %s (%d), Size: %d", + version, val_to_str(cmd, netsync_cmd_vals, "(0x%x)"), cmd, size ); proto_item_set_len(netsync_tree, 1+1+size_bytes+size+4); } @@ -591,7 +591,7 @@ dissect_netsync(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } void -proto_register_netsync(void) +proto_register_netsync(void) { static hf_register_info hf[] = { /* General */ @@ -778,7 +778,7 @@ proto_register_netsync(void) } void -proto_reg_handoff_netsync(void) +proto_reg_handoff_netsync(void) { static gint initialized = 0; @@ -788,7 +788,7 @@ proto_reg_handoff_netsync(void) initialized = 1; } - tcp_port_netsync = global_tcp_port_netsync; + tcp_port_netsync = global_tcp_port_netsync; dissector_add("tcp.port", global_tcp_port_netsync, netsync_handle); } diff --git a/epan/dissectors/packet-sebek.c b/epan/dissectors/packet-sebek.c index 0508c25c67..8b395726f8 100644 --- a/epan/dissectors/packet-sebek.c +++ b/epan/dissectors/packet-sebek.c @@ -1,6 +1,6 @@ /* packet-sebek.c * Routines for Sebek - Kernel based data capture - packet dissection - * Modified to add sebek V3 + * Modified to add sebek V3 * Copyright 2006, Camilo Viecco * Copyright 1999, Nathan Neulinger * @@ -170,8 +170,8 @@ dissect_sebek(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) ti = proto_tree_add_item(tree, proto_sebek, tvb, 0, -1, FALSE); sebek_tree = proto_item_add_subtree(ti, ett_sebek); - /* check for minimum lenght before deciding where to go*/ - if (tvb->length<6) + /* check for minimum length before deciding where to go*/ + if (tvb->length<6) sebek_ver = 0; else sebek_ver = tvb_get_ntohs(tvb, 4); @@ -230,7 +230,7 @@ dissect_sebek(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) ts.secs = tvb_get_ntohl(tvb, offset); ts.nsecs = tvb_get_ntohl(tvb, offset+4); proto_tree_add_time(sebek_tree, hf_sebek_time, tvb, offset, 8, &ts); - offset += 8; + offset += 8; proto_tree_add_item(sebek_tree, hf_sebek_ppid, tvb, offset, 4, FALSE); offset += 4; diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c index 0d9992d543..6df704cda7 100644 --- a/epan/dissectors/packet-snmp.c +++ b/epan/dissectors/packet-snmp.c @@ -1225,7 +1225,7 @@ snmp_variable_decode(tvbuff_t *tvb, proto_tree *snmp_tree, asn1_ctx_t *actx,tvbu static void set_ue_keys(snmp_ue_assoc_t* n ) { guint key_size = n->user.authModel->key_size; - + n->user.authKey.data = se_alloc(key_size); n->user.authKey.len = key_size; n->user.authModel->pass2key(n->user.authPassword.data, @@ -1233,7 +1233,7 @@ static void set_ue_keys(snmp_ue_assoc_t* n ) { n->engine.data, n->engine.len, n->user.authKey.data); - + n->user.privKey.data = se_alloc(key_size); n->user.privKey.len = key_size; n->user.authModel->pass2key(n->user.privPassword.data, @@ -1245,29 +1245,29 @@ static void set_ue_keys(snmp_ue_assoc_t* n ) { static snmp_ue_assoc_t* ue_se_dup(snmp_ue_assoc_t* o) { snmp_ue_assoc_t* d = se_memdup(o,sizeof(snmp_ue_assoc_t)); - + d->user.authModel = o->user.authModel; - + d->user.privProtocol = o->user.privProtocol; - + d->user.userName.data = se_memdup(o->user.userName.data,o->user.userName.len); d->user.userName.len = o->user.userName.len; - + d->user.authPassword.data = o->user.authPassword.data ? se_memdup(o->user.authPassword.data,o->user.authPassword.len) : NULL; d->user.authPassword.len = o->user.authPassword.len; - + d->user.privPassword.data = o->user.privPassword.data ? se_memdup(o->user.privPassword.data,o->user.privPassword.len) : NULL; d->user.privPassword.len = o->user.privPassword.len; - + d->engine.len = o->engine.len; - + if (d->engine.len) { d->engine.data = se_memdup(o->engine.data,o->engine.len); set_ue_keys(d); } - + return d; - + } @@ -1276,7 +1276,7 @@ static snmp_ue_assoc_t* ue_se_dup(snmp_ue_assoc_t* o) { static void renew_ue_cache(void) { if (num_ueas) { guint i; - + localized_ues = NULL; unlocalized_ues = NULL; @@ -1285,7 +1285,7 @@ static void renew_ue_cache(void) { if (a->engine.len) { CACHE_INSERT(localized_ues,a); - + } else { CACHE_INSERT(unlocalized_ues,a); } @@ -1305,7 +1305,7 @@ static snmp_ue_assoc_t* localize_ue( snmp_ue_assoc_t* o, const guint8* engine, g n->engine.len = engine_len; set_ue_keys(n); - + return n; } @@ -1483,7 +1483,7 @@ static tvbuff_t* snmp_usm_priv_des(snmp_usm_params_t* p _U_, tvbuff_t* encrypted salt_len = tvb_length_remaining(p->priv_tvb,0); if (salt_len != 8) { - *error = "decryptionError: msgPrivacyParameters lenght != 8"; + *error = "decryptionError: msgPrivacyParameters length != 8"; return NULL; } @@ -1551,7 +1551,7 @@ static tvbuff_t* snmp_usm_priv_aes(snmp_usm_params_t* p _U_, tvbuff_t* encrypted priv_len = tvb_length_remaining(p->priv_tvb,0); if (priv_len != 8) { - *error = "decryptionError: msgPrivacyParameters lenght != 8"; + *error = "decryptionError: msgPrivacyParameters length != 8"; return NULL; } @@ -1662,7 +1662,7 @@ static int dissect_snmp_Integer_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 343 "snmp.cnf" guint length; - + snmp_variable_decode(tvb, tree, actx, oid_tvb, offset, &length, NULL); offset = offset + length; @@ -1680,7 +1680,7 @@ static int dissect_snmp_String_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 337 "snmp.cnf" guint length; - + snmp_variable_decode(tvb, tree, actx, oid_tvb, offset, &length, &value_tvb); offset = offset + length; @@ -1698,7 +1698,7 @@ static int dissect_snmp_ObjectID_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 349 "snmp.cnf" guint length; - + snmp_variable_decode(tvb, tree, actx, oid_tvb, offset, &length, NULL); offset = offset + length; @@ -1716,7 +1716,7 @@ static int dissect_snmp_Empty(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 355 "snmp.cnf" guint length; - + snmp_variable_decode(tvb, tree, actx, oid_tvb, offset, &length, NULL); offset = offset + length; @@ -1917,7 +1917,7 @@ dissect_snmp_T_internet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset /* see http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1125 */ guint32 len; int cur_offset; - + cur_offset = get_ber_identifier(tvb, offset, NULL, NULL, NULL); get_ber_length(NULL, tvb, cur_offset, &len, NULL); @@ -1926,7 +1926,7 @@ dissect_snmp_T_internet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset case 16: offset = dissect_snmp_IpAddressIpv6(FALSE, tvb, offset, actx, tree, hf_snmp_internet_ipv6); break; default: offset = dissect_snmp_IpAddressOther(FALSE, tvb, offset, actx, tree, hf_snmp_internet_other); break; } - + if (len != 4) { proto_item* pi = get_ber_last_created_item(); proto_tree* pt = proto_item_add_subtree(pi,ett_internet); @@ -1943,7 +1943,7 @@ dissect_snmp_T_internet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset expert_add_info_format( actx->pinfo, pi, PI_MALFORMED, PI_ERROR, "Corrupt and Invalid packet" ); } - + @@ -2172,8 +2172,8 @@ dissect_snmp_VarBind(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U VarBind_sequence, hf_index, ett_snmp_VarBind); if (oid_tvb && value_tvb) { - next_tvb_add_string(&var_list, value_tvb, (snmp_var_in_tree) ? tree : NULL, - variable_oid_dissector_table, + next_tvb_add_string(&var_list, value_tvb, (snmp_var_in_tree) ? tree : NULL, + variable_oid_dissector_table, oid_to_str(tvb_get_ptr(oid_tvb, 0, tvb_length(oid_tvb)), tvb_length(oid_tvb))); } @@ -2844,11 +2844,11 @@ dissect_snmp_T_msgFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset if (parameter_tvb){ guint8 v3_flags = tvb_get_guint8(parameter_tvb, 0); proto_tree* flags_tree = proto_item_add_subtree(get_ber_last_created_item(),ett_msgFlags); - + proto_tree_add_item(flags_tree, hf_snmp_v3_flags_report, parameter_tvb, 0, 1, FALSE); proto_tree_add_item(flags_tree, hf_snmp_v3_flags_crypt, parameter_tvb, 0, 1, FALSE); proto_tree_add_item(flags_tree, hf_snmp_v3_flags_auth, parameter_tvb, 0, 1, FALSE); - + usm_p.encrypted = v3_flags & TH_CRYPT ? TRUE : FALSE; usm_p.authenticated = v3_flags & TH_AUTH ? TRUE : FALSE; } @@ -2901,7 +2901,7 @@ dissect_snmp_T_msgSecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U #line 250 "snmp.cnf" switch(MsgSecurityModel){ - case SNMP_SEC_USM: /* 3 */ + case SNMP_SEC_USM: /* 3 */ offset = dissect_snmp_UsmSecurityParameters(FALSE, tvb, offset+2, actx, tree, -1); usm_p.user_assoc = get_user_assoc(usm_p.engine_tvb, usm_p.user_tvb); break; @@ -2953,7 +2953,7 @@ dissect_snmp_T_encryptedPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of if( usm_p.encrypted && crypt_tvb && usm_p.user_assoc && usm_p.user_assoc->user.privProtocol ) { - + const gchar* error = NULL; proto_tree* encryptedpdu_tree = proto_item_add_subtree(get_ber_last_created_item(),ett_encryptedPDU); tvbuff_t* cleartext_tvb = usm_p.user_assoc->user.privProtocol(&usm_p, crypt_tvb, &error ); @@ -2961,10 +2961,10 @@ dissect_snmp_T_encryptedPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of if (! cleartext_tvb) { proto_item* cause = proto_tree_add_text(encryptedpdu_tree, cleartext_tvb, 0, -1, "Failed to decrypt encryptedPDU: %s", error); - + expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Failed to decrypt encryptedPDU: %s", error); - + return offset; } else { proto_item* decrypted_item; @@ -2973,16 +2973,16 @@ dissect_snmp_T_encryptedPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of if (! check_ScopedPdu(cleartext_tvb)) { proto_item* cause = proto_tree_add_text(encryptedpdu_tree, cleartext_tvb, 0, -1, "Decrypted data not formated as expected, wrong key?"); - + expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Decrypted data not formated as expected"); - + return offset; } add_new_data_source(actx->pinfo, cleartext_tvb, "Decrypted ScopedPDU"); tvb_set_child_real_data_tvbuff(tvb, cleartext_tvb); - + decrypted_item = proto_tree_add_item(encryptedpdu_tree, hf_snmp_decryptedPDU,cleartext_tvb,0,-1,FALSE); decrypted_tree = proto_item_add_subtree(decrypted_item,ett_decrypted); dissect_snmp_ScopedPDU(FALSE, cleartext_tvb, 0, actx, decrypted_tree, -1); @@ -3046,7 +3046,7 @@ dissect_snmp_SNMPv3Message(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off proto_tree* authen_tree = proto_item_add_subtree(usm_p.auth_item,ett_authParameters); guint8* calc_auth; guint calc_auth_len; - + usm_p.authOK = usm_p.user_assoc->user.authModel->authenticate( &usm_p, &calc_auth, &calc_auth_len, &error ); if (error) { @@ -3055,11 +3055,11 @@ dissect_snmp_SNMPv3Message(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off expert_add_info_format( actx->pinfo, authen_item, PI_MALFORMED, PI_ERROR, "Error while verifying Messsage authenticity: %s", error ); } else { int severity; - gchar* fmt; + gchar* fmt; authen_item = proto_tree_add_boolean(authen_tree, hf_snmp_msgAuthentication, tvb, 0, 0, usm_p.authOK); PROTO_ITEM_SET_GENERATED(authen_item); - + if (usm_p.authOK) { fmt = "SNMP Authentication OK"; severity = PI_CHAT; @@ -3760,7 +3760,7 @@ static void* snmp_users_copy_cb(void* dest, const void* orig, unsigned len _U_) d->auth_model = o->auth_model; d->user.authModel = auth_models[o->auth_model]; - + d->priv_proto = o->priv_proto; d->user.privProtocol = priv_protos[o->priv_proto]; @@ -3772,18 +3772,18 @@ static void* snmp_users_copy_cb(void* dest, const void* orig, unsigned len _U_) d->user.privPassword.data = o->user.privPassword.data ? g_memdup(o->user.privPassword.data,o->user.privPassword.len) : NULL; d->user.privPassword.len = o->user.privPassword.len; - + d->engine.len = o->engine.len; if (o->engine.data) { d->engine.data = g_memdup(o->engine.data,o->engine.len); } - + d->user.authKey.data = o->user.authKey.data ? g_memdup(o->user.authKey.data,o->user.authKey.len) : NULL; d->user.authKey.len = o->user.authKey.len; d->user.privKey.data = o->user.privKey.data ? g_memdup(o->user.privKey.data,o->user.privKey.len) : NULL; d->user.privKey.len = o->user.privKey.len; - + return d; } @@ -3811,10 +3811,10 @@ static void snmp_users_update_cb(void* p _U_, const char** err) { g_string_truncate(es,es->len-2); *err = ep_strdup(es->str); } - + g_string_free(es,TRUE); - - return; + + return; } UAT_LSTRING_CB_DEF(snmp_users,userName,snmp_ue_assoc_t,user.userName.data,user.userName.len) @@ -4236,7 +4236,7 @@ void proto_register_snmp(void) { &ett_decrypted, &ett_authParameters, &ett_internet, - + /*--- Included file: packet-snmp-ettarr.c ---*/ #line 1 "packet-snmp-ettarr.c" @@ -4278,7 +4278,7 @@ void proto_register_snmp(void) { UAT_FLD_LSTRING(snmp_users,privPassword,"The password used for encrypting packets for this entry"), UAT_END_FIELDS }; - + assocs_uat = uat_new("SNMP Users", sizeof(snmp_ue_assoc_t), "snmp_users", @@ -4290,7 +4290,7 @@ void proto_register_snmp(void) { snmp_users_update_cb, snmp_users_free_cb, fields); - + #ifdef HAVE_NET_SNMP #ifdef _WIN32 @@ -4368,7 +4368,7 @@ void proto_register_snmp(void) { "Users Table", "Table of engine-user associations used for authentication and decryption", assocs_uat); - + variable_oid_dissector_table = register_dissector_table("snmp.variable_oid", "SNMP Variable OID", FT_STRING, BASE_NONE); diff --git a/epan/dissectors/packet-ssl-utils.c b/epan/dissectors/packet-ssl-utils.c index c2c2f107ea..150694bbb8 100644 --- a/epan/dissectors/packet-ssl-utils.c +++ b/epan/dissectors/packet-ssl-utils.c @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - + #ifdef HAVE_CONFIG_H # include "config.h" #endif @@ -398,7 +398,7 @@ const value_string pct_sig_type[] = { const value_string pct_exch_type[] = { { PCT_EXCH_RSA_PKCS1, "RSA PKCS#1" }, { PCT_EXCH_RSA_PKCS1_TOKEN_DES, "RSA PKCS#1 Token DES" }, - { PCT_EXCH_RSA_PKCS1_TOKEN_DES3, "RSA PKCS#1 Token 3DES" }, + { PCT_EXCH_RSA_PKCS1_TOKEN_DES3, "RSA PKCS#1 Token 3DES" }, { PCT_EXCH_RSA_PKCS1_TOKEN_RC2, "RSA PKCS#1 Token RC-2" }, { PCT_EXCH_RSA_PKCS1_TOKEN_RC4, "RSA PKCS#1 Token RC-4" }, { PCT_EXCH_DH_PKCS3, "DH PKCS#3" }, @@ -443,7 +443,7 @@ struct _SslDecompress { #endif }; -static gint +static gint ssl_data_alloc(StringInfo* str, guint len) { str->data = g_malloc(len); @@ -453,7 +453,7 @@ ssl_data_alloc(StringInfo* str, guint len) return 0; } -void +void ssl_data_set(StringInfo* str, const guchar* data, guint len) { memcpy(str->data, data, len); @@ -467,20 +467,20 @@ static gint ver_major, ver_minor, ver_patch; /* hmac abstraction layer */ #define SSL_HMAC gcry_md_hd_t -static inline void +static inline void ssl_hmac_init(SSL_HMAC* md, const void * key, gint len, gint algo) { - gcry_md_open(md,algo, GCRY_MD_FLAG_HMAC); + gcry_md_open(md,algo, GCRY_MD_FLAG_HMAC); gcry_md_setkey (*(md), key, len); } -static inline void +static inline void ssl_hmac_update(SSL_HMAC* md, const void* data, gint len) { gcry_md_write(*(md), data, len); } -static inline void +static inline void ssl_hmac_final(SSL_HMAC* md, guchar* data, guint* datalen) -{ +{ gint algo; guint len; algo = gcry_md_get_algo (*(md)); @@ -488,28 +488,28 @@ ssl_hmac_final(SSL_HMAC* md, guchar* data, guint* datalen) memcpy(data, gcry_md_read(*(md), algo), len); *datalen =len; } -static inline void -ssl_hmac_cleanup(SSL_HMAC* md) -{ - gcry_md_close(*(md)); +static inline void +ssl_hmac_cleanup(SSL_HMAC* md) +{ + gcry_md_close(*(md)); } /* memory digest abstraction layer*/ #define SSL_MD gcry_md_hd_t -static inline void +static inline void ssl_md_init(SSL_MD* md, gint algo) { - gcry_md_open(md,algo, 0); + gcry_md_open(md,algo, 0); } -static inline void -ssl_md_update(SSL_MD* md, guchar* data, gint len) -{ - gcry_md_write(*(md), data, len); +static inline void +ssl_md_update(SSL_MD* md, guchar* data, gint len) +{ + gcry_md_write(*(md), data, len); } -static inline void +static inline void ssl_md_final(SSL_MD* md, guchar* data, guint* datalen) -{ +{ gint algo; gint len; algo = gcry_md_get_algo (*(md)); @@ -517,52 +517,52 @@ ssl_md_final(SSL_MD* md, guchar* data, guint* datalen) memcpy(data, gcry_md_read(*(md), algo), len); *datalen = len; } -static inline void -ssl_md_cleanup(SSL_MD* md) -{ - gcry_md_close(*(md)); +static inline void +ssl_md_cleanup(SSL_MD* md) +{ + gcry_md_close(*(md)); } /* md5 /sha abstraction layer */ #define SSL_SHA_CTX gcry_md_hd_t #define SSL_MD5_CTX gcry_md_hd_t -static inline void +static inline void ssl_sha_init(SSL_SHA_CTX* md) { - gcry_md_open(md,GCRY_MD_SHA1, 0); + gcry_md_open(md,GCRY_MD_SHA1, 0); } -static inline void -ssl_sha_update(SSL_SHA_CTX* md, guchar* data, gint len) -{ +static inline void +ssl_sha_update(SSL_SHA_CTX* md, guchar* data, gint len) +{ gcry_md_write(*(md), data, len); } -static inline void +static inline void ssl_sha_final(guchar* buf, SSL_SHA_CTX* md) { - memcpy(buf, gcry_md_read(*(md), GCRY_MD_SHA1), + memcpy(buf, gcry_md_read(*(md), GCRY_MD_SHA1), gcry_md_get_algo_dlen(GCRY_MD_SHA1)); } -static inline void +static inline void ssl_sha_cleanup(SSL_SHA_CTX* md) { gcry_md_close(*(md)); } -static inline gint +static inline gint ssl_md5_init(SSL_MD5_CTX* md) { - return gcry_md_open(md,GCRY_MD_MD5, 0); + return gcry_md_open(md,GCRY_MD_MD5, 0); } -static inline void +static inline void ssl_md5_update(SSL_MD5_CTX* md, guchar* data, gint len) { gcry_md_write(*(md), data, len); } -static inline void +static inline void ssl_md5_final(guchar* buf, SSL_MD5_CTX* md) { - memcpy(buf, gcry_md_read(*(md), GCRY_MD_MD5), + memcpy(buf, gcry_md_read(*(md), GCRY_MD_MD5), gcry_md_get_algo_dlen(GCRY_MD_MD5)); } static inline void @@ -580,7 +580,7 @@ ssl_cipher_setiv(SSL_CIPHER_CTX *cipher, guchar* iv, gint iv_len) gcry_cipher_hd_t c; ret=0; c=(gcry_cipher_hd_t)*cipher; - + ssl_debug_printf("--------------------------------------------------------------------"); /*for(ivp=c->iv,i=0; i < iv_len; i++ ) { @@ -600,16 +600,16 @@ ssl_cipher_setiv(SSL_CIPHER_CTX *cipher, guchar* iv, gint iv_len) return ret; } /* stream cipher abstraction layer*/ -static gint -ssl_cipher_init(gcry_cipher_hd_t *cipher, gint algo, guchar* sk, +static gint +ssl_cipher_init(gcry_cipher_hd_t *cipher, gint algo, guchar* sk, guchar* iv, gint mode) { gint gcry_modes[]={GCRY_CIPHER_MODE_STREAM,GCRY_CIPHER_MODE_CBC}; - gint err; - err = gcry_cipher_open(cipher, algo, gcry_modes[mode], 0); + gint err; + err = gcry_cipher_open(cipher, algo, gcry_modes[mode], 0); if (err !=0) return -1; - err = gcry_cipher_setkey(*(cipher), sk, gcry_cipher_get_algo_keylen (algo)); + err = gcry_cipher_setkey(*(cipher), sk, gcry_cipher_get_algo_keylen (algo)); if (err != 0) return -1; err = gcry_cipher_setiv(*(cipher), iv, gcry_cipher_get_algo_blklen (algo)); @@ -617,18 +617,18 @@ ssl_cipher_init(gcry_cipher_hd_t *cipher, gint algo, guchar* sk, return -1; return 0; } -static inline gint -ssl_cipher_decrypt(gcry_cipher_hd_t *cipher, guchar * out, gint outl, +static inline gint +ssl_cipher_decrypt(gcry_cipher_hd_t *cipher, guchar * out, gint outl, const guchar * in, gint inl) { return gcry_cipher_decrypt ( *(cipher), out, outl, in, inl); } -static inline gint +static inline gint ssl_get_digest_by_name(const gchar*name) { return gcry_md_map_name(name); } -static inline gint +static inline gint ssl_get_cipher_by_name(const gchar* name) { return gcry_cipher_map_name(name); @@ -642,18 +642,18 @@ ssl_cipher_cleanup(gcry_cipher_hd_t *cipher) } /* private key abstraction layer */ -static inline gint +static inline gint ssl_get_key_len(SSL_PRIVATE_KEY* pk) {return gcry_pk_get_nbits (pk); } gcry_err_code_t _gcry_rsa_decrypt (int algo, gcry_mpi_t *result, gcry_mpi_t *data, gcry_mpi_t *skey, gint flags); - -#define PUBKEY_FLAG_NO_BLINDING (1 << 0) + +#define PUBKEY_FLAG_NO_BLINDING (1 << 0) /* decrypt data with private key. Store decrypted data directly into input * buffer */ -int +int ssl_private_decrypt(guint len, guchar* encr_data, SSL_PRIVATE_KEY* pk) { gint rc; @@ -667,14 +667,14 @@ ssl_private_decrypt(guint len, guchar* encr_data, SSL_PRIVATE_KEY* pk) encr_len = len; text=NULL; /* build up a mpi rappresentation for encrypted data */ - rc = gcry_mpi_scan(&encr_mpi, GCRYMPI_FMT_USG,encr_data, encr_len, &encr_len); + rc = gcry_mpi_scan(&encr_mpi, GCRYMPI_FMT_USG,encr_data, encr_len, &encr_len); if (rc != 0 ) { - ssl_debug_printf("pcry_private_decrypt: can't convert encr_data to mpi (size %d):%s\n", + ssl_debug_printf("pcry_private_decrypt: can't convert encr_data to mpi (size %d):%s\n", len, gcry_strerror(rc)); return 0; } -#ifndef SSL_FAST +#ifndef SSL_FAST /* put the data into a simple list */ rc = gcry_sexp_build(&s_data, NULL, "(enc-val(rsa(a%m)))", encr_mpi); if (rc != 0) { @@ -688,14 +688,14 @@ ssl_private_decrypt(guint len, guchar* encr_data, SSL_PRIVATE_KEY* pk) gcry_sexp_release(s_data); if (rc != 0) { - ssl_debug_printf("pcry_private_decrypt: can't decrypt key:%s\n", + ssl_debug_printf("pcry_private_decrypt: can't decrypt key:%s\n", gcry_strerror(rc)); goto out; - } - + } + /* convert plain text sexp to mpi format */ text = gcry_sexp_nth_mpi(s_plain, 0, 0); - + /* compute size requested for plaintext buffer */ decr_len = len; if (gcry_mpi_print(GCRYMPI_FMT_USG, NULL, decr_len, &decr_len, text) != 0) { @@ -704,7 +704,7 @@ ssl_private_decrypt(guint len, guchar* encr_data, SSL_PRIVATE_KEY* pk) decr_len = 0; goto out; } - + /* sanity check on out buffer */ if (decr_len > len) { ssl_debug_printf("pcry_private_decrypt: decrypted data is too long ?!? (%d max %d)\n", @@ -714,15 +714,15 @@ ssl_private_decrypt(guint len, guchar* encr_data, SSL_PRIVATE_KEY* pk) /* write plain text to encrypted data buffer */ decr_data_ptr = encr_data; - if (gcry_mpi_print( GCRYMPI_FMT_USG, decr_data_ptr, decr_len, &decr_len, + if (gcry_mpi_print( GCRYMPI_FMT_USG, decr_data_ptr, decr_len, &decr_len, text) != 0) { - ssl_debug_printf("pcry_private_decrypt: can't print decr data to mpi (size %d):%s\n", + ssl_debug_printf("pcry_private_decrypt: can't print decr data to mpi (size %d):%s\n", decr_len, gcry_strerror(rc)); g_free(decr_data_ptr); decr_len = 0; goto out; } - + /* strip the padding*/ rc = 0; for (i = 1; i < decr_len; i++) { @@ -731,35 +731,35 @@ ssl_private_decrypt(guint len, guchar* encr_data, SSL_PRIVATE_KEY* pk) break; } } - - ssl_debug_printf("pcry_private_decrypt: stripping %d bytes, decr_len %d\n", + + ssl_debug_printf("pcry_private_decrypt: stripping %d bytes, decr_len %d\n", rc, decr_len); - ssl_print_data("decypted_unstrip_pre_master", decr_data_ptr, decr_len); + ssl_print_data("decrypted_unstrip_pre_master", decr_data_ptr, decr_len); g_memmove(decr_data_ptr, &decr_data_ptr[rc], decr_len - rc); decr_len -= rc; -out: +out: gcry_sexp_release(s_plain); #else /* SSL_FAST */ rc = _gcry_rsa_decrypt(0, &text, &encr_mpi, pk,0); gcry_mpi_print( GCRYMPI_FMT_USG, 0, 0, &decr_len, text); - + /* sanity check on out buffer */ if (decr_len > len) { ssl_debug_printf("pcry_private_decrypt: decrypted data is too long ?!? (%d max %d)\n", decr_len, len); return 0; } - + /* write plain text to newly allocated buffer */ decr_data_ptr = encr_data; - if (gcry_mpi_print( GCRYMPI_FMT_USG, decr_data_ptr, decr_len, &decr_len, + if (gcry_mpi_print( GCRYMPI_FMT_USG, decr_data_ptr, decr_len, &decr_len, text) != 0) { - ssl_debug_printf("pcry_private_decrypt: can't print decr data to mpi (size %d):%s\n", + ssl_debug_printf("pcry_private_decrypt: can't print decr data to mpi (size %d):%s\n", decr_len, gcry_strerror(rc)); return 0; } - + /* strip the padding*/ rc = 0; for (i = 1; i < decr_len; i++) { @@ -768,10 +768,10 @@ out: break; } } - - ssl_debug_printf("pcry_private_decrypt: stripping %d bytes, decr_len %d\n", + + ssl_debug_printf("pcry_private_decrypt: stripping %d bytes, decr_len %d\n", rc, decr_len); - ssl_print_data("decypted_unstrip_pre_master", decr_data_ptr, decr_len); + ssl_print_data("decrypted_unstrip_pre_master", decr_data_ptr, decr_len); g_memmove(decr_data_ptr, &decr_data_ptr[rc], decr_len - rc); decr_len -= rc; #endif /* SSL_FAST */ @@ -780,7 +780,7 @@ out: } /* stringinfo interface */ -static gint +static gint ssl_data_realloc(StringInfo* str, guint len) { str->data = g_realloc(str->data, len); @@ -790,7 +790,7 @@ ssl_data_realloc(StringInfo* str, guint len) return 0; } -static gint +static gint ssl_data_copy(StringInfo* dst, StringInfo* src) { if (dst->data_len < src->data_len) { @@ -866,22 +866,22 @@ static SslCipherSuite cipher_suites[]={ #define MAX_BLOCK_SIZE 16 #define MAX_KEY_SIZE 32 -int +int ssl_find_cipher(int num,SslCipherSuite* cs) { SslCipherSuite *c; - + for(c=cipher_suites;c->number!=-1;c++){ if(c->number==num){ *cs=*c; return 0; } } - + return -1; } -static gint +static gint tls_hash(StringInfo* secret, StringInfo* seed, gint md, StringInfo* out) { @@ -894,37 +894,37 @@ tls_hash(StringInfo* secret, SSL_HMAC hm; ptr=out->data; left=out->data_len; - - + + ssl_print_string("tls_hash: hash secret", secret); ssl_print_string("tls_hash: hash seed", seed); A=seed->data; A_l=seed->data_len; - + while(left){ ssl_hmac_init(&hm,secret->data,secret->data_len,md); ssl_hmac_update(&hm,A,A_l); ssl_hmac_final(&hm,_A,&A_l); ssl_hmac_cleanup(&hm); A=_A; - + ssl_hmac_init(&hm,secret->data,secret->data_len,md); ssl_hmac_update(&hm,A,A_l); ssl_hmac_update(&hm,seed->data,seed->data_len); ssl_hmac_final(&hm,tmp,&tmp_l); ssl_hmac_cleanup(&hm); - + tocpy=MIN(left,tmp_l); memcpy(ptr,tmp,tocpy); ptr+=tocpy; left-=tocpy; } - + ssl_print_string("hash out", out); return (0); -} +} -static gint +static gint tls_prf(StringInfo* secret, const gchar *usage, StringInfo* rnd1, StringInfo* rnd2, StringInfo* out) { @@ -947,15 +947,15 @@ tls_prf(StringInfo* secret, const gchar *usage, ptr=seed.data; memcpy(ptr,usage,usage_len); ptr+=usage_len; memcpy(ptr,rnd1->data,rnd1->data_len); ptr+=rnd1->data_len; - memcpy(ptr,rnd2->data,rnd2->data_len); ptr+=rnd2->data_len; - + memcpy(ptr,rnd2->data,rnd2->data_len); ptr+=rnd2->data_len; + /* initalize buffer for client/server seeds*/ s_l=secret->data_len/2 + secret->data_len%2; if (ssl_data_alloc(&s1, s_l) < 0) goto free_seed; if (ssl_data_alloc(&s2, s_l) < 0) goto free_s1; - + memcpy(s1.data,secret->data,s_l); memcpy(s2.data,secret->data + (secret->data_len - s_l),s_l); @@ -965,45 +965,45 @@ tls_prf(StringInfo* secret, const gchar *usage, ssl_debug_printf("tls_prf: tls_hash(sha)\n"); if(tls_hash(&s2,&seed,ssl_get_digest_by_name("SHA1"),&sha_out) != 0) goto free_all; - + for(i=0;idata_len;i++) out->data[i]=md5_out.data[i] ^ sha_out.data[i]; r =0; - + ssl_print_string("PRF out",out); -free_all: +free_all: g_free(s2.data); -free_s1: +free_s1: g_free(s1.data); -free_seed: +free_seed: g_free(seed.data); free_md5: - g_free(md5_out.data); + g_free(md5_out.data); free_sha: g_free(sha_out.data); - return r; + return r; } -static gint +static gint ssl3_generate_export_iv(StringInfo* r1, StringInfo* r2, StringInfo* out) { SSL_MD5_CTX md5; guint8 tmp[16]; - + ssl_md5_init(&md5); ssl_md5_update(&md5,r1->data,r1->data_len); ssl_md5_update(&md5,r2->data,r2->data_len); ssl_md5_final(tmp,&md5); ssl_md5_cleanup(&md5); - + memcpy(out->data,tmp,out->data_len); ssl_print_string("export iv", out); - + return(0); } -static gint +static gint ssl3_prf(StringInfo* secret, const gchar* usage, StringInfo* r1, StringInfo* r2,StringInfo* out) @@ -1014,24 +1014,24 @@ ssl3_prf(StringInfo* secret, const gchar* usage, guint off; gint i=0,j; guint8 buf[20]; - + rnd1=r1; rnd2=r2; - + for(off=0;offdata_len;off+=16){ guchar outbuf[16]; gint tocpy; i++; - + ssl_debug_printf("ssl3_prf: sha1_hash(%d)\n",i); /* A, BB, CCC, ... */ for(j=0;jdata,secret->data_len); - + if(!strcmp(usage,"client write key") || !strcmp(usage,"server write key")){ ssl_sha_update(&sha,rnd2->data,rnd2->data_len); ssl_sha_update(&sha,rnd1->data,rnd1->data_len); @@ -1040,22 +1040,22 @@ ssl3_prf(StringInfo* secret, const gchar* usage, ssl_sha_update(&sha,rnd1->data,rnd1->data_len); ssl_sha_update(&sha,rnd2->data,rnd2->data_len); } - + ssl_sha_final(buf,&sha); ssl_sha_cleanup(&sha); - - ssl_debug_printf("ssl3_prf: md5_hash(%d) datalen %d\n",i, + + ssl_debug_printf("ssl3_prf: md5_hash(%d) datalen %d\n",i, secret->data_len); ssl_md5_init(&md5); ssl_md5_update(&md5,secret->data,secret->data_len); ssl_md5_update(&md5,buf,20); ssl_md5_final(outbuf,&md5); ssl_md5_cleanup(&md5); - + tocpy=MIN(out->data_len-off,16); memcpy(out->data+off,outbuf,tocpy); } - + return(0); } @@ -1130,11 +1130,11 @@ ssl_create_decoder(SslCipherSuite *cipher_suite, gint compression, ciph=ssl_get_cipher_by_name(ciphers[cipher_suite->enc-0x30]); } if (ciph == 0) { - ssl_debug_printf("ssl_create_decoder can't find cipher %s\n", + ssl_debug_printf("ssl_create_decoder can't find cipher %s\n", ciphers[(cipher_suite->enc-0x30) > 7 ? 7 : (cipher_suite->enc-0x30)]); return NULL; } - + /* init mac buffer: mac storage is embedded into decoder struct to save a memory allocation and waste samo more memory*/ dec->cipher_suite=cipher_suite; @@ -1144,7 +1144,7 @@ ssl_create_decoder(SslCipherSuite *cipher_suite, gint compression, dec->seq = 0; dec->decomp = ssl_create_decompressor(compression); dec->flow = ssl_create_flow(); - + if (dec->evp) ssl_cipher_cleanup(&dec->evp); @@ -1155,10 +1155,10 @@ ssl_create_decoder(SslCipherSuite *cipher_suite, gint compression, } ssl_debug_printf("decoder initialized (digest len %d)\n", cipher_suite->dig_len); - return dec; + return dec; } -int +int ssl_generate_keyring_material(SslDecryptSession*ssl_session) { StringInfo key_block; @@ -1166,8 +1166,8 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) guint8 _key_c[MAX_KEY_SIZE],_key_s[MAX_KEY_SIZE]; gint needed; guint8 *ptr,*c_wk,*s_wk,*c_mk,*s_mk,*c_iv = _iv_c,*s_iv = _iv_s; - - /* if master_key is not yet generate, create it now*/ + + /* if master_key is not yet generate, create it now*/ if (!(ssl_session->state & SSL_MASTER_SECRET)) { ssl_debug_printf("ssl_generate_keyring_material:PRF(pre_master_secret)\n"); if (PRF(ssl_session,&ssl_session->pre_master_secret,"master secret", @@ -1178,13 +1178,13 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) } ssl_print_string("master secret",&ssl_session->master_secret); } - + /* Compute the key block. First figure out how much data we need*/ needed=ssl_session->cipher_suite.dig_len*2; needed+=ssl_session->cipher_suite.bits / 4; - if(ssl_session->cipher_suite.block>1) + if(ssl_session->cipher_suite.block>1) needed+=ssl_session->cipher_suite.block*2; - + key_block.data_len = needed; key_block.data = g_malloc(needed); if (!key_block.data) { @@ -1199,39 +1199,39 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) goto fail; } ssl_print_string("key expansion", &key_block); - + ptr=key_block.data; c_mk=ptr; ptr+=ssl_session->cipher_suite.dig_len; s_mk=ptr; ptr+=ssl_session->cipher_suite.dig_len; - + c_wk=ptr; ptr+=ssl_session->cipher_suite.eff_bits/8; s_wk=ptr; ptr+=ssl_session->cipher_suite.eff_bits/8; - + if(ssl_session->cipher_suite.block>1){ c_iv=ptr; ptr+=ssl_session->cipher_suite.block; s_iv=ptr; ptr+=ssl_session->cipher_suite.block; } - + if(ssl_session->cipher_suite.export){ StringInfo iv_c,iv_s; StringInfo key_c,key_s; StringInfo k; - + if(ssl_session->cipher_suite.block>1){ - + /* We only have room for MAX_BLOCK_SIZE bytes IVs, but that's all we should need. This is a sanity check */ if(ssl_session->cipher_suite.block>MAX_BLOCK_SIZE) { - ssl_debug_printf("ssl_generate_keyring_material cipher suite block must be at most %d nut is %d\n", + ssl_debug_printf("ssl_generate_keyring_material cipher suite block must be at most %d nut is %d\n", MAX_BLOCK_SIZE, ssl_session->cipher_suite.block); goto fail; } - + iv_c.data = _iv_c; iv_c.data_len = ssl_session->cipher_suite.block; iv_s.data = _iv_s; iv_s.data_len = ssl_session->cipher_suite.block; - + if(ssl_session->version_netorder==SSLV3_VERSION){ ssl_debug_printf("ssl_generate_keyring_material ssl3_generate_export_iv\n"); if (ssl3_generate_export_iv(&ssl_session->client_random, @@ -1244,20 +1244,20 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) &ssl_session->client_random,&iv_s)) { ssl_debug_printf("ssl_generate_keyring_material can't generate sslv3 server iv\n"); goto fail; - } + } } else{ guint8 _iv_block[MAX_BLOCK_SIZE * 2]; StringInfo iv_block; StringInfo key_null; guint8 _key_null; - + key_null.data = &_key_null; key_null.data_len = 0; - + iv_block.data = _iv_block; iv_block.data_len = ssl_session->cipher_suite.block*2; - + ssl_debug_printf("ssl_generate_keyring_material prf(iv_block)\n"); if(PRF(ssl_session,&key_null, "IV block", &ssl_session->client_random, @@ -1265,31 +1265,31 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) ssl_debug_printf("ssl_generate_keyring_material can't generate tls31 iv block\n"); goto fail; } - + memcpy(_iv_c,iv_block.data,ssl_session->cipher_suite.block); memcpy(_iv_s,iv_block.data+ssl_session->cipher_suite.block, ssl_session->cipher_suite.block); } - + c_iv=_iv_c; s_iv=_iv_s; } - + if (ssl_session->version_netorder==SSLV3_VERSION){ - + SSL_MD5_CTX md5; ssl_debug_printf("ssl_generate_keyring_material MD5(client_random)\n"); - + ssl_md5_init(&md5); ssl_md5_update(&md5,c_wk,ssl_session->cipher_suite.eff_bits/8); ssl_md5_update(&md5,ssl_session->client_random.data, ssl_session->client_random.data_len); ssl_md5_update(&md5,ssl_session->server_random.data, - ssl_session->server_random.data_len); + ssl_session->server_random.data_len); ssl_md5_final(_key_c,&md5); ssl_md5_cleanup(&md5); c_wk=_key_c; - + ssl_md5_init(&md5); ssl_debug_printf("ssl_generate_keyring_material MD5(server_random)\n"); ssl_md5_update(&md5,s_wk,ssl_session->cipher_suite.eff_bits/8); @@ -1306,18 +1306,18 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) key_c.data_len = sizeof(_key_c); key_s.data = _key_s; key_s.data_len = sizeof(_key_s); - + k.data = c_wk; k.data_len = ssl_session->cipher_suite.eff_bits/8; ssl_debug_printf("ssl_generate_keyring_material PRF(key_c)\n"); if (PRF(ssl_session,&k,"client write key", &ssl_session->client_random, &ssl_session->server_random, &key_c)) { - ssl_debug_printf("ssl_generate_keyring_material can't generate tll31 server key \n"); + ssl_debug_printf("ssl_generate_keyring_material can't generate tll31 server key \n"); goto fail; } c_wk=_key_c; - + k.data = s_wk; k.data_len = ssl_session->cipher_suite.eff_bits/8; ssl_debug_printf("ssl_generate_keyring_material PRF(key_s)\n"); @@ -1330,13 +1330,13 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) s_wk=_key_s; } } - + /* show key material info */ ssl_print_data("Client MAC key",c_mk,ssl_session->cipher_suite.dig_len); - ssl_print_data("Server MAC key",s_mk,ssl_session->cipher_suite.dig_len); + ssl_print_data("Server MAC key",s_mk,ssl_session->cipher_suite.dig_len); ssl_print_data("Client Write key",c_wk,ssl_session->cipher_suite.bits/8); - ssl_print_data("Server Write key",s_wk,ssl_session->cipher_suite.bits/8); - + ssl_print_data("Server Write key",s_wk,ssl_session->cipher_suite.bits/8); + if(ssl_session->cipher_suite.block>1) { ssl_print_data("Client Write IV",c_iv,ssl_session->cipher_suite.block); ssl_print_data("Server Write IV",s_iv,ssl_session->cipher_suite.block); @@ -1345,35 +1345,35 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session) ssl_print_data("Client Write IV",c_iv,8); ssl_print_data("Server Write IV",s_iv,8); } - + /* create both client and server ciphers*/ ssl_debug_printf("ssl_generate_keyring_material ssl_create_decoder(client)\n"); ssl_session->client_new = ssl_create_decoder(&ssl_session->cipher_suite, ssl_session->compression, c_mk, c_wk, c_iv); if (!ssl_session->client_new) { - ssl_debug_printf("ssl_generate_keyring_material can't init client decoder\n"); + ssl_debug_printf("ssl_generate_keyring_material can't init client decoder\n"); goto fail; } ssl_debug_printf("ssl_generate_keyring_material ssl_create_decoder(server)\n"); ssl_session->server_new = ssl_create_decoder(&ssl_session->cipher_suite, ssl_session->compression, s_mk, s_wk, s_iv); if (!ssl_session->server_new) { - ssl_debug_printf("ssl_generate_keyring_material can't init client decoder\n"); + ssl_debug_printf("ssl_generate_keyring_material can't init client decoder\n"); goto fail; } - + ssl_debug_printf("ssl_generate_keyring_material: client seq %d, server seq %d\n", ssl_session->client_new->seq, ssl_session->server_new->seq); g_free(key_block.data); return 0; - + fail: g_free(key_block.data); return -1; } -void +void ssl_change_cipher(SslDecryptSession *ssl_session, gboolean server) { - ssl_debug_printf("ssl_change_cipher %s\n", (server)?"SERVER":"CLIENT"); + ssl_debug_printf("ssl_change_cipher %s\n", (server)?"SERVER":"CLIENT"); if (server) { ssl_session->server = ssl_session->server_new; ssl_session->server_new = NULL; @@ -1383,12 +1383,12 @@ ssl_change_cipher(SslDecryptSession *ssl_session, gboolean server) } } -int -ssl_decrypt_pre_master_secret(SslDecryptSession*ssl_session, +int +ssl_decrypt_pre_master_secret(SslDecryptSession*ssl_session, StringInfo* entrypted_pre_master, SSL_PRIVATE_KEY *pk) { gint i; - + if(ssl_session->cipher_suite.kex!=KEX_RSA) { ssl_debug_printf("ssl_decrypt_pre_master_secret key %d diferent from KEX_RSA(%d)\n", ssl_session->cipher_suite.kex, KEX_RSA); @@ -1403,13 +1403,13 @@ ssl_decrypt_pre_master_secret(SslDecryptSession*ssl_session, if (i!=48) { ssl_debug_printf("ssl_decrypt_pre_master_secret wrong " - "pre_master_secret lenght (%d, expected %d)\n", i, 48); + "pre_master_secret length (%d, expected %d)\n", i, 48); return -1; } /* the decrypted data has been written into the pre_master key buffer */ ssl_session->pre_master_secret.data = entrypted_pre_master->data; - ssl_session->pre_master_secret.data_len=48; + ssl_session->pre_master_secret.data_len=48; ssl_print_string("pre master secret",&ssl_session->pre_master_secret); /* Remove the master secret if it was there. @@ -1418,7 +1418,7 @@ ssl_decrypt_pre_master_secret(SslDecryptSession*ssl_session, ssl_session->state &= ~(SSL_MASTER_SECRET|SSL_HAVE_SESSION_KEY); return 0; } - + /* convert network byte order 32 byte number to right-aligned host byte order * * 8 bytes buffer */ static gint fmt_seq(guint32 num, guint8* buf) @@ -1432,7 +1432,7 @@ static gint fmt_seq(guint32 num, guint8* buf) return(0); } -static gint +static gint tls_check_mac(SslDecoder*decoder, gint ct, gint ver, guint8* data, guint32 datalen, guint8* mac) { @@ -1444,24 +1444,24 @@ tls_check_mac(SslDecoder*decoder, gint ct, gint ver, guint8* data, md=ssl_get_digest_by_name(digests[decoder->cipher_suite->dig-0x40]); ssl_debug_printf("tls_check_mac mac type:%s md %d\n", digests[decoder->cipher_suite->dig-0x40], md); - + ssl_hmac_init(&hm,decoder->mac_key.data,decoder->mac_key.data_len,md); - + /* hash sequence number */ fmt_seq(decoder->seq,buf); - + decoder->seq++; - + ssl_hmac_update(&hm,buf,8); - + /* hash content type */ buf[0]=ct; ssl_hmac_update(&hm,buf,1); - /* hash version,data lenght and data*/ + /* hash version,data length and data*/ *((gint16*)buf) = g_htons(ver); - ssl_hmac_update(&hm,buf,2); - + ssl_hmac_update(&hm,buf,2); + *((gint16*)buf) = g_htons(datalen); ssl_hmac_update(&hm,buf,2); ssl_hmac_update(&hm,data,datalen); @@ -1476,7 +1476,7 @@ tls_check_mac(SslDecoder*decoder, gint ct, gint ver, guint8* data, return(0); } -int +int ssl3_check_mac(SslDecoder*decoder,int ct,guint8* data, guint32 datalen, guint8* mac) { @@ -1485,7 +1485,7 @@ ssl3_check_mac(SslDecoder*decoder,int ct,guint8* data, guint32 len; guint8 buf[64],dgst[20]; gint pad_ct; - + pad_ct=(decoder->cipher_suite->dig==DIG_SHA)?40:48; /* get cipher used for digest comptuation */ @@ -1508,7 +1508,7 @@ ssl3_check_mac(SslDecoder*decoder,int ct,guint8* data, buf[0]=ct; ssl_md_update(&mc,buf,1); - /* hash data lenght in network byte order and data*/ + /* hash data length in network byte order and data*/ *((gint16* )buf) = g_htons(datalen); ssl_md_update(&mc,buf,2); ssl_md_update(&mc,data,datalen); @@ -1535,9 +1535,9 @@ ssl3_check_mac(SslDecoder*decoder,int ct,guint8* data, return(0); } - + #if 0 -static gint +static gint dtls_check_mac(SslDecoder*decoder, gint ct,int ver, guint8* data, guint32 datalen, guint8* mac) { @@ -1549,7 +1549,7 @@ dtls_check_mac(SslDecoder*decoder, gint ct,int ver, guint8* data, md=ssl_get_digest_by_name(digests[decoder->cipher_suite->dig-0x40]); ssl_debug_printf("dtls_check_mac mac type:%s md %d\n", digests[decoder->cipher_suite->dig-0x40], md); - + ssl_hmac_init(&hm,decoder->mac_key.data,decoder->mac_key.data_len,md); ssl_debug_printf("dtls_check_mac seq: %d epoch: %d\n",decoder->seq,decoder->epoch); /* hash sequence number */ @@ -1558,15 +1558,15 @@ dtls_check_mac(SslDecoder*decoder, gint ct,int ver, guint8* data, buf[1]=decoder->epoch; ssl_hmac_update(&hm,buf,8); - + /* hash content type */ buf[0]=ct; ssl_hmac_update(&hm,buf,1); - /* hash version,data lenght and data */ + /* hash version,data length and data */ *((gint16*)buf) = g_htons(ver); - ssl_hmac_update(&hm,buf,2); - + ssl_hmac_update(&hm,buf,2); + *((gint16*)buf) = g_htons(datalen); ssl_hmac_update(&hm,buf,2); ssl_hmac_update(&hm,data,datalen); @@ -1581,8 +1581,8 @@ dtls_check_mac(SslDecoder*decoder, gint ct,int ver, guint8* data, } #endif - -int + +int ssl_decompress_record(SslDecompress* decomp, const guchar* in, guint inl, StringInfo* out_str, guint* outl) { gint err; @@ -1614,7 +1614,7 @@ ssl_decompress_record(SslDecompress* decomp, const guchar* in, guint inl, String return 0; } -int +int ssl_decrypt_record(SslDecryptSession*ssl,SslDecoder* decoder, gint ct, const guchar* in, guint inl, StringInfo* comp_str, StringInfo* out_str, guint* outl) { @@ -1631,7 +1631,7 @@ ssl_decrypt_record(SslDecryptSession*ssl,SslDecoder* decoder, gint ct, inl + 32, out_str->data_len); ssl_data_realloc(out_str, inl + 32); } - + /* First decrypt*/ if ((pad = ssl_cipher_decrypt(&decoder->evp, out_str->data, out_str->data_len, in, inl))!= 0) { ssl_debug_printf("ssl_decrypt_record failed: ssl_cipher_decrypt: %s %s\n", gcry_strsource (pad), @@ -1646,7 +1646,7 @@ ssl_decrypt_record(SslDecryptSession*ssl,SslDecoder* decoder, gint ct, if(decoder->cipher_suite->block!=1) { pad=out_str->data[inl-1]; worklen-=(pad+1); - ssl_debug_printf("ssl_decrypt_record found padding %d final len %d\n", + ssl_debug_printf("ssl_decrypt_record found padding %d final len %d\n", pad, worklen); } @@ -1661,15 +1661,15 @@ ssl_decrypt_record(SslDecryptSession*ssl,SslDecoder* decoder, gint ct, /* if TLS 1.1 we use the transmitted IV and remove it after (to not modify dissector in others parts)*/ if(ssl->version_netorder==TLSV1DOT1_VERSION){ - worklen=worklen-decoder->cipher_suite->block; + worklen=worklen-decoder->cipher_suite->block; memcpy(out_str->data,out_str->data+decoder->cipher_suite->block,worklen); } if(ssl->version_netorder==DTLSV1DOT0_VERSION){ - worklen=worklen-decoder->cipher_suite->block; + worklen=worklen-decoder->cipher_suite->block; memcpy(out_str->data,out_str->data+decoder->cipher_suite->block,worklen); } /* Now check the MAC */ - ssl_debug_printf("checking mac (len %d, version %X, ct %d seq %d)\n", + ssl_debug_printf("checking mac (len %d, version %X, ct %d seq %d)\n", worklen, ssl->version_netorder, ct, decoder->seq); if(ssl->version_netorder==SSLV3_VERSION){ if(ssl3_check_mac(decoder,ct,out_str->data,worklen,mac) < 0) { @@ -1709,7 +1709,7 @@ ssl_decrypt_record(SslDecryptSession*ssl,SslDecoder* decoder, gint ct, return 0; } -static void +static void ssl_get_version(gint* major, gint* minor, gint* patch) { *major = ver_major; @@ -1718,11 +1718,11 @@ ssl_get_version(gint* major, gint* minor, gint* patch) } -SSL_PRIVATE_KEY* +SSL_PRIVATE_KEY* ssl_load_key(FILE* fp) -{ +{ /* gnutls make our work much harded, since we have to work internally with - * s-exp formatted data, but PEM loader export only in "gnutls_datum" + * s-exp formatted data, but PEM loader export only in "gnutls_datum" * format, and a datum -> s-exp convertion function does not exist. */ struct gnutls_x509_privkey_int* priv_key; @@ -1737,10 +1737,10 @@ ssl_load_key(FILE* fp) gcry_mpi_t rsa_params[6]; #endif gcry_sexp_t rsa_priv_key; - + /* init private key data*/ gnutls_x509_privkey_init(&priv_key); - + /* compute file size and load all file contents into a datum buffer*/ if (fseek(fp, 0, SEEK_END) < 0) { ssl_debug_printf("ssl_load_key: can't fseek file\n"); @@ -1758,30 +1758,30 @@ ssl_load_key(FILE* fp) key.size = size; bytes = fread(key.data, 1, key.size, fp); if (bytes < key.size) { - ssl_debug_printf("ssl_load_key: can't read from file %d bytes, got %d\n", + ssl_debug_printf("ssl_load_key: can't read from file %d bytes, got %d\n", key.size, bytes); return NULL; } - + /* import PEM data*/ if (gnutls_x509_privkey_import(priv_key, &key, GNUTLS_X509_FMT_PEM)!=0) { ssl_debug_printf("ssl_load_key: can't import pem data\n"); return NULL; } g_free(key.data); - + /* RSA get parameter */ if (gnutls_x509_privkey_export_rsa_raw(priv_key, &m, &e, &d, &p, &q, &u) != 0) { ssl_debug_printf("ssl_load_key: can't export rsa param (is a rsa private key file ?!?)\n"); return NULL; } - + /* convert each rsa parameter to mpi format*/ if (gcry_mpi_scan( &rsa_params[0], GCRYMPI_FMT_USG, m.data, m.size, &tmp_size) !=0) { ssl_debug_printf("ssl_load_key: can't convert m rsa param to int (size %d)\n", m.size); return NULL; } - + if (gcry_mpi_scan( &rsa_params[1], GCRYMPI_FMT_USG, e.data, e.size, &tmp_size) != 0) { ssl_debug_printf("ssl_load_key: can't convert e rsa param to int (size %d)\n", e.size); return NULL; @@ -1795,7 +1795,7 @@ ssl_load_key(FILE* fp) ssl_debug_printf("ssl_load_key: can't convert d rsa param to int (size %d)\n", d.size); return NULL; } - + if (gcry_mpi_scan( &rsa_params[3], GCRYMPI_FMT_USG, q.data, q.size, &tmp_size) !=0) { ssl_debug_printf("ssl_load_key: can't convert q rsa param to int (size %d)\n", q.size); return NULL; @@ -1805,14 +1805,14 @@ ssl_load_key(FILE* fp) ssl_debug_printf("ssl_load_key: can't convert p rsa param to int (size %d)\n", p.size); return NULL; } - + if (gcry_mpi_scan( &rsa_params[5], GCRYMPI_FMT_USG, u.data, u.size, &tmp_size) !=0) { ssl_debug_printf("ssl_load_key: can't convert u rsa param to int (size %d)\n", m.size); - return NULL; + return NULL; } - + ssl_get_version(&major, &minor, &patch); - + /* certain versions of gnutls require swap of rsa params 'p' and 'q' */ if ((major <= 1) && (minor <= 0) && (patch <=13)) { @@ -1822,16 +1822,16 @@ ssl_load_key(FILE* fp) rsa_params[4] = rsa_params[3]; rsa_params[3] = tmp; } - + if (gcry_sexp_build( &rsa_priv_key, NULL, - "(private-key(rsa((n%m)(e%m)(d%m)(p%m)(q%m)(u%m))))", rsa_params[0], - rsa_params[1], rsa_params[2], rsa_params[3], rsa_params[4], + "(private-key(rsa((n%m)(e%m)(d%m)(p%m)(q%m)(u%m))))", rsa_params[0], + rsa_params[1], rsa_params[2], rsa_params[3], rsa_params[4], rsa_params[5]) != 0) { ssl_debug_printf("ssl_load_key: can't built rsa private key s-exp\n"); return NULL; } -#if SSL_FAST +#if SSL_FAST return rsa_params; #else { @@ -1848,19 +1848,19 @@ void ssl_free_key(SSL_PRIVATE_KEY* key) #if SSL_FAST gint i; for (i=0; i< 6; i++) - gcry_mpi_release(key[i]); + gcry_mpi_release(key[i]); #else gcry_sexp_release(key); #endif } -void +void ssl_lib_init(void) { const gchar* str = gnutls_check_version(NULL); /* get library version */ - /* old relase of gnutls does not define the appropriate macros, so get + /* old relase of gnutls does not define the appropriate macros, so get * them from the string*/ ssl_debug_printf("gnutls version: %s\n", str); sscanf(str, "%d.%d.%d", &ver_major, &ver_minor, &ver_patch); @@ -1868,45 +1868,45 @@ ssl_lib_init(void) #else /* HAVE_LIBGNUTLS */ /* no libgnutl: dummy operation to keep interface consistent*/ -void +void ssl_lib_init(void) { } -SSL_PRIVATE_KEY* -ssl_load_key(FILE* fp) +SSL_PRIVATE_KEY* +ssl_load_key(FILE* fp) { ssl_debug_printf("ssl_load_key: impossible without glutls. fp %p\n",fp); return NULL; } -void +void ssl_free_key(SSL_PRIVATE_KEY* key _U_) { } -int -ssl_find_cipher(int num,SslCipherSuite* cs) +int +ssl_find_cipher(int num,SslCipherSuite* cs) { ssl_debug_printf("ssl_find_cipher: dummy without glutls. num %d cs %p\n", num,cs); - return 0; + return 0; } -int -ssl_generate_keyring_material(SslDecryptSession*ssl) +int +ssl_generate_keyring_material(SslDecryptSession*ssl) { ssl_debug_printf("ssl_generate_keyring_material: impossible without glutls. ssl %p\n", ssl); - return 0; + return 0; } -void +void ssl_change_cipher(SslDecryptSession *ssl_session, gboolean server) { - ssl_debug_printf("ssl_change_cipher %s: makes no sence without gnutls. ssl %p\n", (server)?"SERVER":"CLIENT", ssl_session); + ssl_debug_printf("ssl_change_cipher %s: makes no sence without gnutls. ssl %p\n", (server)?"SERVER":"CLIENT", ssl_session); } -int -ssl_decrypt_pre_master_secret(SslDecryptSession* ssl_session, +int +ssl_decrypt_pre_master_secret(SslDecryptSession* ssl_session, StringInfo* entrypted_pre_master, SSL_PRIVATE_KEY *pk) { ssl_debug_printf("ssl_decrypt_pre_master_secret: impossible without glutls." @@ -1915,8 +1915,8 @@ ssl_decrypt_pre_master_secret(SslDecryptSession* ssl_session, return 0; } -int -ssl_decrypt_record(SslDecryptSession*ssl, SslDecoder* decoder, gint ct, +int +ssl_decrypt_record(SslDecryptSession*ssl, SslDecoder* decoder, gint ct, const guchar* in, guint inl, StringInfo* comp_str _U_, StringInfo* out, guint* outl) { ssl_debug_printf("ssl_decrypt_record: impossible without gnutls. ssl %p" @@ -1929,16 +1929,16 @@ gint ssl_cipher_setiv(SSL_CIPHER_CTX *cipher _U_, guchar* iv _U_, gint iv_len _U_) { ssl_debug_printf("ssl_cipher_setiv: impossible without glutls.\n"); - return 0; + return 0; } #endif /* HAVE_LIBGNUTLS */ /* get ssl data for this session. if no ssl data is found allocate a new one*/ -void +void ssl_session_init(SslDecryptSession* ssl_session) { - ssl_debug_printf("ssl_session_init: initializing ptr %p size %lu\n", + ssl_debug_printf("ssl_session_init: initializing ptr %p size %lu\n", ssl_session, (gulong)sizeof(SslDecryptSession)); ssl_session->master_secret.data = ssl_session->_master_secret; @@ -1955,7 +1955,7 @@ ssl_session_init(SslDecryptSession* ssl_session) } /* Hash Functions for TLS/DTLS sessions table and private keys table*/ -gint +gint ssl_equal (gconstpointer v, gconstpointer v2) { const StringInfo *val1; @@ -1970,9 +1970,9 @@ ssl_equal (gconstpointer v, gconstpointer v2) return 0; } -guint +guint ssl_hash (gconstpointer v) -{ +{ guint l,hash; const StringInfo* id; const guint* cur; @@ -1982,11 +1982,11 @@ ssl_hash (gconstpointer v) for (l=4; (ldata_len); l+=4, cur++) hash = hash ^ (*cur); - + return hash; } -gint +gint ssl_private_key_equal (gconstpointer v, gconstpointer v2) { const SslService *val1; @@ -2001,9 +2001,9 @@ ssl_private_key_equal (gconstpointer v, gconstpointer v2) return 0; } -guint +guint ssl_private_key_hash (gconstpointer v) -{ +{ const SslService *key; guint l, hash, len ; const guint* cur; @@ -2014,13 +2014,13 @@ ssl_private_key_hash (gconstpointer v) for (l=4; (lssl_port = port; assoc->info=g_malloc(strlen(protocol)+1); strcpy(assoc->info, protocol); - assoc->handle = find_dissector(protocol); + assoc->handle = find_dissector(protocol); assoc->from_key_list = from_key_list; ssl_debug_printf("association_add %s port %d protocol %s handle %p\n", (assoc->tcp)?"TCP":"UDP", port, protocol, assoc->handle); - + if (!assoc->handle) { ssl_debug_printf("association_add could not find handle for protocol '%s', try to find 'data' dissector\n", protocol); - assoc->handle = find_dissector("data"); + assoc->handle = find_dissector("data"); } if(!assoc->handle){ fprintf(stderr, "association_add() could not find handle for protocol:%s\n",protocol); } else { if(tcp) - dissector_add("tcp.port", port, handle); + dissector_add("tcp.port", port, handle); else - dissector_add("udp.port", port, handle); + dissector_add("udp.port", port, handle); g_tree_insert(associations, assoc, assoc); } } -void +void ssl_association_remove(GTree* associations, SslAssociation *assoc) { ssl_debug_printf("ssl_association_remove removing %s %u - %s handle %p\n", @@ -2074,7 +2074,7 @@ ssl_association_remove(GTree* associations, SslAssociation *assoc) g_free(assoc); } -gint +gint ssl_association_cmp(gconstpointer a, gconstpointer b) { const SslAssociation *assoc_a=a, *assoc_b=b; @@ -2082,7 +2082,7 @@ ssl_association_cmp(gconstpointer a, gconstpointer b) return assoc_a->ssl_port - assoc_b->ssl_port; } -SslAssociation* +SslAssociation* ssl_association_find(GTree * associations, guint port, gboolean tcp) { register SslAssociation* ret; @@ -2096,7 +2096,7 @@ ssl_association_find(GTree * associations, guint port, gboolean tcp) return ret; } -gint +gint ssl_assoc_from_key_list(gpointer key _U_, gpointer data, gpointer user_data) { if (((SslAssociation*)data)->from_key_list) @@ -2104,15 +2104,15 @@ ssl_assoc_from_key_list(gpointer key _U_, gpointer data, gpointer user_data) return FALSE; } -int +int ssl_packet_from_server(GTree* associations, guint port, gboolean tcp) { register gint ret; ret = ssl_association_find(associations, port, tcp) != 0; - ssl_debug_printf("packet_from_server: is from server - %s\n", (ret)?"TRUE":"FALSE"); + ssl_debug_printf("packet_from_server: is from server - %s\n", (ret)?"TRUE":"FALSE"); return ret; -} +} /* add to packet data a newly allocated tvb with the specified real data*/ void @@ -2130,11 +2130,11 @@ ssl_add_record_info(gint proto, packet_info *pinfo, guchar* data, gint data_len, pi = se_alloc0(sizeof(SslPacketInfo)); p_add_proto_data(pinfo->fd, proto,pi); } - + rec->id = record_id; rec->tvb = tvb_new_real_data(real_data, data_len, data_len); memcpy(real_data, data, data_len); - + /* head insertion */ rec->next= pi->handshake_data; pi->handshake_data = rec; @@ -2142,7 +2142,7 @@ ssl_add_record_info(gint proto, packet_info *pinfo, guchar* data, gint data_len, /* search in packet data the tvbuff associated to the specified id */ -tvbuff_t* +tvbuff_t* ssl_get_record_info(int proto, packet_info *pinfo, gint record_id) { SslRecordInfo* rec; @@ -2151,7 +2151,7 @@ ssl_get_record_info(int proto, packet_info *pinfo, gint record_id) if (!pi) return NULL; - + for (rec = pi->handshake_data; rec; rec = rec->next) if (rec->id == record_id) return rec->tvb; @@ -2171,7 +2171,7 @@ ssl_add_data_info(gint proto, packet_info *pinfo, guchar* data, gint data_len, g pi = se_alloc0(sizeof(SslPacketInfo)); p_add_proto_data(pinfo->fd, proto,pi); } - + rec = se_alloc(sizeof(SslDataInfo)+data_len); rec->key = key; rec->plain_data.data = (guchar*)(rec + 1); @@ -2189,11 +2189,11 @@ ssl_add_data_info(gint proto, packet_info *pinfo, guchar* data, gint data_len, g while (*prec) prec = &(*prec)->next; *prec = rec; - ssl_debug_printf("ssl_add_data_info: new data inserted data_len = %d, seq = %u, nxtseq = %u\n", + ssl_debug_printf("ssl_add_data_info: new data inserted data_len = %d, seq = %u, nxtseq = %u\n", rec->plain_data.data_len, rec->seq, rec->nxtseq); } -SslDataInfo* +SslDataInfo* ssl_get_data_info(int proto, packet_info *pinfo, gint key) { SslDataInfo* rec; @@ -2212,7 +2212,7 @@ ssl_get_data_info(int proto, packet_info *pinfo, gint key) } /* initialize/reset per capture state data (ssl sessions cache) */ -void +void ssl_common_init(GHashTable **session_hash, StringInfo *decrypted_data, StringInfo *compressed_data) { if (*session_hash) @@ -2229,7 +2229,7 @@ ssl_common_init(GHashTable **session_hash, StringInfo *decrypted_data, StringInf } /* parse ssl related preferences (private keys and ports association strings) */ -void +void ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associations, dissector_handle_t handle, gboolean tcp) { gchar* end; @@ -2241,11 +2241,11 @@ ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associa FILE* fp; start = strdup(keys_list); - tmp = start; + tmp = start; ssl_debug_printf("ssl_init keys string:\n%s\n", start); do { - gchar* addr, *port, *protocol, *filename; - + gchar* addr, *port, *protocol, *filename; + addr = start; /* split ip/file couple with ';' separator*/ end = strpbrk(start, ";\n\r"); @@ -2253,7 +2253,7 @@ ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associa *end = 0; start = end+1; } - + /* skip comments (in file) */ if (addr[0] == '#') continue; @@ -2267,7 +2267,7 @@ ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associa } *port = 0; port++; - + protocol = strchr(port,','); if (!protocol) { @@ -2276,7 +2276,7 @@ ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associa } *protocol=0; protocol++; - + filename = strchr(protocol,','); if (!filename) { @@ -2285,7 +2285,7 @@ ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associa } *filename=0; filename++; - + /* convert ip and port string to network rappresentation*/ service = g_malloc(sizeof(SslService) + 4); service->addr.type = AT_IPv4; @@ -2293,16 +2293,16 @@ ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associa service->addr.data = ip = ((guchar*)service) + sizeof(SslService); sscanf(addr, "%hhu.%hhu.%hhu.%hhu", &ip[0], &ip[1], &ip[2], &ip[3]); service->port = atoi(port); - ssl_debug_printf("ssl_init addr %hhu.%hhu.%hhu.%hhu port %d filename %s\n", + ssl_debug_printf("ssl_init addr %hhu.%hhu.%hhu.%hhu port %d filename %s\n", ip[0], ip[1], ip[2], ip[3], service->port, filename); - + /* try to load pen file*/ fp = fopen(filename, "rb"); if (!fp) { fprintf(stderr, "can't open file %s \n",filename); continue; - } - + } + private_key = ssl_load_key(fp); if (!private_key) { fprintf(stderr,"can't load private key from %s\n", @@ -2310,19 +2310,19 @@ ssl_parse_key_list(const gchar * keys_list, GHashTable *key_hash, GTree* associa continue; } fclose(fp); - - ssl_debug_printf("ssl_init private key file %s successfully loaded\n", + + ssl_debug_printf("ssl_init private key file %s successfully loaded\n", filename); g_hash_table_insert(key_hash, service, private_key); - + ssl_association_add(associations, handle, atoi(port), protocol, tcp, TRUE); - + } while (end != NULL); - free(tmp); + free(tmp); } /* store master secret into session data cache */ -void +void ssl_save_session(SslDecryptSession* ssl, GHashTable *session_hash) { /* allocate stringinfo chunks for session id and master secret data*/ @@ -2333,7 +2333,7 @@ ssl_save_session(SslDecryptSession* ssl, GHashTable *session_hash) master_secret->data = ((guchar*)master_secret+sizeof(StringInfo)); session_id->data = ((guchar*)session_id+sizeof(StringInfo)); - + ssl_data_set(session_id, ssl->session_id.data, ssl->session_id.data_len); ssl_data_set(master_secret, ssl->master_secret.data, ssl->master_secret.data_len); g_hash_table_insert(session_hash, session_id, master_secret); @@ -2341,7 +2341,7 @@ ssl_save_session(SslDecryptSession* ssl, GHashTable *session_hash) ssl_print_string("ssl_save_session stored master secret", master_secret); } -void +void ssl_restore_session(SslDecryptSession* ssl, GHashTable *session_hash) { StringInfo* ms; @@ -2352,7 +2352,7 @@ ssl_restore_session(SslDecryptSession* ssl, GHashTable *session_hash) return; } ssl_data_set(&ssl->master_secret, ms->data, ms->data_len); - ssl->state |= SSL_MASTER_SECRET; + ssl->state |= SSL_MASTER_SECRET; ssl_debug_printf("ssl_restore_session master key retrived\n"); } @@ -2371,7 +2371,7 @@ ssl_is_valid_content_type(guint8 type) static FILE* ssl_debug_file=NULL; -void +void ssl_set_debug(char* name) { static gint debug_file_must_be_closed; @@ -2381,38 +2381,38 @@ ssl_set_debug(char* name) if (debug_file_must_be_closed) fclose(ssl_debug_file); - if (use_stderr) - ssl_debug_file = stderr; + if (use_stderr) + ssl_debug_file = stderr; else if (!name || (strcmp(name, "") ==0)) ssl_debug_file = NULL; else - ssl_debug_file = fopen(name, "w"); + ssl_debug_file = fopen(name, "w"); if (!use_stderr && ssl_debug_file) debug_file_must_be_closed = 1; } -void +void ssl_debug_printf(const gchar* fmt, ...) { va_list ap; gint ret; ret=0; - if (!ssl_debug_file) + if (!ssl_debug_file) return; - + va_start(ap, fmt); ret += vfprintf(ssl_debug_file, fmt, ap); va_end(ap); fflush(ssl_debug_file); } -void +void ssl_print_text_data(const gchar* name, const guchar* data, gint len) { gint i; - if (!ssl_debug_file) + if (!ssl_debug_file) return; fprintf(ssl_debug_file,"%s: ",name); for (i=0; i< len; i++) { @@ -2422,11 +2422,11 @@ ssl_print_text_data(const gchar* name, const guchar* data, gint len) fflush(ssl_debug_file); } -void +void ssl_print_data(const gchar* name, const guchar* data, gint len) { gint i; - if (!ssl_debug_file) + if (!ssl_debug_file) return; fprintf(ssl_debug_file,"%s[%d]:\n",name, len); for (i=0; i< len; i++) { @@ -2438,7 +2438,7 @@ ssl_print_data(const gchar* name, const guchar* data, gint len) fflush(ssl_debug_file); } -void +void ssl_print_string(const gchar* name, const StringInfo* data) { ssl_print_data(name, data->data, data->data_len); diff --git a/epan/dissectors/packet-t30.c b/epan/dissectors/packet-t30.c index 4b42223c81..47086b2594 100644 --- a/epan/dissectors/packet-t30.c +++ b/epan/dissectors/packet-t30.c @@ -44,11 +44,11 @@ static int proto_t30 = -1; static int hf_t30_Address = -1; static int hf_t30_Control = -1; static int hf_t30_Facsimile_Control = -1; -static int hf_t30_fif_sm = -1; -static int hf_t30_fif_rtif = -1; -static int hf_t30_fif_3gmn = -1; -static int hf_t30_fif_v8c = -1; -static int hf_t30_fif_op = -1; +static int hf_t30_fif_sm = -1; +static int hf_t30_fif_rtif = -1; +static int hf_t30_fif_3gmn = -1; +static int hf_t30_fif_v8c = -1; +static int hf_t30_fif_op = -1; static int hf_t30_fif_rtfc = -1; static int hf_t30_fif_rfo = -1; static int hf_t30_fif_dsr = -1; @@ -477,20 +477,20 @@ guint8 reverse_byte(guint8 val) } #define LENGTH_T30_NUM 20 -gchar * +gchar * t30_get_string_numbers(tvbuff_t *tvb, int offset, int len) { gchar *buf; int i; - /* the lenght must be 20 bytes per T30 rec*/ + /* the length must be 20 bytes per T30 rec*/ if (len != LENGTH_T30_NUM) return NULL; buf=ep_alloc(LENGTH_T30_NUM+1); - for (i=0; icinfo, COL_INFO)) - col_append_fstr(pinfo->cinfo, COL_INFO, " - Number:%s", str_num ); + col_append_fstr(pinfo->cinfo, COL_INFO, " - Number:%s", str_num ); - if (pinfo->private_data) + if (pinfo->private_data) g_snprintf(((t38_packet_info*)pinfo->private_data)->desc, MAX_T38_DESC, "Num: %s", str_num); } else { proto_tree_add_text(tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), "[MALFORMED OR SHORT PACKET: number of digits must be 20]"); if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET: number of digits must be 20]" ); + col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET: number of digits must be 20]" ); } } @@ -531,10 +531,10 @@ dissect_t30_facsimile_coded_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree_add_text(tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), "[MALFORMED OR SHORT PACKET: FCD length must be at least 2 bytes]"); expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR, "T30 FCD length must be at least 2 bytes"); if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); + col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); return; } - + octet = tvb_get_guint8(tvb, offset); proto_tree_add_uint(tree, hf_t30_t4_frame_num, tvb, offset, 1, reverse_byte(octet)); offset++; @@ -542,7 +542,7 @@ dissect_t30_facsimile_coded_data(tvbuff_t *tvb, int offset, packet_info *pinfo, if (check_col(pinfo->cinfo, COL_INFO)) col_append_fstr(pinfo->cinfo, COL_INFO, " - Frame num:%d", reverse_byte(octet)); - if (pinfo->private_data) + if (pinfo->private_data) g_snprintf(((t38_packet_info*)pinfo->private_data)->desc, MAX_T38_DESC, "Frm num: %d", reverse_byte(octet)); t4_data = ep_alloc(len-1); @@ -560,10 +560,10 @@ dissect_t30_non_standard_cap(tvbuff_t *tvb, int offset, packet_info *pinfo, int proto_tree_add_text(tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), "[MALFORMED OR SHORT PACKET: NSC length must be at least 2 bytes]"); expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR, "T30 NSC length must be at least 2 bytes"); if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); + col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); return; } - + octet = tvb_get_guint8(tvb, offset); proto_tree_add_uint(tree, hf_t30_fif_country_code, tvb, offset, 1, octet); offset++; @@ -583,7 +583,7 @@ dissect_t30_partial_page_signal(tvbuff_t *tvb, int offset, packet_info *pinfo, i proto_tree_add_text(tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), "[MALFORMED OR SHORT PACKET: PPS length must be 4 bytes]"); expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR, "T30 PPS length must be 4 bytes"); if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); + col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); return; } @@ -609,7 +609,7 @@ dissect_t30_partial_page_signal(tvbuff_t *tvb, int offset, packet_info *pinfo, i if (check_col(pinfo->cinfo, COL_INFO)) col_append_fstr(pinfo->cinfo, COL_INFO, " - PC:%d BC:%d FC:%d", page_count, block_count, frame_count); - if (pinfo->private_data) + if (pinfo->private_data) g_snprintf(((t38_packet_info*)pinfo->private_data)->desc, MAX_T38_DESC, "PC:%d BC:%d FC:%d", page_count, block_count, frame_count); } @@ -623,13 +623,13 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_text(tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), "[MALFORMED OR SHORT PACKET: DIS length must be at least 4 bytes]"); expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR, "T30 DIS length must be at least 4 bytes"); if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); + col_append_str(pinfo->cinfo, COL_INFO, " [MALFORMED OR SHORT PACKET]"); return; } /* bits 1 to 8 */ octet = tvb_get_guint8(tvb, offset); - + proto_tree_add_boolean(tree, hf_t30_fif_sm, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_rtif, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_3gmn, tvb, offset, 1, octet); @@ -649,7 +649,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot if (check_col(pinfo->cinfo, COL_INFO)) col_append_fstr(pinfo->cinfo, COL_INFO, " - DSR:%s", val_to_str((octet&0x3C) >> 2, t30_data_signalling_rate_vals, "")); - if (pinfo->private_data) + if (pinfo->private_data) g_snprintf(((t38_packet_info*)pinfo->private_data)->desc, MAX_T38_DESC, "DSR:%s", val_to_str((octet&0x3C) >> 2, t30_data_signalling_rate_vals, "")); } else { @@ -658,7 +658,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot if (check_col(pinfo->cinfo, COL_INFO)) col_append_fstr(pinfo->cinfo, COL_INFO, " - DSR:%s", val_to_str((octet&0x3C) >> 2, t30_data_signalling_rate_dcs_vals, "")); - if (pinfo->private_data) + if (pinfo->private_data) g_snprintf(((t38_packet_info*)pinfo->private_data)->desc, MAX_T38_DESC, "DSR:%s", val_to_str((octet&0x3C) >> 2, t30_data_signalling_rate_dcs_vals, "")); } proto_tree_add_boolean(tree, hf_t30_fif_res, tvb, offset, 1, octet); @@ -691,7 +691,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_t6, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 5) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 5) ) return; /* no extension */ /* bits 33 to 40 */ offset += 1; @@ -707,7 +707,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_vc32k, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 6) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 6) ) return; /* no extension */ /* bits 41 to 48 */ offset += 1; @@ -726,7 +726,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot } proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 7) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 7) ) return; /* no extension */ /* bits 49 to 56 */ offset += 1; @@ -744,7 +744,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_edi, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 8) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 8) ) return; /* no extension */ /* bits 57 to 64 */ offset += 1; @@ -756,7 +756,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_mm, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 9) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 9) ) return; /* no extension */ /* bits 65 to 72 */ offset += 1; @@ -771,7 +771,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_12c, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 10) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 10) ) return; /* no extension */ /* bits 73 to 80 */ offset += 1; @@ -786,7 +786,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_spsco, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 11) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 11) ) return; /* no extension */ /* bits 81 to 88 */ offset += 1; @@ -801,7 +801,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_hfx40i, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 12) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 12) ) return; /* no extension */ /* bits 89 to 96 */ offset += 1; @@ -815,7 +815,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_plmss, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 13) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 13) ) return; /* no extension */ /* bits 97 to 104 */ offset += 1; @@ -831,7 +831,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_ira, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 14) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 14) ) return; /* no extension */ /* bits 105 to 112 */ offset += 1; @@ -846,7 +846,7 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_boolean(tree, hf_t30_fif_cg1200x1200, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) || (len < 15) ) return; /* no extension */ + if ( !(octet & 0x01) || (len < 15) ) return; /* no extension */ /* bits 113 to 120 */ offset += 1; @@ -859,8 +859,8 @@ dissect_t30_dis_dtc(tvbuff_t *tvb, int offset, packet_info *pinfo, int len, prot proto_tree_add_uint(tree, hf_t30_fif_sdmc, tvb, offset, 1, octet); proto_tree_add_boolean(tree, hf_t30_fif_ext, tvb, offset, 1, octet); - if ( !(octet & 0x01) ) return; /* no extension */ - + if ( !(octet & 0x01) ) return; /* no extension */ + } static int @@ -879,14 +879,14 @@ dissect_t30_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_text(tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), "[MALFORMED OR SHORT PACKET: hdlc T30 length must be at least 4 bytes]"); expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR, "T30 length must be at least 4 bytes"); if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, " (HDLC Reassembled: [MALFORMED OR SHORT PACKET])"); + col_append_str(pinfo->cinfo, COL_INFO, " (HDLC Reassembled: [MALFORMED OR SHORT PACKET])"); return offset; } /* if (tree) { proto_item *item;*/ if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, " (HDLC Reassembled:"); + col_append_str(pinfo->cinfo, COL_INFO, " (HDLC Reassembled:"); it=proto_tree_add_protocol_format(tree, proto_t30, tvb, offset, -1, "ITU-T Recommendation T.30"); @@ -913,7 +913,7 @@ dissect_t30_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (check_col(pinfo->cinfo, COL_INFO)) col_append_fstr(pinfo->cinfo, COL_INFO, " %s - %s", val_to_str(octet & 0x7F, t30_facsimile_control_field_vals_short, ""), - val_to_str(octet & 0x7F, t30_facsimile_control_field_vals, "") ); + val_to_str(octet & 0x7F, t30_facsimile_control_field_vals, "") ); switch (octet & 0x7F) { case T30_FC_DIS: @@ -947,10 +947,10 @@ dissect_t30_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } if (check_col(pinfo->cinfo, COL_INFO)) - col_append_str(pinfo->cinfo, COL_INFO, ")"); + col_append_str(pinfo->cinfo, COL_INFO, ")"); /* }*/ - + return offset; } @@ -1220,7 +1220,7 @@ proto_register_t30(void) { &hf_t30_fif_ira, { "Internet Routing Address (IRA)", "t30.fif.ira", FT_BOOLEAN, 8, TFS(&flags_set_truth), 0x04, "", HFILL }}, - + { &hf_t30_fif_600x600, { "600 pels/25.4 mm x 600 lines/25.4 mm", "t30.fif.600x600", FT_BOOLEAN, 8, TFS(&flags_set_truth), 0x80, "", HFILL }}, @@ -1269,7 +1269,7 @@ proto_register_t30(void) { &hf_t30_fif_non_stand_bytes, { "Non-standard capabilities", "t30.fif.non_standard_cap", FT_BYTES, BASE_HEX, NULL, 0, "Non-standard capabilities", HFILL }}, - + { &hf_t30_t4_frame_num, { "T.4 Frame number", "t30.t4.frame_num", FT_UINT8, BASE_DEC, NULL, 0, "T.4 Frame number", HFILL }}, @@ -1279,7 +1279,7 @@ proto_register_t30(void) { &hf_t30_partial_page_fcf2, { "Post-message command", "t30.pps.fcf2", FT_UINT8, BASE_DEC, - VALS(t30_partial_page_fcf2_vals), 0, "Post-message command", HFILL }}, + VALS(t30_partial_page_fcf2_vals), 0, "Post-message command", HFILL }}, { &hf_t30_partial_page_i1, { "Page counter", "t30.t4.page_count", FT_UINT8, BASE_DEC, NULL, 0, "Page counter", HFILL }},