Ethereal-dev: [Ethereal-dev] IDL gameplan

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

From: Frank Singleton <frank.singleton@xxxxxxxxxxxx>
Date: Thu, 30 Nov 2000 07:53:42 -0600
Hi,


Just to keep people informed on the task I have undertaken,
to generate ethereal dissectors from IDL descriptions,
here is my current battleplan. Thanks to those people
with whom I have spoken with so far.

This should be very useful for the CORBA stuff appearing these days.

1. Generate packet-idl-xxx.[ch] from IDL doc's.
    I am writing a backend to the omniidl compiler that
     will allow me to traverse a tree structure that
    represents the parsed IDL .

2. From this, automagically  generate a dissector as usual. 
   It will also contain references to get_CDR_xxx or 
   decode_CDR_xxx etc. see below

    It will also register in the new idl_dissector table

3.  packet-giop.[ch] to contain helper functions
    of the form get_CDR_xxx and or decode_CDR_xxx.
    It already contains a few of these... and
    can handle the alignment issue swith IDL flattened
    onto an octet stream for various IDL data types.

4. packet-giop.c to register an "IDL-user" table.

5. When giop say looks at a REQUEST body, it can call
   use the IDL table to find a match (or perhaps via
   menu selection to activate the IDL dissector, or
   even heuristic search?)

6. The called IDL dissector can decode as usual, but 
   can use the CDR routines in giop to decode the
    CDR types , and automatically handle alignment
   within the octet stream.

   eg:  IDL based dissectors

octet1 = get_CDR_short(tvb, offset)
proto_tree_add_int(idlxxx_tree, hf_idlxxx_yyy,tvb, offset,1,octet1);


cf: snip from current non IDL stuff

octet1 = tvb_get_guint8(tvb,offset);	/* grab octet */   
proto_tree_add_uint(btap_tree, hf_btap_msgtype,tvb, offset,1,octet1);


7. more to come, I am sure.

Comments welcome / Frank..

-- 
EUS/SV/Z Frank Singleton      ASO Americas BSS
Office : +1 972 583 3251      ECN 800 33251  
Pager  : +1 800 651 1184      Email : eusfrsi@xxxxxxxxxxxxxxx 
Amateur Radio: VK3FCS/KM5WS   Email : frank.singleton@xxxxxxxxxxxx

Hardware: HP Omnibook 4150 running Redhat Linux 6.2 (2.2.16 kernel).