forked from osmocom/wireshark
8-PSK structure in GSM Classmark 3 is not properly dissected svn path=/trunk/; revision=44008
This commit is contained in:
parent
b3ac15f492
commit
70ea1804d8
|
@ -598,7 +598,9 @@ static int hf_gsm_a_ecsd_multi_slot_class = -1;
|
||||||
static int hf_gsm_a_8_psk_struct_present = -1;
|
static int hf_gsm_a_8_psk_struct_present = -1;
|
||||||
static int hf_gsm_a_8_psk_struct = -1;
|
static int hf_gsm_a_8_psk_struct = -1;
|
||||||
static int hf_gsm_a_modulation_capability = -1;
|
static int hf_gsm_a_modulation_capability = -1;
|
||||||
|
static int hf_gsm_a_8_psk_rf_power_capability_1_present = -1;
|
||||||
static int hf_gsm_a_8_psk_rf_power_capability_1 = -1;
|
static int hf_gsm_a_8_psk_rf_power_capability_1 = -1;
|
||||||
|
static int hf_gsm_a_8_psk_rf_power_capability_2_present = -1;
|
||||||
static int hf_gsm_a_8_psk_rf_power_capability_2 = -1;
|
static int hf_gsm_a_8_psk_rf_power_capability_2 = -1;
|
||||||
static int hf_gsm_a_gsm_400_band_info_present = -1;
|
static int hf_gsm_a_gsm_400_band_info_present = -1;
|
||||||
static int hf_gsm_a_gsm_400_bands_supported = -1;
|
static int hf_gsm_a_gsm_400_bands_supported = -1;
|
||||||
|
@ -2404,10 +2406,10 @@ de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
|
||||||
guint8 length;
|
guint8 length;
|
||||||
proto_tree *subtree;
|
proto_tree *subtree;
|
||||||
proto_item *item;
|
proto_item *item;
|
||||||
guint32 bits_left, target_bit_offset;
|
guint32 bits_left, target_bit_offset, old_bit_offset;
|
||||||
guint64 multi_bnd_sup_fields, rsupport, multislotCapability;
|
guint64 multi_bnd_sup_fields, rsupport, multislotCapability;
|
||||||
guint64 msMeasurementCapability, msPosMethodCapPresent;
|
guint64 msMeasurementCapability, msPosMethodCapPresent;
|
||||||
guint64 ecsdMultiSlotCapability, eightPskStructPresent;
|
guint64 ecsdMultiSlotCapability, eightPskStructPresent, eightPskStructRfPowerCapPresent;
|
||||||
guint64 gsm400BandInfoPresent, gsm850AssocRadioCapabilityPresent;
|
guint64 gsm400BandInfoPresent, gsm850AssocRadioCapabilityPresent;
|
||||||
guint64 gsm1900AssocRadioCapabilityPresent, dtmEGprsMultiSlotInfoPresent;
|
guint64 gsm1900AssocRadioCapabilityPresent, dtmEGprsMultiSlotInfoPresent;
|
||||||
guint64 dtmEgprsMultiSlotClassPresent, singleBandSupport;
|
guint64 dtmEgprsMultiSlotClassPresent, singleBandSupport;
|
||||||
|
@ -2605,20 +2607,37 @@ de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
|
||||||
if (eightPskStructPresent == 1)
|
if (eightPskStructPresent == 1)
|
||||||
{
|
{
|
||||||
/* Extract 8-PSK struct */
|
/* Extract 8-PSK struct */
|
||||||
item = proto_tree_add_bits_item(tree, hf_gsm_a_8_psk_struct, tvb, bit_offset, 5, ENC_BIG_ENDIAN);
|
item = proto_tree_add_bits_item(tree, hf_gsm_a_8_psk_struct, tvb, bit_offset, -1, ENC_BIG_ENDIAN);
|
||||||
subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_MS_CM_3]);
|
subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_MS_CM_3]);
|
||||||
|
old_bit_offset = bit_offset;
|
||||||
|
|
||||||
/* Extract Modulation Capability */
|
/* Extract Modulation Capability */
|
||||||
proto_tree_add_bits_item(subtree, hf_gsm_a_modulation_capability, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
proto_tree_add_bits_item(subtree, hf_gsm_a_modulation_capability, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||||
bit_offset = bit_offset + 1;
|
bit_offset = bit_offset + 1;
|
||||||
|
|
||||||
/* Extract 8_PSK RF Power Capability 1 */
|
/* Extract 8_PSK RF Power Capability 1 */
|
||||||
proto_tree_add_bits_item(subtree, hf_gsm_a_8_psk_rf_power_capability_1, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
|
proto_tree_add_bits_ret_val(subtree, hf_gsm_a_8_psk_rf_power_capability_1_present, tvb, bit_offset,
|
||||||
bit_offset = bit_offset + 2;
|
1, &eightPskStructRfPowerCapPresent, ENC_BIG_ENDIAN);
|
||||||
|
bit_offset = bit_offset + 1;
|
||||||
|
if (eightPskStructRfPowerCapPresent == 1)
|
||||||
|
{
|
||||||
|
proto_tree_add_bits_item(subtree, hf_gsm_a_8_psk_rf_power_capability_1, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
|
||||||
|
bit_offset = bit_offset + 2;
|
||||||
|
}
|
||||||
|
|
||||||
/* Extract 8_PSK RF Power Capability 2 */
|
/* Extract 8_PSK RF Power Capability 2 */
|
||||||
proto_tree_add_bits_item(subtree, hf_gsm_a_8_psk_rf_power_capability_2, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
|
proto_tree_add_bits_ret_val(subtree, hf_gsm_a_8_psk_rf_power_capability_2_present, tvb, bit_offset,
|
||||||
bit_offset = bit_offset + 2;
|
1, &eightPskStructRfPowerCapPresent, ENC_BIG_ENDIAN);
|
||||||
|
bit_offset = bit_offset + 1;
|
||||||
|
if (eightPskStructRfPowerCapPresent == 1)
|
||||||
|
{
|
||||||
|
proto_tree_add_bits_item(subtree, hf_gsm_a_8_psk_rf_power_capability_2, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
|
||||||
|
bit_offset = bit_offset + 2;
|
||||||
|
}
|
||||||
|
length = (guint8)((bit_offset - old_bit_offset)>>3);
|
||||||
|
if ((bit_offset - old_bit_offset) & 0x07)
|
||||||
|
length++;
|
||||||
|
proto_item_set_len(item, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* { 0 | 1 < GSM 400 Bands Supported : { 01 | 10 | 11 } >
|
/* { 0 | 1 < GSM 400 Bands Supported : { 01 | 10 | 11 } >
|
||||||
|
@ -3831,11 +3850,21 @@ proto_register_gsm_a_common(void)
|
||||||
FT_BOOLEAN, BASE_NONE, TFS(&modulation_capability_vals), 0x00,
|
FT_BOOLEAN, BASE_NONE, TFS(&modulation_capability_vals), 0x00,
|
||||||
NULL, HFILL}
|
NULL, HFILL}
|
||||||
},
|
},
|
||||||
|
{ &hf_gsm_a_8_psk_rf_power_capability_1_present,
|
||||||
|
{ "8-PSK RF Power Capability 1 present", "gsm_a.classmark3.8_psk_rf_power_capability_1_present",
|
||||||
|
FT_BOOLEAN, BASE_NONE, TFS(&true_false_vals), 0x00,
|
||||||
|
NULL, HFILL}
|
||||||
|
},
|
||||||
{ &hf_gsm_a_8_psk_rf_power_capability_1,
|
{ &hf_gsm_a_8_psk_rf_power_capability_1,
|
||||||
{ "8-PSK RF Power Capability 1", "gsm_a.classmark3.8_psk_rf_power_capability_1",
|
{ "8-PSK RF Power Capability 1", "gsm_a.classmark3.8_psk_rf_power_capability_1",
|
||||||
FT_UINT8, BASE_HEX, VALS(eight_psk_rf_power_capability_vals), 0x00,
|
FT_UINT8, BASE_HEX, VALS(eight_psk_rf_power_capability_vals), 0x00,
|
||||||
NULL, HFILL}
|
NULL, HFILL}
|
||||||
},
|
},
|
||||||
|
{ &hf_gsm_a_8_psk_rf_power_capability_2_present,
|
||||||
|
{ "8-PSK RF Power Capability 2 present", "gsm_a.classmark3.8_psk_rf_power_capability_2_present",
|
||||||
|
FT_BOOLEAN, BASE_NONE, TFS(&true_false_vals), 0x00,
|
||||||
|
NULL, HFILL}
|
||||||
|
},
|
||||||
{ &hf_gsm_a_8_psk_rf_power_capability_2,
|
{ &hf_gsm_a_8_psk_rf_power_capability_2,
|
||||||
{ "8-PSK RF Power Capability 2", "gsm_a.classmark3.8_psk_rf_power_capability_2",
|
{ "8-PSK RF Power Capability 2", "gsm_a.classmark3.8_psk_rf_power_capability_2",
|
||||||
FT_UINT8, BASE_HEX, VALS(eight_psk_rf_power_capability_vals), 0x00,
|
FT_UINT8, BASE_HEX, VALS(eight_psk_rf_power_capability_vals), 0x00,
|
||||||
|
|
Loading…
Reference in New Issue