diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-12-15 06:31:18 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-12-15 06:31:18 +0000 |
commit | 393a236663c6a9646fe50c4ce6fe4f6a078483c5 (patch) | |
tree | f153e481cd1cd08bfd369779fc6c71eb64552021 | |
parent | 07f9348849048380a33d3f9fac1e735dc119d19b (diff) |
From Vasil Velichkov:
Bug 4330 - Add dissection of HighLayerCompatibility parameter in CAMEL/INAP InitialDP operation.
svn path=/trunk/; revision=31272
-rw-r--r-- | asn1/inap/inap.cnf | 13 | ||||
-rw-r--r-- | asn1/inap/packet-inap-template.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-inap.c | 32 |
3 files changed, 39 insertions, 8 deletions
diff --git a/asn1/inap/inap.cnf b/asn1/inap/inap.cnf index 6bffe6af71..1d84b6eaba 100644 --- a/asn1/inap/inap.cnf +++ b/asn1/inap/inap.cnf @@ -288,6 +288,19 @@ dissect_isup_called_party_number_parameter(parameter_tvb, tree, NULL); return offset; dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL); +#.FN_BODY HighLayerCompatibility VAL_PTR = ¶meter_tvb +/* + * -- Indicates the teleservice. For encoding, DSS1 (Q.931) is used. + */ + tvbuff_t *parameter_tvb; + proto_tree *subtree; +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_inap_HighLayerCompatibility); + dissect_q931_high_layer_compat_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), subtree); #.TYPE_ATTR CallingPartysCategory TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(isup_calling_partys_category_value) diff --git a/asn1/inap/packet-inap-template.c b/asn1/inap/packet-inap-template.c index 9cafc19f6f..38ef917943 100644 --- a/asn1/inap/packet-inap-template.c +++ b/asn1/inap/packet-inap-template.c @@ -76,6 +76,7 @@ static int inap_opcode_type; /* Initialize the subtree pointers */ static gint ett_inap = -1; static gint ett_inapisup_parameter = -1; +static gint ett_inap_HighLayerCompatibility = -1; #include "packet-inap-ett.c" #include "packet-inap-table.c" @@ -201,6 +202,7 @@ void proto_register_inap(void) { static gint *ett[] = { &ett_inap, &ett_inapisup_parameter, + &ett_inap_HighLayerCompatibility, #include "packet-inap-ettarr.c" }; diff --git a/epan/dissectors/packet-inap.c b/epan/dissectors/packet-inap.c index 98afc2fa83..19c69e748d 100644 --- a/epan/dissectors/packet-inap.c +++ b/epan/dissectors/packet-inap.c @@ -1016,6 +1016,7 @@ static int inap_opcode_type; /* Initialize the subtree pointers */ static gint ett_inap = -1; static gint ett_inapisup_parameter = -1; +static gint ett_inap_HighLayerCompatibility = -1; /*--- Included file: packet-inap-ett.c ---*/ #line 1 "packet-inap-ett.c" @@ -1254,7 +1255,7 @@ static gint ett_inap_T_problem = -1; static gint ett_inap_InvokeId = -1; /*--- End of included file: packet-inap-ett.c ---*/ -#line 80 "packet-inap-template.c" +#line 81 "packet-inap-template.c" /*--- Included file: packet-inap-table.c ---*/ @@ -1362,7 +1363,7 @@ static const value_string inap_err_code_string_vals[] = { /*--- End of included file: packet-inap-table.c ---*/ -#line 82 "packet-inap-template.c" +#line 83 "packet-inap-template.c" const value_string inap_general_problem_strings[] = { {0,"General Problem Unrecognized Component"}, @@ -4466,8 +4467,23 @@ dissect_inap_GlobalCallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i int dissect_inap_HighLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 292 "inap.cnf" +/* + * -- Indicates the teleservice. For encoding, DSS1 (Q.931) is used. + */ + tvbuff_t *parameter_tvb; + proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_inap_HighLayerCompatibility); + dissect_q931_high_layer_compat_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), subtree); + + return offset; } @@ -4702,7 +4718,6 @@ dissect_inap_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in - return offset; } @@ -8782,7 +8797,7 @@ static int dissect_SRFCallGapArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, /*--- End of included file: packet-inap-fn.c ---*/ -#line 96 "packet-inap-template.c" +#line 97 "packet-inap-template.c" /* TC-Invokable OPERATION ::= {activateServiceFiltering | activityTest | analysedInformation | @@ -9121,7 +9136,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a /*--- End of included file: packet-inap-table2.c ---*/ -#line 117 "packet-inap-template.c" +#line 118 "packet-inap-template.c" static guint8 inap_pdu_type = 0; @@ -11394,7 +11409,7 @@ void proto_register_inap(void) { "inap.InvokeId_present", HFILL }}, /*--- End of included file: packet-inap-hfarr.c ---*/ -#line 193 "packet-inap-template.c" +#line 194 "packet-inap-template.c" }; @@ -11406,6 +11421,7 @@ void proto_register_inap(void) { static gint *ett[] = { &ett_inap, &ett_inapisup_parameter, + &ett_inap_HighLayerCompatibility, /*--- Included file: packet-inap-ettarr.c ---*/ #line 1 "packet-inap-ettarr.c" @@ -11644,7 +11660,7 @@ void proto_register_inap(void) { &ett_inap_InvokeId, /*--- End of included file: packet-inap-ettarr.c ---*/ -#line 205 "packet-inap-template.c" +#line 207 "packet-inap-template.c" }; /* Register protocol */ |