Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Ethereal-users: [Ethereal-users] Mobile IPv4 Vendor Specific Extension decode problem

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

From: "Tim Rochford" <roch4d@xxxxxxxxxxx>
Date: Thu, 16 Dec 2004 00:58:32 +0000
   Hi,

   I would like to report an error on decoding Mobile IPv4
   packets. If a Mobile IPv4 Registration Request message is
   displayed in ethereal, there is an error in how the Vendor
   specific extension is decoded. Normal MIPv4 extensions decode
   correctly, but the Vendor specific extensions have a different
   format. RFC 3115 defines the following format for Vendor Specific
   extensions:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |   Reserved    |            Length             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Vendor/Org-ID                          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |          Vendor-CVSE-Type     |    Vendor-CVSE-Value ...
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The following snippet of code in packet-mip.c seems to be causing the
   error. For (at least) the CVSE_EXT and NVSE_EXT cases the code should be
   added so that the different format  for the extensions is supported.

/* Code to dissect extensions */
static void
dissect_mip_extensions( tvbuff_t *tvb, int offset, proto_tree *tree)
{
...
	case OLD_CVSE_EXT:      /* RFC 3115 */
	case CVSE_EXT:          /* RFC 3115 */
	case OLD_NVSE_EXT:      /* RFC 3115 */
	case NVSE_EXT:          /* RFC 3115 */
	case MF_CHALLENGE_EXT:  /* RFC 3012 */
/* The default dissector is good here. The challenge is all hex anyway. */
	default:
	  proto_tree_add_item(ext_tree, hf_mip_ext, tvb, offset, ext_len, FALSE);
	  break;
	} /* ext type */
...


   Please let me know if there is something i can do to help bring
   about a fix to this problem. I've only ever used ethereal with
   precompiled binaries on Windows, so if somebody could point me the
   direction how to fix this and recompile myself, that would be
   great.

-Thanks,
Tim