aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2018-09-12 10:41:59 +0200
committerAnders Broman <a.broman58@gmail.com>2018-09-12 10:54:40 +0000
commit40789524c5c84d14b98b308628b3b3774f226934 (patch)
treeb31b93e4566896b5c40237ede6a0c5b8e0e3f943
parent59ae0a2d83db6c67ef4fcc8700163a53cf6cb461 (diff)
gsm_a_gm: Fix dissection of 10.5.6.3 Protocol configuration options.
Session-AMBR dissected as QoS rules PDU session address lifetime dissected as Session-AMBR. Change-Id: Iee9e630644638718f37ddbc185e23add32ee61ea Reviewed-on: https://code.wireshark.org/review/29630 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/packet-gsm_a_gm.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/epan/dissectors/packet-gsm_a_gm.c b/epan/dissectors/packet-gsm_a_gm.c
index de7baf8..179dd08 100644
--- a/epan/dissectors/packet-gsm_a_gm.c
+++ b/epan/dissectors/packet-gsm_a_gm.c
@@ -4676,12 +4676,20 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, g
break;
case 0x001d:
if (link_dir == P2P_DIR_DL) {
- de_nas_5gs_sm_qos_rules(tvb, pco_tree, pinfo, curr_offset, e_len, NULL, 0);
+ /* Network to MS direction */
+ de_nas_5gs_sm_session_ambr(tvb, pco_tree, pinfo, curr_offset, e_len, NULL, 0);
}
break;
case 0x001e:
- if (link_dir == P2P_DIR_DL) {
- de_nas_5gs_sm_session_ambr(tvb, pco_tree, pinfo, curr_offset, e_len, NULL, 0);
+ if (link_dir == P2P_DIR_DL && e_len == 2) {
+ /* When the container identifier indicates PDU session address lifetime,
+ * the length of container identifier contents indicates a length equal to two.
+ * The container identifier contents field contains the binary coded representation
+ * of how long the network is willing to maintain the PDU session in units of seconds.
+ * ...If the length of container identifier contents is different from two octets,
+ * then it shall be ignored by the receiver
+ */
+ proto_tree_add_item(pco_tree, hf_gsm_a_gm_sm_pco_pdu_session_address_lifetime, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
}
break;
case 0x001f: