Ethereal-dev: RE: [ethereal-dev] Plugin for Cisco ISL

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

From: "Eichert, Diana" <deicher@xxxxxxxxxx>
Date: Sat, 22 Jan 2000 17:15:00 -0700
Here's a pointer to an ISL aware 10/100 PCI card.

http://www.znyx.com/products/netblaster/zx361-faq4.htm

We were just talking about ISL aware server cards in a Cisco class this
week.

diana

-----Original Message-----
From: Paul Ionescu
To: ethereal-dev@xxxxxxxx
Sent: 1/22/00 4:03 PM
Subject: Re: [ethereal-dev] Plugin for Cisco ISL

Guy Harris wrote: 

  
Presumably ISL frames have a particular Ethernet type (or are 802.2 
frames using a Cisco OUI and a particular protocol ID); you should only 
have to dissect those frames.  Unfortunately, as indicated, there's not 
yet any way to register a plugin that gets handed packets with a 
particular Ethernet type.

No, ISL frames are Layer 2 frames (on ISO OSI networking stack), and
those ISL frames encapsulate the original frame and a CRC. 
This is not the case with the 802.1q which have a Protocol number and is
an extension to Ethernet II frame. 
For this reason 802.1q introduces a 4 bytes/frame overhead and Cisco ISL
introduces 16 bytes/frame overhead (12 header + 4 CRC). 
Attached to this email is a capture from a trunk port on an old Catalyst
5000 which support only ISL vlans. 
As you will see, ethereal consider the ISL frames to be 802.3+LLC+SNAP
frames. He is not very far away from the truth, but there are some
differences between ISL frames and 802.3+LLC+SNAP: The 6-th byte from
the destination address has a different meaning that in 802.3, PID from
SNAP has a different meaning here (it is splited on bits: first 15 bits
represent vlan number and the last bit represent something else), and
others diferences. 
So, ethereal has to decide early in ethernet dissector if the frame is
ISL or ethernet(802.3 or Ethernet II), and I don't think that this is
possible because at this level the ISL packet looks like a valid
ethernet 802.3 packet. 
  

The problem is that I cannot tell ethereal that this capture is not an
ethernet capture but a ISL capture because it was snooped on a plain
ethernet card. This is why I tried to made a plugin, not because is a
non GPL plugin, but because when you enable the plugin, all frames must
be interpreted as ISL frames. And when you disable the plugin, all
frames would be normal frames. So the plugin would be enabled ONLY if
the capture is a ISL capture. 


Maybe if I could specify in capture file that the file was captured on
an ISL Trunk devide, then I could code in ethereal that packets from ISL
trunk device are dissected by ISL dissector.( in this way is made the
difference between ethernet and token-ring or other phisical media). 


Maybe this last approach is the best, because in fact there is a
simulated trunk interface. 
(I heard that there are some vendors who make ISL trunk interfaces for
servers). 
  
  

-- 



Air conditioned. Do _NOT_ open Windows.
 
 <<trunk.gz>>