From ca7bffbfc3341f6ff9b5dbd4efa15bccefcfd744 Mon Sep 17 00:00:00 2001 From: Anders Date: Wed, 8 Nov 2017 11:06:53 +0100 Subject: [PATCH] [Diameter 3GPP] Sub dissect AVP Code: 1677 Group-PLMN-Id. Change-Id: I69ac8210dfcb43f9fc15e49c75dfb917976f0770 Reviewed-on: https://code.wireshark.org/review/24294 Reviewed-by: Anders Broman Petri-Dish: Anders Broman Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann --- epan/dissectors/packet-diameter_3gpp.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/epan/dissectors/packet-diameter_3gpp.c b/epan/dissectors/packet-diameter_3gpp.c index 7c80417f67..d5d481d3a7 100644 --- a/epan/dissectors/packet-diameter_3gpp.c +++ b/epan/dissectors/packet-diameter_3gpp.c @@ -2122,6 +2122,26 @@ dissect_diameter_3gpp_wlan_offloadability_utran(tvbuff_t *tvb, packet_info *pinf return 4; } +/* 3GPP TS 29.272 +* 7.3.191 Group-PLMN-Id +* AVP Code: 1677 Group-PLMN-Id +*/ +static int +dissect_diameter_3gpp_group_plmn_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) +{ + int length = tvb_reported_length(tvb); + diam_sub_dis_t *diam_sub_dis = (diam_sub_dis_t*)data; + + if (length == 3) { + diam_sub_dis->avp_str = dissect_e212_mcc_mnc_wmem_packet_str(tvb, pinfo, tree, 0, E212_NONE, TRUE); + } else { + proto_tree_add_expert(tree, pinfo, &ei_diameter_3gpp_plmn_id_wrong_len, tvb, 0, length); + } + + return length; +} + + /* 3GPP TS 29.272 * 7.3.201 AIR-Flags * AVP Code: 1679 AIR-Flags @@ -2545,6 +2565,9 @@ proto_reg_handoff_diameter_3gpp(void) /* AVP Code: 1669 WLAN-offloadability-UTRAN */ dissector_add_uint("diameter.3gpp", 1669, create_dissector_handle(dissect_diameter_3gpp_wlan_offloadability_utran, proto_diameter_3gpp)); + /* AVP Code: 1677 Group-PLMN-Id */ + dissector_add_uint("diameter.3gpp", 1677, create_dissector_handle(dissect_diameter_3gpp_group_plmn_id, proto_diameter_3gpp)); + /* AVP Code: 1679 AIR-Flags */ dissector_add_uint("diameter.3gpp", 1679, create_dissector_handle(dissect_diameter_3gpp_air_flags, proto_diameter_3gpp));