GTPv2: Dissect the content of F-container type 3.

This commit is contained in:
Anders Broman 2020-11-24 16:41:50 +01:00
parent 8c4d420fb3
commit 2999173126
1 changed files with 21 additions and 9 deletions

View File

@ -5127,6 +5127,7 @@ dissect_gtpv2_F_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, p
proto_tree_add_item(tree, hf_gtpv2_container_type, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gtpv2_container_type, tvb, offset, 1, ENC_BIG_ENDIAN);
container_type = tvb_get_guint8(tvb, offset); container_type = tvb_get_guint8(tvb, offset);
offset += 1; offset += 1;
length--;
if ( (message_type == GTPV2_FORWARD_RELOCATION_REQ) if ( (message_type == GTPV2_FORWARD_RELOCATION_REQ)
|| (message_type == GTPV2_CONTEXT_RESPONSE) || (message_type == GTPV2_CONTEXT_RESPONSE)
|| (message_type == GTPV2_RAN_INFORMATION_RELAY)) { || (message_type == GTPV2_RAN_INFORMATION_RELAY)) {
@ -5189,7 +5190,8 @@ dissect_gtpv2_F_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, p
* relocation procedure. The Container Type shall be set to 3. * relocation procedure. The Container Type shall be set to 3.
*/ */
sub_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_gtpv2_eutran_con, NULL, "E-UTRAN transparent container"); sub_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_gtpv2_eutran_con, NULL, "E-UTRAN transparent container");
proto_tree_add_expert(sub_tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, offset, length - offset); new_tvb = tvb_new_subset_remaining(tvb, offset);
dissect_s1ap_SourceeNB_ToTargeteNB_TransparentContainer_PDU(new_tvb, pinfo, sub_tree, NULL);
return; return;
default: default:
break; break;
@ -5206,15 +5208,25 @@ dissect_gtpv2_F_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, p
break; break;
} }
} }
if (message_type == GTPV2_FORWARD_RELOCATION_RESP) {
/* 7.3.2 Forward Relocation Response /* 7.3.2 Forward Relocation Response */
* E-UTRAN Transparent Container switch (container_type) {
* This IE is conditionally included only during a handover to case 3:
* E-UTRAN and contains the radio-related and core network /* E-UTRAN transparent container
* information. If the Cause IE contains the value "Request * This IE shall be included to contain the "Target to Source Transparent Container"
* accepted", this IE shall be included. * during a handover to E-UTRAN, 5GS to EPS handover and EPS to 5GS handover.
*/ * If the Cause IE contains the value "Request accepted". The Container Type shall be set to 3.
proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, offset, length-offset); */
sub_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_gtpv2_eutran_con, NULL, "E-UTRAN transparent container");
new_tvb = tvb_new_subset_remaining(tvb, offset);
dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer_PDU(new_tvb, pinfo, sub_tree, NULL);
return;
default:
break;
}
}
proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, offset, length);
} }