Ethereal-dev: Re: [Ethereal-dev] Dissecting a tunneled packet?

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

From: Guy Harris <guy@xxxxxxxxxx>
Date: Fri, 26 Oct 2001 12:18:55 -0700 (PDT)
> Diameter can be used to provide AAA services for Mobile-IP.  When this happens,
> the entire Registration-Request packet is contained in an AVP.  I'd like to
> dissect that particular message with the mobile-ip dissector.
> 
> I've played around a bit, and made dissect_mip an exported function.  I *can*
> call it, with a subset of the tvb, and a tree off of the diameter tree, and 
> it looks really nice.
> 
> But: How can I keep the mip dissector from messing with the stuff inside
> of pinfo?

Which stuff?  The columns?

Save copies of the addresses pointed to by "pinfo", and call
"col_set_writable(pinfo->fd, FALSE)" before calling the Mobile IP
dissector.  That's the way ICMP, ICMPv6, and CLNP, for example, keep the
call to dissect the failed-packet payload of packet delivery error
messages from changing the columns.

See the ICMP dissector for an example.  (It's not as nice as it could
be, as you have to save and restore all those addresses yourself, but
it's better than nothing.)