Ethereal-dev: RE: [Ethereal-dev] ITU/ANSI TCAP dissector

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Michael Lum" <mlum@xxxxxxxxxxxxx>
Date: Fri, 3 Oct 2003 10:08:03 -0700
Thanks Guy.

I have modified my local dissectors to use "asn1_id_decode1()"
and have replaced my 0.9.14 asn1.c asn1.h with the latest from
CVS.

I remember the TCAP dissector had warnings when you built it,
I have an IS-41 dissector that builds clean on my Solaris machine.
I would be grateful if you could build it and send me the compile
output.  I will fix any warnings I can.

Any problems in this dissector I can claim as mine completely!

I have attached the cvs update -u diffs from the latest CVS source.

Thanks again.


> -----Original Message-----
> From: ethereal-dev-bounces@xxxxxxxxxxxx
> [mailto:ethereal-dev-bounces@xxxxxxxxxxxx]On Behalf Of Guy Harris
> Sent: Wednesday, October 01, 2003 11:21 PM
> To: Jeff Morriss
> Cc: Ethereal Development List
> Subject: Re: [Ethereal-dev] ITU/ANSI TCAP dissector
>
>
> On Fri, Sep 12, 2003 at 09:46:55AM -0400, Jeff Morriss wrote:
> > Jeff Morriss wrote:
> > >
> > > I'm not ASN.1 expert either, but it appears that the existing
> > > "asn1_tag_decode()" only works for the "high tag number" format
> > > (multi-octet) tag IDs.  In particular, it assumes that bit 8
> will be set
> > > on low-tag-number identifiers (but this isn't necessarily the case).
> > >
> > > Oops, no, that's not the problem...
> > >
> > > The problem is that the TCAP dissector is using 'asn1_tag_decode()'
> > > instead of 'asn1_id_decode()' (which does the work for
> dealing with low
> > > and high tag number formats).
> > >
> > > However, the TCAP dissector wants the tag to include the Class,
> > > Constructor, and Tag bits all combined together...
> > >
> > > So there are 3 options:
> > >
> > > 1) Rewrite a bunch of the TCAP dissector to look at tag IDs
> as a triplet
> > > (class, constructor, tag number)
> > >     - this probably has negative filtering consequences: users will
> > > probably want to filter on "tcap.msgtype == 0x62" instead of just the
> > > tag number
> > >
> > > 2) Make 'asn1_tag_decode_m()' a wrapper around
> 'asn1_id_decode()' that
> > > then squishes the class, constructor, and tag number back together
> > >
> > > 3) Change the comment for (and maybe the name of)
> 'asn1_tag_decode_m()'
> > > to indicate why that function is used instead of 'asn1_id_decode()'
> >
> > Or, here's the (obvious, some would say) option #4:  Add the
> new routine
> > from (3) to "asn1.c" for others to use if they want. (I couldn't think
> > of a better name for this routine than 'asn1_id_decode1()'.)
>
> I've checked in Michael's original TCAP dissector, with both of your
> patches to it, along with the ASN.1 BER changes - except that, as I
> don't know whether any plugins not part of Ethereal use
> "asn1_tag_decode()", I left its semantics the same (it zeroes out *tag),
> and put the bulk of it into a "asn1_tag_get()" routine, internal to
> asn1.c, and had "asn1_id_decode1()" use it.
>
> If "asn1_tag_decode()" isn't being used, we should get rid of it; if
> it's being used but stuff using it should be using something else, we
> should, again, get rid of it.
>
> _______________________________________________
> Ethereal-dev mailing list
> Ethereal-dev@xxxxxxxxxxxx
> http://www.ethereal.com/mailman/listinfo/ethereal-dev

Attachment: Makefile.am.diff
Description: Binary data

Attachment: Makefile.nmake.diff
Description: Binary data

Attachment: AUTHORS.diff
Description: Binary data

Attachment: packet-ansi_map.c
Description: Binary data