gtp: Fix UE-AMBR and APN-AMBR with NSAPI IEs
The optional Authorized UE-AMBR for Uplink and Downlink fields in UE-AMBR were never getting dissected. Also, the trees and tree description for the UE-AMBR and APN-AMBR with NSAPI IEs were swapped.
This commit is contained in:
parent
cdfa3116d2
commit
feb7f45179
|
@ -8709,8 +8709,8 @@ decode_gtp_ue_ambr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tr
|
|||
proto_tree *ext_tree;
|
||||
|
||||
length = tvb_get_ntohs(tvb, offset + 1);
|
||||
ext_tree = proto_tree_add_subtree(tree, tvb, offset, 3 + length, ett_gtp_ies[GTP_EXT_APN_AMBR_WITH_NSAPI], NULL,
|
||||
val_to_str_ext_const(GTP_EXT_APN_AMBR_WITH_NSAPI, >pv1_val_ext, "Unknown"));
|
||||
ext_tree = proto_tree_add_subtree(tree, tvb, offset, 3 + length, ett_gtp_ies[GTP_EXT_UE_AMBR], NULL,
|
||||
val_to_str_ext_const(GTP_EXT_UE_AMBR, >pv1_val_ext, "Unknown"));
|
||||
proto_tree_add_item(ext_tree, hf_gtp_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
offset++;
|
||||
|
@ -8727,17 +8727,19 @@ decode_gtp_ue_ambr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tr
|
|||
/* Authorized UE-AMBR for Uplink and Downlink fields are present in the IE only if the sender has their valid values
|
||||
* available. Otherwise, the fields from m to (n+3) shall not be present.
|
||||
*/
|
||||
if(offset >= length)
|
||||
return 3 + length;
|
||||
if (length > 8) {
|
||||
/* m to (m+3) Authorized UE-AMBR for Uplink */
|
||||
proto_tree_add_item(ext_tree, hf_gtp_ext_auth_ue_ambr_ul, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
offset += 4;
|
||||
|
||||
/* m to (m+3) Authorized UE-AMBR for Uplink */
|
||||
proto_tree_add_item(ext_tree, hf_gtp_ext_auth_ue_ambr_ul, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
offset+=4;
|
||||
/* (m+4) to (n+3) Authorized UE-AMBR for Downlink */
|
||||
proto_tree_add_item(ext_tree, hf_gtp_ext_auth_ue_ambr_dl, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
offset += 4;
|
||||
}
|
||||
|
||||
/* (m+4) to (n+3) Authorized UE-AMBR for Downlink */
|
||||
proto_tree_add_item(ext_tree, hf_gtp_ext_auth_ue_ambr_dl, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
|
||||
proto_tree_add_expert(ext_tree, pinfo, &ei_gtp_undecoded, tvb, offset, length);
|
||||
if (length > 16) {
|
||||
proto_tree_add_expert(ext_tree, pinfo, &ei_gtp_undecoded, tvb, offset, length - 16);
|
||||
}
|
||||
|
||||
return 3 + length;
|
||||
}
|
||||
|
@ -8752,8 +8754,8 @@ decode_gtp_apn_ambr_with_nsapi(tvbuff_t * tvb, int offset, packet_info * pinfo _
|
|||
proto_tree *ext_tree;
|
||||
|
||||
length = tvb_get_ntohs(tvb, offset + 1);
|
||||
ext_tree = proto_tree_add_subtree(tree, tvb, offset, 3 + length, ett_gtp_ies[GTP_EXT_UE_AMBR], NULL,
|
||||
val_to_str_ext_const(GTP_EXT_UE_AMBR, >pv1_val_ext, "Unknown"));
|
||||
ext_tree = proto_tree_add_subtree(tree, tvb, offset, 3 + length, ett_gtp_ies[GTP_EXT_APN_AMBR_WITH_NSAPI], NULL,
|
||||
val_to_str_ext_const(GTP_EXT_APN_AMBR_WITH_NSAPI, >pv1_val_ext, "Unknown"));
|
||||
proto_tree_add_item(ext_tree, hf_gtp_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
offset++;
|
||||
|
|
Loading…
Reference in New Issue