A-bis/RSL: fix wrong parent tree in dissect_rsl_ie_cause()

Cause specific fields belong to the 'Cause IE', so they should be
correctly displayed in the tree hierarchy.

Before this change:

    0111 111. = Message discriminator: ip.access Vendor Specific messages (63)
    .... ...0 = T bit: Not considered transparent by BTS
    .111 0110 = Message type: ip.access DLCX INDication (0x76)
    Channel number IE
        Element identifier: Channel Number (0x01)
        0000 1... = C-bits: Bm + ACCH (1)
        .... .010 = Time slot number (TN): 2
    Cause IE
        Element identifier: Cause (0x1a)
        Length: 1
    0... .... = Extension: No Extension
    .000 .... = Class: Normal event (0)
    .000 1111 = Cause Value: normal event, unspecified (15)

After:

    0111 111. = Message discriminator: ip.access Vendor Specific messages (63)
    .... ...0 = T bit: Not considered transparent by BTS
    .111 0110 = Message type: ip.access DLCX INDication (0x76)
    Channel number IE
        Element identifier: Channel Number (0x01)
        0000 1... = C-bits: Bm + ACCH (1)
        .... .010 = Time slot number (TN): 2
    Cause IE
        Element identifier: Cause (0x1a)
        Length: 1
        0... .... = Extension: No Extension
        .000 .... = Class: Normal event (0)
        .000 1111 = Cause Value: normal event, unspecified (15)

Change-Id: I9dc3a35dff19fc824b69f66ef137f0346247af3a
Signed-off-by: Vadim Yanitskiy <vyanitskiy@sysmocom.de>
Reviewed-on: https://code.wireshark.org/review/37565
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Vadim Yanitskiy 2020-06-27 17:46:51 +07:00 committed by Anders Broman
parent 2dcf32bc9c
commit d933a98f89
1 changed files with 3 additions and 3 deletions

View File

@ -2200,10 +2200,10 @@ dissect_rsl_ie_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, in
/* Cause Value */
octet = tvb_get_guint8(tvb, offset);
proto_tree_add_item(tree, hf_rsl_extension_bit, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_rsl_class, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ie_tree, hf_rsl_extension_bit, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ie_tree, hf_rsl_class, tvb, offset, 1, ENC_BIG_ENDIAN);
if ((octet & 0x80) != 0x80) {
proto_tree_add_item(tree, hf_rsl_cause_value, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ie_tree, hf_rsl_cause_value, tvb, offset, 1, ENC_BIG_ENDIAN);
} else {
/* TODO: Cause Extension*/
offset++;