diff options
author | Anders Broman <anders.broman@ericsson.com> | 2006-01-17 21:52:30 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2006-01-17 21:52:30 +0000 |
commit | 4ecd261cfbe8977834e7e9b72c53513024770308 (patch) | |
tree | a5cb7daeb614d8eef2a53bc6a89c7a8085a27cf6 /asn1 | |
parent | dbf15d9e0b9c334914099e942eb3b9bb8dafb4c6 (diff) |
Change some OPCODE decodes from respons to Invoke (bug fix), let gsm_a decode som IE:s.
svn path=/trunk/; revision=17050
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/camel/camel.cnf | 62 | ||||
-rw-r--r-- | asn1/camel/packet-camel-template.c | 33 |
2 files changed, 82 insertions, 13 deletions
diff --git a/asn1/camel/camel.cnf b/asn1/camel/camel.cnf index b85f243fe9..e2ad964850 100644 --- a/asn1/camel/camel.cnf +++ b/asn1/camel/camel.cnf @@ -60,19 +60,23 @@ MAP-CH-DataTypes gsm_map tvbuff_t *parameter_tvb; char *digit_str; + proto_item *item; + proto_tree *subtree; %(DEFAULT_BODY)s if (!parameter_tvb) return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_camel_isdn_address_string); - proto_tree_add_item(tree, hf_camel_addr_extension, parameter_tvb, 0,1,FALSE); + proto_tree_add_item(subtree, hf_camel_addr_extension, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_camel_addr_natureOfAddressIndicator, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_camel_addr_numberingPlanInd, parameter_tvb, 0,1,FALSE); + proto_tree_add_item(subtree, hf_camel_addr_natureOfAddressIndicator, parameter_tvb, 0,1,FALSE); + proto_tree_add_item(subtree, hf_camel_addr_numberingPlanInd, parameter_tvb, 0,1,FALSE); digit_str = unpack_digits(parameter_tvb, 1); - proto_tree_add_string(tree, hf_camel_addr_digits, parameter_tvb, 1, -1, digit_str); + proto_tree_add_string(subtree, hf_camel_addr_digits, parameter_tvb, 1, -1, digit_str); #.END #---------------------------------------------------------------------------------------- @@ -278,6 +282,56 @@ tvbuff_t *parameter_tvb; return offset; dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL); +#.FN_PARS MSNetworkCapability + VAL_PTR = ¶meter_tvb + +#.FN_BODY MSNetworkCapability + + tvbuff_t *parameter_tvb; + proto_item *item; + proto_tree *subtree; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_camel_MSNetworkCapability); + de_gmm_ms_net_cap(parameter_tvb, subtree, 0, tvb_length_remaining(parameter_tvb,0), NULL, 0); + +#.FN_PARS MSRadioAccessCapability + VAL_PTR = ¶meter_tvb + +#.FN_BODY MSRadioAccessCapability + + tvbuff_t *parameter_tvb; + proto_item *item; + proto_tree *subtree; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_camel_MSRadioAccessCapability); + de_gmm_ms_radio_acc_cap(parameter_tvb, subtree, 0, tvb_length_remaining(parameter_tvb,0), NULL, 0); + +#.FN_PARS AccessPointName + VAL_PTR = ¶meter_tvb + +#.FN_BODY AccessPointName + + tvbuff_t *parameter_tvb; + proto_item *item; + proto_tree *subtree; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_camel_AccessPointName); + de_sm_apn(parameter_tvb, subtree, 0, tvb_length_remaining(parameter_tvb,0), NULL, 0); #.TYPE_ATTR CallingPartysCategory TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(isup_calling_partys_category_value) diff --git a/asn1/camel/packet-camel-template.c b/asn1/camel/packet-camel-template.c index d3b0e61df8..7f7a165a10 100644 --- a/asn1/camel/packet-camel-template.c +++ b/asn1/camel/packet-camel-template.c @@ -51,6 +51,7 @@ #include "packet-e164.h" #include "packet-isup.h" #include "packet-gsm_map.h" +#include "packet-gsm_a.h" #include "packet-tcap.h" #define PNAME "Camel" @@ -92,6 +93,11 @@ static gint ett_camel_ReturnResult_result = -1; static gint ett_camel_camelPDU = -1; static gint ett_camelisup_parameter = -1; static gint ett_camel_addr = -1; +static gint ett_camel_isdn_address_string = -1; +static gint ett_camel_MSRadioAccessCapability = -1; +static gint ett_camel_MSNetworkCapability = -1; +static gint ett_camel_AccessPointName = -1; + #include "packet-camel-ett.c" @@ -352,6 +358,9 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv case 71: /*ApplyChargingGPRS*/ offset=dissect_camel_ApplyChargingGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); break; + case 72: /*ApplyChargingReportGPRS*/ + offset=dissect_camel_ApplyChargingReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); + break; case 73: /*CancelGPRS*/ offset=dissect_camel_CancelGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); break; @@ -361,6 +370,9 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv case 75: /*ContinueGPRS*/ offset=dissect_camel_ContinueGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); break; + case 76: /*EntityReleasedGPRS*/ + offset=dissect_camel_EntityReleasedGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); + break; case 77: /*FurnishChargingInformationGPRS*/ offset=dissect_camel_FurnishChargingInformationGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); break; @@ -370,6 +382,9 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv case 79: /*ReleaseGPRS*/ offset=dissect_camel_ReleaseGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); break; + case 80: /*EventReportGPRS*/ + offset=dissect_camel_EventReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); + break; case 81: /*RequestReportGPRSEvent*/ offset=dissect_camel_RequestReportGPRSEventArg(FALSE, tvb, offset, pinfo, tree, -1); break; @@ -423,15 +438,6 @@ static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff case 70: /*ActivityTestGPRS*/ /* ActivityTestGPRS: no arguments - do nothing */ break; - case 72: /*ApplyChargingReportGPRS*/ - offset=dissect_camel_ApplyChargingReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); - break; - case 76: /*EntityReleasedGPRS*/ - offset=dissect_camel_EntityReleasedGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); - break; - case 80: /*EventReportGPRS*/ - offset=dissect_camel_EventReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); - break; default: proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob"); } @@ -707,6 +713,10 @@ void proto_register_camel(void) { &ett_camel_camelPDU, &ett_camelisup_parameter, &ett_camel_addr, + &ett_camel_isdn_address_string, + &ett_camel_MSRadioAccessCapability, + &ett_camel_MSNetworkCapability, + &ett_camel_AccessPointName, #include "packet-camel-ettarr.c" }; @@ -719,6 +729,11 @@ void proto_register_camel(void) { register_ber_oid_dissector_handle("0.4.0.0.1.0.50.1",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network|umts-Network(1) applicationContext(0) cap-gsmssf-to-gsmscf(50) version2(1)" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.51.1",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network|umts-Network(1) applicationContext(0) cap-assist-handoff-gsmssf-to-gsmscf(51) version2(1)" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.52.1",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network|umts-Network(1) applicationContext(0) cap-gsmSRF-to-gsmscf(52) version2(1)" ); + register_ber_oid_dissector_handle("0.4.0.0.1.21.3.50",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) cAP3OE(21) ac(3) id-ac-CAP-gprsSSF-gsmSCF-AC(50)" ); + + register_ber_oid_name("0.4.0.0.1.1.5.2","iitu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) abstractSyntax(1) cap-GPRS-ReferenceNumber(5) version3(2)"); + + /* Register our configuration options, particularly our ssn:s */ /* Set default SSNs */ |