Gilbert Ramirez wrote:
>
> On Sat, 6 Jan 2001 17:14:52 -0800
> Guy Harris <gharris@xxxxxxxxxxxx> wrote:
>
> >
> > so I'm inclined to wait until I see a Frame Relay capture "in the flesh"
> > before adding any Frame Relay support to Ethereal - or to tcpdump, for
> > that matter - so that I know how many different flavors of Frame Relay
> > capture need to be supported and know what to expect as the header for
> > each of those flavors.
> >
>
> Also be on the lookout for frame relay at other layers, like FR over ATM.
> I guess this is possible, since packet-atm.c has ATT_HL_FRMR defined.
>
> --gilbert
Well, I just discovered that Cisco routers support Frame Relay over GRE.
So I have attached a patch for packet-gre.c to interpret the FR over
GRE.
Attached is a patch for GRE and a sample capture of frame relay over
gre.
The Frame Relay dissector is FAR from perfect, but I wanted to know what
are you thinking about it.
I know that there are FR with 2/3/4 byte DLCI but right now if you have
in ethereal a bitmaped field with the bitmask 0xFCF0 (for calculating
the DLCI number for 2 byte long address field) you get a wrong number
because the bitmask is not contiguous.
So I leaved that way until it will be clear if I will implement some
decoding of DLCI in the dissector or I will wait until the bitmaped
variables will support discontiguous bitmasks.
--- packet-gre.c.orig Sun Jan 7 20:21:11 2001
+++ packet-gre.c Sun Jan 7 20:27:08 2001
@@ -39,6 +39,7 @@
#include "packet.h"
#include "packet-ip.h"
#include "packet-ipx.h"
+#include "packet-fr.h"
#include "packet-wccp.h"
#include "in_cksum.h"
@@ -65,6 +66,7 @@
#define GRE_IP 0x0800
#define GRE_WCCP 0x883E
#define GRE_IPX 0x8137
+#define GRE_FR 0x6559
static void add_flags_and_ver(proto_tree *, guint16, tvbuff_t *, int, int);
static void dissect_gre_wccp2_redirect_header(tvbuff_t *, int, proto_tree *);
@@ -74,6 +76,7 @@
{ GRE_IP, "IP" },
{ GRE_WCCP, "WCCP"},
{ GRE_IPX, "IPX"},
+ { GRE_FR, "FR"},
{ 0, NULL }
};
@@ -259,6 +262,9 @@
case GRE_IPX:
dissect_ipx(next_tvb, pinfo, tree);
break;
+ case GRE_FR:
+ dissect_fr(next_tvb, pinfo, tree);
+ break;
default:
dissect_data(next_tvb, 0, pinfo, gre_tree);
break;
Attachment:
fr1.cap
Description: Binary data