aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/camel
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2006-09-01 16:17:48 +0000
committerAnders Broman <anders.broman@ericsson.com>2006-09-01 16:17:48 +0000
commit8faa5f837c0c230c9f6171c284bd7d4baa336c1a (patch)
tree5e6f554bb50bd2edcb75c979116b22bf5046f74f /asn1/camel
parent63ae8f775f695e5c7a1f08741d112272e7e257b8 (diff)
From Florent Drouin:
patch to implement the decoding of the GPRS reference. The specific oid for the CAP-GPRS-ReferenceNumber is attached to a decoding function in the camel module. svn path=/trunk/; revision=19108
Diffstat (limited to 'asn1/camel')
-rw-r--r--asn1/camel/packet-camel-template.c43
1 files changed, 31 insertions, 12 deletions
diff --git a/asn1/camel/packet-camel-template.c b/asn1/camel/packet-camel-template.c
index 954a7225bf..005ba7ecae 100644
--- a/asn1/camel/packet-camel-template.c
+++ b/asn1/camel/packet-camel-template.c
@@ -90,7 +90,6 @@ static int hf_camel_cellGlobalIdOrServiceAreaIdFixedLength = -1;
static int hf_camel_RP_Cause = -1;
#include "packet-camel-hf.c"
-static guint global_tcap_itu_ssn = 0;
/* Initialize the subtree pointers */
static gint ett_camel = -1;
@@ -631,6 +630,30 @@ static const ber_choice_t camelPDU_choice[] = {
static guint8 camel_pdu_type = 0;
static guint8 camel_pdu_size = 0;
+static void dissect_camelext_CAPGPRSReferenceNumber(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ proto_item *camel_item=NULL;
+ proto_tree *camel_tree=NULL;
+
+
+ if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Camel");
+ }
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ camel_item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, FALSE);
+ camel_tree = proto_item_add_subtree(camel_item, ett_camel);
+ }
+ /* create display subtree for the protocol */
+ if(camel_tree){
+ item = proto_tree_add_text(camel_tree, tvb, 0, -1, "GPRS Reference Number");
+ tree = proto_item_add_subtree(item, ett_camel_CAPGPRSReferenceNumber);
+ }
+ dissect_camel_CAPGPRSReferenceNumber(FALSE, tvb, 0, pinfo, tree, -1);
+}
+
static int
dissect_camel_camelPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
@@ -698,10 +721,16 @@ static void range_add_callback(guint32 ssn)
void proto_reg_handoff_camel(void) {
static int camel_prefs_initialized = FALSE;
-
if (!camel_prefs_initialized) {
camel_prefs_initialized = TRUE;
camel_handle = create_dissector_handle(dissect_camel, proto_camel);
+
+ 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_dissector("0.4.0.0.1.1.5.2", dissect_camelext_CAPGPRSReferenceNumber, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) abstractSyntax(1) cap-GPRS-ReferenceNumber(5) version3(2)");
} else {
range_foreach(ssn_range, range_delete_callback);
}
@@ -820,22 +849,12 @@ void proto_register_camel(void) {
&ett_camel_pdptypenumber,
#include "packet-camel-ettarr.c"
};
-
/* Register protocol */
proto_camel = proto_register_protocol(PNAME, PSNAME, PFNAME);
proto_register_field_array(proto_camel, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- 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)" );
-
- add_oid_str_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 */
range_convert_str(&global_ssn_range, "6-9", MAX_SSN);