aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gtpv2.c
diff options
context:
space:
mode:
authorBinh Trinh <beango@gmail.com>2017-04-16 10:14:50 -0400
committerMichael Mann <mmann78@netscape.net>2017-04-16 16:19:00 +0000
commitef9150acee2131ee31e851ff7fff42c369a16893 (patch)
treeae7c90981fb93c7e571c401dea093cff0c076154 /epan/dissectors/packet-gtpv2.c
parentb2219bbccb9dbde0959d2e46bc8568dafeff2d0b (diff)
[GTPv2]: Add Request/Response Lookups for SRVCC PS-to-CS Messages
Change-Id: I12fcb180fd361f1df4e6d0f78f8f34f01284d7a4 Reviewed-on: https://code.wireshark.org/review/21129 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-gtpv2.c')
-rw-r--r--epan/dissectors/packet-gtpv2.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c
index 3414cfe5ce..c491c89232 100644
--- a/epan/dissectors/packet-gtpv2.c
+++ b/epan/dissectors/packet-gtpv2.c
@@ -662,6 +662,10 @@ static expert_field ei_gtpv2_int_size_not_handled = EI_INIT;
#define GTPV2_SRVCC_PS_TO_CS_REQUEST 25
#define GTPV2_SRVCC_PS_TO_CS_RESPONSE 26
+#define GTPV2_SRVCC_PS_TO_CS_COMPLETE_NOTIFICATION 27
+#define GTPV2_SRVCC_PS_TO_CS_COMPLETE_ACKNOWLEDGE 28
+#define GTPV2_SRVCC_PS_TO_CS_CANCEL_NOTIFICATION 29
+#define GTPV2_SRVCC_PS_TO_CS_CANCEL_ACKNOWLEDGE 30
#define GTPV2_CREATE_SESSION_REQUEST 32
#define GTPV2_CREATE_SESSION_RESPONSE 33
#define GTPV2_MODIFY_BEARER_REQUEST 34
@@ -6680,6 +6684,9 @@ gtpv2_match_response(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gin
case GTPV2_MODIFY_BEARER_COMMAND:
case GTPV2_DELETE_BEARER_COMMAND:
case GTPV2_BEARER_RESOURCE_COMMAND:
+ case GTPV2_SRVCC_PS_TO_CS_REQUEST:
+ case GTPV2_SRVCC_PS_TO_CS_COMPLETE_NOTIFICATION:
+ case GTPV2_SRVCC_PS_TO_CS_CANCEL_NOTIFICATION:
gcr.is_request = TRUE;
gcr.req_frame = pinfo->num;
gcr.rep_frame = 0;
@@ -6693,6 +6700,10 @@ gtpv2_match_response(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gin
case GTPV2_MODIFY_BEARER_FAILURE_INDICATION:
case GTPV2_DELETE_BEARER_FAILURE_INDICATION:
case GTPV2_BEARER_RESOURCE_FAILURE_INDICATION:
+ case GTPV2_SRVCC_PS_TO_CS_RESPONSE:
+ case GTPV2_SRVCC_PS_TO_CS_COMPLETE_ACKNOWLEDGE:
+ case GTPV2_SRVCC_PS_TO_CS_CANCEL_ACKNOWLEDGE:
+
gcr.is_request = FALSE;
gcr.req_frame = 0;
gcr.rep_frame = pinfo->num;
@@ -6720,6 +6731,10 @@ gtpv2_match_response(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gin
case GTPV2_MODIFY_BEARER_COMMAND:
case GTPV2_DELETE_BEARER_COMMAND:
case GTPV2_BEARER_RESOURCE_COMMAND:
+ case GTPV2_SRVCC_PS_TO_CS_REQUEST:
+ case GTPV2_SRVCC_PS_TO_CS_COMPLETE_NOTIFICATION:
+ case GTPV2_SRVCC_PS_TO_CS_CANCEL_NOTIFICATION:
+
gcr.seq_nr = seq_nr;
gcrp = (gtpv2_msg_hash_t *)wmem_map_lookup(gtpv2_info->unmatched, &gcr);
@@ -6739,15 +6754,19 @@ gtpv2_match_response(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gin
wmem_map_insert(gtpv2_info->unmatched, gcrp, gcrp);
return NULL;
break;
- case GTPV2_CREATE_SESSION_RESPONSE:
- case GTPV2_CREATE_BEARER_RESPONSE:
- case GTPV2_UPDATE_BEARER_RESPONSE:
- case GTPV2_MODIFY_BEARER_RESPONSE:
- case GTPV2_DELETE_BEARER_RESPONSE:
- case GTPV2_DELETE_SESSION_RESPONSE:
- case GTPV2_MODIFY_BEARER_FAILURE_INDICATION:
- case GTPV2_DELETE_BEARER_FAILURE_INDICATION:
- case GTPV2_BEARER_RESOURCE_FAILURE_INDICATION:
+ case GTPV2_CREATE_SESSION_RESPONSE:
+ case GTPV2_CREATE_BEARER_RESPONSE:
+ case GTPV2_UPDATE_BEARER_RESPONSE:
+ case GTPV2_MODIFY_BEARER_RESPONSE:
+ case GTPV2_DELETE_BEARER_RESPONSE:
+ case GTPV2_DELETE_SESSION_RESPONSE:
+ case GTPV2_MODIFY_BEARER_FAILURE_INDICATION:
+ case GTPV2_DELETE_BEARER_FAILURE_INDICATION:
+ case GTPV2_BEARER_RESOURCE_FAILURE_INDICATION:
+ case GTPV2_SRVCC_PS_TO_CS_RESPONSE:
+ case GTPV2_SRVCC_PS_TO_CS_COMPLETE_ACKNOWLEDGE:
+ case GTPV2_SRVCC_PS_TO_CS_CANCEL_ACKNOWLEDGE:
+
gcr.seq_nr = seq_nr;
gcrp = (gtpv2_msg_hash_t *)wmem_map_lookup(gtpv2_info->unmatched, &gcr);