Hi, Im unsure, it looks like a bigger job as well and I dont have any CS2 CS4 traces.
Is there an interest in updating the inap dissector to CS4? Regards Anders _____ Från: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] För Kukosa, Tomas Skickat: den 1 juni 2007 09:18 Till: Anders Broman (AL/EAB); Developer support list for Wireshark Ämne: Re: [Wireshark-dev] Asn1 question Hi, BTW I have found that it is not optional in later specifications (Capability Set 2-4) If I undestand it well later Capbility Sets are supersets of previous ones, i.e. it would be enough to implement CS-4 (Q.1248.x). Am I right? Regards, Tomas _____ From: Anders Broman (AL/EAB) [mailto:[EMAIL PROTECTED] Sent: Thursday, May 31, 2007 1:24 PM To: Kukosa, Tomas Subject: Asn1 question Hi, In inap the following asn1 is used: EXTENSION ::= CLASS { &id ExtensionType UNIQUE, &Type OPTIONAL, &absent &Type OPTIONAL, &criticality Criticality DEFAULT ignored } WITH SYNTAX { [EXTENSION-SYNTAX &Type [IF ABSENT &absent]] [CRITICALITY &criticality] IDENTIFIED BY &id } ExtensionType ::= INTEGER(0..MAX) Criticality ::= ENUMERATED {ignored(0), abort(1)} ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE { type EXTENSION.&id({ChosenFrom}), criticality Criticality DEFAULT ignored, value [1] EXTENSION.&Type([EMAIL PROTECTED]) } In the current inap.asn this is translated to: Extensions ::= SEQUENCE SIZE (1..10) OF SEQUENCE { type INTEGER, criticality ENUMERATED { ignore (0), abort (1)} DEFAULT ignore , value [1] IMPLICIT OCTET STRING } Asn2wrs translates it to: static const ber_sequence_t Extensions_item_sequence[] = { { &hf_inap_type , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_inap_INTEGER }, { &hf_inap_criticality , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_inap_T_criticality }, { &hf_inap_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_inap_OCTET_STRING }, { NULL, 0, 0, 0, NULL } }; static int dissect_inap_Extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, Extensions_item_sequence, hf_index, ett_inap_Extensions_item); return offset; } static const ber_sequence_t Extensions_sequence_of[1] = { { &hf_inap_Extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_inap_Extensions_item }, }; static int dissect_inap_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, Extensions_sequence_of, hf_index, ett_inap_Extensions); return offset; } Which looks OK but I'm wondering about the OPTIONAL in the original statements does that mean that that value should be OPTIONAL? Regards Anders
_______________________________________________ Wireshark-dev mailing list [email protected] http://www.wireshark.org/mailman/listinfo/wireshark-dev
