From eda89e591fb96e2e08971746b08ede12f4e2d25a Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Sun, 6 Oct 2013 15:38:32 +0000 Subject: [PATCH] Improve "eHRPD Indicator" NVSE dissection in 3GPP2 A11 Registration Request. Bug 9206 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9206) From Masayuki Takemura svn path=/trunk/; revision=52403 --- AUTHORS | 1 + epan/dissectors/packet-3g-a11.c | 35 ++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index fbc66356c0..43c2e481b8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3774,6 +3774,7 @@ Peter Wu Jerry Negele Hannes Hofer Luca Coelho +Masayuki Takemura Dan Lasley gave permission for his dumpit() hex-dump routine to be used. diff --git a/epan/dissectors/packet-3g-a11.c b/epan/dissectors/packet-3g-a11.c index 72fd32695c..57ab7e20cb 100644 --- a/epan/dissectors/packet-3g-a11.c +++ b/epan/dissectors/packet-3g-a11.c @@ -37,6 +37,7 @@ * http://www.3gpp2.org/public_html/specs/A.S0017-D_v2.0_090825.pdf * http://www.3gpp2.org/public_html/specs/A.S0017-D%20v3.0_Interoperability%20Specification%20%28IOS%29%20for%20cdma2000%20Access%20Network%20Interfaces%20-%20Part%207%20%28A10%20and%20A11%20Interfaces%29_20110701.pdf * http://www.3gpp2.org/Public_html/specs/A00-20110419-002Er0%20A.S0008-C%20v4.0%20HRPD%20IOS-Pub_20110513.pdf + * http://www.3gpp2.org/Public_html/specs/A.S0022-0_v2.0_100426.pdf */ #include "config.h" @@ -102,6 +103,8 @@ static int hf_a11_vse_code = -1; static int hf_a11_vse_dormant = -1; static int hf_a11_vse_ehrpd_mode = -1; static int hf_a11_vse_ehrpd_pmk = -1; +static int hf_a11_vse_ehrpd_handoff_info = -1; +static int hf_a11_vse_ehrpd_tunnel_mode = -1; static int hf_a11_vse_ppaddr = -1; /* Additional Session Information */ @@ -407,6 +410,24 @@ static const true_false_string a11_tfs_ehrpd_mode = { "eAT is operating in legacy mode" }; +/* 3GPP2 A.S0022-0 v2.0, section 4.2.14 */ +static const true_false_string a11_tfs_ehrpd_pmk = { + "eAT is requesting PMK information", + "eAT is not requesting PMK information", +}; + +/* 3GPP2 A.S0022-0 v2.0, section 4.2.14 */ +static const true_false_string a11_tfs_ehrpd_handoff_info = { + "eAT is requesting information for E-UTRAN handoff", + "eAT is not requesting information for E-UTRAN handoff", +}; + +/* 3GPP2 A.S0022-0 v2.0, section 4.2.14 */ +static const true_false_string a11_tfs_ehrpd_tunnel_mode = { + "eAT is communicating via tunnel from non-eHRPD", + "eAT is communicating directly via eHRPD", +}; + static const value_string a11_ext_app[]= { {0x0101, "Accounting (RADIUS)"}, {0x0102, "Accounting (DIAMETER)"}, @@ -1505,6 +1526,8 @@ dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tre if (ext_len < 1) break; proto_tree_add_item(ext_tree, hf_a11_vse_ehrpd_pmk, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(ext_tree, hf_a11_vse_ehrpd_handoff_info, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(ext_tree, hf_a11_vse_ehrpd_tunnel_mode, tvb, offset, 1, ENC_BIG_ENDIAN); break; case 0x0701: if (ext_len < 1) @@ -2279,7 +2302,17 @@ proto_register_a11(void) }, { &hf_a11_vse_ehrpd_pmk, { "PMK", "a11.ext.ehrpd.pmk", - FT_BOOLEAN, 8, NULL, 0, + FT_BOOLEAN, 8, TFS(&a11_tfs_ehrpd_pmk), 0x04, + NULL, HFILL } + }, + { &hf_a11_vse_ehrpd_handoff_info, + { "E-UTRAN Handoff Info", "a11.ext.ehrpd.handoff_info", + FT_BOOLEAN, 8, TFS(&a11_tfs_ehrpd_handoff_info), 0x02, + NULL, HFILL } + }, + { &hf_a11_vse_ehrpd_tunnel_mode, + { "Tunnel Mode", "a11.ext.ehrpd.tunnel_mode", + FT_BOOLEAN, 8, TFS(&a11_tfs_ehrpd_tunnel_mode), 0x01, NULL, HFILL } }, { &hf_a11_vse_code,